// JavaScript Document
function g(id) {
	return document.getElementById(id);
}

function trim(cadena){
	for(i=0; i<cadena.length; )
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(i+1, cadena.length);
		else
			break;
	}
	for(i=cadena.length-1; i>=0; i=cadena.length-1)
	{
		if(cadena.charAt(i)==" ")
			cadena=cadena.substring(0,i);
		else
			break;
	}	
	return cadena;
}

function validaForm(ruta){

	var propControl = new Array();
	debecontar=0;
	contar=0;
	validar=0;
	vacios=0;
	
	for(var i=0; i<ruta.elements.length; i++){
		
		//controlAct=trim(ruta.elements[i]);
		controlAct=ruta.elements[i];
		if(ruta.elements[i].title.indexOf("*")!=-1){//si existe * entonces valida datos del control actual			
			propControl = ruta.elements[i].title.split("*");
			//alert(propControl[1]);
			if(propControl[1].indexOf("r")!= -1){//si es diferente de -1 entonces es un control requerido
				if(trim(controlAct.value)=="" || trim(controlAct.value)=="0"){
					i=i+1;
					// Esto es un control oculto para el mensaje ruta.elements[i].value
					alert(ruta.elements[i].value);
					
					controlAct.style.border="1px #FF0000 solid";
					controlAct.focus();

					return false;
					break;
				}
			}
			if(propControl[1].indexOf("m")!= -1){//si es diferente de -1 entonces se debe validar el email
			//alert("email");
				if(emailCheck(trim(controlAct.value))==0){
					i=i+2;
					alert(ruta.elements[i].value);
					controlAct.style.border="1px #FF0000 solid";
					controlAct.focus();
					return false;
					break;
				}
			}
			if(propControl[1].indexOf("c")!= -1){
				debecontar=1;
				contar=contar+1;
				if(trim(controlAct.value)==""){
					vacios=vacios+1;
					if(contar==1){
						kontrol=controlAct;
						nombreKontrol=propControl[0];
					}
				}				
			}			
			if(propControl[1].indexOf("f")!= -1){
				if(checkDecimals(controlAct)==0){
					alert("El campo "+propControl[0]+" no debe contener caracteres alfanumericos");
					controlAct.focus();
					controlAct.select();
					return false;
					break;
				}else{
					num=roundOff(controlAct.value, 2);
					//alert(num);
				}				
			}
			if(propControl[1].indexOf("p1")!= -1){//hay un "campo password"
				password1=controlAct.value;
			}
			if(propControl[1].indexOf("p2")!= -1){//hay un campo "repetir password"
				password2=controlAct.value;
				validar=1;
				ctrlRep=controlAct;
			}
			if(propControl[1].indexOf("chk")!= -1){//si es diferente de -1 indica que se debe hacer check				
				if(controlAct.checked==false){
					i=i+1;
					alert(ruta.elements[i].value);
					controlAct.focus();
					return false;
					break;
				}
			}
		}
	}
	if(validar==1){
		if(password1!=password2){
			alert('Vous n\’avez pas retapé correctement votre mot de passe');
			ctrlRep.focus();
			ctrlRep.select();
			return false;
		}
	}
	if(debecontar==1){
		if(contar==vacios){
			alert('Les champs "'+nombreKontrol+'" ne peuvent être vides ');
			kontrol.focus();
			return false;
		}
	}
}

function roundOff(value, precision){
value = "" + value //convert value to string
precision = parseInt(precision);
var whole = "" + Math.round(value * Math.pow(10, precision));
var decPoint = whole.length - precision;

	if(decPoint != 0){
		result = whole.substring(0, decPoint);
		result += ".";
		result += whole.substring(decPoint, whole.length);
	}else{
		result = whole;
	}
	return result;
}


function checkDecimals(fieldName) {
decallowed = 2;  // cuantos decimales se desea
fieldValue=fieldName.value;
	if(fieldValue.length>=1){
		if (isNaN(fieldValue) || fieldValue == "") {
			/*alert("OJO! No has introducido un numero. Vuelve a intentarlo");
			fieldName.select();
			fieldName.focus();*/
			return 0;
		}
		else {
			if (fieldValue.indexOf('.') == -1) 
				fieldValue += ".";
			dectext = fieldValue.substring(fieldValue.indexOf('.')+1, fieldValue.length);
	
			if (dectext.length > decallowed){
				/*alert ("OJO!! Introduce un numero con " + decallowed + " decimales.  Intentalo de nuevo.");
				fieldName.select();
				fieldName.focus();*/
				return 0;
	      	}else {
			//alert ("OK!! Numero correcto.");
			return 1;
	      	}
		}
	}else{
		return 1;
	}
}


function emailCheck (emailStr) {
	if(emailStr.length>=1){
		var emailPat=/^(.+)@(.+)$/
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
		var validChars="\[^\\s" + specialChars + "\]"
		var quotedUser="(\"[^\"]*\")"
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
		var atom=validChars + '+'
		var word="(" + atom + "|" + quotedUser + ")"
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
		
		var matchArray=emailStr.match(emailPat)
		if (matchArray==null) {
			return 0;
		}
		var user=matchArray[1]
		var domain=matchArray[2]
		
		if (user.match(userPat)==null) {
			return 0;
		}
	
		var IPArray=domain.match(ipDomainPat)
		if (IPArray!=null) {
			for (var i=1;i<=4;i++) {
				if(IPArray[i]>255){
					return 0;
				}
			}
			return 1;
		}
	
		var domainArray=domain.match(domainPat)
		if (domainArray==null) {
			return 0;
		}
		var atomPat=new RegExp(atom,"g")
		var domArr=domain.match(atomPat)
		var len=domArr.length
		if (domArr[domArr.length-1].length<2 || 
			domArr[domArr.length-1].length>3) {
		   return 0;
		}
	
		if (len<2) {
		   return 0;
		}
		
	}else{
		return 1;
	}

}

function locationhref(page,vari){
	vari=(vari=="")?(""):("?"+vari);
	location.href=page+vari;
}


function showMsg(msg)
{
    try {
        clearTimeout(to);
		document.getElementById("showMensaje").style.display="none";
		location.reload();
    } catch (e) {}
	msg;
    to = setTimeout("showMsg(msg)",4000);	
}

function logout(){
	
	url="bye=1";
	myConn.connect("cliente/process/cliente.php","GET",url,end_logout);	
}

var end_logout=function (oXML){	
	var rpta = oXML.responseText;
	if(rpta=="bye"){		
		location.href='index.php';
	}
};

function keyPressLogin(id){
	var e = document.getElementById(id);
	
	e.onkeydown = function(evt){
		evt = (evt) ? evt : ((window.event) ? window.event : "");
		if (evt) {
			if(evt.keyCode==13)	{
				check_login();
			}
		}
	}
}

function action_(url,msg,page_process){
	if(confirm(msg)){		
		location.href=page_process+'?'+url;
	}
}

function keyPressLogin(id){
	var e = document.getElementById(id);
	
	e.onkeydown = function(evt){
		evt = (evt) ? evt : ((window.event) ? window.event : "");
		if (evt) {
			if(evt.keyCode==13)	{
				check_login();
			}
		}
	}
}

function go_(page){
	location.href=page;	
}

function paginacion_(page,num_page,param){
	page=page+'?page='+num_page+param;
	go_(page);
}

function popup(img, ww, hh){
	derecha=(screen.width-ww)/2;
	arriba=(screen.height-hh)/2;
	string="titlebar='no',toolbar=0,scrollbars=yes,location=0,statusbar=0,menubar=0,resizable=0,width="+ww+",height="+hh+",left="+derecha+",top="+arriba+"";
	fin=window.open(img,this.target,string);
}