function EDParams(){
	
}

EDParams.prototype = {
		formName : false,
		validated : true,
		ajaxSending:true,
		registeredTextareas : new Array(),
		errorDiv: 'errors',
		registerHTMLEditors : function(textarea_id){
			this.registeredTextareas.push(textarea_id);
		},
		options : {
			        validated : true,
					beforeSubmit:  function(){return this.validated;}, 
			        success : function(datas, jqForm, options){return true;},
			        dataType : 'json',
			        resetForm : true,
			        clearForm : false
					},
		registerEDForm :function(id , callBack ,options){
				this.formName = id;
				eval('this.options.success = function(datas, jqForm, options){'+callBack+'(datas, jqForm, options);}');
				if(this.ajaxSending){
					jQuery.include('/javascript/jquery.forms.js');
					$('#'+id).ajaxForm(this.options);
				}
			}
	};



$(document).ready(function(){
	$('input[name=ajaxCalling]').val(1);
})


function MyErrorDecorator(){
}
 
MyErrorDecorator.prototype = {
    erreurMessage : '',
    errorDiv : false,
    params : null,
	start : function(){
	if(!this.params)
		this.params = new EDParams();
	for(i=0; i<this.params.registeredTextareas.length;i++){
		if(CKEDITOR.instances[this.params.registeredTextareas[i]])
			$('#'+this.params.registeredTextareas[i]).val(CKEDITOR.instances[this.params.registeredTextareas[i]].getData());
	}
	this.params.options.validated = true;
	if(!document.getElementById(this.params.errorDiv)){
		alert ('could not find the div id "'+this.params.errorDiv +'", no errors container ');
		return false;
	}
	this.errorDiv = $('#'+this.params.errorDiv);
	
	this.errorDiv.html('<span class="ui-icon ui-icon-alert" style="float:left"/></span>').hide();
	$('.erreurPlace').removeClass('erreurPlace');
	this.params.validated = true;
	this.erreurMessage = '';
	},
	
    addError : function(control, messageType){
		var message='';
        $('#'+this.params.formName+'_'+control.name+'[type!=checkbox]').addClass('erreurPlace');
        $('input[name='+control.name+'][type=checkbox]').parent().addClass('erreurPlace');
		
        if(messageType == 1){
            message = control.errRequired;
        }else if(messageType == 2){
            message = control.errInvalid;
        }else{
            message = "Error on '"+control.label+"' field";
        }
		this.erreurMessage += '<li style="margin-left:10px;">'+message+'</li>';
    },
    end : function(){
		this.errorDiv.append('<ul>'+this.erreurMessage+'</ul>').show();
    	this.params.options.validated = false;
		return false;
    }
}
