// JavaScript Document
function MyFCKClass(){
    this.UpdateEditorFormValue = function(){
        for ( i = 0; i < parent.frames.length; ++i )
            if ( parent.frames[i].FCK )parent.frames[i].FCK.UpdateLinkedField();
        }
    }


var MyFCKObject = new MyFCKClass();


function validaDato(dato){
	obligatorio = dato.getAttribute('required');
	dType = dato.getAttribute('dType');
	if(obligatorio=="true"){
		if(dato.value!=""){
			if(dType!=null){
				switch(dType){
					case "simpleTxt":
						var RegExPattern = /([a-zA-Z0-9])$/; 
						var errMsg = 'El campo <b>' + dato.getAttribute('title') + '</b> solo acepta letras (a-z) y numeros (0-9)';
					break;
					case "password":
						var RegExPattern = /(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$/;
						var errMsg = 'El campo <b>' + dato.getAttribute('title') + '</b> solo acepta letras (a-z) y numeros (0-9) y debe tener entre 8 y 10 carácteres de longitud';					
					break;
					case "onlyNumbers":
						var RegExPattern = /^(?:\+|-)?\d+$/
						var errMsg = 'El campo <b>' + dato.getAttribute('title') + '</b> solo acepta números enteros';					
					break;
					case "email":
						var RegExPattern = /[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/
						var errMsg = 'El campo <b>' + dato.getAttribute('title') + '</b> no es una dirección de correo electrónico válida';										
					break;
					case "url":
					var RegExPattern = /^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\’\/\\\+&amp;%\$#_]*)?$/;
					var errMsg = 'El campo <b>' + dato.getAttribute('title') + '</b> no es una URL válida';																
					break;
				}
				if (dato.value.match(RegExPattern)) { 
					return true; 
				} else { 
					top.alerta('Error',errMsg);	
					dato.focus(); 
					return false;
				} 
			}	
			return true;	
		}else{
			top.alerta('Error','El campo <b>' + dato.getAttribute('title') + '</b> es obligatorio');	
			dato.focus();
			return false;
		}	
	}else{
		if(dType!=null){
			switch(dType){
					case "simpleTxt":
						var RegExPattern = /([a-zA-Z0-9])$/; 
						var errMsg = 'El campo <b>' + dato.getAttribute('title') + '</b> solo acepta letras (a-z) y numeros (0-9)';
					break;
					case "password":
						var RegExPattern = /(?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$/;
						var errMsg = 'El campo <b>' + dato.getAttribute('title') + '</b> solo acepta letras (a-z) y numeros (0-9) y debe tener entre 8 y 10 carácteres de longitud';					
					break;
					case "onlyNumbers":
						var RegExPattern = /^(?:\+|-)?\d+$/
						var errMsg = 'El campo <b>' + dato.getAttribute('title') + '</b> solo acepta números enteros';					
					break;
					case "email":
						var RegExPattern = /[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/
						var errMsg = 'El campo <b>' + dato.getAttribute('title') + '</b> no es una dirección de correo electrónico válida';										
					break;
					case "url":
					var RegExPattern = /^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\’\/\\\+&amp;%\$#_]*)?$/;
					var errMsg = 'El campo <b>' + dato.getAttribute('title') + '</b> no es una URL válida';																
					break;
			}
			if(dato.value!=""){
				if (dato.value.match(RegExPattern)) { 
					return true; 
				} else { 
					top.alerta('Error',errMsg);	
					dato.focus(); 
					return false;
				} 
			}else{
				return true;	
			}
		}
		return true;
	}
		
}

function enviaFormulario(url, formid, ajaxDiv, type){ 
		var peticion = false; 
		try { 
			  peticion = new XMLHttpRequest(); 
		} catch (trymicrosoft) { 
			  try { 
					peticion = new ActiveXObject("Msxml2.XMLHTTP"); 
		} catch (othermicrosoft) { 
			  try { 
					peticion = new ActiveXObject("Microsoft.XMLHTTP"); 
		} catch (failed) { 
					peticion = false; 
		} 
		} 
		} 
		MyFCKObject.UpdateEditorFormValue();
		var Formulario = document.getElementById(formid); 
			 var longitudFormulario = Formulario.elements.length; 
			 var cadenaFormulario = "" 
			 var sepCampos 
			 sepCampos = "" 
			 for (var i=0; i <= Formulario.elements.length-1;i++) { 
		  if(validaDato(Formulario.elements[i])){
			if(Formulario.elements[i].type=="checkbox" || Formulario.elements[i].type=="radio"){
				 if(Formulario.elements[i].checked == true){	
					 cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+escape(Formulario.elements[i].value);
				 }
			}else{
					cadenaFormulario += sepCampos+Formulario.elements[i].name+'='+escape(Formulario.elements[i].value); 
			 sepCampos="&";
		  	}
		  }else{
			return false;  
		  }//end valida
		
		} 
	  peticion.open("POST", url, true); 
	  peticion.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; 	charset=ISO-8859-1'); 
	  peticion.onreadystatechange = function () { 
	  if (peticion.readyState == 4) { 
	     //document.getElementById('centro').innerHTML = "Los datos han sido enviados 		correctamente";
		    SetContainerHTML(ajaxDiv, peticion.responseText, true);

			//document.getElementById(ajaxDiv).innerHTML = peticion.responseText;
		}else{
	     	document.getElementById(ajaxDiv).innerHTML = '<br><br><br><br><br><table align="center" cellpadding="5" cellspacing="5"><tr><td align="center"><img src="images/ajax-loader.gif" /><br><br><img src="images/cargando.gif" /></td></tr></table>';		
		} 
	} 
	peticion.send(cadenaFormulario); 
}

