//---------------------------------------------------------------------//
//  Funcion RollOver
function show(imgDocID,imgObjName){
    document.images[imgDocID].src = eval(imgObjName + ".src");
}

//---------------------------------------------------------------------//
//  Abrir ventana
function openwindow(location, name, width, height, x, y) {
  window.open(location, name, 'height=' + height + ',width=' + width + ',screenX=' + x + ',screenY=' + y + ',scrollbars=yes,left=' + x + ',top=' + y );
}

//---------------------------------------------------------------------//
//  Dada una cadena comprobamos si es o no una fecha valida
function CorrectDate( vardate ) {
  var dayNr, monthNr, yearNr;
  var bDateOk;
  var bEncDate, bEncMonth,bEncYear;
  var indice, iStartDate,iEndDate,iStartMonth,iEndMonth,iStartYear,iEndYear;
     
  //Inicialización d las var locales
  bDateOk = false;
  bEncDate = false;
  bEncMonth = false;
  bEncYear = false;
  iIStartDate = 0;
  indice = 0;
  //Fin inicializacion var locales
     
  //Encontramos el dia, mes y año en la cadena d texto
  while (((! bEncDate) || (! bEncMonth)|| (! bEncYear)) && (vardate.length >= indice))
  {
	if (vardate.substring(indice,indice+1)=="/"){
		if (! bEncDate)
		   {
			   bEncDate = true;
			   iEndDate = indice;
			   iStartMonth = iEndDate+1;
			   dayNr = vardate.substring(iStartDate,iEndDate);
		   }
		else{
			   bEncMonth = true;
			   iEndMonth = indice;
			   iStartYear = iEndMonth+1;
			   monthNr = vardate.substring(iStartMonth,iEndMonth);
			}
		 }
   		 
		if ((vardate.substring(indice,indice+1)==" "  || indice == vardate.length) && (bEncDate) && (bEncMonth))
			{
				bEncYear = true;
			   iEndYear = indice;
			   yearNr = vardate.substring(iStartYear,iEndYear);
			 }
   	
	indice = indice + 1;
  }
  //Fin while: dia, mes y año obtenidos
     
  //Verificamos q dia, mes y año son validos  
  if (yearNr>=0) {
    if ( (monthNr>=1) && (monthNr<=12)) {    
      if (monthNr==2) {
      // Febrero
        if ( ( (yearNr % 4 == 0) && (yearNr % 100 != 0) ) || (yearNr % 400 == 0) ) { 
        // Es bisiesto
          if ( dayNr<=29 ) { bDateOk=true }
        } else {
          if ( dayNr<=28 ) { bDateOk=true }          
        }
      } else {
        if ( (monthNr==1) || (monthNr==3) || (monthNr==5) || (monthNr==7) || (monthNr==8) || (monthNr==10) || (monthNr==12) ) {
        // Meses de 31 días
          if ((dayNr>=1) && (dayNr<=31) ) { bDateOk=true }
        } else {
        // Meses de 30 días
          if ((dayNr>=1) && (dayNr<=30) ) { bDateOk=true }
        }
      }
    }
  } 
  //Fin verificacion

  return bDateOk;
}

	//  Funciones para entrar desde la Intro de Flash


function esp()
{
       window.location.href="/home.asp?lang=ES";
}
function eng()
{
       window.location.href="/home.asp?lang=EN";
}
	// Fin de la funcion


function popup(name) {
	miRuta= name + '.html';
	ventana=window.open(miRuta, name, 'left=100,top=100,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,height=400,width=440');
	ventana.focus();

}

function popupContent (objName, name) {
	var miRuta;
	miRuta= '/content_popUp.asp?obj=' + objName;
	ventana=window.open (miRuta, name, 'left=100,top=100,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,height=400,width=600,resizable=yes');
	ventana.focus ();
}

function popupPage(ruta, name) {
	ventana=window.open(ruta, name, 'left=100,top=100,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,height=500,width=600,resizable=yes');
	ventana.focus();
}


// Valida una tarjeta de crédito
function ValidarTJ(numero_tarjeta) {
 var cadena = numero_tarjeta.toString();
 var longitud = cadena.length;
 var cifra = null;
 var cifra_cad=null;
 var suma=0;
 for (var i=0; i < longitud; i+=2){
   cifra = parseInt(cadena.charAt(i))*2;
   if (cifra > 9){ 
     cifra_cad = cifra.toString();
     cifra = parseInt(cifra_cad.charAt(0)) + parseInt(cifra_cad.charAt(1));
   }
   suma+=cifra;
 }
 for (var i=1; i < longitud; i+=2){
   suma += parseInt(cadena.charAt(i));
 }
	
 if ((suma % 10) == 0){ 
  return true;
 } else {
  return false;
 }
}

function PopIt(msg){  
	// Set up Page Colors & Table  
	var s1 = "<TITLE></TITLE><BODY onBlur='self.focus()'>" + msg + "</BODY>"   
	popup = window.open("","popDialog","height=160,width=300,scrollbars=no")  
	popup.document.write(s1)  
	popup.document.close()
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
	window.open(theURL,winName,features);
}

/*********************************************************************************/
/*   VALIDACIÓN TARJETA DE CRÉDITO                                               */
/*********************************************************************************/

        var Cards = new makeArray(8);
         Cards[0] = new CardType("MasterCard", "51,52,53,54,55", "16");
         var MasterCard = Cards[0];
         Cards[1] = new CardType("VisaCard", "4", "13,16");
         var VisaCard = Cards[1];
         Cards[2] = new CardType("AmExCard", "34,37", "15");
         var AmExCard = Cards[2];
         Cards[3] = new CardType("DinersClubCard", "30,36,38", "14");
         var DinersClubCard = Cards[3];
         Cards[4] = new CardType("DiscoverCard", "6011", "16");
         var DiscoverCard = Cards[4];
         Cards[5] = new CardType("enRouteCard", "2014,2149", "15");
         var enRouteCard = Cards[5];
         Cards[6] = new CardType("JCBCard", "3088,3096,3112,3158,3337,3528", "16");
         var JCBCard = Cards[6];
         var LuhnCheckSum = Cards[7] = new CardType();

         /*************************************************************************\
         CheckCardNumber(form)
         function called when users click the "check" button.
         \*************************************************************************/
         function CheckCardNumber(cardNumber, expYear, expMon, cardType) {
         var tmpyear;
         if (cardNumber.length == 0) {
         //alert("Please enter a Card Number.");
         return;
         }
         if (expYear.length == 0) {
         //alert("Please enter the Expiration Year.");
         return;
         }
         if (expYear > 96)
         tmpyear = "19" + expYear;
         else if (expYear < 21)
         tmpyear = "20" + expYear;
         else {
         return false;
         }
         tmpmonth = expMon;
         // The following line doesn't work in IE3, you need to change it
         // to something like "(new CardType())...".
         // if (!CardType().isExpiryDate(tmpyear, tmpmonth)) {
         if (!(new CardType()).isExpiryDate(tmpyear, tmpmonth)) {
         return false;
         }
         card = cardType;
         var retval = eval(card + ".checkCardNumber(\"" + cardNumber +
         "\", " + tmpyear + ", " + tmpmonth + ");");
         cardname = "";
         if (retval) {
         return true;
         } else {
         // The cardnumber has the valid luhn checksum, but we want to know which
         // cardtype it belongs to.
         for (var n = 0; n < Cards.size; n++) {
         if (Cards[n].checkCardNumber(cardNumber, tmpyear, tmpmonth)) {
         cardname = Cards[n].getCardType();
         break;
            }
         }
         if (cardname.length > 0) {
           return false;
         }
         else {
           return false;
               }
            }
         }
         /*************************************************************************\
         Object CardType([String cardtype, String rules, String len, int year, 
                                                 int month])
         cardtype    : type of card, eg: MasterCard, Visa, etc.
         rules       : rules of the cardnumber, eg: "4", "6011", "34,37".
         len         : valid length of cardnumber, eg: "16,19", "13,16".
         year        : year of expiry date.
         month       : month of expiry date.
         eg:
         var VisaCard = new CardType("Visa", "4", "16");
         var AmExCard = new CardType("AmEx", "34,37", "15");
         \*************************************************************************/
         function CardType() {
         var n;
         var argv = CardType.arguments;
         var argc = CardType.arguments.length;

         this.objname = "object CardType";

         var tmpcardtype = (argc > 0) ? argv[0] : "CardObject";
         var tmprules = (argc > 1) ? argv[1] : "0,1,2,3,4,5,6,7,8,9";
         var tmplen = (argc > 2) ? argv[2] : "13,14,15,16,19";

         this.setCardNumber = setCardNumber;  // set CardNumber method.
         this.setCardType = setCardType;  // setCardType method.
         this.setLen = setLen;  // setLen method.
         this.setRules = setRules;  // setRules method.
         this.setExpiryDate = setExpiryDate;  // setExpiryDate method.

         this.setCardType(tmpcardtype);
         this.setLen(tmplen);
         this.setRules(tmprules);
         if (argc > 4)
         this.setExpiryDate(argv[3], argv[4]);

         this.checkCardNumber = checkCardNumber;  // checkCardNumber method.
         this.getExpiryDate = getExpiryDate;  // getExpiryDate method.
         this.getCardType = getCardType;  // getCardType method.
         this.isCardNumber = isCardNumber;  // isCardNumber method.
         this.isExpiryDate = isExpiryDate;  // isExpiryDate method.
         this.luhnCheck = luhnCheck;// luhnCheck method.
         return this;
         }

         /*************************************************************************\
         boolean checkCardNumber([String cardnumber, int year, int month])
         return true if cardnumber pass the luhncheck and the expiry date is
         valid, else return false.
         \*************************************************************************/
         function checkCardNumber() {
         var argv = checkCardNumber.arguments;
         var argc = checkCardNumber.arguments.length;
         var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
         var year = (argc > 1) ? argv[1] : this.year;
         var month = (argc > 2) ? argv[2] : this.month;

         this.setCardNumber(cardnumber);
         this.setExpiryDate(year, month);

         if (!this.isCardNumber())
         return false;
         if (!this.isExpiryDate())
         return false;

         return true;
         }
         /*************************************************************************\
         String getCardType()
         return the cardtype.
         \*************************************************************************/
         function getCardType() {
         return this.cardtype;
         }
         /*************************************************************************\
         String getExpiryDate()
         return the expiry date.
         \*************************************************************************/
         function getExpiryDate() {
         return this.month + "/" + this.year;
         }
         /*************************************************************************\
         boolean isCardNumber([String cardnumber])
         return true if cardnumber pass the luhncheck and the rules, else return
         false.
         \*************************************************************************/
         function isCardNumber() {
         var argv = isCardNumber.arguments;
         var argc = isCardNumber.arguments.length;
         var cardnumber = (argc > 0) ? argv[0] : this.cardnumber;
         if (!this.luhnCheck())
         return false;

         for (var n = 0; n < this.len.size; n++)
         if (cardnumber.toString().length == this.len[n]) {
         for (var m = 0; m < this.rules.size; m++) {
         var headdigit = cardnumber.substring(0, this.rules[m].toString().length);
         if (headdigit == this.rules[m])
         return true;
         }
         return false;
         }
         return false;
         }

         /*************************************************************************\
         boolean isExpiryDate([int year, int month])
         return true if the date is a valid expiry date,
         else return false.
         \*************************************************************************/
         function isExpiryDate() {
         var argv = isExpiryDate.arguments;
         var argc = isExpiryDate.arguments.length;

         year = argc > 0 ? argv[0] : this.year;
         month = argc > 1 ? argv[1] : this.month;

         if (!isNum(year+""))
         return false;
         if (!isNum(month+""))
         return false;
         today = new Date();
         expiry = new Date(year, month);
         if (today.getTime() > expiry.getTime())
         return false;
         else
         return true;
         }

         /*************************************************************************\
         boolean isNum(String argvalue)
         return true if argvalue contains only numeric characters,
         else return false.
         \*************************************************************************/
         function isNum(argvalue) {
         argvalue = argvalue.toString();

         if (argvalue.length == 0)
         return false;

         for (var n = 0; n < argvalue.length; n++)
         if (argvalue.substring(n, n+1) < "0" || argvalue.substring(n, n+1) > "9")
         return false;

         return true;
         }

         /*************************************************************************\
         boolean luhnCheck([String CardNumber])
         return true if CardNumber pass the luhn check else return false.
         Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
         \*************************************************************************/
         function luhnCheck() {
         var argv = luhnCheck.arguments;
         var argc = luhnCheck.arguments.length;

         var CardNumber = argc > 0 ? argv[0] : this.cardnumber;

         if (! isNum(CardNumber)) {
         return false;
           }

         var no_digit = CardNumber.length;
         var oddoeven = no_digit & 1;
         var sum = 0;

         for (var count = 0; count < no_digit; count++) {
         var digit = parseInt(CardNumber.charAt(count));
         if (!((count & 1) ^ oddoeven)) {
         digit *= 2;
         if (digit > 9)
         digit -= 9;
         }
         sum += digit;
         }
         if (sum % 10 == 0)
         return true;
         else
         return false;
         }

         /*************************************************************************\
         ArrayObject makeArray(int size)
         return the array object in the size specified.
         \*************************************************************************/
         function makeArray(size) {
         this.size = size;
         return this;
         }

         /*************************************************************************\
         CardType setCardNumber(cardnumber)
         return the CardType object.
         \*************************************************************************/
         function setCardNumber(cardnumber) {
         this.cardnumber = cardnumber;
         return this;
         }

         /*************************************************************************\
         CardType setCardType(cardtype)
         return the CardType object.
         \*************************************************************************/
         function setCardType(cardtype) {
         this.cardtype = cardtype;
         return this;
         }

         /*************************************************************************\
         CardType setExpiryDate(year, month)
         return the CardType object.
         \*************************************************************************/
         function setExpiryDate(year, month) {
         this.year = year;
         this.month = month;
         return this;
         }

         /*************************************************************************\
         CardType setLen(len)
         return the CardType object.
         \*************************************************************************/
         function setLen(len) {
         // Create the len array.
         if (len.length == 0 || len == null)
         len = "13,14,15,16,19";

         var tmplen = len;
         n = 1;
         while (tmplen.indexOf(",") != -1) {
         tmplen = tmplen.substring(tmplen.indexOf(",") + 1, tmplen.length);
         n++;
         }
         this.len = new makeArray(n);
         n = 0;
         while (len.indexOf(",") != -1) {
         var tmpstr = len.substring(0, len.indexOf(","));
         this.len[n] = tmpstr;
         len = len.substring(len.indexOf(",") + 1, len.length);
         n++;
         }
         this.len[n] = len;
         return this;
         }

         /*************************************************************************\
         CardType setRules()
         return the CardType object.
         \*************************************************************************/
         function setRules(rules) {
         // Create the rules array.
         if (rules.length == 0 || rules == null)
         rules = "0,1,2,3,4,5,6,7,8,9";
           
         var tmprules = rules;
         n = 1;
         while (tmprules.indexOf(",") != -1) {
         tmprules = tmprules.substring(tmprules.indexOf(",") + 1, tmprules.length);
         n++;
         }
         this.rules = new makeArray(n);
         n = 0;
         while (rules.indexOf(",") != -1) {
         var tmpstr = rules.substring(0, rules.indexOf(","));
         this.rules[n] = tmpstr;
         rules = rules.substring(rules.indexOf(",") + 1, rules.length);
         n++;
         }
         this.rules[n] = rules;
         return this;
         }
         
         
         
         
     // FUNCIONES GENERALES AL PROCESO DE RESERVA : DSM:25/05/004

      // DSM: CALCULA LA DIFERENCIA DE DIAS ENTRE DOS FECHAS

         function DiferenciaFechas (CadenaFecha1,CadenaFecha2, CadenaHora1,CadenaMin1,CadenaHora2,CadenaMin2) {

                        
            //Obtiene dia, mes y año
            var fecha1 = new fecha( CadenaFecha1 )   
            var fecha2 = new fecha( CadenaFecha2 )
                 
            //Obtiene objetos Date
            //mes (0-11): Enero Diciembre
            var miFecha1 = new Date( fecha1.anio, fecha1.mes-1, fecha1.dia,Number(CadenaHora1), Number(CadenaMin1) )
            var miFecha2 = new Date( fecha2.anio, fecha2.mes-1, fecha2.dia,Number(CadenaHora2), Number(CadenaMin2))
            
            miFecha2.setHours(miFecha2.getHours()-2);// 2 horas de cortesía.
            
            //Resta fechas y redondea
            //var diferencia = miFecha1.getTime() - miFecha2.getTime()
         	var diferencia = miFecha2 - miFecha1  ;
         	
         	
         	//numdias =  Math.ceil((date2 - date1) / msPerDay);
            //var dias = Math.floor(diferencia / (1000 * 60 * 60 * 24))
            var dias = Math.ceil(diferencia / (1000 * 60 * 60 * 24))
            var segundos = Math.floor(diferencia / 1000)
            return dias
           
         }

         function DiferenciaHoras (CadenaFecha1,CadenaFecha2, CadenaHora1,CadenaMin1,CadenaHora2,CadenaMin2) {

                        
            //Obtiene dia, mes y año
            var fecha1 = new fecha( CadenaFecha1 )   
            var fecha2 = new fecha( CadenaFecha2 )
                 
            //Obtiene objetos Date
            //mes (0-11): Enero Diciembre
            var miFecha1 = new Date( fecha1.anio, fecha1.mes-1, fecha1.dia,Number(CadenaHora1), Number(CadenaMin1) )
            var miFecha2 = new Date( fecha2.anio, fecha2.mes-1, fecha2.dia,Number(CadenaHora2), Number(CadenaMin2))
            
            
            //Resta fechas y redondea
            //var diferencia = miFecha1.getTime() - miFecha2.getTime()
         	var diferencia = miFecha2 - miFecha1  ;
         	
         	
         	//numdias =  Math.ceil((date2 - date1) / msPerDay);
            //var dias = Math.floor(diferencia / (1000 * 60 * 60 * 24))
            var horas = Math.ceil(diferencia / (1000 * 60 * 60))
            var segundos = Math.floor(diferencia / 1000)
            return horas
           
         }
         function fecha( cadena ) {

            //Separador para la introduccion de las fechas
            var separador = "/"

            //Separa por dia, mes y año
            if ( cadena.indexOf( separador ) != -1 ) {
                 var posi1 = 0
                 var posi2 = cadena.indexOf( separador, posi1 + 1 )
                 var posi3 = cadena.indexOf( separador, posi2 + 1 )
                 this.dia = cadena.substring( posi1, posi2 )
                 this.mes = cadena.substring( posi2 + 1, posi3 )
                 this.anio = cadena.substring( posi3 + 1, cadena.length )
                
            } else {
                 this.dia = 0
                 this.mes = 0
                 this.anio = 0   
            }
         }
         
         
         function cortesyDateDiff (CadenaFecha1,CadenaFecha2, CadenaHora1,CadenaMin1,CadenaHora2,CadenaMin2, Cortesy) {

                        
            //Obtiene dia, mes y año
            var fecha1 = new fecha( CadenaFecha1 )   
            var fecha2 = new fecha( CadenaFecha2 )
                 
            //Obtiene objetos Date
            //mes (0-11): Enero Diciembre
            var miFecha1 = new Date( fecha1.anio, fecha1.mes-1, fecha1.dia,Number(CadenaHora1), Number(CadenaMin1) )
            var miFecha2 = new Date( fecha2.anio, fecha2.mes-1, fecha2.dia,Number(CadenaHora2), Number(CadenaMin2))
            
            miFecha2.setHours(miFecha2.getHours()-Cortesy);// 2 horas de cortesía.
            
            //Resta fechas y redondea
            //var diferencia = miFecha1.getTime() - miFecha2.getTime()
         	var diferencia = miFecha2 - miFecha1  ;
         	
         	
         	//numdias =  Math.ceil((date2 - date1) / msPerDay);
            //var dias = Math.floor(diferencia / (1000 * 60 * 60 * 24))
            var dias = Math.ceil(diferencia / (1000 * 60 * 60 * 24))
            var segundos = Math.floor(diferencia / 1000)
            return dias
           
         }

   // FIN DIF FECHAS      
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
