function handleHttpResponse() 
{ 
	if (http.readyState == 4) 
	{ 
		if (http.status == 200) 
		{ 
			//alert('response');
			
			if (http.responseText.indexOf('invalid') == -1) 
			{
				enProceso = false;
				
				var result = http.responseText.charAt(0);
				
				if (result == "0")
				{				
					var html = http.responseText.substr(1, http.responseText.length-1);
					
					var div = document.getElementById("insertion_point");
					
					var newdiv = document.createElement("div");
					newdiv.id = 'car_ajax_div_' + i;					
					div.appendChild(newdiv);					
					
					if (div == null)
					{
						return;
					}
					
					newdiv.innerHTML  = newdiv.innerHTML +  html;
				
					GetLine2();
				}
				else
				{
					var div = document.getElementById("reserve_ajax_wait_to_see");
					
					if (div == null)
					{
						return;
					}
					
					div.innerHTML  = ""
					//handle error or end				
				}
			}
		 }
    }
}

function handleHttpResponse2() 
{ 
	if (http2.readyState == 4) 
	{ 
		if (http2.status == 200) 
		{ 						
			if (http2.responseText.indexOf('invalid') == -1) 
			{
				enProceso = false;
				
				var result = http2.responseText.charAt(0);
				
				if (result == "0")
				{				
					var html = http2.responseText.substr(1, http2.responseText.length-1);
					
					var div = document.getElementById("insertion_point");
					
					var newdiv = document.createElement("div");
					newdiv.id = 'car_ajax_div_' + i;					
					div.appendChild(newdiv);					
					
					if (div == null)
					{
						return;
					}
					
					newdiv.innerHTML  = newdiv.innerHTML +  html;
						
					GetLine(0);
				}
				else
				{
					var div = document.getElementById("reserve_ajax_wait_to_see");
					
					if (div == null)
					{
						return;
					}
					
					div.innerHTML  = ""
					//handle error or end				
				}
			}
		 }
    }
}

function getHTTPObject() 
{
    var xmlhttp;  
    
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') 
	{
		try 
		{
			xmlhttp = new XMLHttpRequest();
		} 
			catch (e) 
		{
			xmlhttp = false; 
		}
	}
	
	if (!xmlhttp && window.createRequest) 
	{
		try 
		{
			xmlhttp = window.createRequest();
		} 
		catch (e) 
		{
			xmlhttp=false;
		}
	}
	
    return xmlhttp;
}

	//var http;
	
function GetLine(start) 
{		
	
    if (!enProceso && http) 
    {	
		if (document.getElementById("lines_handle") == null)		
		{
			return;
		}
		
		var sStart = "start=0&";
		if (start == 1)
		{	
			sStart = "start=1&";		
		}		
    
	   var random_num = (Math.round((Math.random()*10000)+1));
    
       var valor = escape(document.getElementById("lines_handle").value);       
	   var url = "/obten.coche.dispo?" + sStart + "handle="+ valor + "&antc=" + random_num;
       
       //alert(url);
       
       http.open("GET", url, true);
       http.onreadystatechange = handleHttpResponse;
       enProceso = true;
       http.send(null);
       i++;
   }
}

function GetLine2() 
{		
    if (!enProceso && http2) 
    {
		if (document.getElementById("lines_handle") == null)		
		{
			return;
		}
    
	   var random_num = (Math.round((Math.random()*10000)+1));
	   
       var valor = escape(document.getElementById("lines_handle").value);
	   var url = "/obten.coche.dispo?start=0&handle="+ valor + "&antc=" + random_num;

       //alert(url);
       
       http2.open("GET", url, true);
       http2.onreadystatechange = handleHttpResponse2;
       enProceso = true;
       http2.send(null);
       i++;
   }
}

//---------------------------------------------------------------------//
//  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,iEngedYear;
     
  //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(objID, name) {
	var miRuta
	miRuta= '/content3.asp?obj=' + objID;
	ventana=window.open(miRuta, name, 'left=100,top=100,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,height=400,width=440,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);
}

function GetMultiLngText(_text,_jsAlert){		
	var sReturnValue;
	var sjsAlert;
	if (_jsAlert == undefined) sjsAlert = '0';
	else sjsAlert = _jsAlert;
	$.ajax({
		type: "POST",
		data: "text_name=" + _text + "&js_alert=" + sjsAlert,
		url: "/get_multilng_text.asp",				
		async:false,
		success: function(msg){	
			sReturnValue = msg;
		}
		});			
	return sReturnValue;
}

function GetZZParameter(_process,_action){		
	var sReturnValue;
	_process = _process.replace(/ /g,"[space]")
	_action = _action.replace(/ /g,"[space]")
	$.ajax({
		type: "POST",
		data: "process=" + _process + "&action=" + _action,
		url: "/get_zz_parameter.asp",				
		async:false,
		success: function(msg){	
			sReturnValue = msg;
		}
		});			
	return sReturnValue;
}

   function CheckDate() {
      var day;
      var month;
      var year;
      var sdate;
      var edate;
      var cdate;
      var a;	  
    day = parseInt(document.frm_search_car.start_day.value, 10);
   	month = parseInt(document.frm_search_car.start_month.value, 10) - 1;
   	year = parseInt(document.frm_search_car.start_year.value, 10);
   	
	sdate = new Date(year, month, day);
   	
	cdate = new Date();
		if (sdate.getTime() < cdate.getTime()) {
		   return false;
		}
     
      day = parseInt(document.frm_search_car.end_day.value, 10);
      month = parseInt(document.frm_search_car.end_month.value, 10) - 1;
      year = parseInt(document.frm_search_car.end_year.value, 10);
   	edate = new Date(year, month, day);
		if (edate.getTime() <= sdate.getTime()) {
		   return false;
		}
		return true;
   }
		
   function checkSC() {
  	  var oFrm;
	  if (document.frm_search_car)
		 oFrm = document.frm_search_car;
	  else
		 oFrm = document.frm_reserve;  
		 
      if ((oFrm.start_point_id.value == '') || 
            (oFrm.start_point_id.value == '0')) {
              alert(ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_SP",1)));
         return false;
      }	             
      if ((oFrm.end_point_id.value == '') || 
            (oFrm.end_point_id.value == '0')) {
              alert(ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_EP",1)));
         return false;
      }	 
  
	  if ((oFrm.zone_id.value == '') || 
            (oFrm.zone_id.value == '0')) {
              alert(ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_SP"),1));
         return false;
      }
      
       if ((oFrm.end_zone_id.value == '') || 
            (oFrm.end_zone_id.value == '0')) {
            alert(ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_EP"),1));
            return false;
      }else 
      {
      // comprobamos si es un punto manual
      if ((document.getElementById("div_return_point_other").style.display == 'inline')&&(oFrm.end_point_id_other.value=='')){
            // debe indicar el nombre
            alert(ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_EP"),1));
            return false;
      
      }
      
      }
      
      if (oFrm.start_day.value == '') {		
         alert('1' + ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATE"),1));
         return false;
      }
      if (oFrm.start_month.value == '') {
         alert('1' + ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATE"),1));
         return false;
      }
      if (oFrm.start_year.value == '') {
         alert('1' + ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATE"),1));
         return false;
      }
      if (oFrm.end_day.value == '') {
         alert('1' + ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATE"),1));
         return false;
      }
      if (oFrm.end_month.value == '') {
         alert('1' + ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATE"),1));
         return false;
      }
      if (oFrm.end_year.value == '') {
         alert('1' + ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATE"),1));
         return false;
      }
      return true;
   }
   function reloadSC()  {
      document.frm_search_car.submit();
   }
   function searchSC() {	
	// si el punto de recogida es numérico: comportamiento normal	
	// si no lo es: llamada carbookers	
		//var sIFCallUrl = "/modules.asp"
		var sIFCallUrl = "/availability"
		if (checkSC()) {
		   var bContinue;
		   bContinue=true;
		  
		   if (!CheckDate())	{
			   bContinue=false;
			   alert(ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATEb"),1));
			}

			if (bContinue){
               //document.frm_search_car.action = sIFCallUrl + "?target=reserve_car_step_two";
			   document.frm_search_car.action = sIFCallUrl;
			   document.frm_search_car.submit();
			   showLoading(); 
			} 
	   }
	}	
	
	
	
	 function searchSC_v2(link_value) {
		//var sIFCallUrl = "/modules.asp"
		var sIFCallUrl = "/availability.page"
		var oFrm;
		if (document.frm_search_car)
			oFrm = document.frm_search_car;
		else
			oFrm = document.frm_reserve;
		// si el punto de recogida es numérico: comportamiento normal
		// si no lo es: llamada carbookers	
	   var bContinue;
	   var city_name
	
		if (link_value!='TCI') {
		//comportamiento con Carbookers		
		   bContinue=true;
		  
		   //if (!CheckDate())	{
		   if (false)	{
			   bContinue=false;
			   alert(ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATEb"),1));
			}

			if (bContinue){               
               document.getElementById("car_go").value='1';               
               cityName = GetCityCountry('ES',link_value);

			   //window.document.frm_search_car.city_name.value=cityName;
			   oFrm.city_name.value=cityName;
               
               oFrm.action = sIFCallUrl + '?city_id='+link_value+'&carb=1';
			   oFrm.submit();			   
			   showLoading(); 
			} 
		}else{
		// comportamiento actual-normal sin carbookers con tenerife
		
		   if (checkSC()) {		   
		   bContinue=true;
		   //if (!CheckDate())	{
		   if (false)	{
			   bContinue=false;
			   alert(ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATEb"),1));
			}

			if (bContinue){
			   document.getElementById("car_go").value='0';	
               //document.frm_search_car.action = sIFCallUrl + "?target=reserve_car_step_two&city_id=TCI&carb=0";
			   //document.frm_search_car.submit();
               //oFrm.action = sIFCallUrl + "?target=reserve_car_step_two&city_id=TCI&carb=0";
			   oFrm.action = sIFCallUrl + "?city_id=TCI&carb=0";
			   oFrm.submit();			   
			   showLoading(); 
			} 
	   }
		}
	}	
	
   function searchExpress() {
      if (checkSC()) {
      }
   }
   function toggleExpress() {
      if (document.getElementById("express").style.display == '') {
         document.getElementById("express").style.display = 'none';
      } else {
         document.getElementById("express").style.display = '';
      }
   }
   function advSearch() {
      document.frm_search_car.adv_search.value = "1";
      document.frm_search_car.submit();
      showLoading();
   }
   function searchDestination() {
      document.frm_search_car.dest_search.value = "1";
      reloadSC();
   }
      
   // diferencia de fechas
   function CheckDiffDate(){
      var startdate;
      var endate;
      var days;
      var starthour;
      var endhour;
      var startmin;
      var endmin;                        
  	  var oFrm;
	  if (document.frm_search_car)
		 oFrm = document.frm_search_car;
	  else
		 oFrm = document.frm_reserve;

	  
      startdate = oFrm.start_day.value + '/' + 
        	oFrm.start_month.value + '/' + 
        	oFrm.start_year.value;
      endate = oFrm.end_day.value + '/' + 
        	oFrm.end_month.value + '/' + 
        	oFrm.end_year.value;

      // horas y minutos
      starthour  = oFrm.start_hour[oFrm.start_hour.selectedIndex].value;
      startmin   = oFrm.start_min[oFrm.start_min.selectedIndex].value;
      endhour    = oFrm.end_hour[oFrm.end_hour.selectedIndex].value;
      endmin     = oFrm.end_min[oFrm.end_min.selectedIndex].value;
                         
      days = cortesyDateDiff(startdate,endate,starthour,startmin,endhour,endmin,GetZZParameter("reserve cars", "default cortesy"));
      document.getElementById('diffday').innerHTML = 1*days;
                         
      // return days
   }
   
   function extractDate(elem, dest) {
      var sDay, sMonth, sYear;
      var i1, i2;
  	  var oFrm;
	  if (document.frm_search_car)
		 oFrm = document.frm_search_car;
	  else
		 oFrm = document.frm_reserve;
		 
      dateStr = elem.value.replace(' ', '');
      i1 = elem.value.indexOf('/');
      i2 = elem.value.lastIndexOf('/');
      if (i1 <= 0) {
         alert(ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATE"),1));
         return;
      }
      if (i2 <= i1) {
         alert(ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATE"),1));
         return;
      }
      sDay = dateStr.substring(0, i1);
      sMonth = dateStr.substring(i1 + 1, i2);
      sYear = dateStr.substring(i2 + 1, elem.value.length);
      if (isNaN(sDay) || isNaN(sMonth) || isNaN(sYear)) {
         alert(ConvertirHTMLARuso(GetMultiLngText("MOD_ZONE_CENTER_SEARCH_CAR_ERROR_DATE"),1));
         return;
      }
      document.getElementById(dest + '_day').value = sDay;
      document.getElementById(dest + '_month').value = sMonth;
      document.getElementById(dest + '_year').value = sYear;
      
      
      if (dest=='start'){
		  oFrm.txt_vuelve.value = FormatDate(DateAdd(oFrm.txt_recogida.value,'d',7))
		  extractDate(oFrm.txt_vuelve,'end')
          CheckDiffDate();
     }

//R
   function DateAdd(dTemp1,sInterval, iNum){
		var dateArray = dTemp1.split("/")
		var dTemp = new Date(dateArray[2],dateArray[1]-1,dateArray[0])


		if (!sInterval || iNum == 0) return dTemp;
			 switch (sInterval.toLowerCase()){
			 		case "ms":
							 dTemp.setMilliseconds(dTemp.getMilliseconds() + iNum);
					break;
					case "s":
							 dTemp.setSeconds(dTemp.getSeconds() + iNum);
  					break;
					case "mi":
							 dTemp.setMinutes(dTemp.getMinutes() + iNum);
					break;
					case "h":
							 dTemp.setHours(dTemp.getHours() + iNum);
					break;
					case "d":
							 dTemp.setDate(dTemp.getDate() + iNum);
					break;
					case "mo":
							 dTemp.setMonth(dTemp.getMonth() + iNum);
					break;
					case "y":
							 dTemp.setFullYear(dTemp.getFullYear() + iNum);
					break;
			}

		return dTemp;
	}
	
//R	
	function suma(val1,val2){
		return val1+val2
	} 
	  
	function FormatDate(aiDate){
	return aiDate.getDate() + '/' + suma(aiDate.getMonth(),1) + '/'+ aiDate.getFullYear()
	}
      
       CheckDiffDate();
   }
   function selectEndPoint(elem) {
  	  var oFrm;
	  if (document.frm_search_car)
		 oFrm = document.frm_search_car;
	  else
		 oFrm = document.frm_reserve;   
		 
      oFrm.end_point_id.selectedIndex = elem.selectedIndex;
   }
   

   function recalcZone(type,eldest){
	
    for (var i = 0; i < aSP.length; i++) {
     if (aSP[i].id == eldest){
		if (type=='start'){
			document.frm_search_car.zone_id.value=aSP[i].zone_id;
			loadSP(document.frm_search_car.zone_id, document.frm_search_car.start_point_id);
			document.frm_search_car.start_point_id.value = eldest;
		}else{
			document.frm_search_car.end_zone_id.value=aSP[i].zone_id;
			loadSP(document.frm_search_car.end_zone_id, document.frm_search_car.end_point_id);
			document.frm_search_car.end_point_id.value = eldest;
		}
	   break;	   
	 }
    }
   }   

   function toggleEndPoint() {
      if (document.frm_search_car.change_point.checked) {
         document.getElementById('div_return_point').style.display = '';
      } else {
         document.getElementById('div_return_point').style.display = 'none';
      }
   } 
   function changeStartZone() {
      if (!document.frm_search_car.change_point.checked) {
         document.frm_search_car.end_zone_id.selectedIndex = document.frm_search_car.zone_id.selectedIndex;
         loadSP(document.frm_search_car.end_zone_id, document.frm_search_car.end_point_id);
      }
   }
   function changeStartPoint() {
      if (!document.frm_search_car.change_point.checked) {
         document.frm_search_car.end_point_id.selectedIndex = document.frm_search_car.start_point_id.selectedIndex;
      }
   }
   
   
   // muestra un div con un input para introducir otro lugar de devolución
   function ShowOtherPlace (elem)
   {
   
     var mistring = new String(GetZZParameter("reserve car", "list points id other place"));
     var comparestring;
     comparestring = "'" + elem.value + "'";
     
     if (mistring.indexOf(comparestring)>= 0){
       document.getElementById('div_return_point_other').style.display = 'inline';
     }else{
     document.getElementById('div_return_point_other').style.display = 'none';
     } 
     
   }   
   
  function getSelAcc() {
      var j;
      var total;
      var id;
      var accids_quantity;
      accids_quantity = '';
     
      document.frm_reserve.acc_ids.value = '';
      for (var i = 0; i < 50; i++) {
         //if (document.getElementById('selAcc' + i) == 'undefined') {
         //alert('toma'+i);
         if (document.getElementById('selAcc' + i) == null) {
           // comentamos pues cuando es un extra falla
            //break;
         } else {
            total = parseInt(document.getElementById('selAcc' + i).value, 10);
            id = document.getElementById('hidAcc' + i).value;
            if (accids_quantity!=''){
               accids_quantity = accids_quantity+ ',' +  i + '|' + total;
            }else{
               accids_quantity= i + '|' + total;
            }
            
            for (j = 1; j <= total; j++) {
               document.frm_reserve.acc_ids.value += id + ',';
            }
            
         }
      }
      //alert('quantity'+accids_quantity);
      document.frm_reserve.acc_ids_quantity.value = accids_quantity;
   }
   function doReserve() {
      getSelAcc();
      //alert('salgo');
      document.frm_reserve.submit();
   }
   function SelectAccid(sAccId, sQuantity){
       document.getElementById('selAcc'+sAccId)[sQuantity].selected=true;
   }   
