/**
 * @author Kalapuc Roman (rkalapuc@gmail.com)
 * @copyright Finport Technologies Inc
 * @since 2006
 * @version 1.0
 */

function wlpFormController(){
	this.ID = null;
	this.wrapperStr = '_fc';
	this.controls = null;
	this.messengers = new wlpArrayList();
	this.highliter = new wlpBorderChangeMessenger();
}

wlpFormController.prototype = new wlpActionController;

wlpFormController.prototype.setId = function (formId){
	this.ID = formId;
	this.highliter.setId(formId);
}

wlpFormController.prototype.showMessage = function(/*wlpMessage*/ _message, /*wlpControl*/ _control){
	var listIterator = this.messengers.getIterator();
	while (listIterator.hasNext){
		listIterator.current.showMessage(_message,_control);
		listIterator.moveNext();
	}	
}

wlpFormController.prototype.validate = function(){
	var listIterator = this.controls.getIterator();
	var i=0;
	while (listIterator.hasNext){
		//alert(i+' '+listIterator.current.ID);
		//i++;
		var _m = listIterator.current.validate();
		if (_m!==true){
			this.showMessage(_m,listIterator.current);
			this.highliter.highliteElement(listIterator.current.ID);
			return false;
		}else{
			this.highliter.unhighliteElement(listIterator.current.ID);
		}
		listIterator.moveNext();
	}
	return true;
}

wlpFormController.prototype.reset = function(){
	var listIterator = this.controls.getIterator();
	
	while (listIterator.hasNext){
		listIterator.current.clear();
		listIterator.moveNext();
	}
}

wlpFormController.prototype.refresh = function(){
	var listIterator = this.controls.getIterator();
	while (listIterator.hasNext){
		listIterator.current.refresh();
		listIterator.moveNext();
	}
}

wlpFormController.prototype.addMessenger = function(/*wlpMessenger*/ _m){
	this.messengers.add(_m);
}

wlpFormController.prototype.addControl = function(/*wlpMessenger*/ _control){
	this.controls.add(_control);
}

