// JavaScript Document

var ERROR_MESSAGES=new Object();
var $FRM_ACTION="";

ERROR_MESSAGES.SELECT="El campo no puede estar vacio.";

function MAIN_FORM_SUBMIT(frm){	

	/* Analisis del formulario*/
	try{
       xsended = null;
       if(frm.sended){
       	xsended = frm.sended;
       	if(frm.sended.value == 1 && false) {
			return false;
		}
       }else{
            var xsended = document.createElement("input");
            xsended.name = "sended";
            xsended.type = "hidden";
        	frm.appendChild(xsended);
       }

       if(!$FRM_ACTION) $FRM_ACTION=frm.action;
    	//$s="<?=$_SESSION["SEND_FORM"]?>";
		$s = "";
    	frm.id_sesion.value=$s;
    	var err=new Object();
    	err.element=null;
    	err.message=null;
    	err.status=null;
    	for(var i=0;i<frm.elements.length;i++){
    		var e=frm.elements[i];
            //correccion para los objetos de tipo radio
            //en mozilla se le establece un atributo on al realizar un post
            //solo mantenemos el valor del objeto a on si est� marcado, sino off
			if(e.tagName.toLowerCase() == "fieldset") continue;
            if(e.getAttribute && e.getAttribute("type").toLowerCase() == "radio"){
            	if(e.checked == true) 
                	e.value = "on";
                else{
                	e.value = "off";
                    if(e.getAttribute("checked")){
                    	e.removeAttribute("checked");
                    }
                }

				if(!CheckRadioRequired(frm.elements[e.name]))
				{
					err.element=e;
					err.message=ERROR_MESSAGES.SELECT;
					err.status=1;
					alert(err.message);
					try{e.focus()}catch(e2){}
					/*frm.action='null';*/
					/*frm.target='_null';*/
					return false;					
				};
            }

            //fin de la correccion 
            if((trim(e.value)=="" || e.value=='Seleccione una opci�n...' || e.value=='Seleccione unha opci�n...') && (e.getAttribute && e.getAttribute("obligatorio")==1)){
        		if(',hidden,submit,image,reset,'.indexOf(","+e.getAttribute("type").toLowerCase()+",")>-1) continue;
                err.element=e;
                err.message=ERROR_MESSAGES.SELECT;
                err.status=1;
        		alert(err.message);
        		try{e.focus()}catch(e2){}
                /*frm.action='null';
                frm.target='_null';*/
        		return false;
         	}

            if(e.getAttribute && e.getAttribute("type").toLowerCase() == "checkbox" && e.checked == false && e.getAttribute("obligatorio") == 1){
                err.element=e;
                err.message=ERROR_MESSAGES.SELECT;
                err.status=1;
        		alert(err.message);
        		try{e.focus()}catch(e2){}
                /*frm.action='null';
                frm.target='_null';*/
        		return false;        
            }

    		 	if(e.value){
        		 e.value=e.value.replace(/</gi,"&lt;");  
        		 e.value=e.value.replace(/>/gi,"&gt;");
    		 	}  
    	}			 

	}catch(eex){
		alert(eex.description);
	}
	
	if(!CheckMinimunLength(frm)) {
		return false;
	}

   if(frm.frm_body){
   	 frm.removeChild(frm.frm_body);
   }						

	if(!frm.frm_body){
		var xBody = document.createElement("input");
		xBody.name = "frm_body";
		xBody.type = "hidden";
		frm.appendChild(xBody);
	}	

   if(frm.frm_elements){
   	frm.removeChild(frm.frm_elements);
   }							 
   
	if(!frm.frm_elements){
    var xElements = document.createElement("input");
    xElements.name = "frm_elements";
    xElements.type = "hidden";
		frm.appendChild(xElements);
	}											 
    	var es=new Array();

    	for(var i=0;i<frm.elements.length;i++) es.push(frm.elements[i].name);
    	xElements.value=es.toString();	

        for(var i=0;i<frm.elements.length;i++){
        	var e=frm.elements[i];
            if(!e.name || !e.getAttribute("type")) continue;
            if(',submit,image,reset,button,'.indexOf(","+e.type.toLowerCase()+",")>-1){
            	e.style.display='none';
            };
        };

			var html=frm.innerHTML;
			for(var i=0;i<frm.elements.length;i++){
        	var e=frm.elements[i];
            if(!e.name || !e.getAttribute("type")) continue;
            if(',submit,image,reset,button,'.indexOf(","+e.getAttribute("type").toLowerCase()+",")>-1){
            	e.style.display='';
            };

        };

    	xBody.value=html;
		frm.action=$FRM_ACTION;
    	//frm.target='_blank';
        xsended.value = 1;

        return true;



}

function CheckRadioRequired(obj)
{

	var required = 0;
	var value = null;

	if(!obj) return false;
	for(var index = 0; index < obj.length; index++)
	{
		required = obj[index].getAttribute("obligatorio");
		if(obj[index].checked == true) {
			value = obj[index].value;
		}

	}

	if(required && !value)
		return false;

	return true;

}

function CheckEqualsValues(formx, obj) {
	if (obj.length > 1) {
		
		f1 = formx.elements[obj[0]];
		f2 = formx.elements[obj[1]];
		
		if (f1 && f2 && f1.value != f2.value) {
			try{
				// Get the message of the firts target
				var msg = f1.getAttribute("msg");
				if(msg) {
					alert(msg);
				}
				f2.focus();
			}catch(E){}
			
			return false;
		}
	}
	return true;
}

/*function CheckEqualsValues(obj) {
	if (obj.length) {
		for ( var i = 0; i < obj.length; i++ ) {
			var s = new String(obj[i]);
			var val = s.split(';');
			var f1 = document.getElementById(val[0]);
			var f2 = document.getElementById(val[1]);

			if (f1 && f2 && f1.value != f2.value) {
				try{
					// Get the message of the firts target
					var msg = f1.getAttribute("msg");
					if(msg) {
						alert(msg);
					}
					f2.focus();
				}catch(E){}
				
				return false;
			}
		}
	}
	return true;
}*/

function CheckMinimunLength(oform) {
	try {
		for(var i=0;i<oform.elements.length;i++){
			var e = oform.elements[i];
			var s = new String(e.value);
			if (e.tagName.toLowerCase() == "fieldset") continue;
			if(e.getAttribute && (e.getAttribute("type").toLowerCase() == "text" || e.getAttribute("type").toLowerCase() == "password") && parseInt(e.getAttribute("minlength")) > 0) {
				if (s.length < parseInt(e.getAttribute("minlength"))) {
					alertmsg = e.getAttribute("msg");
					if(alertmsg) alert(alertmsg);
					try { e.focus(); } catch (E) { };
					return false;
				}
			}
		}
		return true;
	} catch (Exception) {
		return false;
	}
}

function CheckEqualsValues1(formx, obj) {
	if (obj.length > 1) {
		
		f1 = formx.elements[obj[0]];
		f2 = formx.elements[obj[1]];
		
		if (f1 && f2 && f1.value != f2.value) {
			try{
				// Get the message of the firts target
				var msg = f2.getAttribute("msg");
				if(msg) {
					alert(msg);
				}
				f2.focus();
			}catch(E){}
			
			return false;
		}
	}
	return true;
}

//funcion para bloquear submit, y que el usuario no lo pueda enviar varias veces
function bloquear(formx) {
	formx.Enviar.disabled = true;
	formx.Enviar.value = "Procesando...espera unos segundos";
}



