function wlpMessage(_text,_id){this.text=_text;this.ID=_id;}

function wlpAlertMessenger(_message){this.message=_message;}wlpAlertMessenger.prototype=new wlpMessenger;wlpAlertMessenger.prototype.showMessage=function(_message,_control){switch(_message.ID){case wlpConst.WLP_MESSAGE_ERROR:alert('[Error] '+_message.text);break;case wlpConst.WLP_MESSAGE_INFO:alert('[Info] '+_message.text);break;case wlpConst.WLP_MESSAGE_WARNING:alert('[Warning] '+_message.text);break;case wlpConst.WLP_MESSAGE_UNKNOWN:alert('[Unknown] '+_message.text);break;default:alert('[Unknown] '+_message.text);break;}}

function wlpBorderChangeMessenger(){this.ID=null;this.borderState=new Array();this.newBorderState='1px solid red;';};wlpBorderChangeMessenger.prototype.setId=function(formId){this.ID=formId;};wlpBorderChangeMessenger.prototype.getElement=function(elementId){return $(elementId);};wlpBorderChangeMessenger.prototype.highliteElement=function(elementId){if($('edit_form_'+this.ID)){var isTabView=($('edit_form_'+this.ID).getAttribute('tabs'))?true:false;}if(isTabView)this.activateErrorTab(elementId);this.saveElementState(elementId);var obj=this.getElement(elementId);if(this.newBorderState&&obj.style.border)obj.style.border=this.newBorderState;if(obj.focus()){obj.focus();}Element.scrollTo(elementId);};wlpBorderChangeMessenger.prototype.activateErrorTab=function(elementId){var elementIdString=elementId.toString();if(elementIdString.indexOf('ua')!=-1){wlpEditTabs.set('activeIndex',wlpConst.WLP_CONTROL_EDIT_TAB_UA);}else if(elementIdString.indexOf('ru')!=-1){wlpEditTabs.set('activeIndex',wlpConst.WLP_CONTROL_EDIT_TAB_RU);}else if(elementIdString.indexOf('en')!=-1){wlpEditTabs.set('activeIndex',wlpConst.WLP_CONTROL_EDIT_TAB_EN);}else{wlpEditTabs.set('activeIndex',wlpConst.WLP_CONTROL_EDIT_TAB_COMMON);}};wlpBorderChangeMessenger.prototype.unhighliteElement=function(elementId){if(this.getElement(elementId)&&this.borderState[elementId]){this.getElement(elementId).style.border=this.borderState[elementId];}};wlpBorderChangeMessenger.prototype.saveElementState=function(elementId){var style=this.getElement(elementId).style.border;this.borderState[elementId]=(style=='')?'':style;};

function wlpMessenger(_messages){this._registeredMessages=new wlpArrayList(_messages);}wlpMessenger.prototype.registerMessage=function(_id){this._registeredMessages.add(_id);};wlpMessenger.prototype.unregisterMessage=function(_id){this._registeredMessages.remove(_id);};wlpMessenger.prototype.showMessage=function(message,_control){if(this._registeredMessages.contains(message.ID)){return true;}else{return false;}};wlpMessenger.prototype.hideMessage=function(message){if(this._registeredMessages.contains(message.ID)){return true;}else{return false;}}

/**
 * @author Kalapuc Roman (rkalapuc@gmail.com)
 * @author Izzet Mustsfayev <webdizz@gmail.com>
 * @copyright Finport Technologies Inc
 * @since 2006
 * @version 1.0
 */
function wlpBorderChangeMessenger(){
	this.ID = null;
	this.borderState = new Array();
	this.newBorderState = '1px solid red;';
};

/**
 * получаем id формы
 * @param int formId
 */
wlpBorderChangeMessenger.prototype.setId = function (/*form id*/formId){
	this.ID = formId;
};

/**
* find and return html-object
* @return html-object
*/
wlpBorderChangeMessenger.prototype.getElement = function(/*element id*/elementId){
	return $(elementId);
};
/**
* highlite element
*/
wlpBorderChangeMessenger.prototype.highliteElement = function(/*element id*/elementId){
	if($('edit_form_'+this.ID)){
		var isTabView = ($('edit_form_'+this.ID).getAttribute('tabs'))?true:false;
	}
	if(isTabView) this.activateErrorTab(elementId);/*делаем активным таб с ошибкой*/
	this.saveElementState(elementId);
	var obj = this.getElement(elementId);
	if(this.newBorderState && obj.style.border) obj.style.border = this.newBorderState;
	if (obj.disabled!=true)
	{
	if(obj.focus()){
		obj.focus();
	}
	}
	Element.scrollTo(elementId);
};
/**
 * activate error tab
 * @param int	form element id
 */
wlpBorderChangeMessenger.prototype.activateErrorTab = function(elementId){
	var elementIdString = elementId.toString();
	if(elementIdString.indexOf('ua')!=-1){
		wlpEditTabs.set('activeIndex', wlpConst.WLP_CONTROL_EDIT_TAB_UA);
	}else if(elementIdString.indexOf('ru')!=-1){
		wlpEditTabs.set('activeIndex', wlpConst.WLP_CONTROL_EDIT_TAB_RU);
	}else if(elementIdString.indexOf('en')!=-1){
		wlpEditTabs.set('activeIndex', wlpConst.WLP_CONTROL_EDIT_TAB_EN);
	}else{
		wlpEditTabs.set('activeIndex', wlpConst.WLP_CONTROL_EDIT_TAB_COMMON);
	}
};
/**
* unhighlite element
*/
wlpBorderChangeMessenger.prototype.unhighliteElement = function(/*element id*/elementId){
	if(this.getElement(elementId) && this.borderState[elementId]){
		this.getElement(elementId).style.border = this.borderState[elementId];
	}
};
/**
* save element style state
*/
wlpBorderChangeMessenger.prototype.saveElementState = function(/*element id*/elementId){
	var style = this.getElement(elementId).style.border;
	this.borderState[elementId] = (style == '')?'':style;
};

/**
 * @author Kalapuc Roman (rkalapuc@gmail.com)
 * @copyright Finport Technologies Inc
 * @since 2006
 * @version 1.0
 * @deprecated
 */

var wlpMessageFactory;

if (!wlp_def("wlpMessageFactory")){
	wlpMessageFactory = {
		getInstance: function(/*String*/_type,_message){
			switch(_type){
				case wlpConst.WLP_MESSAGE_INFO: return new wlpMessage(_message,wlpConst.WLP_MESSAGE_INFO);
				case wlpConst.WLP_MESSAGE_ERROR: return new wlpMessage(_message,wlpConst.WLP_MESSAGE_ERROR);
				case wlpConst.WLP_MESSAGE_WARNING: return new wlpMessage(_message,wlpConst.WLP_MESSAGE_WARNING);
				default: return new wlpMessage(_message,wlpConst.WLP_MESSAGE_UNKNOWN);
			}
		}
	}
}

var wlpMessageFactory;if(!wlp_def("wlpMessageFactory")){wlpMessageFactory={getInstance:function(_type,_message){switch(_type){case wlpConst.WLP_MESSAGE_INFO:return new wlpMessage(_message,wlpConst.WLP_MESSAGE_INFO);case wlpConst.WLP_MESSAGE_ERROR:return new wlpMessage(_message,wlpConst.WLP_MESSAGE_ERROR);case wlpConst.WLP_MESSAGE_WARNING:return new wlpMessage(_message,wlpConst.WLP_MESSAGE_WARNING);default:return new wlpMessage(_message,wlpConst.WLP_MESSAGE_UNKNOWN);}}}}

/**
 * @author Kalapuc Roman (rkalapuc@gmail.com)
 * @copyright Finport Technologies Inc
 * @since 2006
 * @version 1.0
 */

function wlpAlertMessenger(_message){
	this.message = _message;
}

wlpAlertMessenger.prototype = new wlpMessenger;

wlpAlertMessenger.prototype.showMessage = function(_message,_control){
	switch(_message.ID){
		case wlpConst.WLP_MESSAGE_ERROR: alert('[Error] '+_message.text);break;
		case wlpConst.WLP_MESSAGE_INFO: alert('[Info] '+_message.text);break;
		case wlpConst.WLP_MESSAGE_WARNING: alert('[Warning] '+_message.text);break;
		case wlpConst.WLP_MESSAGE_UNKNOWN: alert('[Unknown] '+_message.text);break;
		default : alert('[Unknown] '+_message.text);break;
	}
}

