// JavaScript Document
var cadenaNumeros = "1234567890";
var cadenaAlfabeto  = "ABCÇDEFGHIJKLMNÑOPQRSTUVWXYZabcçdefghijklmnñopqrstuvwxyzÁÉÍÓÚÀÈÌÒÌÙÄËÏÖÜÂÊÎÔÛáéíóúàèìòìäëïöüâêîôû";
var cadenaTexto = cadenaNumeros + cadenaAlfabeto + " " +  "@//._-!|ºª\·#$%€&¬/()=?¿¡*[]+{}Ç,;.: <> ";;

var cadenaEmail = cadenaNumeros + cadenaAlfabeto + "@." +  "_-\/"; ;
var cadenaLarga = cadenaNumeros + cadenaAlfabeto +  "@//._-!|ºª\·#$%€&¬/()=?¿¡*[]+{}Ç,;.: <> ";
cadenaAlfabeto =  cadenaNumeros + cadenaAlfabeto +  "@//._-!|ºª\·#$%€&¬/()=?¿¡*[]+{}Ç,;.: <> ";
var cadenaLarga = cadenaNumeros + cadenaAlfabeto +  "@//._-!|ºª\·#$%€&¬/()=?¿¡*[]+{}Ç,;.: <> ";
var cadenaDecimal = cadenaNumeros + ","

function printit()
{  
	window.print(); 
	window.close();
}

function devuelveFecha(stringFecha)
{
	var fstring = stringFecha;  
	var d = fstring.substring(0,2);
	var m = fstring.substring(3,5);
	var a = fstring.substring(6,10);
	var f = new Date(a,m,d);
	return f;
}

	function kilometros(num1,num2)
	{ 
	 var nombre1 = "kweek" + num1 + num2
	 var valor = reemplazar(document.getElementById(nombre1).value);

	// var n = valor.lastIndexOf(".");
	 //alert(n);
	 n= valor;

	 if (n<15)
		 document.getElementById(nombre1).value = 0;
	}

	function solonumeros(obj)
	{ 
	 var nobj = document.getElementById(obj).value;
	 var n = nobj.lastIndexOf(".");

	 if (n == -1) //no lleva punto
	{	 
		 var valor = reemplazar(nobj);
	 //*	 var valor = reemplazar(valor2);
		  //Compruebo si es un valor numérico 
		  if (isNaN(valor))
		  { 
				//entonces (no es numero) devuelvo el valor cadena vacia 
				alert("El valor introducido tiene que ser numérico.");
				document.getElementById(obj).value = "0,00";
		  } 
		  else
		  {
			if (valor == "")
				document.getElementById(obj).value = "0,00";
			else
			{
				if (valor < 0)
				{
					//entonces es negativo 
					alert("El valor introducido tiene que ser un número mayor de 0.");
					document.getElementById(obj).value = "0,00";
				}
			}	
				
		  }
	}
	else
	{
		alert("El valor introducido es incorrecto. Solo se puede usar la coma como separador decimal.");
		document.getElementById(obj).value = "0,00";
	}	
} 

	function reemplazar(v)
	{
		var v1 = v;
		v1 = v1.replace(",",".");
		return v1;	
	}
	function reemplazar2(v)
	{
		var v1 = v;
		v1 = v1.replace(".",",");
		return v1;	
	}
	
	function validar()
	{ 
		var correcto = true
		var nombre = "kamount";
		var num = 1;
		
		while (num<6)
		{
			nombre1 = nombre + num; 
			nombre2 = "recorrido" + num
			var valor = reemplazar(document.getElementById(nombre1).value);
			var recorr = document.getElementById(nombre2).value
			if (((parseFloat(valor) > 0) && (valor!= "") && (recorr == "")) || (((parseFloat(valor) == 0) || (valor== "")) && (recorr != "")))correcto =false
			num ++;
		}
					
		if (correcto)
			expenses_form.submit();
		else	
			alert("Es obligatorio rellenar el campo recorrido. Recuerde que no se guardarán los datos de los recorridos inferiores a 15 kilómetros.")		
	} 


function getDecimalPart(cad){
  var posicionDecimal = cad.lastIndexOf(".");
  return cad.substring(posicionDecimal+1,cad.length);
}
	
	
function numFormat(dec,cadena)
{
	var num = cadena;
	var cad = "" + cadena;
	var ceros = "", pos, pdec, i;
	for (i=0; i < dec; i++)
		ceros += '0';
		pos = cad.indexOf('.')
		if (pos < 0)
		    cad = cad+"."+ceros;
		else
	    {
		    pdec = cad.length - pos -1;
		    if (pdec <= dec)
   	    		{
			        for (i=0; i<(dec-pdec); i++)
           			cad += '0';
       			}
   			else
       			{
		        	num = num*Math.pow(10, dec);
		        	num = Math.round(num);
		        	num = num/Math.pow(10, dec);
		        	cad = new String(num);
	        	}
		}

	   var decimal = getDecimalPart(cad);
	   ceros = "";
	   for (i=decimal.length; i < dec; i++)
			ceros += '0';
			
	   cad = cad + ceros;
		var v1 = cad;
		v1 = v1.replace(".",",");
		return v1;	
}
	
	
	function sumar(cap,numSemana,opcion)
	{
		var sHorizontal = pasarInputHorizontal (cap, opcion);	
		var sVertical = pasarInputVertical (numSemana);
		var total = 0;
		var nom = ""; 
		var i = 1;
		while (i < 6 )
		{
			nom = "totalweek" + i;
			total  = parseFloat(total) + parseFloat(reemplazar(document.getElementById(nom).value));
			i ++;
		}
		document.getElementById("totalamount").value =  numFormat(2, parseFloat(total));
	}


	function sumar(cap,numSemana,opcion)
	{
		var sHorizontal = pasarInputHorizontal (cap, opcion);	
		var sVertical = pasarInputVertical (numSemana);
		var total = 0;
		var nom = ""; 
		var i = 1;
		while (i < 6 )
		{
			nom = "totalweek" + i;
			total  = parseFloat(total) + parseFloat(reemplazar(document.getElementById(nom).value));
			i ++;
		}
		document.getElementById("totalamount").value =  numFormat(2, parseFloat(total));
	}


	function pasarInputVertical(nSemana)
	{
		//declaro las variables que voy a usar dentro de la funcion
		var nombre1 = "";
		var nombreVertical = "week"
		var nombreSuma = "totalweek" + nSemana;	
		var valor = "";
		var num = 1;
		var suma = 0;

		//hago la suma de las posiciones verticales que se hallan mofidicado
		while (num < 6)
		{
			nombre1 = nombreVertical + num + nSemana; 
			var valor = reemplazar(document.getElementById(nombre1).value);
			suma = parseFloat(suma) + parseFloat(valor)
			num = num + 1;
		}	
		
		nombreVertical = "k" + nombreVertical;
		
		num = 1;
		suma1 = 0
		while (num < 6)
		{
			nombre1 = nombreVertical + num + nSemana; 
			var valor = reemplazar(document.getElementById(nombre1).value);
			suma1 = parseFloat(suma1) + parseFloat(valor);
			num ++;
		}	
		suma = suma + (suma1 * 0.2)
		//devuelvo el valor en el input correspondiente
		document.getElementById(nombreSuma).value = numFormat(2, parseFloat(suma));
		return suma;
	}


	function pasarInputHorizontal(numS,opcion)
	{
		//declaro las variables que voy a usar dentro de la funcion
		var nombreHorizontal = "week" + numS;
		var nombreSuma = "amount" + numS;	
		var valor = "";
		var num = 1;
		var suma = 0;
		var nombre1 = "";

		// cuando opcion es = a 0 se refiere a la hoja de gastos
		// cuando opcion es = a 1 se refiere a los kilometros		
		if (opcion == 1)
		{
			nombreHorizontal = "k" + nombreHorizontal; 
			nombreSuma = "k" + nombreSuma;
		}
		
		//hago la suma de las posiciones horizontales que se hallan mofidicado
		while (num < 6)
		{
			nombre1 = nombreHorizontal + num; 
			var valor = reemplazar(document.getElementById(nombre1).value);
			suma = parseFloat(suma) + parseFloat(valor);
			num ++;
		}	

			if (opcion == 1) 
				suma = suma * 0.2;
		//devuelvo el valor en el input correspondiente
		document.getElementById(nombreSuma).value =  numFormat(2, parseFloat(suma));
		return suma;
	}
	
	function cambiarDecimales()
	{
		var v1 = document.expenses_form.week11.value;
		v1 = v1.replace(".",",");
		document.expenses_form.week11.value = v1;
	}

	function calcularPago(fila)
{
	//hago el calculo del gasto del usuario una vez rellenado el pago por el administrador
	var plan = "plan" + fila;
	var consumo = "consumo" + fila;
	var empresa = "empresa" + fila;
	var apagar = "apagar" + fila;
	var pagado = "pagado" + fila;

	var p = parseFloat(reemplazar(document.getElementById(plan).value));
	var c = parseFloat(reemplazar(document.getElementById(consumo).value));
	var e = parseFloat(reemplazar(document.getElementById(empresa).value))

	var totalplan = p - e;
	var totalcons = c - e;
	if (parseFloat(totalcons)>0)
	{
		if (parseFloat(c) < parseFloat(p))
			document.getElementById(apagar).value = numFormat(2,parseFloat(totalplan));
		else
			document.getElementById(apagar).value = numFormat(2,parseFloat(totalcons));
	}
	else
	{
		if (parseFloat(totalplan) >0)
			document.getElementById(apagar).value = numFormat(2,parseFloat(totalplan));
		else
			document.getElementById(apagar).value = 0
	}		
}

function compararCadenas(cad,cadComparar){
  var check = true;
  for(n=0; n<cad.length; n++){
    for(m=0; m<cadComparar.length; m++){
      if(cad.charAt(n) == cadComparar.charAt(m)){
      	break;
      }  
    }
    if (m == cadComparar.length){ 
      check = false;
      break;
    }
  }
  return check;
}



function isEntero(obj)
{
   var cad = document.getElementById(obj).value;
   //si la funcion devuelve false es que hay letras
  if (!(compararCadenas(cad,cadenaNumeros)))
  {
  	alert("El teléfono solo puede estar formado por números. Por favor, vuelva a escribirlo.");
  	document.getElementById(obj).value = "";
  }	
}


function isEnteroError(obj,error)
{
   var cad = document.getElementById(obj).value;
   //si la funcion devuelve false es que hay letras
  	if (!(compararCadenas(cad,cadenaNumeros)))
  		devolverError(1,"horas",document.getElementById(obj))
}
	


	
function escribirJornada(obj,objJornada,m,opc)
{
	if (opc != 0)
	{
	   var cad = document.getElementById(obj).value;
	   if (parseInt(cad) == 0  || cad=="")
		 document.getElementById(objJornada).value = "";
	   else
	   {
			if ((parseInt(cad) == 7) && ((m==7) || (m==8)))
				document.getElementById(objJornada).value = "I";
			else
			{
			   if (parseInt(cad) < 8)
					document.getElementById(objJornada).value = "M";
				else
					document.getElementById(objJornada).value = "C";
			}			
		}		
	}	
}

function colocarHorasProyecto(i,campo,m)
{
	var h;  
	var u;
	h = "horas" + i;
	u = "porubic" + i;
	d= "dietas" + i;
	k= "kilometros" + i;	
	if (campo != 0) 
	{
		if ((campo == 1) && (document.getElementById(h).value == 0)) 
			//el campo de horas es  = 0
			document.getElementById(u).selectedIndex = 0;
		else
			if  (document.getElementById(u).options[document.getElementById(u).selectedIndex].value == 0)
				// El combo de proyecto/ubicacion esta a blanco
			{	
				document.getElementById(h).value = 0;
				document.getElementById(d).value= "";
				document.getElementById(k).value= "";
	}
			else
			{
				if (document.getElementById(h).value == 0)
				{
					if ((m == 7) || (m == 8))
						document.getElementById(h).value = 7;
					else
						document.getElementById(h).value = 8;
				}		
			}			
	}		
}
function colocar_gastos(i)
{
	var u;
	var l;
	var m;
	d= "dietas" + i
	k= "kilometros" + i
	u = "porubic" + i;
	l = document.getElementById(u).options[document.getElementById(u).selectedIndex].value;
	m = l.split("/");
 	if (m.length == 1)
	{
		document.getElementById(d).value= "";
		document.getElementById(k).value= "";
	}
	else if (m.length == 2)
	{
		document.getElementById(d).value= m[1];
		document.getElementById(k).value= "";
	}
	else
	{		
		document.getElementById(d).value= m[1];
		document.getElementById(k).value= m[2];
	}
}


//funciones buenas para validad campos de texto, numeros, longitud máxima y mínima
function minimaLongitud(cad,mini){
  if (cad.length < mini){
   return 3;
  }
   return 0;	
}

function maximaLogintud(cad,maxi){
   if (cad.length > maxi){
    return 2;
  }
    return 0;
}


//si tipo = 1 numerico
//si tipo = 2 alfanumerico
function esFormato(obj,nom,obl,maximo,minimo,tipo)
{
  var error1,error2,error3;
  error3 = 0;		
  var cad = document.getElementById(obj).value;
  if (!((obl == false) && (cad == "")))
	{
		error1 = maximaLogintud(cad,maximo);
		error2 = minimaLongitud(cad,minimo);  
		switch(tipo)
		{
			case 1:
				  	if (!(compararCadenas(cad,cadenaNumeros)))
						error3 = 1;
					break;
			case 2:
				  	if (!(compararCadenas(cad,cadenaTexto)))
						error3 = 4;
					break;
			case 3:
				  	if (!(compararCadenas(cad,cadenaEmail)))
						error3 = 5;
					break;
			case 4:
				  	if (!(compararCadenas(cad,cadenaLarga)))
						error3 = 6;
					break;
		}
		
		if (error1 != 0)	
			comprobarError(error1,nom,maximo,"",obj);
		if (error2 != 0)	
			comprobarError(error2,nom,"",minimo,obj);
		if (error3 != 0)	
			comprobarError(error3,nom,"","",obj);
		if ( (error1 != 0) || (error2 != 0) || (error3 != 0) )	
				return false;
		else
				return true;		
	}	
	else	
	  return true;		
}

function comprobarError(err,nom,ma,mi,obj)
{
	switch(err)
	{
			case 1:
				alert("El campo " + nom + " solo acepta valores numéricos.");
				break;
			case 2:
				alert("La longitud máxima del campo " + nom + " es " + ma + ".");
				break;
			case 3:
				alert("La longitud mínima del campo " + nom + " es " + mi + ".");
				break;
			case 4:
				alert("El campo " + nom + " solo acepta valores alfanúmericos.");
				break;
			case 5:
				alert("El campo " + nom + " solo acepta valores alfanúmericos, el carácter @ y el .");
				break;
			case 6:
				alert("El campo " + nom + " acepta todo tipo de símbolos menos comillas simples y dobles.");
				break;
	}	
	document.getElementById(obj).focus();			
}



function devolverError(err,nom,obj)
{
	switch(err)
	{
			case 1:
				alert("El campo " + nom + " solo acepta valores numéricos.");
				obj.value = 0;
				break;
			case 2:
				alert("La longitud máxima del campo " + nom + " es " + ma + ".");
				break;
			case 3:
				alert("La longitud mínima del campo " + nom + " es " + mi + ".");
				break;
			case 4:
				alert("El campo " + nom + " no acepta comillas simples ni dobles.");
				break;
		}	
		obj.focus();			
}



function valoresPorDefecto(m)
{
	var d = document.formulario.porarticulo.options[document.formulario.porarticulo.selectedIndex].value;
	var p = document.formulario.idProv.value;
	formulario.action= "proveedorArticulos.asp?metodoAnterior="+m+"&idArt="+d+"&opcion=5&idProveedor="+p;
	formulario.submit();
}
function ventanaimprimir(var1)
{
	//reemplazamos primero las , por -. De este modo al pasar la variable con la sentencia sql no falla.
	var v1 = var1;
	var posV1 = v1.indexOf(",",0);
	while (posV1 != -1) 
	{
		v1 = v1.replace(",","-");
		posV1 = v1.indexOf(",",0);
	}	
	var url = "phoneimprimir.asp?sql=" + v1; 
	window.open(url,"ImprimirPagina","Resizable=yes,scrollbars=yes,menubar=yes");
}


function quitarCeroIzquierda(num)
{
	var i = 0
	var texto = num;
	var fuera = false;
	while ((i<= texto.length) && (!(fuera)) )
	{
		if (texto.substring(i,i+1) == "0") 
			texto = texto.substring(i+1,texto.length)
		else
			fuera = true;	
		i ++;
	}
	return texto;
}


function comprobarFecha(obj)
{
	var error = false
	var fech= obj.value;  
	//compruebo longitud de la fecha
	if (fech != "")
	{
	if  (fech.length!=10)
	{
		alert("La longitud del campo fecha es incorrecta.")
		error= true;
	}
	else 	
	{
		//compruebo que el dia este entre 1 y 31
		var d =quitarCeroIzquierda(fech.substring(0,2))
		var d2 = fech.substring(0,2)
		if ( (d2.length == 2) && (parseInt(d)>0) && (parseInt(d)<32)  && (!(isNaN(d))) )
		{
			//compruebo que el mes este entre 1 y 12
			var m = quitarCeroIzquierda( fech.substring(3,5))
			m2 = fech.substring(3,5)
			if ( (m2.length == 2) && (parseInt(m)>0) && (parseInt(m)<13) && (!(isNaN(m))) )
			{
				//compruebo que el mes este entre 1 y 12
				var a = fech.substring(6,10);
				if ( (a.length != 4) &&  (isNaN(a)) )
				{
					alert("El año debe ser un numérico y su longitud 4.")
					error= true;
				}
				else
				{
					//compruebo los separadores
					if ( (fech.substring(2,3) !="/")  || (fech.substring(5,6) !="/") )
					{
						alert("Los separadores de la fecha deben ser la barra /.");
						error= true;
					}		
				}
			}//del mes
			else
			{
				alert("El mes debe estar entre 01 y 12 y su longitud igual a 2.");
				error= true;
			}
		}//del dia
		else
		{
			alert("El día debe estar entre 01 y 31 y su longitud igual a 2.");
			error= true;
		}	
	}	
	if (error)
	{
		obj.value = "";
		obj.focus( );
		return false
	}	
	} 
	return true
}
	
function expandirCapa(nombreCapa,id)
{
 var nombre = nombreCapa + id;
 var imagen = "img" + nombre;
 if (document.getElementById(nombre).style.display == "")
 {
 	document.getElementById(nombre).style.display = "none";
 	document.getElementById(imagen).value = "+";
}	
 else
 {
	document.getElementById(nombre).style.display = "";
 	document.getElementById(imagen).value = "-";
  }
}



function fechasMayor(campo1,campo2)
{
	if ((document.getElementById(campo1).value > document.getElementById(campo2).value) && (document.getElementById(campo2).value != "") && (document.getElementById(campo1).value != ""))
	{
		alert("Compruebe las fechas. La fecha Inicial debe ser menor que la fecha Final.");
		return false;
	}
	else 
		return true;	
}