// JavaScript Document

//----------------------------------------------------------------------------
// Utilities
//----------------------------------------------------------------------------

function sortComboBox(combo){
	for(i=0; i<combo.length; i++)
		for(j=combo.length-1; j>=i; j--)
			if (combo[i].text > combo[j].text) {				
				fId = combo[i].id;
				fText = combo[i].text;
          		fValue = combo[i].value;
          		fSel = combo[i].selected;
 
				combo[i].id = combo[j].id;
	            combo[i].text = combo[j].text;
      		    combo[i].value = combo[j].value;  
      		    combo[i].selected = combo[j].selected;
         
          		combo[j].id = fId;
          		combo[j].text = fText;
          		combo[j].value = fValue;
          		combo[j].selected = fSel;
			}
}
 
function executeAction(form){
	document.getElementById(form).submit();	
}

function executePopUp(action){
	var a = document.getElementById('result').options[0].value;
	var path = action+'?sel=' + a ;
	openWindowPopupsTop(path,320,220,100,170);
}

function validateNights(min,max,fechai,fechao,msgmin,msgmax,id){
	var checkin =document.getElementById(fechai).value;
	var checkout = document.getElementById(fechao).value;
	var day = 1000*60*60*24;
	var chkout = checkout.split("/");
	var chkin = checkin.split("/");
	var fout = new Date(chkout[1]+"/"+chkout[0]+"/"+chkout[2]);
	var fin = new Date(chkin[1]+"/"+chkin[0]+"/"+chkin[2]);
	var dif = fout.getTime() - fin.getTime();
	if (dif < (day*min)){
		document.getElementById(fechao).value = " ";
		alert(msgmin);
		return;
		}
		if (dif > (day*max)){
		document.getElementById(fechao).value = " ";
			alert(msgmax);
			return;
			}
	document.getElementById(id).submit();
}

function validateMinor(id,formbean,idType,idMin){
	var numberValue = Number(id) - 1;
	var idTypeRoom = "categ" + numberValue;
    var id1=formbean;
	var typeRoomValue =document.getElementById(idTypeRoom).value;
    var id2 = "cr"+idType+"cat"+typeRoomValue;
    var idAdult="greaters"+idType+"cat"+typeRoomValue;
	var adults = document.getElementById(idAdult).value;
	
	if(adults != ''){
		var idMinor1="minorsOne" + idType + "cat" + typeRoomValue;
		var idMinor2="minorsTwo" + idType + "cat" + typeRoomValue;
	
		var minor1 = "0";
		if(document.getElementById(idMinor1) != null){
			minor1=document.getElementById(idMinor1).value;
		}							
		var minor2="0";
		if(document.getElementById(idMinor2) != null){
			minor2=document.getElementById(idMinor2).value;
		}							

		var cantSel = document.getElementById(id2).value;
		var aux = (document.getElementById(idTypeRoom).value) * (Number(cantSel));
		var m1 = 0;
		var m2 = 0;	
		if (minor1 != ''){
			m1 = Number (minor1);
		}
		if (minor2 != ''){
			m2 = Number (minor2);
		}
		var mins = m1 + m2;
		if(mins > aux){
			if(idMin == '1'){
				document.getElementById(idMinor1).value = '';
				m1 = 0;
			}else{
				document.getElementById(idMinor2).value = ''
				m2 = 0;
			}
			mins = m1 + m2;
			var gre = aux - mins;	
			document.getElementById(idAdult).value=gre;
			alert("La cantidad de menores supera el total de huespedes permitidos por la categoria");
		}else{		
			var gre = aux - mins;	
			document.getElementById(idAdult).value=gre;
		}
	}    
}

           function validateAdult(id,formbean,idType){
                   //disponibles
                     var numberValue = Number(id);
                     var idTypeRoom = "categ" + numberValue;
                     var id1=formbean;
                     var idRow="aux"+idType;
                     var idRowaux="auxaux"+idType;
                     var availableValue = document.getElementById(idRow).value;
                     var typeRoomValue =document.getElementById(idTypeRoom).value;
                     var idAdult="greaters"+idType+"cat"+typeRoomValue;
					 var idMinor1="minorsOne" + idType + "cat" + typeRoomValue;
					 var idMinor2="minorsTwo" + idType + "cat" + typeRoomValue;
					 
                     var adulto=document.getElementById(idAdult).value;
					 var minor1 = "0";
					 if(document.getElementById(idMinor1) != null){
                     	minor1=document.getElementById(idMinor1).value;
		 			 }							
                     var minor2="0";
					 if(document.getElementById(idMinor2) != null){
                     	minor2=document.getElementById(idMinor2).value;
		 			 }							

                     var disponibles=document.getElementById(idRowaux).value;

                     var roomValue = document.getElementById(id1).value;
                     var roomValueNumber= Number(roomValue);
                     var disponiblesNumber = Number(disponibles);
                    if(document.getElementById(id1).value==""){
                           var tr = Number(typeRoomValue)
                           var res = Number(disponibles);
							var guest = Number(minor1) + Number(minor2) + Number(adulto);
							var div = guest / tr;
                            suma = res + div;
                            document.getElementById(idRowaux).value= suma;

                        document.getElementById(idAdult).value='';
						if(document.getElementById(idMinor1) != null){
							document.getElementById(idMinor1).value='';
						}
						if(document.getElementById(idMinor2) != null){
							document.getElementById(idMinor2).value='';
						}
                      }
                      else if(!isNumber(roomValue)){
                        document.getElementById(id1).value = '';
                          if(document.getElementById(idAdult).value !=''){
                            var tr = Number(typeRoomValue)
                            var res = Number(disponibles);
                            var guest = Number(minor1) + Number(minor2) + Number(adulto);
							var div = guest / tr;
                            suma = res + div;
                            document.getElementById(idRowaux).value= suma;
                       }
                       document.getElementById(idAdult).value='';
						if(document.getElementById(idMinor1) != null){
							document.getElementById(idMinor1).value='';
						}
						if(document.getElementById(idMinor2) != null){
							document.getElementById(idMinor2).value='';
						}
					   alert("El valor ingresado debe ser un entero");                        
                      } else{
                        if(document.getElementById(id1).value.length == 1 && document.getElementById(id1).value==0 ){
                         document.getElementById(id1).value='';
                         document.getElementById(idAdult).value='';
						if(document.getElementById(idMinor1) != null){
							document.getElementById(idMinor1).value='';
						}
						if(document.getElementById(idMinor2) != null){
							document.getElementById(idMinor2).value='';
						}

                        }else {
                        if(roomValueNumber > disponiblesNumber){
                           document.getElementById(id1).value='';
                           if(document.getElementById(idAdult).value != ''){
                            var tr = Number(typeRoomValue)
                            var res = Number(disponibles);
                            var guest = Number(minor1) + Number(minor2) + Number(adulto);
							var div = guest / tr;
                            suma = res + div;
                            document.getElementById(idRowaux).value= suma;
                           }
                           document.getElementById(idAdult).value = '';
						if(document.getElementById(idMinor1) != null){
							document.getElementById(idMinor1).value='';
						}
						if(document.getElementById(idMinor2) != null){
							document.getElementById(idMinor2).value='';
						}
						   alert("El Nº de habitaciones seleccionadas supera a las disponibles");                           
                        }
                        else {
                           if(disponiblesNumber >= 0){
                              var actual=(document.getElementById(idRowaux).value)-(document.getElementById(id1).value);
                              document.getElementById(idRowaux).value = actual;
                           }
							var aux = (document.getElementById(idTypeRoom).value) * (document.getElementById(id1).value);
							var m1 = 0;
							var m2 = 0;	
							if (minor1 != ''){
								m1 = Number (minor1);
							}
							if (minor2 != ''){
								m2 = Number (minor2);
							}
							var gre = aux - m1 - m2;
                           document.getElementById(idAdult).value=gre;
                        }
                      }
                    }

             };
             
			 
function validateMinorMultiple(id,formbean,idType,idMin,idLodge){
	var cat = id
    var id1=formbean;
	var id2 = "cr"+idType+"cat"+cat+"res"+idLodge;
    var idAdult="greaters"+idType+"cat"+cat+"res"+idLodge;
	var adults = document.getElementById(idAdult).value;
	
	if(adults != ''){
		var idMinor1="minorsOne" + idType + "cat" + cat+"res"+idLodge;
		var idMinor2="minorsTwo" + idType + "cat" + cat+"res"+idLodge;
	
		var minor1 = "0";
		if(document.getElementById(idMinor1) != null){
			minor1=document.getElementById(idMinor1).value;
		}							
		var minor2="0";
		if(document.getElementById(idMinor2) != null){
			minor2=document.getElementById(idMinor2).value;
		}							

		var cantSel = document.getElementById(id2).value;
		var aux = (cat) * (Number(cantSel));
		var m1 = 0;
		var m2 = 0;	
		if (minor1 != ''){
			m1 = Number (minor1);
		}
		if (minor2 != ''){
			m2 = Number (minor2);
		}
		var mins = m1 + m2;
		if(mins > aux){
			if(idMin == '1'){
				document.getElementById(idMinor1).value = '';
				m1 = 0;
			}else{
				document.getElementById(idMinor2).value = ''
				m2 = 0;
			}
			mins = m1 + m2;
			var gre = aux - mins;	
			document.getElementById(idAdult).value=gre;
			alert("La cantidad de menores supera el total de huespedes permitidos por la categoria");
		}else{		
			var gre = aux - mins;	
			document.getElementById(idAdult).value=gre;
		}
	}    
}
             function validateAdultMultiple(id,formbean,idType,idLodge){
                   //disponibles
                  	 //var numberValue = Number(id);
                     //var idTypeRoom = 100 + numberValue;
                     //var typeRoomValue =document.getElementById(idTypeRoom).value;
                     var cat=id;
                     
                     var id1=formbean;
                     var roomValue = document.getElementById(id1).value;
                     var roomValueNumber= Number(roomValue);
                     
                     var idRow="aux"+idType+"res"+idLodge;
                     var availableValue = document.getElementById(idRow).value;
                     
                     var idRowaux="auxaux"+idType+"res"+idLodge;
                     var disponibles=document.getElementById(idRowaux).value;
                     var disponiblesNumber = Number(disponibles);
                     
                     var idAdult="greaters"+idType+"cat"+cat+"res"+idLodge;
                     var adulto=document.getElementById(idAdult).value;
                    
					 var idMinor1="minorsOne" + idType + "cat" + cat+"res"+idLodge;
					 var idMinor2="minorsTwo" + idType + "cat" + cat+"res"+idLodge;

                     var minor1 = "0";
					 if(document.getElementById(idMinor1) != null){
                     	minor1=document.getElementById(idMinor1).value;
		 			 }							
                     var minor2="0";
					 if(document.getElementById(idMinor2) != null){
                     	minor2=document.getElementById(idMinor2).value;
		 			 }		
					 
                    if(document.getElementById(id1).value==""){
                    	   var tr = Number(cat)
                           var res = Number(disponibles);
                           var res = Number(disponibles);
						   var guest = Number(minor1) + Number(minor2) + Number(adulto);
						   var div = guest / tr;
                           suma = res + div;                            
                           //document.getElementById(idRowaux).value= suma;
                           disponiblesNumber= suma;

                        document.getElementById(idAdult).value='';
						if(document.getElementById(idMinor1) != null){
							document.getElementById(idMinor1).value='';
						}
						if(document.getElementById(idMinor2) != null){
							document.getElementById(idMinor2).value='';
						}
                      }
                      else if(!isNumber(roomValue)){
                        document.getElementById(id1).value = '';
                          if(document.getElementById(idAdult).value !=''){
                            var tr = Number(cat)
                           var res = Number(disponibles);
                           var res = Number(disponibles);
						   var guest = Number(minor1) + Number(minor2) + Number(adulto);
						   var div = guest / tr;
                           suma = res + div;                            
                           //document.getElementById(idRowaux).value= suma;
                           disponiblesNumber = suma;
                       }
                       document.getElementById(idAdult).value='';
						if(document.getElementById(idMinor1) != null){
							document.getElementById(idMinor1).value='';
						}
						if(document.getElementById(idMinor2) != null){
							document.getElementById(idMinor2).value='';
						}
					   alert("El valor ingresado debe ser un entero");                        
                      } else{
                        if(document.getElementById(id1).value.length == 1 && document.getElementById(id1).value==0 ){
                         document.getElementById(id1).value='';
                         document.getElementById(idAdult).value='';
						if(document.getElementById(idMinor1) != null){
							document.getElementById(idMinor1).value='';
						}
						if(document.getElementById(idMinor2) != null){
							document.getElementById(idMinor2).value='';
						}

                        }else {
                        if(roomValueNumber > disponiblesNumber){
                           document.getElementById(id1).value='';
                           if(document.getElementById(idAdult).value != ''){
                           var tr = Number(cat)
                           var res = Number(disponibles);
                           var res = Number(disponibles);
						   var guest = Number(minor1) + Number(minor2) + Number(adulto);
						   var div = guest / tr;
                           suma = res + div;                            
                           //document.getElementById(idRowaux).value= suma;
                           disponiblesNumber = suma;
                           }
                           document.getElementById(idAdult).value = '';
						if(document.getElementById(idMinor1) != null){
							document.getElementById(idMinor1).value='';
						}
						if(document.getElementById(idMinor2) != null){
							document.getElementById(idMinor2).value='';
						}
						   alert("El Nº de habitaciones seleccionadas supera a las disponibles");                           
                        }
                        else {
                           if(disponiblesNumber >= 0){
                              //var actual=(document.getElementById(idRowaux).value)-(document.getElementById(id1).value);
                              var actual=disponiblesNumber-(document.getElementById(id1).value);
                              //document.getElementById(idRowaux).value = actual;
                              disponiblesNumber = actual;
                           }
						   
						   var aux = (cat) * (document.getElementById(id1).value);
							var m1 = 0;
							var m2 = 0;	
							if (minor1 != ''){
								m1 = Number (minor1);
							}
							if (minor2 != ''){
								m2 = Number (minor2);
							}
							var gre = aux - m1 - m2;
                           document.getElementById(idAdult).value=gre;
                        }
                      }
                    }

             };

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function CompruebaValidoEntero(id)
{
	var valor = document.getElementById(id).value;
    if(!isNumber(valor)) { 
       //alert ("Debe escribir un entero!");
       return false;
    }else{ 
       if (Number(valor) < 0){
		//alert ("Debe escribir un n?mero mayor a cero");
		return false;
       }else{
			return true;
		}
	}
	return true;
}

function isNumber (s)
{
    var i;
    var dotAppeared;
    dotAppeared = false;
    if (isEmpty(s))
       return false;

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if( i != 0 ) {
            if ( c == "." ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else
                if (!isDigit(c)) return false;
        } else {
            if ( c == "." ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else
                if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}



function textCounter(text,counter){
  var length_max = 500;
  var length_actual = 0;
  var result;
  textarea = document.getElementById(text);
  cadena = textarea.value;
  length_actual = textarea.value.length;
  result = length_max - length_actual;
  if(result < 0){
	document.getElementById(counter).value = 0;
	var maxT = "";
	for(var i=0;i<length_max;i++){
	  maxT = maxT + cadena.charAt(i);
	}
	document.getElementById(text).value = maxT;
  }
  else{
    document.getElementById(counter).value = result;
  }
}

var stateSubR,stateGuest,stateFly,stateSp,hzaTableSubR,hzaTableGuest,hzaTableFly,hzaTableSp,hzaTableHide;
stateSubR = 'none';
stateGuest = 'none';
stateFly = 'none';
stateSp = 'none';

function showTableSubR(ref,st){
  stateSubR = st;
  if (document.all) { //IS IE 4 or 5 (or 6 beta)
	eval( "document.all." + ref + ".style.display = stateSubR");
  }
  if (document.layers) { //IS NETSCAPE 4 or below
	document.layers[ref].display = stateSubR; }
  if (document.getElementById &&!document.all) {
	hzaTableSubR = document.getElementById(ref);
	hzaTableSubR.style.display = stateSubR;
  }
}

function showTableGuest(ref,st){
  stateGuest = st;
  if (document.all) { //IS IE 4 or 5 (or 6 beta)
	eval( "document.all." + ref + ".style.display = stateGuest");
  }
  if (document.layers) { //IS NETSCAPE 4 or below
	document.layers[ref].display = stateGuest; }
  if (document.getElementById &&!document.all) {
	hzaTableGuest = document.getElementById(ref);
	hzaTableGuest.style.display = stateGuest;
  }
}

function showTableFly(ref,st){
  stateFly = st;
  if (document.all) { //IS IE 4 or 5 (or 6 beta)
	eval( "document.all." + ref + ".style.display = stateFly");
  }
  if (document.layers) { //IS NETSCAPE 4 or below
	document.layers[ref].display = stateFly; }
  if (document.getElementById &&!document.all) {
	hzaTableFly = document.getElementById(ref);
	hzaTableFly.style.display = stateFly;
  }
}

function showTableSp(ref,st){
  stateSp = st;
  if (document.all) { //IS IE 4 or 5 (or 6 beta)
	eval( "document.all." + ref + ".style.display = stateSp");
  }
  if (document.layers) { //IS NETSCAPE 4 or below
	document.layers[ref].display = stateSp; }
  if (document.getElementById &&!document.all) {
	hzaTableSp = document.getElementById(ref);
	hzaTableSp.style.display = stateSp;
  }
}

function showHideTabs(ref){
	if(ref=='tableSubR'){
		  if(stateSubR == 'none'){
		    showTableSubR('tableSubR','block');
			showTableGuest('tableGuest','none');
			showTableFly('tableFly','none');
			showTableSp('tableSp','none');
		  }
	}
	if(ref=='tableGuest'){
		  if(stateGuest == 'none'){
		    showTableSubR('tableSubR','none');
			showTableGuest('tableGuest','block');
			showTableFly('tableFly','none');
			showTableSp('tableSp','none');
		  }
	}
	if(ref=='tableFly'){
		  if(stateFly == 'none'){
		    showTableSubR('tableSubR','none');
			showTableGuest('tableGuest','none');
			showTableFly('tableFly','block');
			showTableSp('tableSp','none');
		  }
	}

	if(ref=='tableSp'){
		  if(stateSp == 'none'){
		    showTableSubR('tableSubR','none');
			showTableGuest('tableGuest','none');
			showTableFly('tableFly','none');
			showTableSp('tableSp','block');
		  }
	}
	//Hide all
	if(ref=='hide'){
		    showTableSubR('tableSubR','none');
			showTableGuest('tableGuest','none');
			showTableFly('tableFly','none');
			showTableSp('tableSp','none');
	}

}

function showHideTabsSubreservation(ref){
	if(ref=='tableGuest'){
		  if(stateGuest == 'none'){
		  	try{
				showTableGuest('tableGuest','block');
		  	}catch(e){}
			showTableFly('tableFly','none');
			showTableSp('tableSp','none');
		  }
	}
	if(ref=='tableFly'){
		  if(stateFly == 'none'){
		  	try{
				showTableGuest('tableGuest','none');
			}catch(e){}
			showTableFly('tableFly','block');
			showTableSp('tableSp','none');
		  }
	}

	if(ref=='tableSp'){
		  if(stateSp == 'none'){
		  	try{
				showTableGuest('tableGuest','none');
		  	}catch(e){}
			showTableFly('tableFly','none');
			showTableSp('tableSp','block');
		  }
	}
	//Hide all
	if(ref=='hide'){
			try{
				showTableGuest('tableGuest','none');
			}catch(e){}
			showTableFly('tableFly','none');
			showTableSp('tableSp','none');
	}
}


  var img_left_off ="/x/cortes/solapa_off_izq.gif";
  var img_right_off ="/x/cortes/solapa_off_der.gif";
  var img_left_on ="/x/cortes/solapa_on_izq.gif";
  var img_right_on ="/x/cortes/solapa_on_der.gif";

function cambiarImg(izq,div,der) {
    var izquierda   = document.getElementById(izq);
	var div_center   = document.getElementById(div);
	var derecha = document.getElementById(der);
    if(div_center.className=="SolapaOff"){
	   div_center.className="SolapaOn";
	   izquierda.src=img_left_on;
	   derecha.src=img_right_on;
	}

	else {
	   div_center.className="SolapaOff";
	   izquierda.src=img_left_off;
	   derecha.src=img_right_off;
	}
}

//Url for Modify case
function getUrlByModify(url,id){
	document.getElementById(id).action = url;
}


//Date
function date(){
	var mydate=new Date();
	var year=mydate.getYear();
	if (year < 1000)
		year+=1900;
	var day=mydate.getDay();
	var month=mydate.getMonth()+1;
	if (month<10)
		month="0"+month;
	var daym=mydate.getDate();
	if (daym<10)
		daym="0"+daym;
	var date=daym+"/"+month+"/"+year;
	document.write(date);
}


function sumar(element1,multiplo,result)
{
	monto = (document.getElementById(element1).value * multiplo);
	document.getElementById(result).value = monto;
}


function selectAll_Inventory(){
    for(j = 0; j < document.form1.elements.length; j++){
	   if(document.form1.elements[j].name!="channel" && document.form1.elements[j].name!="bloqueo"){
		if(document.getElementById("all").checked){
   		  document.form1.elements[j].checked=true;
               }
		else{
		  document.form1.elements[j].checked=false;
		}
	   }
     }
}


var state,hza;
state ='none';
function showhide(layer_ref,text1,text2,idLink) {
	if (state == 'block') {
		state = 'none';
		document.getElementById(idLink).innerHTML = text1;
	}
	else {
		state = 'block';
		document.getElementById(idLink).innerHTML = text2;
	}
	if (document.all) { //IS IE 4 or 5 (or 6 beta)
		eval( "document.all." + layer_ref + ".style.display = state"); }
	if (document.layers) { //IS NETSCAPE 4 or below
		document.layers[layer_ref].display = state; }
	if (document.getElementById &&!document.all) {
		hza = document.getElementById(layer_ref);
		hza.style.display = state;
	}
}

var stateTable,hzaTable;
stateTable ='none';
function showhideTable(layer_ref) {
	if (stateTable == 'block') {
		stateTable = 'none';
	}
	else {
		stateTable = 'block';
	}
	if (document.all) { //IS IE 4 or 5 (or 6 beta)
		eval( "document.all." + layer_ref + ".style.display = stateTable"); }
	if (document.layers) { //IS NETSCAPE 4 or below
		document.layers[layer_ref].display = stateTable; }
	if (document.getElementById &&!document.all) {
		hzaTable = document.getElementById(layer_ref);
		hzaTable.style.display = stateTable;
	}
}


function check(checked){
  for(j=1;j<checked;j++){
    var id="i"+j;
    var check="ck"+j;
    if(document.getElementById(id).value!=""){
     document.getElementById(check).checked=true;
    }
  }
  }

var array = new Array();
var numberClient = "";

function associate(id1,id2){
   var lenght = document.getElementById(id1).options.length;
   var j = document.getElementById(id2).options.length;
   for(i=0;i<lenght;i++){
      if(document.getElementById(id1).options[i].selected){
	      valueOption = document.getElementById(id1).options[i].value;
		  textOption = document.getElementById(id1).options[i].text;
		  document.getElementById(id2).options[j] = new Option(textOption,valueOption);
		  document.getElementById(id1).options[i] = null;
		  value = document.getElementById(id2).options[j].value;
          var arraySize = array.length ;
          array[arraySize]=value;
          j++;
          lenght = document.getElementById(id1).options.length ;
          i = -1;

      }
   }
   if(document.getElementById(id2).options.length > 1){
       document.getElementById("number").disabled=true;
       if(document.getElementById("number").value != ""){
          numberClient = document.getElementById("number").value;
       }
       document.getElementById("number").value="";
   }else{
       document.getElementById("number").disabled=false;
   }
}
function unassociate(id1,id2){
   var lenght = document.getElementById(id1).options.length;
   var j = document.getElementById(id2).options.length;
   for(i=0;i<lenght;i++){
      if(document.getElementById(id1).options[i].selected){
	      valueOption = document.getElementById(id1).options[i].value;
		  textOption = document.getElementById(id1).options[i].text;
		  document.getElementById(id2).options[j] = new Option(textOption,valueOption);
		  document.getElementById(id1).options[i] = null;
          value = document.getElementById(id2).options[j].value;
		  lenghtArray = array.length;
		  for(k=0;k<=lenghtArray;k++){
		  	if(array[k]==value){
			  array2 = array.splice(k,1);
			  lenghtArray--;
			}
		  }
          j++;
          lenght = document.getElementById(id1).options.length;
          i = -1;
      }
   }
   if(document.getElementById(id1).options.length > 1){
       document.getElementById("number").disabled=true;
   }else{
       document.getElementById("number").disabled=false;
       document.getElementById("number").value = numberClient;
   }
}


function getArray(idInput){
   document.getElementById(idInput).value = array ;
}

function showhideIA(layer_ref1,layer_ref2,img1_1,img1_2,img2_1,img2_2) {
		state1 ='none';
		state2 ='block';

       if(layer_ref1=='div1'){
		hza = document.getElementById(layer_ref1);
		hza.style.display = state2;
		hza2 = document.getElementById(layer_ref2);
		hza2.style.display = state1;
		document.getElementById('img1_1').src=img1_1;
		document.getElementById('img1_2').src=img1_2;
		document.getElementById('img2_1').src=img2_1;
    	        document.getElementById('img2_2').src=img2_2;
		document.getElementById('td2_1').style.backgroundColor = "#B4B6BA";
		document.getElementById('td2_2').style.backgroundColor = "#B4B6BA";
		document.getElementById('td1_1').style.backgroundColor = "#EDEEEF";
		document.getElementById('td1_2').style.backgroundColor = "#EDEEEF";
       }
	   else{
		hza = document.getElementById(layer_ref2);
		hza.style.display = state1;
		hza2 = document.getElementById(layer_ref1);
		hza2.style.display = state2;
		document.getElementById('img1_1').src=img2_1;
		document.getElementById('img1_2').src=img2_2;
		document.getElementById('img2_1').src=img1_1;
    	        document.getElementById('img2_2').src=img1_2;
		document.getElementById('td1_1').style.backgroundColor = "#B4B6BA";
		document.getElementById('td1_2').style.backgroundColor = "#B4B6BA";
		document.getElementById('td2_1').style.backgroundColor = "#EDEEEF";
		document.getElementById('td2_2').style.backgroundColor = "#EDEEEF";
	   }
}
//----------------------------------------------------------------------------
// Confirm
//----------------------------------------------------------------------------

function dialogConfirm(message,url)
{
   if (confirm(message)){
       document.location.href=url;
    }

}
//----------------------------------------------------------------------------
// Menu
//----------------------------------------------------------------------------

function openWindowHelp(url)
{
    var w = window.open (url, "win", "height=200,width=350,left=300,top=300");
}

function openWindowPopups(url,width,height)
{
    var w = window.open (url, "win", "height="+height+",width="+width+",left=300,top=300,scrollbars=1");
}


var cantAbiert,cantRepet,cantPopup;

cantAbiert = "0";
cantRepet = "rep";
cantPopup = "";

function openWindowPopupsSabana(url,width,height)
{
	 cantAbiert=cantAbiert+"1";
	 cantPopup=cantRepet+cantAbiert;
	 	 
     window.open (url, cantPopup, "height="+height+",width="+width+",left=300,top=300,scrollbars=1");
}

function openWindowPopupsTop(url,width,height,left,top)
{
    var w = window.open (url, "win", "height="+height+",width="+width+",left="+left+",top="+top+",scrollbars=1");
}

function openPopups(url,name,width,height)
{
    var w = window.open (url, name, "height="+height+",width="+width+",left=300,top=300,scrollbars=1");
}


function Browser()
{
       var ua, s, i;

       this.isIE    = false;  // Internet Explorer

       this.isNS    = false;  // Netscape

       this.version = null;

       ua = navigator.userAgent;

       s = "MSIE";
       if ((i = ua.indexOf(s)) >= 0)
     {
         this.isIE = true;
         this.version = parseFloat(ua.substr(i + s.length));
         return;
       }

       s = "Netscape6/";
       if ((i = ua.indexOf(s)) >= 0)
     {
         this.isNS = true;
         this.version = parseFloat(ua.substr(i + s.length));
         return;
       }

       // Treat any other "Gecko" browser as NS 6.1.


       s = "Gecko";
       if ((i = ua.indexOf(s)) >= 0)
     {
         this.isNS = true;
         this.version = 6.1;
         return;
       }
}

var browser = new Browser();

//----------------------------------------------------------------------------

// Code for handling the menu bar and active button.

//----------------------------------------------------------------------------


var activeButton = null;

function buttonClick(event, menuId)
{
       var button;

       // Get the target button element.


       if (browser.isIE)
    {
          button = window.event.srcElement;
       }
       else
    {
          button = event.currentTarget;
     }

       // Blur focus from the link to remove that annoying outline.


       button.blur();

       // Associate the named menu to this button if not already done.

       // Additionally, initialize menu display.


       if (button.menu == null)
     {
         button.menu = document.getElementById(menuId);
     }

     if (button.menu.isInitialized == null)
     {
      menuInit(button.menu);
       }

//For activate/deactivate on mouseover.


// Set mouseout event handler for the button, if not already done.


if (button.onmouseout == null)
{

     button.onmouseout = buttonOrMenuMouseout;
}

// Exit if this button is the currently active one.


if (button == activeButton)
{
     return false;
}

// Reset the currently active button, if any.


if (activeButton != null)
{
     resetButton(activeButton);
}
// Activate this button, unless it was the currently active one.


if (button != activeButton)
{
     depressButton(button);
    activeButton = button;
}
else
{
     activeButton = null;
}

     return false;
}

function buttonMouseover(event, menuId)
{
       var button;

       //For activate/deactivate on mouseover.


       // Activates this button's menu if no other is currently active.


       if (activeButton == null)
     {
         buttonClick(event, menuId);
         return;
       }

       // Find the target button element.


       if (browser.isIE)
     {
         button = window.event.srcElement;
       }
     else
    {
          button = event.currentTarget;
     }

       // If any other button menu is active, make this one active instead.


       if (activeButton != null && activeButton != button)
     {
         buttonClick(event, menuId);
     }
}

function depressButton(button)
{
       var x, y;

       // Update the button's style class to make it look like it's

       // depressed.


       button.className += " menuButtonActive";

       //For activate/deactivate on mouseover.


       // Set mouseout event handler for the button, if not already done.


       if (button.onmouseout == null)
     {
         button.onmouseout = buttonOrMenuMouseout;
       }
     if (button.menu.onmouseout == null)
    {
           button.menu.onmouseout = buttonOrMenuMouseout;
     }

       // Position the associated drop down menu under the button and

       // show it.


       x = getPageOffsetLeft(button) - 10;
       y = getPageOffsetTop(button) + button.offsetHeight;

       // For IE, adjust position.


       if (browser.isIE)
     {
         x += button.offsetParent.clientLeft;
         y += button.offsetParent.clientTop;
       }

     // You can modify the x and y positions here to move the drop down

       button.menu.style.left = x + "px";
       button.menu.style.top  = y + "px";
       button.menu.style.visibility = "visible";
}

function resetButton(button)
{
       // Restore the button's style class.


       removeClassName(button, "menuButtonActive" );

       // Hide the button's menu, first closing any sub menus.


       if (button.menu != null)
     {
         closeSubMenu(button.menu);
         button.menu.style.visibility = "hidden";
       }
}

//----------------------------------------------------------------------------

// Code to handle the menus and sub menus.

//----------------------------------------------------------------------------


function menuMouseover(event)
{
       var menu;

       // Find the target menu element.


       if (browser.isIE)
     {
         menu = getContainerWith(window.event.srcElement, "DIV", "menu" );
       }
     else
    {
          menu = event.currentTarget;
     }

       // Close any active sub menu.


       if (menu.activeItem != null)
     {
         closeSubMenu(menu);
     }
}

function menuItemMouseover(event, menuId)
{
       var item, menu, x, y;

       // Find the target item element and its parent menu element.


       if (browser.isIE)
     {
         item = getContainerWith(window.event.srcElement, "A", "menuItem" );
       }
     else
    {
          item = event.currentTarget;
       }

       menu = getContainerWith(item, "DIV", "menu" );

       // Close any active sub menu and mark this one as active.


       if (menu.activeItem != null)
     {
         closeSubMenu(menu);
       }

       menu.activeItem = item;

       // Highlight the item element.


       item.className += " menuItemHighlight";

       // Initialize the sub menu, if not already done.


       if (item.subMenu == null)
     {
         item.subMenu = document.getElementById(menuId);
    }
     if (item.subMenu.isInitialized == null)
    {
            menuInit(item.subMenu);
       }

       //For activate/deactivate on mouseover.


       // Set mouseout event handler for the sub menu, if not already done.


       if (item.subMenu.onmouseout == null)
     {
         item.subMenu.onmouseout = buttonOrMenuMouseout;
     }

       // Get position for submenu based on the menu item.


       x = getPageOffsetLeft(item) + item.offsetWidth;
       y = getPageOffsetTop(item);

       // Adjust position to fit in view.


       var maxX, maxY;

       if (browser.isNS)
     {
         maxX = window.scrollX + window.innerWidth;
         maxY = window.scrollY + window.innerHeight;
       }

       if (browser.isIE)
     {
         maxX = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft) +
           (document.documentElement.clientWidth != 0 ? document.documentElement.clientWidth :
          document.body.clientWidth);

          maxY = Math.max(document.documentElement.scrollTop, document.body.scrollTop) +
           (document.documentElement.clientHeight != 0 ? document.documentElement.clientHeight :
          document.body.clientHeight);
       }

       maxX -= item.subMenu.offsetWidth;
       maxY -= item.subMenu.offsetHeight;

       if (x > maxX)
     {
         x = Math.max(0, x - item.offsetWidth - item.subMenu.offsetWidth
           + (menu.offsetWidth - item.offsetWidth));

            y = Math.max(0, Math.min(y, maxY));
     }

       // Position and show the sub menu.


       item.subMenu.style.left = x  + "px";
       item.subMenu.style.top  = y + "px";
       item.subMenu.style.visibility = "visible";

       // Stop the event from bubbling.


       if (browser.isIE)
     {
         window.event.cancelBubble = true;
       }
     else
    {
          event.stopPropagation();
     }
}

function closeSubMenu(menu)
{
       if (menu == null || menu.activeItem == null)
     {
         return;
     }

       // Recursively close any sub menus.


       if (menu.activeItem.subMenu != null)
     {
         closeSubMenu(menu.activeItem.subMenu);
         menu.activeItem.subMenu.style.visibility = "hidden";
         menu.activeItem.subMenu = null;
       }

       removeClassName(menu.activeItem, "menuItemHighlight" );
       menu.activeItem = null;
}

//For activate/deactivate on mouseover. Handler for mouseout

// event on buttons and menus.


function buttonOrMenuMouseout(event)
{
       var el;

       // If there is no active button, exit.


       if (activeButton == null)
    {
          return;
     }

       // Find the element the mouse is moving to.


       if (browser.isIE)
     {
         el = window.event.toElement;
       }
     else if (event.relatedTarget != null)
     {
           el = (event.relatedTarget.tagName ? event.relatedTarget : event.relatedTarget.parentNode);
     }

       // If the element is not part of a menu, reset the active button.


       if (getContainerWith(el, "DIV", "menu" ) == null)
    {
          resetButton(activeButton);
         activeButton = null;
       }
}

//----------------------------------------------------------------------------

// Code to initialize menus.

//----------------------------------------------------------------------------


function menuInit(menu)
{
      var itemList, spanList;
       var textEl, arrowEl;
       var itemWidth;
       var w, dw;
       var i, j;

       // For IE, replace arrow characters.


       if (browser.isIE)
     {
         menu.style.lineHeight = "2.5ex";
         spanList = menu.getElementsByTagName("SPAN" );

         for (i = 0; i < spanList.length; i++)
           {
               if (hasClassName(spanList[i], "menuItemArrow" ))
               {
                  spanList[i].style.fontFamily = "Webdings";
                  spanList[i].firstChild.nodeValue = "4";
                }
          }
       }

       // Find the width of a menu item.


       itemList = menu.getElementsByTagName("A" );

      if (itemList.length > 0)
    {
          itemWidth = itemList[0].offsetWidth;
       }
       else
    {
          return;
     }

       // For items with arrows, add padding to item text to make the

       // arrows flush right.


       for (i = 0; i < itemList.length; i++)
    {
          spanList = itemList[i].getElementsByTagName("SPAN" );
         textEl  = null;
         arrowEl = null;

         for (j = 0; j < spanList.length; j++)
          {
                if (hasClassName(spanList[j], "menuItemText" ))
               {
                  textEl = spanList[j];
               }
                if (hasClassName(spanList[j], "menuItemArrow" ))
               {
                  arrowEl = spanList[j];
               }
         }

         if (textEl != null && arrowEl != null)
          {
                textEl.style.paddingRight = (itemWidth
             - (textEl.offsetWidth + arrowEl.offsetWidth)) + "px";
            }
       }

       // Fix IE hover problem by setting an explicit width on first item of

       // the menu.


       if (browser.isIE)
     {
         w = itemList[0].offsetWidth;
         itemList[0].style.width = w + "px";
         dw = itemList[0].offsetWidth - w;
         w -= dw;
         itemList[0].style.width = w + "px";
       }

       // Mark menu as initialized.



       menu.isInitialized = true;
}

//----------------------------------------------------------------------------

// General utility functions.

//----------------------------------------------------------------------------


function getContainerWith(node, tagName, className)
{
       // Starting with the given node, find the nearest containing element

       // with the specified tag name and style class.


       while (node != null)
     {
         if (node.tagName != null && node.tagName == tagName && hasClassName(node, className))
           {
                 return node;
         }

          node = node.parentNode;
       }

       return node;
}

function hasClassName(el, name)
{
       var i, list;

       // Return true if the given element currently has the given class

       // name.


       list = el.className.split(" " );

       for (i = 0; i < list.length; i++)
       {
         if (list[i] == name)
           {
               return true;
          }

            return false;
     }
}

function removeClassName(el, name)
{
       var i, curList, newList;

       if (el.className == null)
     {
         return;
     }

       // Remove the given class name from the element's className property.


       newList = new Array();
       curList = el.className.split(" " );

       for (i = 0; i < curList.length; i++)
     {
         if (curList[i] != name)
           {
               newList.push(curList[i]);
          }

            el.className = newList.join(" " );
     }
}

function getPageOffsetLeft(el)
{
       var x;

       // Return the x coordinate of an element relative to the page.


       x = el.offsetLeft;

       if (el.offsetParent != null)
    {
          x += getPageOffsetLeft(el.offsetParent);
     }

       return x;
}

function getPageOffsetTop(el)
{
       var y;

       // Return the x coordinate of an element relative to the page.


       y = el.offsetTop;

       if (el.offsetParent != null)
       {
         y += getPageOffsetTop(el.offsetParent);
     }

       return y;
}

//***************************************scripts for dates

     var store = new Array();

     store[0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20',
                          '21','22','23','24','25','26','27','28');

     store[1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20',
                          '21','22','23','24','25','26','27','28','29','30','31');
     store[2] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20',
                          '21','22','23','24','25','26','27','28','29','30');



//dia y mes
function refreshDate(id,idD, idM){
    var date=document.getElementById(id).value;
    var d=date.substring(0,2);
    var m=date.substring(3,5);
    if(d.substring(0,1)==0){
       d = d.substring(1, 2);
     }
    if(m.substring(0,1)==0){
       m = m.substring(1, 2);
    }
    var box2 =document.getElementById(idD);
    var list
    if(m=='0'||m=='2'||m=='4'||m=='6'||m=='7'||m=='9'||m=='11'){
       var list = store[1];
    }else if(m=='1'){
      var list = store[0];
     }else{
      var list = store[2];
    }
   for(i=0;i<list.length;i++){
    box2.options[i] = new Option(list[i],list[i]);
     }
    document.getElementById(idD).value=d;
    document.getElementById(idM).value=m-1;
}

//dia, mes y a?o
function refreshDateAll(id,idD,idM,idA,idMes){
    var date=document.getElementById(id).value;
    var d=date.substring(0,2);
    var m=date.substring(3,5);
    var a=date.substring(6,10);
    var fin=date.length;
    var mes = date.substring(11,fin)
    if(d.substring(0,1)==0){
       d = d.substring(1, 2);
     }
    if(m.substring(0,1)==0){
       m = m.substring(1, 2);
    }
    document.getElementById(idMes).value=mes;
    document.getElementById(idD).value=d;
    document.getElementById(idM).value=m-1;
    document.getElementById(idA).value=a;
}

 function populate(idM,idD,mes,dia)
 {
         var box = document.getElementById(idM);
         var number = box.options[box.selectedIndex].value;
         var box2 =document.getElementById(idD);
         box2.options.length = 0;
         if(number=='0'||number=='2'||number=='4'||number=='6'||number=='7'||number=='9'||number=='11'){
           if(mes==number){
             months=new Array(32-dia);
             var pos=0;
             for(j=dia;j<32;j++){
                 months[pos]=j;
                 pos++;
             }
             list=months;

           }else{
          var list = store[1];
           }
         }else if(number=='1'){
             if(mes==number){
               months=new Array(29-dia);
               var pos=0;
               for(j=dia;j<29;j++){
                  months[pos]=j;
                  pos++;
               }
              list=months;
           }else{
           var list = store[0];
           }
         }else{
           if(mes==number){
             months=new Array(31-dia);
             var pos=0;
             for(j=dia;j<31;j++){
                 months[pos]=j;
                 pos++;
             }
             list=months;
           }else{
           var list = store[2];
           }
         }
         for(i=0;i<list.length;i++){
          box2.options[i] = new Option(list[i],list[i]);
         }

 };

//********************************************


function checkDisabled(id,idType,cant){
     /*
	 idY_from="From"+idType+"Y";
     idM_from="From"+idType+"M";
     idD_from="From"+idType+"D";
     idY_to="To"+idType+"Y";
     idM_to="To"+idType+"M";
     idD_to="To"+idType+"D";
	 */
  if(document.getElementById(id).checked==true){
      /*
	  document.getElementById(idY_from).disabled=false;
      document.getElementById(idM_from).disabled=false;
      document.getElementById(idD_from).disabled=false;
      document.getElementById(idY_to).disabled=false;
      document.getElementById(idM_to).disabled=false;
      document.getElementById(idD_to).disabled=false;
	  */
    for(j=1;j<=cant;j++){
      id1="CH"+idType+"CAT"+j;
       document.getElementById(id1).checked=false;
      }
      document.getElementById(id).checked=true;
    }
  else{
      /*
	  document.getElementById(idY_from).disabled=true;
      document.getElementById(idM_from).disabled=true;
      document.getElementById(idD_from).disabled=true;
      document.getElementById(idY_to).disabled=true;
      document.getElementById(idM_to).disabled=true;
      document.getElementById(idD_to).disabled=true;
	  */
      }
};


function checkDisabledMultiple(id,idType,cant,lodge){
     idY_from="From"+idType+"res"+lodge+"Y";
     idM_from="From"+idType+"res"+lodge+"M";
     idD_from="From"+idType+"res"+lodge+"D";
     idY_to="To"+idType+"res"+lodge+"Y";
     idM_to="To"+idType+"res"+lodge+"M";
     idD_to="To"+idType+"res"+lodge+"D";
  if(document.getElementById(id).checked==true){
      document.getElementById(idY_from).disabled=false;
      document.getElementById(idM_from).disabled=false;
      document.getElementById(idD_from).disabled=false;
      document.getElementById(idY_to).disabled=false;
      document.getElementById(idM_to).disabled=false;
      document.getElementById(idD_to).disabled=false;
    for(j=1;j<=cant;j++){
      id1="CH"+idType+"CAT"+j+"res"+lodge;
       document.getElementById(id1).checked=false;
      }
      document.getElementById(id).checked=true;
    }
  else{
      document.getElementById(idY_from).disabled=true;
      document.getElementById(idM_from).disabled=true;
      document.getElementById(idD_from).disabled=true;
      document.getElementById(idY_to).disabled=true;
      document.getElementById(idM_to).disabled=true;
      document.getElementById(idD_to).disabled=true;
      }
};

function calendarioSinValidacion(input, disparador, control){
	Calendar.setup({
       inputField : input, // id del campo de texto
	   ifFormat : "%d/%m/%Y", // formato de la fecha que se escriba en el campo de texto, dia(nro), mes(nro), anio(nro), mes(nombre)
       button : disparador ,// el id del bot?n que lanzar? el calendario
       controlSelect : false ,
       showOthers : false,
       position : [0,0]
     }, input, input, input, disparador);
};

function calendario(input, disparador, control){
    Calendar.setup({
        inputField : input, // id del campo de texto
        ifFormat : "%d/%m/%Y/%B", // formato de la fecha que se escriba en el campo de texto, dia(nro), mes(nro), anio(nro), mes(nombre)
        button : disparador ,// el id del bot?n que lanzar? el calendario
        controlSelect : control
     });
};

function calendarioNew(input, disparador, control){
    Calendar.setup({
       inputField : input, // id del campo de texto
       orDate : input, // fecha para inicializar
	   nextIn : input, // id del siguiente input a actualizar automaticamente
	   ifFormat : "%d/%m/%Y", // formato de la fecha que se escriba en el campo de texto, dia(nro), mes(nro), anio(nro), mes(nombre)
       button : disparador ,// el id del bot?n que lanzar? el calendario
       controlSelect : control
     }, input, input, input, disparador);
};

function calendarioMultLod(input, orDate, nextIn, disparador, control){
    Calendar.setup({
       inputField : input, // id del campo de texto
       orDate : orDate, // fecha para inicializar
	   nextIn : nextIn, // id del siguiente input a actualizar automaticamente
	   ifFormat : "%d/%m/%Y", // formato de la fecha que se escriba en el campo de texto, dia(nro), mes(nro), anio(nro), mes(nombre)
       button : disparador ,// el id del bot?n que lanzar? el calendario
       controlSelect : control
     }, input, orDate, nextIn, disparador);
};

function mascara(d,sep,nums){
	var pat = new Array(2,2,4)
	if(d.valant != d.value){
		val = d.value
		largo = val.length
		val = val.split(sep)
		val2 = ''
		for(r=0;r<val.length;r++){
			val2 += val[r]
		}
		if(nums){
			for(z=0;z<val2.length;z++){
				if(isNaN(val2.charAt(z))){
					letra = new RegExp(val2.charAt(z),"g")
					val2 = val2.replace(letra,"")
				}
			}
		}
		val = ''
		val3 = new Array()
		for(s=0; s<pat.length; s++){
			val3[s] = val2.substring(0,pat[s])
			val2 = val2.substr(pat[s])
		}
		for(q=0;q<val3.length; q++){
			if(q ==0){
				val = val3[q]
			}
			else{
				if(val3[q] != ""){
					val += sep + val3[q]
					}
			}
		}
		d.value = val
		d.valant = val
		}
	};

/* id1: id del valor orignal
   id2: id del valor resultado
   val: valor a restarle al valor original */
function setValueRemove(id1,id2,val){
   var valor=document.getElementById(id1).value;
   var lim= Number(valor);
   var num = Number(val);
   document.getElementById(id2).value=lim - num;
};

/* id1: id del valor orignal
   id2: id del valor resultado
   val: valor a sumarle al valor original */
function setValueAdd(id1,id2,val){
   var valor=document.getElementById(id1).value;
   var lim= Number(valor);
   var num= Number(val);
   document.getElementById(id2).value=lim + num;
};

function showTableSp2(ref,ref1,st,ref2,st2){
  stateSp = st;
  stateSp2 =st2;
  showTableSp(ref,st);
  showTableSp(ref1,st);
  showTableSp(ref2,st2);
}

function setUrlModifyReservation(url,type,idSub){
  var reference="reference"+idSub;
try{
  var name;
  var comment;
  if(type=="exp"){
  name=document.getElementById("name").value;
  comment=document.getElementById("comment").value;
  url = url+"&name="+name+"&comment="+comment;
  }

 var fightNumberA=document.getElementById("fightNumberA").value;
 var dateCalendarA=document.getElementById("dateA").value;
 var timeA=document.getElementById("timeA").value;
 var aiportNameA=document.getElementById("aiportNameA").value;
 var textA=document.getElementById("textA").value;

 var fightNumberD=document.getElementById("fightNumberD").value;
 var dateCalendarD=document.getElementById("dateD").value;
 var timeD=document.getElementById("timeD").value;
 var aiportNameD=document.getElementById("aiportNameD").value;
 var textD=document.getElementById("textD").value;

 var specialRequest=document.getElementById("specialRequest").value;

 url = url+"&fightNumberA="+fightNumberA+"&dateCalendarA="+dateCalendarA+
       "&timeA="+timeA+ "&aiportNameA="+aiportNameA+ "&textA="+textA+ "&fightNumberD="+fightNumberD+ "&dateCalendarD="+dateCalendarD+
       "&timeD="+timeD+ "&aiportNameD="+aiportNameD+ "&textD="+textD+ "&specialRequest="+specialRequest;
}catch(err){
}
document.getElementById(reference).href = url;

}

/*function dateCheck(val,mens) {
   var i=0, j=0;
   var day, month, year, message=date.msgError,invFecha=date.msgInvalid;;

   try {
   		if (val.length==0) return message;
   }catch(err){
   	return message;
   }

   if (mens!=null) message=mens;
   i=val.indexOf("/");
   if (i==-1 || i==0) return message;

   j=val.lastIndexOf("/");
   if (i==j || j==val.length) return message;

   day=val.substring(0,i);
   month=val.substring(i+1,j);
   year=val.substring(j+1,val.length);

   if (day.length==0) return invFecha;
   for (i=0; i<day.length; i++)
      if ("0123456789".indexOf(day.charAt(i))==-1)
         return message;
   j=parseInt(day, 10);

   if (!(1<=j && j<=31)) return invFecha;

   if (month.length==0) return invFecha;
   for (i=0; i<month.length; i++)
      if ("0123456789".indexOf(month.charAt(i))==-1)
         return message;
   j=parseInt(month, 10);
   if (!(1<=j && j<=12)) return invFecha;

   var diasxmes;
   if(parseInt(year%4, 10) == 0)
    diasxmes=new Array(31,29,31,30,31,30,31,31,30,31,30,31);
   else
    diasxmes=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
   dxm=diasxmes[j-1];
   dia=parseInt(day, 10);

   if (!(dia<=dxm)) return invFecha;

   if (year.length!=4) return invFecha;
   for (i=0; i<year.length; i++)
      if ("0123456789".indexOf(year.charAt(i))==-1)
         return message;
   if (!(0<parseInt(year, 10)))  return invFecha;

   return null;
}*/

/**
 *	Verifica que un string contenga una fecha de acuerdo a un formato determinado
 *	@param date String que contiene una fecha a verificar
 *	@param format String que determina el formato de date ['dd/mm/yyyy' | 'dd/mm/yy' | 'dd/MMM/yyyy']
 * 	@return true si la fecha respeta el formato, sino false
*/
function isDate(date,format){
	if(!date) return false;
	if(!format) format = 'dd/mm/yyyy';
	switch(format){
		case'dd/mm/yyyy': RegExpformat = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/([2][0]|[1][9])\d{2})$/; break;
		case'dd/mm/yy': RegExpformat = /^([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/\d{2}$/; break;
		case'dd/MMM/yyyy':RegExpformat = /^([0-2]\d|[3][0-1])\/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\/([2][0]|[1][19])\d{2}$/; break;
	}
	return RegExpformat.test(date);
}

/**
 *	Verifica que un string sea una fecha válida de acuerdo a algunos de los formatos
 *	de fecha ['dd/mm/yyyy' | 'dd/mm/yy' | 'dd/MMM/yyyy'], de no ser así devuelve un mensaje de error
 *	@param val String que contiene una fecha a verificar
 *	@param mens ??? (se mantiene por compatibilidad con la versión anterior
 *	@return null si la fecha restpeta algún formato de fechas, sino mensaje de error	
*/
function dateCheck(val,mens) {
	var invFecha=date.msgInvalid;
	var arrayFormats = new Array();
	arrayFormats[0] = 'dd/mm/yyyy';
	arrayFormats[1] = 'dd/mm/yy';
	arrayFormats[2] = 'dd/MMM/yyyy';
	
	for(var i = 0; i< arrayFormats.length; i++){
		if(isDate(val, arrayFormats[i]))
			return null;
	}	
	
	return invFecha;
}

 function FormatDate(input){
   	var message=null;
	if (input.value != '') {
		message=dateCheck(input.value, null);
		if (message!=null) {
			alert(message);
			input.focus();
			return false;
 		}
	}
	return true;
 }
 
 function FormatDateClean(input){
   	var message=null;
	if (input.value != '') {
		message=dateCheck(input.value, null);
		if (message!=null) {
			alert(message);
			input.value = '';
			input.focus();
			return false;
 		}
	}
	return true;
 }

 
// Variables utilizadas para el formateo de campos Importe
var SEPARADOR_DECIMALES_DESEADO = '.';
var SEPARADOR_MILES_DESEADO = ',';

/** 
  * Este metodo se llama en el onkeypress del text que contendr? un importe.
  * Define cuando se ejecuta el onkeyup que formatea din?micamente un campo importe.
  *
  * ?C?mo responde ?ste m?todo seg?n cada browser?
  *  Cuando devuelve true:
  *  Nestcape: Ejecuta el keyup - responde a la tecla - se queda donde est? si no cambi? el campo despu?s del script, se va al final si cambi?
  *  Explorer: Ejecuta el keyup - responde a la tecla - se va siempre al final
  *
  *  Cuando devuelve false:
  *  Nestcape: No ejecuta el onkeyup - no responde a la tecla - se queda donde est?
  *  Explorer: No ejecuta el onkeyup - no responde a la tecla - se va siempre al final
  */
function aceptaNumeros(evt){
 var evento = (evt) ? evt : event;
 var key = (evento.charCode) ? evento.charCode : ((evento.keyCode) ? evento.keyCode : ((evento.which) ? evento.which : 0));
 
 return ((key >= 48 && key <= 57) || (key >= 35 && key <= 40) || (key == 46) || (key == 44) || (key == 8) || (key == 9));
}

/**
  * Funcion que le va dando formato de importe a una cadena de n?meros ingresada en un text:
  * formatos posibles: 0.000,00 / 0,000.00 / 0.000.00 / 0,000,00 .. etc.
  * (los formatos dependen de las variables SEPARADOR_DECIMALES_DESEADO y/o SEPARADOR_MILES_DESEADO).
  */
function formato_importe(evt, campo) {
 var evento = (evt) ? evt : event;
 var key = (evento.charCode) ? evento.charCode : ((evento.keyCode) ? evento.keyCode : ((evento.which) ? evento.which : 0));
 
 if ((key < 35 || key > 40) && (key != 9)) {
  var valor = campo.value;
  var largo = valor.length;
  if (largo != 0) {
   // Obtengo el valor del campo a formatear.. pero representado s?lo por los n?meros que contiene
   var valor_todos_numeros = '';
   var c = '';
   for (var i = 0; i < largo;i++) {
    c = valor.charAt(i);
    if ((c == '0') ||
     (c == '1') ||
     (c == '2') ||
     (c == '3') ||
     (c == '4') ||
     (c == '5') ||
     (c == '6') ||
     (c == '7') ||
     (c == '8') ||
     (c == '9')) {
     valor_todos_numeros = valor_todos_numeros + c;
    }
   }
   
   var largo_valor_todos_numeros = valor_todos_numeros.length;
   var entero = "";
   var entero_a_devolver = '';
   var decimal_a_devolver = "";
   var valor_a_devolver = "";
   
   // Formateo el valor
   if (largo_valor_todos_numeros == 0) {
    valor_a_devolver = '0' + SEPARADOR_DECIMALES_DESEADO + '00';
   } else if (largo_valor_todos_numeros == 1) {
    valor_a_devolver = '0' + SEPARADOR_DECIMALES_DESEADO + '0' + valor_todos_numeros;
   } else if (largo_valor_todos_numeros == 2) {
    valor_a_devolver = '0' + SEPARADOR_DECIMALES_DESEADO + valor_todos_numeros;
   } else  {
    // Obtengo el valor entero (todos menos los ?ltimos dos n?meros)
    entero = valor_todos_numeros.substring(0,largo_valor_todos_numeros - 2);
    var largo_entero = entero.length;
    // Elimino los ceros iniciales
    var j = 0;
    while ((entero.charAt(0) == '0') && (j < (largo_entero - 1))) {
     entero = entero.substring(1,entero.length);
     j++;
    }
    
    if (entero == '') {
     entero = '0';
    }
    
    j = 0;
    // Se insertan los separadores de miles
    for (var i = (entero.length - 1); i >= 0; i--) {
     entero_a_devolver = entero.charAt(i) + entero_a_devolver;
     j++;
     if (((j % 3) == 0) && (i != 0)) {
      entero_a_devolver = SEPARADOR_MILES_DESEADO + entero_a_devolver;
     }
    }
    
    // Obtengo el valor decimal (?ltimos dos n?meros)
    decimal_a_devolver = valor_todos_numeros.substring((largo_valor_todos_numeros - 2),(largo_valor_todos_numeros));
    valor_a_devolver = entero_a_devolver + SEPARADOR_DECIMALES_DESEADO + decimal_a_devolver;
   }
   
   // Limitamos el valor a devolver a la cantidad de car?cteres permitido por el campo
   if (valor_a_devolver.length > campo.maxLength) {
    valor_a_devolver = valor_a_devolver.substring(valor_a_devolver.length - campo.maxLength,valor_a_devolver.length)
   }
   
   // Se el valor empieza con punto, lo sacamos
   if (valor_a_devolver.charAt(0) == '.') {
    valor_a_devolver = valor_a_devolver.substring(1,valor_a_devolver.length)
   }
   campo.value = valor_a_devolver;
  }
 }
} 


/* HELPERS ********************************************************************/

	function show(elementId) {
		var element = document.getElementById(elementId);
		element.style.display = 'block';
	}

	function hide(elementId) {
		var element = document.getElementById(elementId);
		element.style.display = 'none';
	}

	function showHide(elementId) {
		var element = document.getElementById(elementId);
		if (element.style.display != 'none') {
			element.style.display = 'none';
		}
		else {
			element.style.display = 'block';
		}
	}

	// Clears a HTML Select element
	function clearSelect(select) {
		for (i in select.options) {
			select.remove(i);
		}
	}

	//Calculated the days difference between two Dates JS objects
	//If both dates are equal and oneOnEqual is true, it returns a difference of 1;
	function daysBetween(date1, date2, oneOnEqual) {
	    var ONE_DAY = 1000 * 60 * 60 * 24;
	    var diff = Math.abs(date1.getTime() - date2.getTime())
	    if (diff != 0) {
		    return Math.round(diff/ONE_DAY);
	    }
		return oneOnEqual ? 1 : 0;
	}
	
	//Input date: xx/yy/zz(zz)
	//Parsed date: array [xx, yy, zz(zz)]
	function parseDate(date) {
		var i = date.indexOf('/');
		var j = date.lastIndexOf('/');
		var parsedDate = new Array();
		parsedDate[0] = date.substring(0,i);
		parsedDate[1] = date.substring(i+1,j);
		parsedDate[2] = date.substring(j+1);
		return parsedDate;
	}
 
 	
/* HELPERS ********************************************************************/

	function show(elementId) {
		var element = document.getElementById(elementId);
		element.style.display = '';
	};

	function hide(elementId) {
		var element = document.getElementById(elementId);
		element.style.display = 'none';
	};

	function showHide(elementId) {
		var element = document.getElementById(elementId);
		if (element.style.display != 'none') {
			element.style.display = 'none';
		}
		else {
			element.style.display = 'block';
		}
	};

	/* Clears a HTML Select element */
	function clearSelect(select) {
		for (i in select.options) {
			select.remove(i);
		}
	};

	/* Calculated the days difference between two Dates JS objects */
	/* If both dates are equal and oneOnEqual is true, it returns a difference of 1 */
	function daysBetween(date1, date2, oneOnEqual) {
	    var ONE_DAY = 1000 * 60 * 60 * 24;
	    var diff = Math.abs(date1.getTime() - date2.getTime());
	    if (diff != 0) {
		    return Math.round(diff/ONE_DAY);
	    }
		return oneOnEqual ? 1 : 0;
	};
	
	/**
	 * Devuelve la cantidad de días entre date1 y date2, si to es menor a from devuelve cant negativa
	 * @param date1
	 * @param date2
	 * @return cantidad de días entre date1 y date2
	 */
	function differenceDays(date1, date2) {
	    var ONE_DAY = 1000 * 60 * 60 * 24;
	    var diff = date1.getTime() - date2.getTime();
	    if (diff != 0) {
		    return Math.round(diff/ONE_DAY);
	    }
		return 0;
	}
	
	/**
	 * Verifica si una fecha en formato texto es anterior a la fecha de hoy
	 * @param input inputText con la fecha
	 * @param errorMsg mensaje de error
	 * @return true si la fecha es anterior a la fecha de hoy
	 */
	function predatesToday(input, errorMsg){
		if(input.value!=""){
			var dateValue = strToDate(input.value);
			var today = strToDate(dateToStr(new Date()));
			if(differenceDays(dateValue, today)<0){
				if((errorMsg!=undefined)&&(errorMsg!=null))
					alert(errorMsg);
				input.value = "";
				input.focus();
				return false;
			}
		}
		return true;
	}
	
	/**
	 * Devuelve true si date1 es anterior a date2
	 */
	function before(date1, date2){
		return differenceDays(date1, date2)<0;
	}

	/* Input date: xx/yy/zz(zz) */
	/* Input separator: '/' */
	/* Parsed date: array [xx, yy, zz(zz)] */
	function parseDate(date, separator) {
		var i = date.indexOf(separator);
		var j = date.lastIndexOf(separator);
		var parsedDate = new Array();
		parsedDate[0] = date.substring(0,i);
		parsedDate[1] = date.substring(i+1,j);
		parsedDate[2] = date.substring(j+1);
		return parsedDate;
	};
	
	/**
	 * Convierte una fecha string con formato dd/mm/aaaa en un objeto Date 
	 *
	 * @param strDate fecha con formato dd/mm/aaaa
	 * @return objeto Date con la fecha pasada como parámetro
	 */
	function strToDate(strDate){
		var parsedStrDate = parseDate(strDate, '/');
		var result = new Date(parsedStrDate[2], parsedStrDate[1]-1, parsedStrDate[0]);
		return result;
	}
	
	/**
	 * Convierte una fecha Date al formato dd/mm/aaaa 
	 *
	 * @param date objeto Date
	 * @return fecha con formato dd/mm/aaaa
	 */
	function dateToStr(date){
		strDD = "";
		strMM = "";
		if(date.getDate()<10)
			strDD = "0";
		if(date.getMonth()<9)
			strMM = "0";
			
		return strDD + date.getDate() + "/" + strMM + (date.getMonth()+1) + "/" + date.getFullYear();
	}
	
	/**
	 * Devuelve una fecha desplazada offset cantidad de días
	 *
	 * @param date fecha 
	 * @param offset cantidad de días a desplazar la fecha (+/-)
	 * @return objeto Date desplazada offset cantidad de días
	 */
	function shiftDate(date, offset){
		var ONE_DAY = 1000 * 60 * 60 * 24;
		var result = new Date();
		result.setTime(date.getTime() + (ONE_DAY*offset))
		return result;
	}
	
	/*Devuelve un trim de str*/
	function trim(str){
		var cadena = str;
		for(i=0; i<cadena.length; ){
			if(cadena.charAt(i)==" ")
				cadena=cadena.substring(i+1, cadena.length);
			else
				break;
		}

		for(i=cadena.length-1; i>=0; i=cadena.length-1){
			if(cadena.charAt(i)==" ")
				cadena=cadena.substring(0,i);
			else
				break;
		}
		return cadena;
	};
 