//Ver 0.1 Trillonario

function OpenCenterPop(link, nombre, ancho, alto){
  derecha=(screen.width-ancho)/2;
  arriba=(screen.height-alto)/2;
  string="toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width="+ancho+",height="+alto+",left="+derecha+",top="+arriba+"";
  fin=window.open(link,nombre,string);
}


function OpenWindow(link, nombre, ancho, alto, scrollbars, resaizable){
  derecha=(screen.width-ancho)/2;
  arriba=(screen.height-alto)/2;
  string="toolbar=0,scrollbars="+ scrollbars +",location=0,statusbar=0,menubar=0,resizable=" + resaizable + ",width="+ancho+",height="+alto+",left="+derecha+",top="+arriba+"";
  fin=window.open(link,nombre,string);
}


function changeVisibility(obj){
	objdiv=document.getElementById(obj);
	if (objdiv.style.display=="block"){
		objdiv.style.display="none";
	}else{
		objdiv.style.display="block";
	}
}


function checkField(errorOut, nombrecampo, nombre, tipo, requerido){
//Llamada: if (checkField('idDelSpanDondeSeMuestraElError', 'NameDelCampo', 'TextoNombreDelCampo', 'Tipo', Requerido1o0)!="ok") return
//Atencion: si el tipo es radio se le pasa el nombre del campo no el id.

	var temp=""
	obj=document.getElementById(nombrecampo)
	objError=document.getElementById(errorOut)
	objError.innerHTML=""
	obj.style.backgroundColor="white"
	tipo=tipo.toLowerCase()
	var min=3;
	valor=obj.value

	if (tipo!="radio"){
		//saca del valor las '
		for (i=0; i<valor.length ; i++){
			if (valor.charAt(i)!="'"){
				temp=temp + valor.charAt(i)
			}
		}
		valor=temp
	}
	
	if (requerido==1 && valor==""){
		objError.innerHTML="The field '" + nombre + "' can't be empty."
		location.hash="href_" + errorOut;
		obj.style.backgroundColor="#F9FF9D"
		obj.focus();
		return (false)
	}
	switch (tipo){
		case "numero":
			if (isNaN(valor)){
				objError.innerHTML="The field '" + nombre + "' must be a number."
				location.hash="href_" + errorOut;
				obj.style.backgroundColor="#F9FF9D"
				obj.focus();
				return (false)
			}
			break
			
		case "email":
			if (valor.length>0){
				chequeoEmail=emailCheck(valor)
				if (chequeoEmail=="Invalid email address."){
					objError.innerHTML="" + chequeoEmail + ""
					location.hash="href_" + errorOut;
					obj.style.backgroundColor="#F9FF9D"
					obj.focus();
					return (false)
				}
			}
			break
			
		case "radio":
			var obj=document.getElementsByName(nombrecampo)
			if (requerido==1){
				for (i=0;i<obj.length;i++) {
					if (obj[i].checked){
						sel=true;
						break;
					}
				}
				if (!sel){
					objError.innerHTML="Must select " + nombre + ".";
					location.hash="href_" + errorOut;
					obj.style.backgroundColor="#F9FF9D"
					obj.focus();
					return (false)
				}
			}
			break
		case "clave":
			if (valor.length>0 && valor.length < min){
				objError.innerHTML="The field '" + nombre + "' must have at least " + min + " chars.";
				obj.style.backgroundColor="#F9FF9D"
				obj.focus();
				location.hash="#";
				return (false)
			}
			break
	}
	if (tipo!="radio"){
		obj.value=valor
	}
		
}

function emailCheck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return "Invalid email address."
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return "Invalid email address."
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		   return "Invalid email address."
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return "Invalid email address."
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return "Invalid email address."
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return "Invalid email address."
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return "Invalid email address."
		 }

 		 return str					
}

function check_checkbox(error, campo){
	objError = document.getElementById(error);
	if (!campo.checked){
		objError.innerHTML="You should be agree to use the Trillionario.com service";
		return (false);
	}
}


function check_date(error,fecha,currenttime){
	objError = document.getElementById(error);
	if (check_age(fecha,currenttime) <= 18){
		objError.innerHTML="You should be 18 years old to register.";
		return (false);
	}
}

//calcula la edad de una persona 
//recibe la fecha como un string en formato espaņol (dd/mm/yyyy)
//devuelve un entero con la edad. Devuelve false en caso de que la fecha sea incorrecta o mayor que el dia actual 
function check_age(fecha,currenttime){ 
    //calculo la fecha de hoy 
    hoy=currenttime;
    //calculo la fecha que recibo 
    //La descompongo en un array 
    var array_fecha = fecha.split("/") 
    //si el array no tiene tres partes, la fecha es incorrecta 
    if (array_fecha.length!=3) 
       return false 
    //compruebo que los ano, mes, dia son correctos 
    var ano 
    ano = parseInt(array_fecha[2]); 
    if (isNaN(ano)) 
       return false 
    var mes 
    mes = parseInt(array_fecha[1]); 
    if (isNaN(mes)) 
       return false 
    var dia 
    dia = parseInt(array_fecha[0]); 
    if (isNaN(dia)) 
       return false 
    //si el aņo de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4 
    if (ano<=99) 
       ano +=1900 
	
	//******************************************
	
	//calculo la fecha que recibo 
    //La descompongo en un array 
    var array_hoy = hoy.split("/")
    //si el array no tiene tres partes, la fecha es incorrecta 
    if (array_hoy.length!=3) 
       return false
    //compruebo que los ano, mes, dia son correctos 
    var ano_actual
    ano_actual = parseInt(array_hoy[2]); 
    if (isNaN(ano_actual)) 
       return false 
    var mes_actual 
    mes_actual = parseInt(array_hoy[1]); 
    if (isNaN(mes_actual)) 
       return false 
    var dia_actual
    dia_actual = parseInt(array_hoy[0]); 
    if (isNaN(dia_actual)) 
       return false 
    //si el aņo de la fecha que recibo solo tiene 2 cifras hay que cambiarlo a 4 
    if (ano_actual<=99)
       ano_actual +=1900 
	//******************************************
	
    //resto los aņos de las dos fechas 
    edad=ano_actual - ano - 1; //-1 porque no se si ha cumplido aņos ya este aņo 
    //si resto los meses y me da menor que 0 entonces no ha cumplido aņos. Si da mayor si ha cumplido 
    if (mes_actual + 1 - mes < 0) //+ 1 porque los meses empiezan en 0 
       return edad 
    if (mes_actual + 1 - mes > 0) 
       return edad+1 
    //entonces es que eran iguales. miro los dias 
    //si resto los dias y me da menor que 0 entonces no ha cumplido aņos. Si da mayor o igual si ha cumplido 
    if (dia_actual - dia >= 0) 
       return edad + 1 
    return edad 
}


function checkPass(ErrorSpan, pass1, pass2){
		
	var obj1=document.getElementById(pass1);
	var obj2=document.getElementById(pass2);
	objError=document.getElementById(ErrorSpan);
	
	var valor1;
	var valor2;
	
	valor1=obj1.value.toLowerCase();
	valor2=obj2.value.toLowerCase();
	
	if (valor1!=valor2){
		objError.innerHTML="The passwords don't match.";
		obj1.style.backgroundColor="#F9FF9D"
		obj2.style.backgroundColor="#F9FF9D"
		obj2.focus();
		return (false);
	}
}


function OnInputFormIn(objEmail, objPass){

	if (objEmail.value=="email"){
		objEmail.value=""
	}
	if (objPass.value=="password"){
		objPass.value=""
	}
}

function OnInputFormOut(objEmail, objPass){

	if (objEmail.value==""){
		objEmail.value="email"
		objPass.value="password"
	}
}

function OnFocus(obj, text, direction){

	if (direction=="in"){	
		if (obj.value==text){
			obj.value="";
		}
	}else{
		if (obj.value==""){
			obj.value=text;
		}	
	}
}



function checkTextArea(errorOut, nombrecampo, nombre, requerido, minimo, maximo){

	var obj=document.getElementById(nombrecampo)
	var objError=document.getElementById(errorOut)
	objError.innerHTML=""
	obj.style.backgroundColor="white"

	valor=obj.value
	
	if (requerido==1 && valor==""){
		objError.innerHTML="The field '" + nombre + "' can't be empry."
		location.hash="href_" + errorOut;
		obj.style.backgroundColor="#F9FF9D"
		obj.focus();
		return (false)
	}
	
	if (valor.length<minimo || valor.length>=maximo) {
		objError.innerHTML="The field '" + nombre + "' must have between " + minimo + " and " + maximo + " chars."
		location.hash="href_" + errorOut;
		obj.style.backgroundColor="#F9FF9D"
		obj.focus();
		return (false)	
	}

	return "ok"
}