/******** Rutinas generales ************/

// rutina para inicializar arreglos
function dimensiona(n) {
  this.length=n;
  for (var i=1;i<=n;i++) {
	this[i]=0 }
	return this
}

// dimensionar arreglo mes
  mes = new dimensiona(12);
  mes[1]="Enero"
  mes[2]="Febrero"
  mes[3]="Marzo"
  mes[4]="Abril"
  mes[5]="Mayo"
  mes[6]="Junio"
  mes[7]="Julio"
  mes[8]="Agosto"
  mes[9]="Septiembre"
  mes[10]="Octubre"
  mes[11]="Noviembre"
  mes[12]="Diciembre"

// dimensionar arreglo dia
dia = new dimensiona(7);
  dia[1]="Domingo"
  dia[2]="Lunes"
  dia[3]="Martes"
  dia[4]="Mi&eacute;rcoles"
  dia[5]="Jueves"
  dia[6]="Viernes"
  dia[7]="S&aacute;bado"

function ponFecha() {
	
	var ns4up = (document.layers) ? 1 : 0;  // browser sniffer
	var ie4up = (document.all) ? 1 : 0;
		 
	// determinar la fecha
	hoy=new Date();
	
	// muestra la fecha
 	if (ie4up) {
	   document.write(dia[hoy.getDay()+1]+", "+hoy.getDate()+" de ");  
	   document.writeln(mes[hoy.getMonth()+1]+" de "+(hoy.getYear()));
	} else
	{
   	   document.write(dia[hoy.getDay()+1]+", "+hoy.getDate()+" de ");
	   document.writeln(mes[hoy.getMonth()+1]+" de "+(hoy.getYear()+1900));
	} 
}


// ********************************* GESTIÓN DE FECHAS ***************************

/**
    * definimos las variables globales que van a contener la fecha completa, cada una de sus partes
    * y los dias correspondientes al mes de febrero segun sea el año bisiesto o no
*/
var a, mes, dia, anyo, febrero;
    
function anyoBisiesto(anyo)  {

   // si el año introducido es de dos cifras lo pasamos al periodo de 1900. Ejemplo: 25 > 1925
   if (anyo < 100)
      var fin = anyo + 1900;
   else
      var fin = anyo ;
    
   // primera condicion: si el resto de dividir el año entre 4 no es cero > el año no es bisiesto
   if (fin % 4 != 0)
      return false;
   else {
      if (fin % 100 == 0) {
         // si el año es divisible por 4 y por 100 y divisible por 400 > es bisiesto
         if (fin % 400 == 0) {
            return true;
         }
         // si es divisible por 4 y por 100 pero no lo es por 400 > no es bisiesto
         else {
            return false;
         }
      }
      // si es divisible por 4 y no es divisible por 100 > el año es bisiesto
      else {
         return true;
      }
   }
}
    
/**
    * funcion principal de validacion de la fecha
    * argumento fecha > cadena de texto de la fecha introducida por el usuario
*/
function validar() {
// obtenemos la fecha introducida y la separamos en dia, mes y año
   a=document.forms[0].fecha.value;
   dia=a.split("/")[0];
   mes=a.split("/")[1];
   anyo=a.split("/")[2];
       
   if (a=="") {
   	  alert("La fecha prevista de la instalacion no puede dejarse en blanco");
	  return;
   }
   
   if (dia==null || mes==null || anyo==null) {
   	  alert("La fecha introducida no tiene el formato correcto. [dd/mm/aaaa]");
	  return;
   }
       
   if (anyoBisiesto(anyo))
      febrero=29;
   else
      febrero=28;
   
   // si el mes introducido es negativo, 0 o mayor que 12 > alertamos y detenemos ejecucion
   if ((mes<1) || (mes>12)) {
      alert("El mes introducido no es valido. Por favor, introduzca un mes correcto");
      document.forms[0].fecha.focus();
      document.forms[0].fecha.select();
      return;
   }

   /**
       * si el mes introducido es febrero y el dia es mayor que el correspondiente 
       * al año introducido > alertamos y detenemos ejecucion
   */
   if ((mes==2) && ((dia<1) || (dia>febrero))) {
      alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
      document.forms[0].fecha.focus();
      document.forms[0].fecha.select();
      return;
   }
   
   // si el mes introducido es de 31 dias y el dia introducido es mayor de 31 > alertamos y detenemos ejecucion
   if (((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) && ((dia<1) || (dia>31))) {
      alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
      document.forms[0].fecha.focus();
      document.forms[0].fecha.select();
      return;
   }
   
   // si el mes introducido es de 30 dias y el dia introducido es mayor de 301 > alertamos y detenemos ejecucion
   if (((mes==4) || (mes==6) || (mes==9) || (mes==11)) && ((dia<1) || (dia>30))) {
      alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
      document.forms[0].fecha.focus();
      document.forms[0].fecha.select();
      return;
   }

   // si el mes año introducido es menor que 1900 o mayor que 2010 > alertamos y detenemos ejecucion
   if ((anyo<1900) || (anyo>2010)) {
      alert("El año introducido no es valido. Por favor, introduzca un año entre 1900 y 2010");
      document.forms[0].fecha.focus();
      document.forms[0].fecha.select();
   } 
 
   /**
       * en caso de que todo sea correcto > enviamos los datos del formulario
       * para ello debeis descomentar la ultima sentencia
   */
   else {
	  document.forms[0].submit(); 
   }    
}    


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}



function validar_login()
{
if (login.usuario.value=="") 
   alert("El nombre de usuario es requerido");
else if (login.pass.value=="")
	 	alert("La clave de acceso es requerida");  
else
   login.submit();
}

function validar_clave()
{
  if (formclientes.nombre.value=="" || formclientes.apellidos.value=="" || formclientes.nif.value=="" || formclientes.domicilio.value=="" || formclientes.poblacion.value=="" || formclientes.provincia.value=="" || formclientes.telefono.value=="" || formclientes.email.value=="" || formclientes.login.value=="" || formclientes.clave1.value=="" || formclientes.clave2.value=="") 
  	 alert("Debe rellenar todos los campos marcados como obligatorios");
  else
  	  if (formclientes.clave1.value != formclientes.clave2.value)
  	  	 alert("Las claves de acceso tienen que coincidir");
  	  else
  	  formclientes.submit();
}

function validar_consulta()
{
  if (consulta.email.value=="") 
  	 alert("Debe indicarnos su correo electrónico para que podamos ponernos en contacto con usted.");
  else
  	 consulta.submit();
}


function validar_inscripcion()
{
  if (document.forms[0].nombre.value=="")  
  	 alert("Debe especificar su nombre");
  else
  	  if (document.forms[0].telefono.value=="" &&  document.forms[0].email.value=="")
  	  	 alert("Debe especificar, al menos, su teléfono o email");
  	  else
  	  document.forms[0].submit();
}

function validar_cantidadpedido()
{
  if (isNaN(formcantidad.cantidad.value))
  	 alert("Debe introducir un valor numérico");
  else if (formcantidad.cantidad.value=="")
	   alert("Debe rellear el campo cantidad");
  else if (parseInt(formcantidad.cantidad.value)<0)
  	   alert("Debe introducir una cantidad válida");
  else
  	  formcantidad.submit();	  		 
}

