﻿// 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(lsSender != null && lsSender != "")
    {
        if(lsSender == "default")
            lsSelectBoxFontSize = "13px";
    }*/
    
    
    if (checkin.value == ""){
        checkin.value =  d.getDate(d)+ "-" + month_name[d.getMonth(d)] + "-" + d.getFullYear(d);
    }
    

    var defaultDate = new Date(); 
    defaultDate = dateAdd("d",9,defaultDate);

    var checkout = document.getElementById("txt_calendarRet");
    if (checkout.value == ""){
    checkout.value = defaultDate.getDate(defaultDate) + "-" + month_name[defaultDate.getMonth(defaultDate)] + "-" + defaultDate.getFullYear(defaultDate);
    }
    
    

    
    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_1\" style=\"WIDTH: 180px; font-size:13px\" onchange=\"load_l(this.value, 'sel_', 2 , '"+ lsSelectBoxFontSize +"')\"  name=\"sel_1\">";
    s += t;
    s += "</select>";
    obj.innerHTML = s;
    
    //"ipt_sel_1"
    preload_values("ipt_sel_", "sel_", 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_ <=4) {
    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 s = "<select id=\"" + sel_name + i + "\" style=\"WIDTH: 180px; font-size: 11px; background:#BBBBBB;\" 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 s = "<select id=\"" + sel_name + i + "\" style=\"WIDTH: 180px; font-size: 11px; background:#BBBBBB;\" 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 == 5){onchange_ = ""}
            var s = "<select id=\"" + sel_name + num_ + "\" style=\"WIDTH: 180px; font-size: 11px\" " + 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 obj = document.getElementById("div_" + sel_name + i);
            var s = "<select id=\"" + sel_name + i + "\" style=\"WIDTH: 180px; font-size: 11px; background:#BBBBBB;\" name=\"" + sel_name + i + "\">";
            s += "</select>";
		if(isNull(obj)){}else{obj.innerHTML = s;}
        }
    }
}


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;
   }
}
