// JavaScript Document
function downloadPdf(href){
	var opc='height=800,width=1000,left=100,top=100,resizable=no,scrollbars=yes,toolbar=no,status=no';
	newwindow=window.open(href,'PDF_doc',opc);
}

function IsNumeric(valor){ 
	var long=valor.length; var sw="S"; 
	for(x=0; x<long; x++){ 
		v1=valor.substr(x,1); 
		v2 = parseInt(v1); 
		//Compruebo si es un valor numérico 
		if (isNaN(v2)) { sw= "N";} 
	} 
	if (sw=="S") {return true;} else {return false; } 
}

function format(value,format)
{
	value = value.replace(/\D/g,"");
	var result="";
	
	if(format.length < value.length)
		return value;
	
	for(i=0,j=0;(i<format.length)&&(j<value.length);i++)
	{
		var ch = format.charAt(i) ;
		if(ch == '#')
		{
			result += value.charAt(j++);
			continue;
		}
		result += ch;
	}
	return result;
}

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 limit_text(obj,elEvento, maxi){   
  var elem = obj;   
  
  var evento = elEvento || window.event;   
  var cod = evento.charCode || evento.keyCode;   
  
    // 37 izquierda   
    // 38 arriba   
    // 39 derecha   
    // 40 abajo   
    // 8  backspace   
    // 46 suprimir   
  
  if(cod == 37 || cod == 38 || cod == 39   
  || cod == 40 || cod == 8 || cod == 46){   
    return true;   
  }
  
  if(elem.value.length < maxi ){   
    return true;   
  }     
  return false;   
}   

function count_print_obj(obj,evento,maxi,div){   
    var elem = obj.value;   
    var info = g(div);
    info.innerHTML = maxi-elem.length;   
}
function g(id) {
	return document.getElementById(id);
}