// JScript File
var cal_ipt_id = "txt_calendar";
var isOpera = navigator.userAgent.indexOf("Opera") > -1;
var isIE = navigator.userAgent.indexOf("MSIE") > 1 && !isOpera;
var isMoz = navigator.userAgent.indexOf("Mozilla/5.") == 0 && !isOpera;
var ca_get_url = location.protocol + "//" + location.hostname + "/";	


function change_div_class(){
    if (isMoz){
        var obj = document.getElementById("dimmer");
        obj.className = "divcal_moz";
    }
   
}
function isNull(a) {
    return a == null;
}


function show_dimmer(){    
    fill_monthyear_list('sel_month_year');                                                                    
    fill_day_list(false,'sel_month_year', 'calendar_content',0,cal_ipt_id);
    
    var obj = document.getElementById('dimmer');
    if (obj.style.display == "none"){
        obj.style.display = "inline";
    }else{
        obj.style.display = "none";
    }
}
function show_departure(){            
    var elID = document.getElementById('hidDateType')
    
    elID.value=1;
    cal_ipt_id = "txt_calendar"; 
    var parent_obj = document.getElementById("div_" + cal_ipt_id);        
    
    var obj = document.getElementById('dimmer');    
    parent_obj.appendChild(obj);

    show_dimmer();
}
function show_return(){
    var elID = document.getElementById('hidDateType')
    elID.value=2;
    cal_ipt_id = "txt_calendarRet";
    var parent_obj = document.getElementById("div_" + cal_ipt_id);
    var obj = document.getElementById('dimmer');
    parent_obj.appendChild(obj);
    show_dimmer();
}

function isUndefined(a) {
return typeof a == 'undefined';
} 


///////////////////////////////////////////////////////////////////////////////////

function isDate(p_Expression){
	return !isNaN(new Date(p_Expression));		// <<--- this needs checking
}

// REQUIRES: isDate()
function dateAdd(p_Interval, p_Number, p_Date){
	if(!isDate(p_Date)){return "invalid date: '" + p_Date + "'";}
	if(isNaN(p_Number)){return "invalid number: '" + p_Number + "'";}	

	p_Number = new Number(p_Number);
	var dt = new Date(p_Date);
	switch(p_Interval.toLowerCase()){
		case "yyyy": {// year
			dt.setFullYear(dt.getFullYear() + p_Number);
			break;
		}
		case "q": {		// quarter
			dt.setMonth(dt.getMonth() + (p_Number*3));
			break;
		}
		case "m": {		// month
			dt.setMonth(dt.getMonth() + p_Number);
			break;
		}
		case "y":		// day of year
		case "d":		// day
		case "w": {		// weekday
			dt.setDate(dt.getDate() + p_Number);
			break;
		}
		case "ww": {	// week of year
			dt.setDate(dt.getDate() + (p_Number*7));
			break;
		}
		case "h": {		// hour
			dt.setHours(dt.getHours() + p_Number);
			break;
		}
		case "n": {		// minute
			dt.setMinutes(dt.getMinutes() + p_Number);
			break;
		}
		case "s": {		// second
			dt.setSeconds(dt.getSeconds() + p_Number);
			break;
		}
		case "ms": {		// second
			dt.setMilliseconds(dt.getMilliseconds() + p_Number);
			break;
		}
		default: {
			return "invalid interval: '" + p_Interval + "'";
		}
	}
	return dt;
}

var month_name = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");


function load_l1(){    
    
    var d = new Date();
    d = dateAdd("d",7,d);
    var checkin = document.getElementById("txt_calendar");
    var lsSelectBoxFontSize = "11px";
    
    
    if (checkin.value == ""){
        checkin.value =  d.getDate(d)+ "-" + month_name[d.getMonth(d)] + "-" + d.getFullYear(d);
    }

    
    var sel_obj = document.getElementById("div_sel_1");
    var t = ca_d_arr[0];
    var obj = document.getElementById("div_sel_1");
                                                                                                                                                
    var s = "<select id=\"sel_l1\" style=\"WIDTH: 140px; margin-bottom: 1px\" onchange=\"load_l(this.value, 'sel_l', 2)\"  name=\"sel_l1\">";
    s += t;
    s += "</select>";
    obj.innerHTML = s;
    
    //"ipt_sel_1"
    preload_values("txt_l", "sel_l", 1);
    change_div_class();
    
    
}

function preload_values(ipt_id, sel_id, num_){
    
    var val = document.getElementById(ipt_id + num_).value;
    if (val == ""){val = 0; return;}
    var sel_obj = document.getElementById(sel_id + num_);
    var j = 0;
    for (i=0;i< sel_obj.options.length;i++){
    if(sel_obj.options[i].value == val){
        j=i;
        }
    }
    sel_obj.selectedIndex = j;
    num_ +=1
    if (num_ <=2) {
    load_l(val, sel_id, num_);
    preload_values(ipt_id, sel_id, num_);
    
    }


}
function load_l(val_, sel_name, num_){
    
    var next_num = parseInt(num_) + 1;
    
    for(i=next_num;i<= 4;i++){
            var obj = document.getElementById("div_" + sel_name + i);
            var s2= "";
            if(num_==2){s = "onchange=\"store_sel_l2();\""}
            var s = "<select id=\"" + sel_name + i + "\" style=\"WIDTH: 140px; margin-bottom: 1px\" " + s2 + " name=\"" + sel_name + i + "\">";
            s += "</select>";
            
		if(isNull(obj)){}else{obj.innerHTML = s;}
        }

    if(val_!= 0){
        var obj = document.getElementById("div_" + sel_name + num_);
        var t = ca_d_arr[val_];
        
        if (isUndefined(t)){
            for(i=num_;i<= next_num;i++){
                var obj = document.getElementById("div_" + sel_name + i);
                var s2= "";
                if(num_==2){s = "onchange=\"store_sel_l2();\""}
                var s = "<select id=\"" + sel_name + i + "\" style=\"WIDTH: 140px; margin-bottom: 1px\" " + s2 + " name=\"" + sel_name + i + "\">";
                s += "</select>";
		if(isNull(obj)){}else{obj.innerHTML = s;}
                
            }
        }else{

           var onchange_ = "onchange=\"load_l(this.value, '" + sel_name  + "', " + next_num + ")\"";
           if (next_num == 3){onchange_ = "onchange=\"store_sel_l2();\""}
            var s = "<select id=\"" + sel_name + num_ + "\" style=\"WIDTH: 140px; margin-bottom: 1px\" " + onchange_ + " name=\"" + sel_name + num_ + "\">";
            s += t;
            s += "</select>";
		if(isNull(obj)){}else{obj.innerHTML = s;}

        }
    }
    else{

        for(i=num_;i<= next_num;i++){
            var s2= "";
            if(num_==2){s2 = "onchange=\"store_sel_l2();\""}
            var obj = document.getElementById("div_" + sel_name + i);
            var s = "<select id=\"" + sel_name + i + "\" style=\"WIDTH: 140px; margin-bottom: 1px\" " + s2 + " name=\"" + sel_name + i + "\">";
            s += "</select>";
		if(isNull(obj)){}else{obj.innerHTML = s;}
        }
    }
}




function store_sel_l2(){

    var sel_obj = document.getElementById("sel_l2");
    var txt_obj = document.getElementById("txt_l2");
    var val_ = sel_obj.options[sel_obj.selectedIndex].value;
    txt_obj.value = val_;
    var val2_ = sel_obj.options[sel_obj.selectedIndex].text;
    var txt_obj2 = document.getElementById("txt_l2_text");
    txt_obj2.value = val2_;
    if (val_ == "0"){
        txt_obj.value = "";
        txt_obj2.value = "";
    }
}


function ReturnDateFromString(val_){
var datevalue1=val_;
var day1;var month1;var year1;
if (val_.indexOf("-") > -1 ){
    day1=split_return_index(datevalue1, "-", 0);
    month1=split_return_index(datevalue1, "-", 1);
    year1=split_return_index(datevalue1, "-", 2);
}else{
    day1=split_return_index(datevalue1, " ", 0);
    month1=split_return_index(datevalue1, " ", 1);
    year1=split_return_index(datevalue1, " ", 2);
}


month1=changeFormatStringtoNumber(month1);
var d1=new Date(year1,month1,day1);
return d1;
}

function changeFormatStringtoNumber(monthval){
monthval = monthval.toUpperCase();
if(monthval=="JAN"){monthval=0;}
else if (monthval=="FEB") {monthval=1;}
else if (monthval=="MAR") {monthval=2;}
else if (monthval=="APR") {monthval=3;}
else if (monthval=="MAY") {monthval=4;}
else if (monthval=="JUN") {monthval=5;}
else if (monthval=="JUL") {monthval=6;}
else if (monthval=="AUG") {monthval=7;}
else if (monthval=="SEP") {monthval=8;}
else if (monthval=="OCT") {monthval=9;}
else if (monthval=="NOV") {monthval=10;}
else if (monthval=="DEC") {monthval=11;}
else {var d = new Date();monthval = d.getMonth();}
return(monthval);
}

function split_return_index(val_, delimiter_, index_){
    var t = new Array();
    t = val_.split(delimiter_);
    if (t.length > 0){
        return t[index_];
    }else{
        return "";
    }
}

function check_valid_year(date_str){
   var has_space = date_str.indexOf(" ");
   var has_dashes = date_str.indexOf("-");
   var has_fwdslashes = date_str.indexOf("/");
   var d = new Date();
   var lastyear = d.getYear() - 1;
   var s = new Array();
   if(has_space > 0 ){
      s = date_str.split(" ");
   }else if(has_dashes >0){
      s = date_str.split("-");
   }else if(has_fwdslashes >0){
      s = date_str.split("/");
   }

   if (s.length == 3){
      if(s[2] <= lastyear){
         return false;
      }else{return true;}
      
   }else{
      return false;
   }
}


function search_holidays(){
      var l0, ll, ll0, d, dd, f,pr,l1txt,bb;
      var ok_text ="";
      var ok_text_2 ="";
      
      var obj;
      var s_obj_length = 0; 
      if(isMoz){
         obj = document.getElementById("sel_l0");
         l0 = obj.options[obj.selectedIndex].value;
         obj = document.getElementById("sel_l1");
         ll0 = obj.options[obj.selectedIndex].value;
         l1txt = obj.options[obj.selectedIndex].text;
         obj = document.getElementById("sel_l2");
         if (!isUndefined(obj) && !isNull(obj)){
            if(obj.length > 0){
               ll = obj.options[obj.selectedIndex].value;
               s_obj_length = obj.length;
            }
         }else{ok_text = "destination";}
         obj = document.getElementById("sel_f");
         f = obj.options[obj.selectedIndex].value;
         obj = document.getElementById("sel_d");
         d = obj.options[obj.selectedIndex].value;
         obj = document.getElementById("sel_pr");
         pr = obj.options[obj.selectedIndex].value;
         obj = document.getElementById("txt_calendar");
         dd = obj.value;
         obj = document.getElementById("sel_bb");
         if (!isUndefined(obj) && !isNull(obj)){
            bb = obj.value;
         }else{bb="ALL";}
      }else{
         obj = document.getElementById("sel_l0");
         l0 = obj.options(obj.selectedIndex).value;
         obj = document.getElementById("sel_l1");
         ll0 = obj.options(obj.selectedIndex).value;
         l1txt = obj.options(obj.selectedIndex).text;
         obj = document.getElementById("sel_l2");
         if (!isUndefined(obj) && !isNull(obj)){
            if(obj.length > 0){
               ll = obj.options[obj.selectedIndex].value;
               s_obj_length = obj.length;
            }         
         }else{ok_text = "destination";}
         obj = document.getElementById("sel_f");
         f = obj.options(obj.selectedIndex).value;
         obj = document.getElementById("sel_d");
         d = obj.options(obj.selectedIndex).value;
         obj = document.getElementById("sel_pr");
         pr = obj.options(obj.selectedIndex).value;
         obj = document.getElementById("txt_calendar");
         dd = obj.value;
         obj = document.getElementById("sel_bb");
         if (!isUndefined(obj) && !isNull(obj)){
            bb = obj.value;
         }else{bb="ALL";}
         
      }
      
      
      if(l0 == 0){ok_text_2 ="departure airport";}
      if(ll == 0){ll=ll0;}
      if(ll0 == 0 || ll==-1 || ll0 ==-1){ok_text ="destination";}

      obj = document.getElementById("txt_l2_text");
      var level = obj.value;
      if (level == "" && ll != 0){obj = document.getElementById("sel_l2");obj= document.getElementById("sel_l1");
         //if (isMoz){level = obj.options[obj.selectedIndex].text;}else{level = obj.options(obj.selectedIndex).text;}
      }
      var re = new RegExp("-", "g");      
      level = level.replace(re, "");
      var preurl = "/search/" + l1txt.replace(/^\s+|\s+$/g, '');
      if (level != ""){preurl += "/" + level.replace(/^\s+|\s+$/g, '');}
      re = new RegExp(" ", "g");      
      preurl = preurl.replace(re, "-");
      var url = preurl + "/";
      url += "results.aspx?";
      url += "l0=" + l0;
      url += "&ll=" + ll;
      url += "&ll0=" + ll0;
      url += "&dd=" + dd;
      url += "&pr=" + pr;
      url += "&d=" + d;
      url += "&f=" + f;
      url += "&bb=" + bb;
      url += "&q=" + l1txt.replace(/^\s+|\s+$/g, '') + " " + level;
      url += "&WT.oss=" + l1txt.replace(/^\s+|\s+$/g, '') + " " + level + "&WT.oss_r=1";
      url += "&newsearch=1";
      if (ok_text == "" && ok_text_2 == ""){
         window.location = url;
      }else{
      
         if (ok_text_2 != "" && ok_text != ""){
            alert("Please choose a " + ok_text_2 + " and " + ok_text);
         }
         if (ok_text_2 == "" && ok_text != ""){
            alert("Please choose a " + ok_text);
         }
         if(ok_text_2 != "" && ok_text == ""){
           alert("Please choose a " + ok_text_2);
         }
      }
 }
 
 function search_holidays_allinclusive(){
       var l0, ll, ll0, d, dd, f,pr,l1txt,bb;
       var ok_text ="";
       var ok_text_2 ="";
       
       var obj;
       var s_obj_length = 0; 
       if(isMoz){
          obj = document.getElementById("sel_l0");
          l0 = obj.options[obj.selectedIndex].value;
          obj = document.getElementById("sel_l1");
          ll0 = obj.options[obj.selectedIndex].value;
          l1txt = obj.options[obj.selectedIndex].text;
          obj = document.getElementById("sel_l2");
          if (!isUndefined(obj) && !isNull(obj)){
             if(obj.length > 0){
                ll = obj.options[obj.selectedIndex].value;
                s_obj_length = obj.length;
             }
          }else{ok_text = "destination";}
          obj = document.getElementById("sel_f");
          f = obj.options[obj.selectedIndex].value;
          obj = document.getElementById("sel_d");
          d = obj.options[obj.selectedIndex].value;
          obj = document.getElementById("sel_pr");
          pr = obj.options[obj.selectedIndex].value;
          obj = document.getElementById("txt_calendar");
          dd = obj.value;
          obj = document.getElementById("sel_bb");
          if (!isUndefined(obj) && !isNull(obj)){
             bb = obj.value;
          }else{bb="ALL";}
       }else{
          obj = document.getElementById("sel_l0");
          l0 = obj.options(obj.selectedIndex).value;
          obj = document.getElementById("sel_l1");
          ll0 = obj.options(obj.selectedIndex).value;
          l1txt = obj.options(obj.selectedIndex).text;
          obj = document.getElementById("sel_l2");
          if (!isUndefined(obj) && !isNull(obj)){
             if(obj.length > 0){
                ll = obj.options[obj.selectedIndex].value;
                s_obj_length = obj.length;
             }         
          }else{ok_text = "destination";}
          obj = document.getElementById("sel_f");
          f = obj.options(obj.selectedIndex).value;
          obj = document.getElementById("sel_d");
          d = obj.options(obj.selectedIndex).value;
          obj = document.getElementById("sel_pr");
          pr = obj.options(obj.selectedIndex).value;
          obj = document.getElementById("txt_calendar");
          dd = obj.value;
          obj = document.getElementById("sel_bb");
          if (!isUndefined(obj) && !isNull(obj)){
             bb = obj.value;
          }else{bb="ALL";}
          
       }
       
       
       if(l0 == 0){ok_text_2 ="departure airport";}
       if(ll == 0){ll=ll0;}
       if(ll0 == 0 || ll==-1 || ll0 ==-1){ok_text ="destination";}
 
       obj = document.getElementById("txt_l2_text");
       var level = obj.value;
       if (level == "" && ll != 0){obj = document.getElementById("sel_l2");obj= document.getElementById("sel_l1");
          //if (isMoz){level = obj.options[obj.selectedIndex].text;}else{level = obj.options(obj.selectedIndex).text;}
       }
       var re = new RegExp("-", "g");      
       level = level.replace(re, "");
       var preurl = "/search/" + l1txt.replace(/^\s+|\s+$/g, '');
       if (level != ""){preurl += "/" + level.replace(/^\s+|\s+$/g, '');}
       re = new RegExp(" ", "g");      
       preurl = preurl.replace(re, "-");
       var url = preurl + "/";
       url += "results.aspx?";
       url += "l0=" + l0;
       url += "&ll=" + ll;
       url += "&ll0=" + ll0;
       url += "&dd=" + dd;
       url += "&pr=" + pr;
       url += "&d=" + d;
       url += "&f=" + f;
       url += "&bb=" + bb;
       url += "&q=" + l1txt.replace(/^\s+|\s+$/g, '') + " " + level;
       url += "&WT.oss=" + l1txt.replace(/^\s+|\s+$/g, '') + " " + level + "&WT.oss_r=1";
       url += "&newsearch=1";
       
       
       url += "&ai=1"; // This search came from the All Inclusive section of the website. Used for tracking.       
       
       if (ok_text == "" && ok_text_2 == ""){
          window.location = url;
       }else{
       
          if (ok_text_2 != "" && ok_text != ""){
             alert("Please choose a " + ok_text_2 + " and " + ok_text);
          }
          if (ok_text_2 == "" && ok_text != ""){
             alert("Please choose a " + ok_text);
          }
          if(ok_text_2 != "" && ok_text == ""){
            alert("Please choose a " + ok_text_2);
          }
       }
 }
 
 
 
 /*Region for reviews*/
 function load_l_reviews(val_, sel_name, num_){
    var next_num = parseInt(num_) + 1;
    for(i=next_num;i<= 3;i++){
            var obj = document.getElementById("div_" + sel_name + i);
		      if(isNull(obj)){}else{obj.innerHTML = "&nbsp;";}
        }
    if(val_!= 0){
        var obj = document.getElementById("div_" + sel_name + num_);
        var t = rev_arr_obj[val_];
        
        if (isUndefined(t)){
                var obj = document.getElementById("div_" + sel_name + num_);var s2= "";
                var s = "<select id=\"" + sel_name + num_ + "\" style=\"WIDTH: 140px;\" " + s2 + " name=\"" + sel_name + num_  + "\">";
                s += "</select>";
               if(isNull(obj)){}else{obj.innerHTML = "&nbsp;";}
        }else{
            var onchange_ = "onchange=\"load_l_reviews(this.value, '" + sel_name  + "', " + next_num + ")\"";
            var s = "<select id=\"" + sel_name + num_ + "\" style=\"WIDTH: 140px;\" " + onchange_ + " name=\"" + sel_name + num_ + "\">";
            s += t;
            s += "</select>";
		    if(isNull(obj)){}else{obj.innerHTML = s;}
        }
    }
}
 /*end Region for reviews*/