function validateFecha(str){
		var _fechas_ = strSplit(str, "/"); var from = strFechaFormat(_fechas_[0], "dd-mm-yy", "-");
		var to = strFechaFormat(_fechas_[1], "dd-mm-yy", "-");
		//por el a�o
				if (from[2] < to[2]){
					return true;
				}
				else{
					if (from[2] > to[2]){
						return false;
					}
					else
					if (from[1] < to[1]){
						return true;

					}
					else{
						if (from[1] > to[1]){
							return false;
						}
						else
						if (from[0] < to[0]){
							return true;
						}
						else{
							return false;
						}
						return false;
					}
				}
				return false;
		}
		function strFechaFormat(str, format, char){
					switch(format){
						case "dd-mm-yy":
							return fecha = strSplit (str, char);
						break;
					}
				}
		function strSplit (str, char){
					return _str_ = str.split(char);
		}

function validateCampos(element, aclass, formName){	
	var valTrim = element.value.trim();
	if(methods[aclass].call(this,valTrim,element)){
		setNoError(element, aclass, formName);
		return true;
	}
	else{		
		setError(element, aclass, formName);
		return false;
	}
}

function typeElement(element){
	if (jQuery("#"+element.id).hasClass('f_integer')){
		return 'f_integer';
	}
	if (jQuery("#"+element.id).hasClass('f_intpositivo')){
		return 'f_intpositivo';
	}
	if (jQuery("#"+element.id).hasClass('f_fileupload')){
		return 'f_fileupload';
	}
	if (jQuery("#"+element.id).hasClass('f_bool')){
		return 'f_bool';
	}
	if (jQuery("#"+element.id).hasClass('f_currency')){
		return 'f_currency';
	}
	if (jQuery("#"+element.id).hasClass('f_numeric')){
		return 'f_numeric';
	}
	if (jQuery("#"+element.id).hasClass('f_textfield')){
		return 'f_textfield';
	}
	if (jQuery("#"+element.id).hasClass('f_username')){
		return 'f_username';
	}
	if (jQuery("#"+element.id).hasClass('f_captcha')){
		return 'f_captcha';
	}
	if (jQuery("#"+element.id).hasClass('f_password')){
		return 'f_password';
	}
	if (jQuery("#"+element.id).hasClass('f_email')){
		return 'f_email';
	}
	if (jQuery("#"+element.id).hasClass('f_url')){
		return 'f_url';
	}
	if (jQuery("#"+element.id).hasClass('f_lookup')){
		return 'f_lookup';
	}
	if (jQuery("#"+element.id).hasClass('f_textarea')){
		return 'f_textarea';
	}
	if (jQuery("#"+element.id).hasClass('f_checkboxset')){
		return 'f_checkboxset';
	}
	if (jQuery("#"+element.id).hasClass('f_select')){
		return 'f_select';
	}
	if (jQuery("#"+element.id).hasClass('f_date')){
		return 'f_date';
	}
	if (jQuery("#"+element.id).hasClass('f_daterange')){
		return 'f_daterange';
	}
	if (jQuery("#"+element.id).hasClass('f_doublelistbox')){
		return 'f_doublelistbox';
	}
	if (jQuery("#"+element.id).hasClass('f_datalist')){
		return 'f_datalist';
	}
	return "no_class";
}

function isRequired(e){
	return jQuery("#"+e.id).hasClass("required");
}


function isNotRequired(element, aclass){
	var bool = jQuery("#"+element.id).hasClass("required");
	if (!bool){
		if (jQuery("#"+element.id).hasClass("f_checkboxset")){
			bool = jQuery("#"+element.id+":checkbox:checked").length == 0;
		}
		else{
			var valTrim = element.value.trim();			
			//if(element.value.length > 0){
			if(valTrim.length > 0){
				bool = false;
			}
			else{
				bool = true;
			}
		}
	}
	return bool;
}

function showError(formName){
	jQuery('.warning_div_top_'+formName).show();
	jQuery('.warning_div_bottom_'+formName).show();
	return true;

}

function showNoError(formName){
	jQuery('.warning_div_top_'+formName).hide();
	jQuery('.warning_div_bottom_'+formName).hide();	
	return true;
}

function setError(element, arrclass, formName){		
		var _idParent_ = jQuery('#'+element.id).parents("td").attr('id');
		jQuery('#'+_idParent_).removeClass('f_error');
		jQuery('#'+_idParent_).addClass('f_error');
		var tdID = 'td_'+formName;
		var thID = 'th_'+formName;
		_idParent_ = _idParent_.replace(tdID, thID);
		jQuery('#'+_idParent_).removeClass('f_error');
		jQuery('#'+_idParent_).addClass('f_error');
}

function setNoError(element, arrclass, formName){
		var _idParent_ = jQuery('#'+element.id).parents("td").attr('id');
		jQuery('#'+_idParent_).removeClass('f_error');
		var tdID = 'td_'+formName;
		var thID = 'th_'+formName;
		_idParent_ = _idParent_.replace(tdID, thID);
		jQuery('#'+_idParent_).removeClass('f_error');
}

function setDisplay(a,b){

}

function formValidate( f) {
	var errors = '';
	var i;
	flag = true;
	for( i=0 ; i< f.length ; i++ ){
		element = f.elements[i];
		arrClass = typeElement(f.elements[i]);
		var botones = jQuery("#"+element.id).attr("type");
		if (botones != 'submit' &&  botones !=  'button' && arrClass != 'no_class'){
			if (isRequired(f.elements[i]) || !isNotRequired(element, arrClass)){
				if (!validateCampos(element, arrClass, f.name)){
					flag = false;
				}
			}
		}
	}
	if (!flag){
		//window.scroll(0,0);
		showError(f.name);
	}
	else{
		showNoError(f.name);
	}

	return flag;
}
