/*!
 * Funciones Operaciones Coral
 */
function validateDates(){
    var m_names = new Array("01", "02", "03","04", "05", "06", "07", "08", "09","10", "11", "12");

    if(isValidDate(document.getElementById('txt_arrival_date').value,"MDY")){
        if(isValidDate(document.getElementById('txt_departure_date').value,"MDY")){
            var date1 = Date.parse(document.getElementById('txt_arrival_date').value.toString());
            var date2 = Date.parse(document.getElementById('txt_departure_date').value.toString());			
			
             if ((date2*1) > (date1*1)){
                 return true;
              }
              else{
                  var J=new Date(date1);
                  var d=new Date(date1);

                  d.setDate(d.getDate()+1);
				  
				  var dd = "";
					  if(d.getDate()<10){
						dd = "0"+d.getDate();
					  }else{
						dd = d.getDate();
					  }                  
                  var mm = m_names[d.getMonth()];//January is 0!
                    var yyyy = d.getFullYear();
                  document.getElementById('txt_departure_date').value=mm+"/"+dd+"/"+yyyy;
                  return false;
              }
        }
        else{
           return false;
        }
    }
    else{
     return false;
    }
}

function isValidDate(dateStr, format) {
   if (format == null) { format = "MDY"; }
   format = format.toUpperCase();
   if (format.length != 3) { format = "MDY"; }
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) ||
      (format.indexOf("Y") == -1) ) { format = "MDY"; }
   if (format.substring(0, 1) == "Y") { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { return false; }
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } else 
      if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else 
      if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else 
      if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   if (parseFloat(dd) != dt.getDate()) { return false; }
   if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
   return true;
}

function showSelectedFields(){	
	numberRoomsSelected = document.getElementById("numberRooms").value;
	switch(numberRoomsSelected){
	case "1":
		document.getElementById("rowRoosm2").style.display= 'none';
		document.getElementById("rowRoosm3").style.display= 'none';	
		break;
	case "2":
		document.getElementById("rowRoosm2").style.display= '';
		document.getElementById("rowRoosm3").style.display= 'none';	
		break;
	case "3":
		document.getElementById("rowRoosm2").style.display= '';
		document.getElementById("rowRoosm3").style.display= '';	 
		break;
	default:
	    break;
	}	
}

function showField(){
    document.getElementById("adultInputII").style.display= 'none';
    document.getElementById("childInputII").style.display= 'none';

    document.getElementById("adultInputIII").style.display= 'none';
    document.getElementById("childInputIII").style.display= 'none';

    document.getElementById("roomTextI").style.display= 'none';
    document.getElementById("roomTextII").style.display= 'none';
    document.getElementById("roomTextIII").style.display= 'none';

    if(document.getElementById("numberRooms").value!=1){

        document.getElementById("roomTextI").style.display= '';

        if(document.getElementById("numberRooms").value==2){
            document.getElementById("adultInputII").style.display= '';
            document.getElementById("childInputII").style.display= '';
            document.getElementById("adultInputII").value=2;
            document.getElementById("roomTextII").style.display= '';
        }
        
        if(document.getElementById("numberRooms").value==3){
            document.getElementById("adultInputII").style.display= '';
            document.getElementById("childInputII").style.display= '';

            document.getElementById("adultInputIII").style.display= '';
            document.getElementById("childInputIII").style.display= '';

            document.getElementById("adultInputII").value=2;
            document.getElementById("adultInputIII").value=2;

            document.getElementById("roomTextII").style.display= '';
            document.getElementById("roomTextIII").style.display= '';
        }

        if(document.getElementById("numberRooms").value==4){
            document.getElementById("adultInputII").style.display= '';
            document.getElementById("childInputII").style.display= '';

            document.getElementById("adultInputIII").style.display= '';
            document.getElementById("childInputIII").style.display= '';

            document.getElementById("adultInputII").value=2;
            document.getElementById("adultInputIII").value=2;

            document.getElementById("roomTextII").style.display= '';
            document.getElementById("roomTextIII").style.display= '';
        }

        if(document.getElementById("numberRooms").value==5){
            document.getElementById("adultInputII").style.display= '';
            document.getElementById("childInputII").style.display= '';

            document.getElementById("adultInputIII").style.display= '';
            document.getElementById("childInputIII").style.display= '';

            document.getElementById("adultInputII").value=2;
            document.getElementById("adultInputIII").value=2;

            document.getElementById("roomTextII").style.display= '';
            document.getElementById("roomTextIII").style.display= '';
        }
}
}

function getGreatValue(){
	var bContinua = false;
	if(isValidDate(document.getElementById('txt_arrival_date').value,"MDY")){
		bContinua  = true;
	}
	if(isValidDate(document.getElementById('txt_departure_date').value,"MDY")){
		bContinua = true;
	}else{
		bContinua = false;
	}
	
	if (bContinua == true){
		var date1 = Date.parse(document.getElementById('txt_arrival_date').value.toString());
		var date2 = Date.parse(document.getElementById('txt_departure_date').value.toString());			
		
		 if ((date2*1) <= (date1*1)){
			//alert ("The departure date must be higher than the arrival date");
			//return false;
			  var m_names = new Array("01", "02", "03","04", "05", "06", "07", "08", "09","10", "11", "12");
			  var J=new Date(date1);
			  var d=new Date(date1);

			  d.setDate(d.getDate()+1);
			  
			  var dd = "";
				  if(d.getDate()<10){
					dd = "0"+d.getDate();
				  }else{
					dd = d.getDate();
				  }                  
			  var mm = m_names[d.getMonth()];//January is 0!
			  var yyyy = d.getFullYear();
			  document.getElementById('txt_departure_date').value=mm+"/"+dd+"/"+yyyy;			
		  }	
	}
	
	if (bContinua == true){
		var elementsAdult = new Array();
		var elementsChild = new Array();

		if(document.getElementById("numberRooms").value==1){
				elementsAdult[0]=document.getElementById("adultInputI").value;
				elementsChild[0]=document.getElementById("childInputI").value;
		}
		if(document.getElementById("numberRooms").value==2){
		elementsAdult[0]=document.getElementById("adultInputI").value;
		elementsAdult[1]=document.getElementById("adultInputII").value;

		elementsChild[0]=document.getElementById("childInputI").value;
		elementsChild[1]=document.getElementById("childInputII").value;
		}
		if(document.getElementById("numberRooms").value==3){
		elementsAdult[0]=document.getElementById("adultInputI").value;
		elementsAdult[1]=document.getElementById("adultInputII").value;
		elementsAdult[2]=document.getElementById("adultInputIII").value;

		elementsChild[0]=document.getElementById("childInputI").value;
		elementsChild[1]=document.getElementById("childInputII").value;
		elementsChild[2]=document.getElementById("childInputIII").value;
		}
		/*
		if(document.getElementById("numberRooms").value==4){
		elementsAdult[0]=document.getElementById("adultInputI").value;
		elementsAdult[1]=document.getElementById("adultInputII").value;
		elementsAdult[2]=document.getElementById("adultInputIII").value;
		elementsAdult[3]=document.getElementById("adultInputIV").value;

		elementsChild[0]=document.getElementById("childInputI").value;
		elementsChild[1]=document.getElementById("childInputII").value;
		elementsChild[2]=document.getElementById("childInputIII").value;
		elementsChild[3]=document.getElementById("childInputIV").value;
		}
		if(document.getElementById("numberRooms").value==5){
		elementsAdult[0]=document.getElementById("adultInputI").value;
		elementsAdult[1]=document.getElementById("adultInputII").value;
		elementsAdult[2]=document.getElementById("adultInputIII").value;
		elementsAdult[3]=document.getElementById("adultInputIV").value;
		elementsAdult[4]=document.getElementById("adultInputV").value;

		elementsChild[0]=document.getElementById("childInputI").value;
		elementsChild[1]=document.getElementById("childInputII").value;
		elementsChild[2]=document.getElementById("childInputIII").value;
		elementsChild[3]=document.getElementById("childInputIV").value;
		elementsChild[4]=document.getElementById("childInputV").value;
		}
		*/
		//alert(elementsAdult+"----"+elementsChild);
		document.getElementById("SplitRoomsAdult").value=elementsAdult;
		document.getElementById("SplitRoomsChild").value=elementsChild;
		quickSort(elementsAdult,'D');
		quickSort(elementsChild,'D');
		document.getElementById("MaxSplitRoomsAdult").value=elementsAdult[0];
		document.getElementById("MaxSplitRoomsChild").value=elementsChild[0];
		//alert(elementsAdult[0]+"----"+elementsChild[0]);

		document.getElementById('qRequest').submit();
	}else{
		return false;
	}	
}

function quickSort(objArray,aod) {
    procesoQS(objArray,aod,0,objArray.length-1);
}

function callReserva(){
    getGreatValue();
    document.getElementById("formBooking").submit();
}

function procesoQS(objArray,aod,ini,fin) {
    var i = ini;
    var j = fin;
    var tmp;

    var c = objArray[Math.floor( ( i + j ) / 2 )];

    do {
        if ( aod == "A" ) {
            while ( ( i < fin ) && ( c > objArray[i] ) ) i++;
                while ( ( j > ini ) && ( c < objArray[j] ) ) j--;
        } else {
            while ( ( i < fin ) && ( c < objArray[i] ) ) i++;
                while ( ( j > ini ) && ( c > objArray[j] ) ) j--;
        }
        if ( i < j ) {
            tmp = objArray[i];
            objArray[i] = objArray[j];
            objArray[j] = tmp;
        }
        if ( i <= j ) {
            i++;
            j--;
        }
    } while ( i <= j );

    if ( ini < j ) procesoQS(objArray,aod,ini,j);
        if ( i < fin ) procesoQS(objArray,aod,i,fin);
}

