var selectedOriginCode = null;
var spaDiv = new Array();
spaDiv[0] = {Residente:'sResi', ResCanario:'sCanario', ResBalear:'sBalear',FamiliaNumerosa:'sFamNum',Flexible:'sFlex', Avant:'sAvant', TipoViajeI:'sTipoViajeI',TipoViajeIV:'sTipoViajeIV',Especial:'sOpcEsp', Baggage:'sBaggageDisc'};
var rutas = null;
var manager = null;
var lenguage;
var busName;
var comboOrigen, comboDestino, fecha_Ida, fecha_Regreso, comboAdultos, comboNinos, comboBebes, TipoVueloEpi;
var domestico = "LCG,ALC,LEI,OVD,BCN,BIO,FUE,LPA,GRX,IBZ,XRY,ACE,MAD,AGP,PMI,MAH,SCQ,SVQ,TFN,TFS,TCI,VLC,VGO";

function cargarRutas(rutasXML, managerXML, lenguajeWeb, busControlName, combo_origen, combo_destino, fecha_I, fecha_R, combo_adultos, combo_ninos, combo_bebes, tipo_vuelo){
  lenguage = lenguajeWeb;
  busName = busControlName;
  comboOrigen = combo_origen; 
  comboDestino = combo_destino;
  fecha_Ida = fecha_I;
  fecha_Regreso = fecha_R;
  comboAdultos = combo_adultos;
  comboNinos = combo_ninos;
  comboBebes = combo_bebes;
  TipoVueloEpi = tipo_vuelo
  
              
  if(window.ActiveXObject){        
        rutas = new ActiveXObject('Microsoft.XMLDOM');
        rutas.async='false';
        rutas.preserveWhiteSpace=true;
        rutas.load(rutasXML);           
        manager = new ActiveXObject('Microsoft.XMLDOM');
        manager.async='false';
        manager.preserveWhiteSpace=true;
        manager.load(managerXML);
        cargarOrigenes();     
  } else if (window.XMLHttpRequest) { // Mozilla, Safari,...
        xmlHTTP = new XMLHttpRequest();
        if (xmlHTTP.overrideMimeType) { xmlHTTP.overrideMimeType('text/xml') }
        xmlHTTP.open('get', rutasXML, false);
        xmlHTTP.send('');
        rutas = xmlHTTP.responseXML;
        xmlHTTP.open('get', managerXML, false);
        xmlHTTP.send('');
        manager = xmlHTTP.responseXML;
        cargarOrigenes();
  } else if(document.implementation && document.implementation.createDocument) {
        rutas = document.implementation.createDocument('','',null);
        rutas.async = 'false';
        rutas.preserveWhiteSpace=true;
        
        if (typeof rutas != 'undefined') {               
            rutas.onload= cargarOrigenes;
            rutas.load(rutasXML);
        }
        manager = document.implementation.createDocument('','',null);
        manager.async = 'false';
        manager.preserveWhiteSpace=true;

        if (typeof manager != 'undefined') {       
            manager.onload= function (){};
            manager.load(managerXML);                
        }                                            
  }  
}

function SelectSingleNode(xmlDoc, elementPath){
    if(window.ActiveXObject) {
        return xmlDoc.selectSingleNode(elementPath);
    } else if(document.implementation && document.implementation.createDocument) {
        var oEvaluator = new XPathEvaluator();

        var oResult = oEvaluator.evaluate(elementPath, xmlDoc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null);

        if (oResult != null) 
            return oResult.singleNodeValue;
        else 
            return null;
    }
}

function GetAttribute(xmlNode, attributeName){    
    if(window.ActiveXObject && xmlNode != undefined)   
        return xmlNode.getAttribute(attributeName);    
    else if(document.implementation && document.implementation.createDocument && xmlNode != undefined)     
        return xmlNode.attributes[attributeName].value;
}
                                         
function cargarOrigenes(){		
    var selDestino = document.getElementById(comboDestino);
    aviso = SelectSingleNode(rutas,'//avisos/destino');
    selDestino.options[0] = new Option(aviso.childNodes[0].nodeValue, '0', true, false);
    var selOrigen = document.getElementById(comboOrigen);
    while (selOrigen.options.length){
        selOrigen.remove(0);
    }                  
        
    aviso = SelectSingleNode(rutas,'//avisos/origen');
    selOrigen.options[0] = new Option(aviso.childNodes[0].nodeValue, '0', false, false);
    
    var agrupacion = SelectSingleNode(manager,'//buscador/agrupacion_rutas_' + lenguage);
    var aP = agrupacion.childNodes[0].nodeValue.split(',');
    var limiteMercados = SelectSingleNode(manager,'//buscador/limitacion_mercado_origenes');
    var importeBaggage = SelectSingleNode(manager,'//buscador/descuento_maletas_' + lenguage);
    
    var lblImporte = busName + 'lblAmountDiscount';
    var lblImporteTxt = document.getElementById(lblImporte); 
    
    if (lblImporteTxt != null){
        lblImporteTxt.innerHTML = importeBaggage.childNodes[0].nodeValue;
        //lblImporteTxt.style.display = 'block';
    }
    
    if (limiteMercados.childNodes.length > 0 && limiteMercados.childNodes[0].nodeValue.trim() != '') 
        aP = comprobarMercados(aP, limiteMercados);
    
    var ta = aP.length;
    
    var limiteOrigenes = SelectSingleNode(manager,'//buscador/limitacion_rutas_origen');
    
    for (var e = 0; e < ta; e++){
        mercadoOrigen = SelectSingleNode(rutas,'//origenes/' + aP[e]);
        origenesCodes = GetAttribute(mercadoOrigen,'codes');
        origenes = origenesCodes.split('|');
        origenesNum = origenes.length;        
        var cont = 0;        
        if (origenesNum > 1){            
            for (var i = 0; i<origenesNum; i++){
                if (origenes[i] != '' && containsAirport(limiteOrigenes, origenes[i])) {
                    if (cont == 0) {
                        mercado = SelectSingleNode(rutas,'//mercados/' + aP[e]);
                        selOrigen.options[selOrigen.options.length] = new Option(GetAttribute(mercado,'valor'),'0', false, false);
                        selOrigen.options[(selOrigen.options.length -1)].style.background = 'Lavender';
                        cont++;
                    }
                    aeropuerto = SelectSingleNode(rutas,'//aeropuertos/' + origenes[i]);
                    nombreAeropuerto = GetAttribute(aeropuerto,'nombre');
                    selOrigen.options[selOrigen.options.length] = new Option(nombreAeropuerto, origenes[i], false, false);
                }
            }
        }
    } 
    if (TipoVueloEpi == 1)
    {
        showHidePropertyDivs(spaDiv[0].TipoViajeI,0,'inline');
        showHidePropertyDivs(spaDiv[0].TipoViajeIV,1,'inline');
    }
    if (TipoVueloEpi == 2)
    {
        showHidePropertyDivs(spaDiv[0].TipoViajeI,1,'inline');
        showHidePropertyDivs(spaDiv[0].TipoViajeIV,0,'inline');
    }
    preSelectOrgDes();
    preSelectDates();
    SelectPax();    
} 

function cargarDestinos(objCombo) {
    var selDestino = document.getElementById(comboDestino);
    while (selDestino.options.length){
        selDestino.remove(0);
    }
    aviso = SelectSingleNode(rutas,'//avisos/destino');
    selDestino.options[0] = new Option(aviso.childNodes[0].nodeValue, '0', true, false);    
    
    aerO = objCombo.options[objCombo.selectedIndex].value;
    if (aerO == '0'){
        selectedOriginCode = null;
        return ;
    }
    
    selectedOriginCode = aerO;
    
    desactivatedCheck();
            
    var cityorigen = aerO;
    var agrupacion = SelectSingleNode(manager,'//buscador/agrupacion_rutas_' + lenguage);
    var aP = agrupacion.childNodes[0].nodeValue.split(',');
    var limiteMercados = SelectSingleNode(manager,'//buscador/limitacion_mercado_destinos');
    if (limiteMercados.childNodes.length > 0  && limiteMercados.childNodes[0].nodeValue.trim() != '') 
        aP = comprobarMercados(aP, limiteMercados);
        
    var ta = aP.length;           
    
    var limiteDestinos = SelectSingleNode(manager,'//buscador/limitacion_rutas_destino');    
    
    var destino = SelectSingleNode(manager,'//buscador/aeropuertos_obligatorios');
        
    for (var e = 0; e < ta; e++){                        
        var destinoMercado = SelectSingleNode(rutas,'//destinos/' + selectedOriginCode + '/' + aP[e]);
        var destinosNum = destinoMercado.childNodes.length;       
        
        if (destinosNum >= 1){                        
            var cont = 0;
            for (var i = 0; i<destinosNum; i++){
                if (destinoMercado.childNodes[i].nodeType == 1 && containsAirport(limiteDestinos, destinoMercado.childNodes[i].nodeName)) {
                    if (cont == 0) {
                        mercado = SelectSingleNode(rutas,'//mercados/' + aP[e]);
                        selDestino.options[selDestino.options.length] = new Option(GetAttribute(mercado,'valor'),'0', false, false);            
                        selDestino.options[(selDestino.options.length -1)].style.background = 'Lavender';
                        cont++;
                    }                    
                    aeropuerto = SelectSingleNode(rutas,'//aeropuertos/' + destinoMercado.childNodes[i].nodeName);
                    
                    if (destino == null || (destino != null && containsAirport(destino, cityorigen)) || (destino != null && cityorigen != destino.text && containsAirport(destino, destinoMercado.childNodes[i].nodeName))) {
                        nombreAeropuerto = GetAttribute(aeropuerto,'nombre');                    
                        selDestino.options[selDestino.options.length] = new Option(nombreAeropuerto, aeropuerto.nodeName, false, false);
                    }
                }
            }
        }
    }
    
}

function verDestino(objCombo){
    
    var objcomboOrigenes = document.getElementById(comboOrigen);
    var selOrigen = objcomboOrigenes.options[objcomboOrigenes.selectedIndex].value;    
    var selDestino = objCombo.options[objCombo.selectedIndex].value;    

    desactivatedCheck();
    
    var divOpcionesBuscador = document.getElementById("opcionesBuscador");
    if (divOpcionesBuscador != null) {
        divOpcionesBuscador.style.visibility = 'visible';
        divOpcionesBuscador.style.display = 'block';
    }
        
    var ruta = obtenerRuta(selOrigen, selDestino);
    if (ruta != undefined) {
        var opciones = GetAttribute(ruta,'opc');
        var opcionesNode = SelectSingleNode(rutas,'//opciones/' + opciones);
        opciones = opcionesNode.childNodes[0].nodeValue;    
    
        tipoviaje = opciones.split('|')[0]; 
        flexFecha = opciones.split('|')[2];    
        residenteCanario = opciones.split('|')[3];    
        residenteBalear = opciones.split('|')[4];            
    
        famnum = opciones.split('|')[5];
        opcEspecial = opciones.split('|')[6];        
        ancilliarieBagage = opciones.split('|')[13];
    } else {
        tipoviaje = '';
        flexFecha = 0;
        residente = 0;
        famnum = 0;
        opcEspecial = 0;     
        ancilliarieBagage = 0;   
    }            
    
    if (residenteCanario == 1 || residenteBalear == 1) 
        showHidePropertyDivs(spaDiv[0].Residente, 1, 'block');
    showHidePropertyDivs(spaDiv[0].ResCanario, residenteCanario, 'block');
    showHidePropertyDivs(spaDiv[0].ResBalear, residenteBalear, 'block');
    showHidePropertyDivs(spaDiv[0].FamiliaNumerosa, famnum, 'block');    
    showHidePropertyDivs(spaDiv[0].Especial, opcEspecial, 'block');
    showHidePropertyDivs(spaDiv[0].Flexible, flexFecha, 'block');
    showHidePropertyDivs(spaDiv[0].Baggage, ancilliarieBagage, 'block');
            
    
    showHideOpciones();
    
    opcionesIDVU(tipoviaje);
    var limiteOW = SelectSingleNode(manager,'//buscador/limitacion_OW');
        
    if (limiteOW.childNodes.length > 0 && limiteOW.childNodes[0].nodeValue == 'True') {
        showHidePropertyDivs(spaDiv[0].TipoViajeIV,0,'inline');
        document.getElementById("tipoViajeIV").checked = false;
        document.getElementById("tipoViajeI").checked = true;
    }
    
    if (opciones != undefined) {
        var avisoRuta = opciones.split('|')[1];    
        if (avisoRuta != null && avisoRuta != '') {
            avisoRuta = SelectSingleNode(rutas,'//avisos/' + avisoRuta);        
            alert (avisoRuta.childNodes[0].nodeValue);
        }
    }
    if (TipoVueloEpi == 1)
    {
        showHidePropertyDivs(spaDiv[0].TipoViajeI,0,'inline');
        showHidePropertyDivs(spaDiv[0].TipoViajeIV,1,'inline');
    }
    if (TipoVueloEpi == 2)
    {
        showHidePropertyDivs(spaDiv[0].TipoViajeI,1,'inline');
        showHidePropertyDivs(spaDiv[0].TipoViajeIV,0,'inline');
    }
    
}
                                                                                                                           
function obtenerRuta (origen, destino) {
    var origen = SelectSingleNode(rutas,'//destinos/' + origen);
    var mercadosNum = origen.childNodes.length;
        
    if (mercadosNum > 1){                        
        for (var i = 0; i < mercadosNum; i++){                    
            var mercado = origen.childNodes[i];
            var destinosNum = mercado.childNodes.length;
            for (var j = 0; j < destinosNum; j++){
                if (mercado.childNodes[j].nodeName == destino)
                    return mercado.childNodes[j];
            }
        }
    }
    
    return;
}

function comprobarMercados(mercados, limiteMercadosNode) {
    var aMercados = new Array() ;
    var limiteMarcados = limiteMercadosNode.childNodes[0].nodeValue.split(',');
    cont = 0;
    
    for (var i = 0; i < mercados.length; i++) {
        for (var j = 0; j < limiteMarcados.length; j++) {
            if (limiteMarcados[j] == mercados[i]) {
                aMercados[cont] = mercados[i];
                cont++;
            }
        }
    }
    
    return aMercados;
}
    
function msgAeropuertos(){
    var selOrigen = document.getElementById(comboOrigen).value;
    var selDestino = document.getElementById(comboDestino).value;                
                
 }

function verificarFormulario(urlAction, urlOfertas, numBonosGP100){
    var errores = '';

    var selOrigen = document.getElementById(comboOrigen).value;
    var selDestino = document.getElementById(comboDestino).value;
    
    var cFI = busName + fecha_Ida + '_bdpDate_textBox';
    var txtFechaI = document.getElementById(cFI);
    var fechaI = txtFechaI.value.split('-');
    var diai = fechaI[0];
    var mesanoi = fechaI[1] + "/" + fechaI[2];
    var fechaenterai = diai + '/' + mesanoi;

    var BotonPulsado = document.getElementById('BotonPulsadoVH');
    if (BotonPulsado != null)
    {
        if(document.getElementById('BotonPulsadoVH').value == 'H')
        {
            var hoy=new Date();
            var fecValida=new Date(hoy.getFullYear(),hoy.getMonth(),(hoy.getDate()+2));
            var fecSal = mesanoi.split('/');
            var fecSalida = new Date((fecSal[1]), (fecSal[0]-1),diai);
            if(fecValida >= fecSalida) {                
                aviso = SelectSingleNode(rutas,'//avisos/alerta_error13');
                errores += aviso.childNodes[0].nodeValue + '\r\n';
            }
        } 
    }                   
    
    var cFI = busName + fecha_Regreso + '_bdpDate_textBox';
    var txtFechaR = document.getElementById(cFI);
    var fechaR = txtFechaR.value.split('-');        
    var diar = fechaR[0];
    var mesanor = fechaR[1] + "/" + fechaR[2];
    var fechaenterar = diar + '/' + mesanor;
    
    Data1_arr = fechaenterar.split('/');
    Data2_arr = fechaenterai.split('/');
    fechr = Data1_arr[2] + Data1_arr[1] + Data1_arr[0];
    fechi = Data2_arr[2] + Data2_arr[1] + Data2_arr[0];
        
    var _tip;
    var _avt;
    var _rsd;
    var _famnum5;
    var _famnum10;
    if (document.getElementById('tipoViajeI').checked) { 
        _tip = 'OW'; 
    } else {
        _tip = 'RT';
    }
    
    var _dropadultos = document.getElementById(comboAdultos).value;
    var _dropninos = document.getElementById(comboNinos).value;
    var _dropbebes = document.getElementById(comboBebes).value;           
       
    var _lang = _SPACurrLang.toLowerCase();

    if(selOrigen == '0'){        
        aviso = SelectSingleNode(rutas,'//avisos/alerta_error1');
        errores += aviso.childNodes[0].nodeValue + '\r\n';
    }
    
    if (selDestino == '0' || selDestino == ''){
        aviso = SelectSingleNode(rutas,'//avisos/alerta_error2');
        errores += aviso.childNodes[0].nodeValue + '\r\n';
    }
    if (!(document.getElementById('tipoViajeI').checked)){
        if (!(Comparar_Date(fechr,fechi))){
            aviso = SelectSingleNode(rutas,'//avisos/alerta_error4');
            errores += aviso.childNodes[0].nodeValue + '\r\n';
        }
    }
    
    if (!(checkdate(fechaenterai))){
        aviso = SelectSingleNode(rutas,'//avisos/alerta_error5');
        errores += aviso.childNodes[0].nodeValue + '\r\n';
    }
    if (!(document.getElementById('tipoViajeI').checked)){
        if (!(checkdate(fechaenterar))){
            aviso = SelectSingleNode(rutas,'//avisos/alerta_error6');
            errores += aviso.childNodes[0].nodeValue + '\r\n';
        }
    }
    if (!(Comparar_Date_hoy(fechi))){
        aviso = SelectSingleNode(rutas,'//avisos/alerta_error12');
        errores += aviso.childNodes[0].nodeValue + '\r\n';
    }
    if (checkDateYear(fechi)){
        aviso = SelectSingleNode(rutas,'//avisos/alerta_error14');
        errores += aviso.childNodes[0].nodeValue + '\r\n';
    }               
        
    if (numBonosGP100 >= 0) {
        if (!currentDateValid(fechi, 12)){
            aviso = SelectSingleNode(rutas,'//avisos/alerta_error17');
            errores += aviso.childNodes[0].nodeValue + '\r\n';
        }
    }          
    
    if (_dropadultos == 0 && _dropninos > 0) {
        aviso = SelectSingleNode(rutas,'//avisos/alerta_error8');
        errores += aviso.childNodes[0].nodeValue + '\r\n';
    }
    if (_dropadultos < _dropbebes) {
        aviso = SelectSingleNode(rutas,'//avisos/alerta_error9');
        errores += aviso.childNodes[0].nodeValue + '\r\n';
    }
    if (_dropadultos == 0 && _dropbebes == 0 && _dropninos == 0) {
        aviso = SelectSingleNode(rutas,'//avisos/alerta_error10');
        errores += aviso.childNodes[0].nodeValue + '\r\n';
    }
        
    var totalpax = parseInt(_dropadultos) + parseInt(_dropninos);
    if (totalpax > 9 && _lang == 'es-es') {
        aviso = SelectSingleNode(rutas,'//avisos/aviso_grupos');
        var r=confirm(aviso.childNodes[0].nodeValue);
        if (r==true){
            location.href='http://www.spanair.com/web/es-es/Grupos/';
            return false;
        } else{ 
            aviso = SelectSingleNode(rutas,'//avisos/alerta_error11');
            errores += aviso.childNodes[0].nodeValue + '\r\n';
        }
    } else if (totalpax > 9) {    
        aviso = SelectSingleNode(rutas,'//avisos/alerta_error11');
        errores += aviso.childNodes[0].nodeValue + '\r\n';
    }

    if (_dropadultos == '+9' && _lang == 'es-es') {
        aviso = SelectSingleNode(rutas,'//avisos/aviso_grupos');
        var r=confirm(aviso.childNodes[0].nodeValue);
        if (r==true){
            location.href='http://www.spanair.com/web/es-es/Grupos/';
            return false;
        } else{
            aviso = SelectSingleNode(rutas,'//avisos/alerta_error11');
            errores += aviso.childNodes[0].nodeValue + '\r\n';
        }
    } else if (_dropadultos == '+9') {
        aviso = SelectSingleNode(rutas,'//avisos/alerta_error11');
        errores += aviso.childNodes[0].nodeValue + '\r\n';
    }
    
    if (totalpax > 4) {
        var ruta = obtenerRuta(selOrigen, selDestino);
        var opciones = GetAttribute(ruta,'opc');            
        var opcionesNode = SelectSingleNode(rutas,'//opciones/' + opciones);
        opcion = opcionesNode.childNodes[0].nodeValue;
        if (opciones != undefined) {
            var max = opciones.split('|')[10];
            if (max == '1') {
                aviso = SelectSingleNode(rutas,'//avisos/aviso_4max');
                errores += aviso.childNodes[0].nodeValue + '\r\n';
            }                
        }
    }        
    
    var selCeco = document.getElementById("selTipoBillete");
    if (selCeco != null && selCeco.value == '00'){
        var errorTipoBillete = document.getElementById("TextoErrorTipoBillete").value;
        errores += errorTipoBillete + '\r\n';
    }
     
    if (errores!=''){
        aviso = SelectSingleNode(rutas,'//avisos/alerta_error');
        alert(aviso.childNodes[0].nodeValue + '\r\n' + errores);
        return false;
    } else if (numBonosGP100 >= 0) {    
        var numBonos = BonosGP100(numBonosGP100,selOrigen,selDestino);
        document.getElementById('NumBonosGP100').value = numBonos;
        if (numBonos > numBonosGP100) {
            aviso = SelectSingleNode(rutas,'//avisos/alerta_error16');
            mensaje = aviso.childNodes[0].nodeValue;
            mensaje = mensaje.replace('{0}', numBonosGP100).replace('{1}', numBonos);
            alert(mensaje);
            return false;
        }
    } 
    
    try {
        var fechaenterai = SelectSingleNode(manager,'//buscador/' + fecha_Ida + '_corporate');
        fechaenterai = fechaenterai.childNodes[0].nodeValue.trim();
        var fechaenterar = SelectSingleNode(manager,'//buscador/fecha_vuelta_corporate');
        fechaenterar = fechaenterar.childNodes[0].nodeValue.trim();
        if (!(checkFechasCorporates(fechi, fechr, fechaenterai, fechaenterar))){        
            fechaenterai = fechaenterai.substring(0,2) + "/" + fechaenterai.substring(4,2) + "/" + fechaenterai.substring(8,4);
            fechaenterar = fechaenterar.substring(0,2) + "/" + fechaenterar.substring(4,2) + "/" + fechaenterar.substring(8,4);
            avisonode = SelectSingleNode(rutas,'//avisos/alerta_error18');
            aviso = format(avisonode.childNodes[0].nodeValue, fechaenterai, fechaenterar);
            alert(aviso);
            return false;
        }
    } catch (errorVuelo) {}
    
    try {
        var ctlFechaMaxInicioVuelo = document.getElementById('FechaMaxInicioVuelo');
        var ctlFechaMaxFinVuelo = document.getElementById('FechaMaxFinVuelo');
        if (ctlFechaMaxInicioVuelo != null || ctlFechaMaxFinVuelo != null)
        {        
            var fechaenterai = ctlFechaMaxInicioVuelo.value;
            var fechaenterar = ctlFechaMaxFinVuelo.value;
            if (!(checkFechasMaximasVuelo(fechi, fechr, fechaenterai, fechaenterar))){        
                fechaenterai = fechaenterai.substring(0,2) + "/" + fechaenterai.substring(4,2) + "/" + fechaenterai.substring(8,4);
                fechaenterar = fechaenterar.substring(0,2) + "/" + fechaenterar.substring(4,2) + "/" + fechaenterar.substring(8,4);
                avisonode = SelectSingleNode(rutas,'//avisos/alerta_error20');
                aviso = format(avisonode.childNodes[0].nodeValue, fechaenterai);
                alert(aviso);
                return false;
            }
        }
    } catch (errorVuelo) {}    
    
    ChangeSPACookie(selOrigen, selDestino, fechi, fechr);                
    document.forms[0].method = 'Post';
    document.forms[0].action = urlAction;
    document.forms[0].submit();
    return false;
}
                
function BonosGP100(numBonosGP100,selOrigen,selDestino) {
    var numBonos = 10;
    
    var ruta = obtenerRuta(selOrigen, selDestino);
    var opciones = GetAttribute(ruta,'opc');
    var opcionesNode = SelectSingleNode(rutas,'//opciones/' + opciones);
    opciones = opcionesNode.childNodes[0].nodeValue;        
    if (opciones != undefined) {                        
        var rutaCanaria = opciones.split('|')[3];
        var directa = opciones.split('|')[8];
        if (document.getElementById('tipoViajeI').checked){
            if (rutaCanaria == 1) {
                if (directa == 1) { numBonos = 2; }
                if (directa == 0) { numBonos = 3; }
            }else{                                
                if (directa == 1) { numBonos = 1; }
                if (directa == 0) { numBonos = 2; }
            }            
        }else{
            if (rutaCanaria == 1) {
                if (directa == 1) { numBonos = 4; }
                if (directa == 0) { numBonos = 6; }
            }else{                                
                if (directa == 1) { numBonos = 2; }
                if (directa == 0) { numBonos = 4; }
            }
        }            
    }
    
    return numBonos;
}
		                
		                
function preSelectOrgDes(){
    var preSelectedOrg;
    var preSelectedDes;
    var qstring = document.location.search;    
    
    if(qstring){
        var iOrg = qstring.toLowerCase().indexOf('origen');
        if(iOrg != -1){
            preSelectedOrg = qstring.substring(iOrg + 7, iOrg + 10);
        }
        iOrg = qstring.toLowerCase().indexOf('destino');
        if(iOrg != -1){
            preSelectedDes = qstring.substring(iOrg + 8, iOrg + 11);
        }
    }

    if(!preSelectedOrg && _SPAOrigin && _SPADestination){ 
        preSelectedOrg = _SPAOrigin;
        preSelectedDes = _SPADestination;
        
        var divOpcionesBuscador = document.getElementById("opcionesBuscador");
        if (divOpcionesBuscador != null) {
            divOpcionesBuscador.style.visibility = 'visible';
            divOpcionesBuscador.style.display = 'block';
        }
    }

    var orgFound;
    if(preSelectedOrg){
        cambiarOrigen(preSelectedOrg);
    }
    if(preSelectedDes){
        cambiarDestino(preSelectedDes);
    }       
}

function preSelectDates(){
    var preSelectedSal;
    var preSelectedReg;
    var qstring = document.location.search;
    var datesFound;
    var tdt = new Date();
    var tdtdia = tdt.getDate().toString();
    var tdtmes = (tdt.getMonth() + 1).toString();
    var tdtyear = tdt.getFullYear().toString();
    if (tdtdia.length != 2){tdtdia = '0' + tdtdia;}
    if (tdtmes.length != 2){tdtmes = '0' + tdtmes;}
    var tdtj = tdtyear + tdtmes + tdtdia;
    var tdt = new Date().addDays(0);
    var tdtdia = tdt.getDate().toString();
    var tdtmes = (tdt.getMonth() + 1).toString();
    var tdtyear = tdt.getFullYear().toString();
    if (tdtdia.length != 2){tdtdia = '0' + tdtdia;}
    if (tdtmes.length != 2){tdtmes = '0' + tdtmes;}
    var tdtj7 = tdtyear + tdtmes + tdtdia;

    if(qstring){
        var iSal = qstring.toLowerCase().indexOf('salida');
        if(iSal != -1){
            preSelectedSal = qstring.substring(iSal + 7, iSal + 15);
            datesFound = true;
        }
        iReg = qstring.toLowerCase().indexOf('regreso');
        if(iReg != -1){
            preSelectedReg = qstring.substring(iReg + 8, iReg + 16);
            datesFound = true;
        }
    }
        
    if(!preSelectedSal){
        if(_SPALeaveDate){
            preSelectedSal = _SPALeaveDate;
            datesFound = true;
            if( _SPAReturnDate){                             
                preSelectedReg = _SPAReturnDate;
             }else{
                preSelectedReg = _SPALeaveDate;
             }
        }
    }
    
    if (datesFound){
        if (Comparar_Date(preSelectedSal, tdtj) == true && Comparar_Date(preSelectedReg, tdtj) == true){
           changeDates(preSelectedSal, preSelectedReg);
        }
    }else{
        changeDates(tdtj,tdtj7);
    }
}

function preSelectTripType(){
    var qstring = document.location.search;
    var triptype;
    var triptypeFound;
    if(qstring){
        var iTrip = qstring.toLowerCase().indexOf('triptype');
        if(iTrip != -1){
            triptype = qstring.substring(iTrip + 9, iTrip + 11);
            triptypeFound = true;
        }
    }
  if (triptypeFound){
      if (triptype == 'RT')
      {
          var checkBox = document.getElementById('tipoViajeIV');
          checkBox.checked  = true;
      } else {
          var checkBox = document.getElementById('tipoViajeI');
          checkBox.checked  = true;
      }
            
  } 
}
 
function preSelectADTCHDBAB(){
    var qstring = document.location.search;
    var ADT;
    var CHD;
    var BAB;
    var adtFound = false;
    var chdFound = false;
    var babFound = false;

    if(qstring){
        var iADT = qstring.toLowerCase().indexOf('adt');
        if(iADT != -1){
            ADT = qstring.substring(iADT + 4, iADT + 5);
            adtFound = true;
        }
        var iCHD = qstring.toLowerCase().indexOf('chd');
        if(iCHD != -1){
            CHD = qstring.substring(iCHD + 4, iCHD + 5);
            chdFound = true;
        }
        var iBAB = qstring.toLowerCase().indexOf('bab');
        if(iBAB != -1){
            BAB = qstring.substring(iBAB + 4, iBAB + 5);
            babFound = true;
        }
    }

  var num;
  if (adtFound){
      num = document.getElementById(comboAdultos);
      num.value = ADT;                            
  }
  if (chdFound){
      num = document.getElementById(comboNinos);
      num.value = CHD;                           
  }
  if (babFound){
      num = document.getElementById(comboBebes);
      num.value = BAB;                            
  } 
}
               
function cambiarOrigen(IATACode){
    var cmbName = comboOrigen;
    var cmb = document.getElementById(cmbName);
    orgFound = getComboPosFromValue(cmbName, IATACode, false);
    if(orgFound!=0){
        cmb.selectedIndex = orgFound;
        selectedOriginCode = IATACode;
        cargarDestinos(cmb);
    }
}

function cambiarDestino(IATACode){
    if(selectedOriginCode){
        var cmbName = comboDestino;
        var cmb = document.getElementById(cmbName);
        /*El value del destino es MADPMI00000*4878 o sea origenDestino  */
        cmb.selectedIndex = getComboPosFromValue(cmbName, IATACode, false);
        if (cmb.selectedIndex > 0)
            verDestino(cmb);
    }
}

function getComboPosFromValue(cmbName, val, exactMatch){
    val = val.toLowerCase();
    var cmb = document.getElementById(cmbName);
    for (var i = 0; i < cmb.options.length; i++) {

        var valueFound = false;
        if(exactMatch){
            valueFound = (cmb.options[i].value==val);
        }else{
            valueFound = (cmb.options[i].value.toLowerCase().indexOf(val)==0);
        }

        if (valueFound) {
            return i;
        }

    }
    return 0;
}

function SelectPax() {
    var limitePaxAdu = SelectSingleNode(manager,'//buscador/max_adulto');
    if (limitePaxAdu.childNodes.length > 0) 
        numElem = limitePaxAdu.childNodes[0].nodeValue;
    else
        numElem = 9;
    
    var selPaxAdu = document.getElementById(comboAdultos);
    for (var i = 0; i <= numElem; i++) {        
        var pax = new Option(i, i);
	    selPaxAdu.options[selPaxAdu.options.length] = pax;
    }
    
    if (numElem > 8) {
        var pax = new Option("+9", "+9");
	    selPaxAdu.options[selPaxAdu.options.length] = pax;
	}
	selPaxAdu.options[2].selected = true;
	        
    var limitePaxInf = SelectSingleNode(manager,'//buscador/max_infant');
    if (limitePaxInf.childNodes.length > 0) 
        numElem = limitePaxInf.childNodes[0].nodeValue;
    else
        numElem = 9;
    
    var selPaxInf = document.getElementById(comboNinos);
    for (var j = 0; j <= numElem; j++) {        
        var pax = new Option(j, j);
	    selPaxInf.options[selPaxInf.options.length] = pax;                
    }
    selPaxInf.options[1].selected = true;
    
    var limitePaxChi = SelectSingleNode(manager,'//buscador/max_children');
    if (limitePaxChi.childNodes.length > 0) 
        numElem = limitePaxChi.childNodes[0].nodeValue;
    else
        numElem = 9;
    
    var selPaxChi = document.getElementById(comboBebes);
    for (var i = 0; i <= numElem; i++) {
        var pax = new Option(i, i);
	    selPaxChi.options[selPaxChi.options.length] = pax;
    }
    selPaxChi.options[1].selected = true;
}

function changeDates(dL, dA){
    var cFechaI = busName + fecha_Ida + '_bdpDate_textBox';    
    var txtFechaI = document.getElementById(cFechaI); 

    var cFechaR = busName + fecha_Regreso + '_bdpDate_textBox';    
    var txtFechaR = document.getElementById(cFechaR); 
    
    var fechaI;
    if(dL.length > 6) 
        fechaI = dL.substring(8,6) + "-" + dL.substring(6,4) + "-" + dL.substring(0,4);
    var fechaR = '';    
    if(dA.length > 6 && dA.length < 10) 
        fechaR = dA.substring(8,6) + "-" + dA.substring(6,4) + "-" + dA.substring(0,4);

    txtFechaI.value = fechaI;
    txtFechaR.value = fechaR;    
}

function Comparar_Date(fechaenterai, fechaenterar) {
    if (fechaenterai >= fechaenterar) {
        return true;
    }
    return false;
}

function showHidePropertyDivs(ElementID, valorpropiedad, tipo){
    var compropiedad = document.getElementById(ElementID);
    
    if (compropiedad != null) {
        if (valorpropiedad == '1'){
            compropiedad.style.visibility = 'visible';
            compropiedad.style.display = tipo;
        }else{
            compropiedad.style.visibility = 'hidden';
            compropiedad.style.display = 'none';
        }
    }
}

function showHideOpciones(){
    var rC = document.getElementById(spaDiv[0].ResCanario);
    var rB = document.getElementById(spaDiv[0].ResBalear);
    var oF = document.getElementById(spaDiv[0].FamiliaNumerosa);    
    var oE = document.getElementById(spaDiv[0].Especial);
    //var oG = document.getElementById(spaDiv[0].Baggage);    || oG.style.visibility == 'visible'
    oV = document.getElementById("opcionesVuelo");
    
    if (oV != null){            
        if (rC.style.visibility == 'visible' || rB.style.visibility == 'visible' || oF.style.visibility == 'visible' ) {            
            oV.style.visibility = 'visible';
            oV.style.display = 'block';
        } else {                
            oV.style.visibility = 'hidden';
            oV.style.display = 'none';
        }
    }
}

function desactivatedCheck(){
    
    if (document.getElementById('chResidenteBalear') != null) 
        document.getElementById('chResidenteBalear').checked = false;
    if (document.getElementById('chResidenteCanario') != null)
        document.getElementById('chResidenteCanario').checked = false;
    if (document.getElementById('chFlexible') != null)
        document.getElementById('chFlexible').checked = false;
    if (document.getElementById('chBaggage') != null)
        document.getElementById('chBaggage').checked = false;
}                
      
function opcionesIDVU(valorpropiedad){
    var divIda = document.getElementById(spaDiv[0].TipoViajeI);
    var divIdaVuelta = document.getElementById(spaDiv[0].TipoViajeIV);
    
    if (valorpropiedad == 'OW'){
        var chk = document.getElementById('tipoViajeIV').checked;
        if (chk){
            document.getElementById('tipoViajeIV').checked = true;
        } else {
            toggleDisable();
            document.getElementById('tipoViajeI').checked = true;
        }
        showHidePropertyDivs(spaDiv[0].TipoViajeI,1,'inline');
        showHidePropertyDivs(spaDiv[0].TipoViajeIV,1,'inline');
    }else{
        document.getElementById('tipoViajeIV').checked = true;
        showHidePropertyDivs(spaDiv[0].TipoViajeI,0,'inline');
        showHidePropertyDivs(spaDiv[0].TipoViajeIV,1,'inline');
        toggleEnable();
    }
}

function updateEndDate(sender){
    var params = sender.getControlId();
    var fechaIdaTxt;
    var fechaRegresoTxt;
    var fechaIda;
    var fechaRegreso;   
    
    if (busName != undefined) {
        fechaIda = busName + fecha_Ida + '_bdpDate';        
        fechaRegreso = busName + fecha_Regreso + '_bdpDate';
        fechaRegresoTxt = busName + fecha_Regreso + '_bdpDate_textBox';
    } else {
        fechaIda = 'ctl00_PHBody_BuscadorOfertas_' + fecha_Ida + '_dp';        
        fechaRegreso = 'ctl00_PHBody_BuscadorOfertas_' + fecha_Regreso + '_dp';
        fechaRegresoTxt = 'ctl00_PHBody_BuscadorOfertas_' + fecha_Regreso + '_dp_textBox';
    }
        
    var fecha1 = document.getElementById(fechaIda);
    var fecha2 = document.getElementById(fechaRegreso);
    var fechaTxt = document.getElementById(fechaRegresoTxt);    
        
    if (params != fechaRegreso){
        var startDate = sender.getSelectedDate();
        if (startDate != null) {
            var newMinEndDate = startDate.addDays(0); 
            basicDatePicker.setMinimumDate(startDate,fechaRegreso);
            basicDatePicker.setSelectedDate(newMinEndDate,fechaRegreso);            
        
            var newDate =  basicDatePicker.getSelectedDateFormatted(fechaIda);
            fecha1.value = newDate;
            fecha1.selectDate = newDate;
            if (fecha2 != null) {
                fechaTxt.value = newDate;
                fecha2.selectDate = newDate;
            }
        }                         
    }
    
    fechaIda = 'ctl00_PHBody_MultiBuscador1_BuscadorVuelos1_fecha_ida_bdpDate';        
    fechaRegreso = 'ctl00_PHBody_MultiBuscador1_BuscadorVuelos1_fecha_regreso_bdpDate';
    fechaRegresoTxt = 'ctl00_PHBody_MultiBuscador1_BuscadorVuelos1_fecha_regreso_bdpDate_textBox';    
        
    var fechaI = document.getElementById(fechaIda);
    var fechaR = document.getElementById(fechaRegreso);
    var fechaRTxt = document.getElementById(fechaRegresoTxt);    
        
    if (params != fechaRegreso && fechaI != null){
        var startDate = sender.getSelectedDate();
        if (startDate != null) {
            var newMinEndDate = startDate.addDays(0); 
            basicDatePicker.setMinimumDate(startDate,fechaRegreso);
            basicDatePicker.setSelectedDate(newMinEndDate,fechaRegreso);            
        
            var newDate =  basicDatePicker.getSelectedDateFormatted(fechaIda);
            fechaI.value = newDate;
            fechaI.selectDate = newDate;
            if (fechaR != null) {
                fechaRTxt.value = newDate;
                fechaR.selectDate = newDate;
            }
        }                         
    }
}

function toggleDisable(){
    var checkBox = document.getElementById('tipoViajeI');
    var boton = document.getElementById('btnVueloHotel');
    var boton1 = document.getElementById('btnVueloHotel1');
    if(checkBox.checked){
        basicDatePicker.setEnabled(false, busName + fecha_Regreso + '_bdpDate');        
        if (boton != null){ boton.style.visibility = 'hidden'; }
        if (boton1 != null){ boton1.style.visibility = 'hidden'; }
    }
    var fecha = document.getElementById(busName + fecha_Regreso + '_bdpDate_textBox');    
    fecha.disabled = true; 
}

function toggleEnable(){
    var checkBox = document.getElementById('tipoViajeIV');
    var boton = document.getElementById('btnVueloHotel');
    var boton1 = document.getElementById('btnVueloHotel1');
    if(checkBox.checked){
        basicDatePicker.setEnabled(true, busName + fecha_Regreso + '_bdpDate');
        if (boton != null){ boton.style.visibility = 'visible'; }
        if (boton1 != null){ boton1.style.visibility = 'visible'; }
    }
    var fecha = document.getElementById(busName + fecha_Regreso + '_bdpDate_textBox');    
    fecha.disabled = false; 
}

function ChangeReturnDate(){
    var fechaRegreso = document.getElementById(busName + fecha_Regreso + '_bdpDate_textBox');
    var fechaIda = document.getElementById(busName + fecha_ida + '_bdpDate_textBox');
    var boton = document.getElementById('btnVueloHotel');
    var boton1 = document.getElementById('btnVueloHotel1');
    if (fechaRegreso.value == fechaIda.value)
    {
        if (boton != null){ boton.style.visibility = 'hidden'; }
        if (boton1 != null){ boton1.style.visibility = 'hidden'; }
    }else{
        if (boton != null){ boton.style.visibility = 'visible'; }
        if (boton1 != null){ boton1.style.visibility = 'visible'; }
    }
}
                
function desplegarOpciones(){    
    var masOpc = document.getElementById("masOpc");
    masOpc.style.visibility = 'hidden';
    masOpc.style.display = 'none';
    var opciones = document.getElementById("opciones");
    opciones.style.visibility = 'visible';
    opciones.style.display = '';       
}

function selcheck(sender) {
    var chk = eval('document.forms[0].'+sender);
    if (sender == 'chResidenteCanario' || sender == 'chResidenteBalear'){
        var chkB = document.forms[0].chResidenteBalear;
        var chkC = document.forms[0].chResidenteCanario;
                
        if (sender == 'chResidenteCanario'){ 
            if (chkB.checked){
                chkB.checked=false;
                chkC.checked=true;
            }
        }
        if (sender == 'chResidenteBalear'){ 
            if (chkC.checked){
                chkC.checked=false;
                chkB.checked=true;
            }
        }
    }else{
        chk.checked=!chk.checked;
    }
}

function checkdate(datevalidate){
    var returnval = false;
    if (datevalidate.length > 10){
        returnval = false;
    }else{ 
        var dayfield=datevalidate.split('/')[0];
        var monthfield=datevalidate.split('/')[1];
        var yearfield=datevalidate.split('/')[2];
        var dayobj = new Date(yearfield, monthfield-1, dayfield);
        if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield)){
            returnval = false;
        }else{
            returnval = true;
        }
    }
    return returnval;
}

function checkFechasCorporates(fechavueloi, fechavuelor, fechaenterai, fechaenterar){
    var returnval = false;    
    
    if (fechaenterai.length == 0){
        returnval = true;
    }else{         
        var dayfield=fechaenterai.substring(0,2);
        var monthfield=fechaenterai.substring(4,2);
        var yearfield=fechaenterai.substring(8,4);
        var idate = yearfield + '' + monthfield + '' + dayfield;
        dayfield=fechaenterar.substring(0,2);
        monthfield=fechaenterar.substring(4,2);
        yearfield=fechaenterar.substring(8,4);
        var rdate = yearfield + '' + monthfield + '' + dayfield;
        if (fechavueloi >= idate && fechavueloi <= rdate && fechavuelor >= idate && fechavuelor <= rdate){
            returnval = true;
        }
    }
    return returnval;
}

function checkFechasMaximasVuelo(fechavueloi, fechavuelor, fechaenterai, fechaenterar){
    var returnval = false;    
    
    if (fechaenterai.length == 0){
        returnval = true;
    }else{         
        var dayfield=fechaenterai.substring(0,2);
        var monthfield=fechaenterai.substring(4,2);
        var yearfield=fechaenterai.substring(8,4);
        var idate = yearfield + '' + monthfield + '' + dayfield;
        dayfield=fechaenterar.substring(0,2);
        monthfield=fechaenterar.substring(4,2);
        yearfield=fechaenterar.substring(8,4);
        var rdate = yearfield + '' + monthfield + '' + dayfield;
        if (fechavueloi <= idate && fechavueloi <= rdate && fechavuelor <= idate && fechavuelor <= rdate){
            returnval = true;
        }
    }
    return returnval;
}

function checkDateYear(fechaentera) {
    var datehoy=new Date();
    datehoy.setDate(datehoy.getDate() + 360);
    
    var dhd = datehoy.getDate().toString();
    if (dhd.length != 2){dhd = '0' + dhd;}
    var dhm = (datehoy.getMonth() + 1).toString();
    if (dhm.length != 2){dhm = '0' + dhm;}
    var dha = datehoy.getFullYear();
    var dhjapo = dha + '' + dhm + '' + dhd;

    if ((fechaentera) >= dhjapo) {
        return true;
    }
    return false;
}

function currentDateValid(fechaentera, hora) {
    var datehoy=new Date();
    
    var curHour = datehoy.getHours();
    
    var dhd = datehoy.getDate().toString();
    if (dhd.length != 2){dhd = '0' + dhd;}
    var dhm = (datehoy.getMonth() + 1).toString();
    if (dhm.length != 2){dhm = '0' + dhm;}
    var dha = datehoy.getFullYear();
    var dhjapo = dha + '' + dhm + '' + dhd;

    if ((fechaentera) == dhjapo && curHour >= hora) {
        return false;
    }
    return true;
}

function Comparar_Date_hoy(fechaentera) {
    var datehoy=new Date();
    var dhd = datehoy.getDate().toString();
    if (dhd.length != 2){dhd = '0' + dhd;}
    var dhm = (datehoy.getMonth() + 1).toString();
    if (dhm.length != 2){dhm = '0' + dhm;}
    var dha = datehoy.getFullYear();
    var dhjapo = dha + '' + dhm + '' + dhd;

    if ((fechaentera) >= dhjapo) {
        return true;
    }
    return false;
}

function IsCorrectDate (diasSemana, fecha) {

    if (diasSemana != '') {
        var dias = diasSemana.split(",");    
        var dia = fecha.getDay();
        if (dia == 0)
            dia = 7;        
            
        for (var i=0; i < dias.length; i++) {
            if (dia == dias[i])
                return true;
        }
    } else
        return true;
        
    return false;
}

function containsAirport(airports, code) {    
    if (airports.childNodes.length > 0 && airports.childNodes[0].nodeValue.trim() != '') {        
        return airports.childNodes[0].nodeValue.indexOf(code) >= 0;
    }else{
        return true;
    }
    
}

function cargarObjetos (busControlName, combo_origen, combo_destino, fecha_I, fecha_R, combo_adultos, combo_ninos, combo_bebes) {
  busName = busControlName;
  comboOrigen = combo_origen; 
  comboDestino = combo_destino;
  fecha_Ida = fecha_I;
  fecha_Regreso = fecha_R;
  comboAdultos = combo_adultos;
  comboNinos = combo_ninos;
  comboBebes = combo_bebes;
    
}

function formatDate(field){
    var checkstr = "0123456789";
    var DateField = field;
    var Datevalue = "";
    var DateTemp = "";
    var seperator = "-";
    var day;
    var month;
    var year;
    var leap = 0;
    var err = 0;
    var i;
        
    err = 0;
    DateValue = DateField.value;
    for (i = 0; i < DateValue.length; i++) {
	    if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	        DateTemp = DateTemp + DateValue.substr(i,1);
	    }
    }

    DateValue = DateTemp;
    if (DateValue.length == 6) {
        DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
    if (DateValue.length != 8) {
        err = 19;}
    year = DateValue.substr(4,4);
    if (year == 0) {
        err = 20;
    }
    month = DateValue.substr(2,2);
    if ((month < 1) || (month > 12)) {
        err = 21;
    }
    day = DateValue.substr(0,2);
    if (day < 1) {
        err = 22;
    }
    if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
        leap = 1;
    }
    if ((month == 2) && (leap == 1) && (day > 29)) {
        err = 23;
    }
    if ((month == 2) && (leap != 1) && (day > 28)) {
        err = 24;
    }
    if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
        err = 25;
    }
    if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
        err = 26;
    }
    if ((day == 0) && (month == 0) && (year == 00)) {
        err = 0; day = ""; month = ""; year = ""; seperator = "";
    }
    if (err == 0) {
        DateField.value = day + seperator + month + seperator + year;
    }
}

function checkFamNum5(check) {    
    if (check.checked) 
        document.getElementById("chFamNum10").checked = false;         
}

function checkFamNum10(check) {
    if (check.checked) 
        document.getElementById("chFamNum5").checked = false;         
}

function format(str)
{
  for(i = 1; i < arguments.length; i++) {
    str = str.replace('{' + (i - 1) + '}', arguments[i]);
  }
  return str;
}

