/*!
 * Funciones Operaciones Coral
 */
var $x = jQuery.noConflict(); 
$x(function() {
        $x("#dpickerVI,#dpickerVII").datepicker({minDate: +1,
                maxDate: '+27M -2D',
                changeMonth: true,
                showOn: 'button',
                buttonImage: 'imagenes/calendar.gif',
                buttonImageOnly: true,
                changeYear: true,numberOfMonths: 2
    });
});

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

    if(isValidDate(document.getElementById('dpickerVI').value,"MDY")){
        if(isValidDate(document.getElementById('dpickerVII').value,"MDY")){
            var date1 = Date.parse(document.getElementById('dpickerVI').value.toString());
            var date2 = Date.parse(document.getElementById('dpickerVII').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('dpickerVII').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 getGreatValue(){
    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;
    }
    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];
    document.getElementById('formBooking').submit();
}

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);
}

