﻿

var strRdoCiryText=null;
var strRdoCityVal=null;
var objFrm=null;
var objRdoTo=null;

var objRdoFromMonth=null;
var objRdoToDay=null;
    
var memIndDay=0;

    
function setObjRdoFromMonth(obj){
   objRdoFromMonth=obj;
}
function setObjRdoToDay(obj){
   objRdoToDay=obj;
}
function setStringRdoCityText(strTxt){
   strRdoCiryText=createArray(strTxt);
}
function setStringRdoCityVal(strVal){
   strRdoCityVal=createArray(strVal);
}

function setFormObjDocument(objForm){
   objFrm=objForm
}

function setObjRdoTo(objRadioTo){
   objRdoTo=objRadioTo;
}
function createArray(str){
   var tmpArr=str.split(',');
   return tmpArr;
}
function getCityCodeInd(strCityCode){
	var temp='';
	var cityCode='';
	var ind=0;
	for(i=0;i<strRdoCityVal.length; i++){
		temp = strRdoCityVal[i];
		if(temp.toUpperCase()==strCityCode.toUpperCase()){
			ind=i;
		}
		
	}//end for
	return ind;
}
function clearAllCityList(oList){
    for(var i = oList.options.length - 1; i >= 0; i--){
	  	 oList.options[i] = null;
	}
		oList.selectedIndex = -1;
	
}	
function addToListCity(arrListCity,listOf,strList){
	
	for(var i=0;i<arrListCity.length;i++){
		if((arrListCity[i]==null) || (arrListCity[i].toString()=='') ){
			arrListCity[i]=listOf+'#'+strList;
			break;
		}
	}
}
function GetListCity(arrListCity,listOf){
	var strTmp='',strList='',strCode='';
	for(var i=0;i<arrListCity.length;i++){
	    strList='';
		if((arrListCity[i]!=null) || (arrListCity[i].toString()!='') ){
			strTmp=arrListCity[i].toString().split('#');
			strCode=strTmp[0];
			if(strCode.toUpperCase()==listOf){
				strList=strTmp[1];
				break;
			}
		}
	}
	return strList;
}
function setDefaultInfo(){
	setDefaultRoute();
	setDefaultDate();
}
function setDefaultRoute(){
	
	var ori=document.getElementById('Search_flight1_ddlFrom');
    var des=document.getElementById('Search_flight1_ddlTo');
	var index=0;
	
	var defaultOrigin='DMK';
	var defaultDestination='CNX';
	
	if(reqDefDest==''){
		var route=getCookieRoute();
	
		if(route!=null){
			index=getIndex(ori,route[0]);
			if(index>=0){
				ori.selectedIndex=index;
				setArrival(ori);
			}
			
			index=getIndex(des,route[1]);
			if(index>=0){
				des.selectedIndex=index;
			}				
		}else{
			switch(currentLanguage){
				case 'th-TH':
					defaultOrigin='DMK';
					defaultDestination='KBV'; 
					break;
				case 'en-US':
					defaultOrigin='DMK';
					defaultDestination='CNX'; 
					break;
				case 'vi-VN':
					defaultOrigin='HAN';
					defaultDestination='BKK'; 
					break;
			}
			index=getIndex(ori,defaultOrigin);
			if(index>=0){
				ori.selectedIndex=index;
				setArrival(ori);
			}
			index=getIndex(des,defaultDestination);
			if(index>=0){
				des.selectedIndex=index;
			}
			
		}//
	}
}
function setDefaultDate(){
	
	var oriDate=document.getElementById('Search_flight1_ddlDepartDate');
    var oriMonthMonth=document.getElementById('Search_flight1_ddlDepartMonth');
    
    var desDate=document.getElementById('Search_flight1_ddlArriveDate');
    var desMonthMonth=document.getElementById('Search_flight1_ddlArriveMonth');
	
	
	var index=0;
	
	var date=getCookieDate();
	var tmpDate=null;
	
	var depDate=null;
	var depMonthYear=null;
	
	var destDate=null;
	var desMonthYear=null;
	
	if(date!=null){
		if(date[0].indexOf('-')>-1){
			tmpDate=date[0].split('-');
			
			//set month of departure
			depMonthYear=tmpDate[1];
			index=getIndex(oriMonthMonth,tmpDate[1]);
			if(index>=0){
				oriMonthMonth.selectedIndex=index;
				changeDay(0);
			}
			
			//set day of departure
			depDate=tmpDate[0];
			index=getIndex(oriDate,tmpDate[0]);
			if(index>=0){
				oriDate.selectedIndex=index;
			}
		}
		
		if(date[1].indexOf('-')>-1){
			
			tmpDate=date[1].split('-');
			destDate=tmpDate[0];
			desMonthYear=tmpDate[1];
			
			if(isMoreThan(depDate,depMonthYear,destDate,desMonthYear)){
				tmpDate=date[0].split('-');	
			}
			
			//set mont of destionation
			index=getIndex(desMonthMonth,tmpDate[1]);
			if(index>=0){
				desMonthMonth.selectedIndex=index;
				changeDay(1);
			}
			
			//set day of destionation
			index=getIndex(desDate,tmpDate[0]);
			if(index>-1){
				desDate.selectedIndex=index;
			}else{
				 if(desDate.options.length>0){
					desDate.selectedIndex=0;
					changeDay(0);
					changeDay(1);
				 }
				
			}
		}
		
	}

}


/**
* on departure change
*
*/
function setArrival(f) 
{
	var objArrival =objRdoTo; 
	//var arrListCity= new Array(strRdoCiryText.length);
	var selectValue=f.options[f.selectedIndex ].value.toUpperCase();
	var objCityMember= eval('tableOfDestination.'+selectValue);
	
	
	objArrival.length=0;
	clearAllCityList(objArrival);
	
	for(var i=0;i<objCityMember.length;i++){
		objArrival.options[i] = new Option (objCityMember[i].Name, objCityMember[i].Code);	
	}
	
	try{
		if(reqDefDest!=''){
			index=getIndex(objArrival,reqDefDest);
			if(index>=0){
				objArrival.selectedIndex=index
			}
			reqDefDest='';
		}else{
			var route=getCookieRoute();
			var index=0;
			if(route!=null){
				index=getIndex(objArrival,route[1]);
				if(index>=0){
					objArrival.selectedIndex=index
				}
				
				index=getIndex(objArrival,route[1]);
				if(index>=0){
					objArrival.selectedIndex=index
				}				
			}
		}
	}catch(e){}
	
    return false; 
}//function 
// ************************* Update date when change month

function changeDay(indRdo){
   
   
   var nMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
   var objRdoDate=null;
   var objRdoMonth=null;
   var strTmp='';
   var arrTmp=null;
   var mm=0;
   var yy=0; var cfDd='';
   var dayCount=0;
   var dt='';
   var typ=2;
    
   if(indRdo==0){
      objRdoDate=document.forms[0].Search_flight1_ddlDepartDate;
      objRdoMonth=document.forms[0].Search_flight1_ddlDepartMonth;
      
   }else{
	  objRdoDate=document.forms[0].Search_flight1_ddlArriveDate;
      objRdoMonth=document.forms[0].Search_flight1_ddlArriveMonth;	
      
   }
  
   strTmp=objRdoMonth.value;
   arrTmp=strTmp.split('/');
   mm=arrTmp[0]*1;
   yy=arrTmp[1]*1;
   if(isLeapYear(yy)){
      nMonth[1]=29;
   }
   
   
   dayCount=nMonth[mm-1];
   clearComboOrList(objRdoDate);
   fillCombobox(objRdoDate,dayCount,objRdoMonth);
   
   var cfDd=getDateFromConfig(cfMaxDt,2)*1;
   var cfMm=getDateFromConfig(cfMaxDt,1)*1;
   var cfYy=getDateFromConfig(cfMaxDt,0)*1;
   if(cfMm==mm && cfYy==yy){
	   dt=cfMaxDt;
	   typ=1;
   }
   
   cfDd=getDateFromConfig(cfMinDt,2)*1;
   cfMm=getDateFromConfig(cfMinDt,1)*1;
   cfYy=getDateFromConfig(cfMinDt,0)*1;
   if(cfMm==mm && cfYy==yy){
	   dt=cfMinDt;
	   typ=0;
   }
  
   if(typ<2){
		cfDd=getDateFromConfig(dt,2)*1;
		cfMm=getDateFromConfig(dt,1)*1;
		cfYy=getDateFromConfig(dt,0)*1;
		   
		var tmp1,tmp2;
		//alert(cfDd+' '+cfMm+' '+cfYy);
		   
		   
		tmp1=getMonthFromConfig(objRdoMonth.value,0)*1;
		tmp2=getMonthFromConfig(objRdoMonth.value,1)*1;
		//alert(tmp1+' '+tmp2+' '+cfMm+' '+cfYy);
		if(tmp1==cfMm && tmp2==cfYy){
			//alert('dddd');
			
			clearDayByLimit(objRdoDate,typ,cfDd);
		}
   }
   
   if(indRdo==0){
	updateArrivalDateMonth();
   }
   
   return false; 
 }
//************************ Manage List
function clearComboOrList(oList){
    if( oList.options.length>0){
   		memIndDay=oList.options[oList.selectedIndex].value;
    }
	for(var i = oList.options.length - 1; i >= 0; i--){
	  	 oList.options[i] = null;
	}
		oList.selectedIndex = -1;
	
 }	
        
 function fillCombobox(oList,vVal,mList){
   
   var dStart=validateDay(oList,mList);
   var tmpValue=0;
   var tmpInd=0;   
		
        oList.options.length=vVal;
        
        for(var i=0;i<vVal;i++){
           oList.options[i] = new Option(i+1,i+1);
        }
        if(dStart>0){
           for(var i = dStart-1; i >= 0; i--){
	  	      oList.options[i] = null;
	       }
        }
        
        if(memIndDay>vVal){
          tmpValue=vVal;
        }else{
		  tmpValue=memIndDay;	
        }
        
        if(oList.options.length>0){
           
           tmpInd=getIndex(oList,tmpValue);
            oList.selectedIndex=tmpInd;
           
        }
            
 }
 function getIndex(ol,val){
   var tmpIndList=-1;
   var tmpStr='';
   
   if( ol.options.length>0){
   		for(var i =0; i<ol.options.length; i++){
	  	  tmpStr=ol.options[i].value;
	  	  
	  	  if(tmpStr==val){
	  	     tmpIndList=i;
	  	  }
	    }
   } 
   return tmpIndList;
 }
 function isLeapYear(nYear) {
	var tmYear = 0;
	if (nYear>2500) {
		tmYear = nYear - 543;
	} else {
		tmYear = nYear;
	}
	if (tmYear % 100 == 0) {
		if (tmYear % 400 == 0) { return true; }
	} else {
		if ((tmYear % 4) == 0) { return true; }
	}
	return false;
}  
//********  validate Day 
function validateDay(objDay,objMonth){
   
   var dd=objDay.value;
   var mm=objMonth.value;
   var today=new Date();
   var ddNow= today.getDate()*1;
   var mmNow=(today.getMonth()+1)+'/'+today.getFullYear(); 
   var ans=1;
// alert(setFullFormatDate(mmNow,'mm/yy')+'  '+setFullFormatDate(mm,'mm/yy'));
   if(setFullFormatDate(mmNow,'mm/yy')==setFullFormatDate(mm,'mm/yy')){
       
      ans=ddNow;
   }
   
   return ans-1;
} 

function clearDayByLimit(oList,type,day){
  var tmp;	
	for(var i  = oList.options.length - 1; i >= 0; i--){
	  tmp=oList.options[i].value;
	  
	  if(type==0){
	     if(day>tmp){	 
	  	    oList.options[i] = null;
	     }
	  }else{
	     if(day<tmp){	 
	  	    oList.options[i] = null;
	     }
	  }
	}
	
}


//*********************** Seg Get Cookies for save route 
function getCookieDate(){
	var ckDate=getCookies('NokDate');
	var date=null;
	
	if(ckDate!=null){
		if(ckDate.indexOf('#')>-1){
			date=ckDate.split('#');
		}
	}
	return date;
}
function getCookieRoute(){
	var ckRoute=getCookies('NokRoute');
	var route=null;
	if(ckRoute!=null){
		if(ckRoute.indexOf('/')>-1){
			route=ckRoute.split('/');
		}
	}
	return route;
}
function getCookies(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function isMoreThan(depDate,depMonth,desDate,desMonth){

	var depDateTime=new Date(depDate+'/'+depMonth);
	var desDateTime=new Date(desDate+'/'+desMonth);
	
	if(depDateTime>desDateTime)
		return true;
	else
		return false;
}

//*********************** Utility 
function setFormatDate(strDate , strSepa){
    
     var tmpDate=strDate.split(strSepa);
     var strDateFormat;
     var num;
     var tmp;
    
         strDateFormat='';
         num=2;
         for(j=0;j<3;j++){
           tmp='';
			for(i=tmpDate[j].length;i<num;i++){
                tmp+='0';
               
			}//for
			   if((j>0)&& (j<3)){
			   strDateFormat+="/";
			}
			if(j>2){
			   num=5;
			}//if
			strDateFormat+=tmp+tmpDate[j];
         
         }//for
         return strDateFormat;
}

function getDateFromConfig(dt,ind){
  var st=dt.split('-');
  return st[ind];
}
function getMonthFromConfig(dt,ind){
  var st=dt.split('/');
  return st[ind];
}
function visibleObject(obj,b){
  var vb='';
  if(b){
    vb='block';
  }else{
    vb='none';
  }
  obj.style.display=vb;
}	
function setFullFormatDate(strDate,format)
{
	var arrFormat=format.split('/');
	var arrStrDate=strDate.split('/');
	var strTmp='';
	var tmp='';
	for(x in arrFormat){
	    tmp='';
	   
		switch(arrFormat[x]){
			case 'dd' :
			     tmp=addFullFormat(arrStrDate[x],2);
			break;
			case 'mm' :
				 tmp=addFullFormat(arrStrDate[x],2);
				 
			break;
			case 'yy' :
				 tmp=arrStrDate[x];
			break;
		}
		
		strTmp+=tmp;
		
		if(x < arrFormat.length-1){
			strTmp+='/';
		}
		
	}
	return strTmp;
	
}
function addFullFormat(str,qty){
	var n=qty-str.length;
	var ans='';
	
	for(var i =0 ;i<n;i++){
		ans+='0';
	}
	return ans+str;
}

/**
* departure month change
*
*occure when departure date or month change
*@e  "dropdown"  control that value changes
*/
function dm_change(e)
{
	//set month
	var dm = document.getElementById('Search_flight1_ddlDepartMonth');
	var am = document.getElementById('Search_flight1_ddlArriveMonth');
	am.options[dm.options.selectedIndex].selected = true;
	
	//set date
	//var da = document.getElementById('Search_flight1_ddlDepartDate');//depart
	//var ad = document.getElementById('Search_flight1_ddlArriveDate');
	//alert(da.options.selectedIndex + '/'+ad.length );
	//ad.options[da.options.selectedIndex].selected = true;

}

function  updateArrivalDateMonth(){
	
	
	var objDepDate = document.getElementById('Search_flight1_ddlDepartDate');
	var objDepMonth = document.getElementById('Search_flight1_ddlDepartMonth');
	
	var objArrDate = document.getElementById('Search_flight1_ddlArriveDate');
	var objArrMonth = document.getElementById('Search_flight1_ddlArriveMonth');
	var indDtSelected=0;
	
	if(objDepDate.selectedIndex<0)
	{
		if(objDepDate.options.length>0){
			objDepDate.selectedIndex=0;
		}
	}
	
	var depDate=objDepDate.options[objDepDate.selectedIndex ].value;
	var depMonth=getMonthYear(objDepMonth.options[objDepMonth.selectedIndex ].value,false);
	var depYear=getMonthYear(objDepMonth.options[objDepMonth.selectedIndex ].value,true);
	
	var arrDate=objArrDate.options[objArrDate.selectedIndex ].value;
	var arrMonth=getMonthYear(objArrMonth.options[objArrMonth.selectedIndex ].value,false);
	var arrYear=getMonthYear(objArrMonth.options[objArrMonth.selectedIndex ].value,true);
	var tmpIndex=0;
	var tmpStr=objDepMonth.options[objDepMonth.selectedIndex ].value;
	
	if(((depYear*1) > (arrYear*1)) || (((depYear*1)==(arrYear*1)) && ((depMonth*1)>(arrMonth*1)))) {
		
		tmpIndex=getIndex(objArrMonth,tmpStr);
		objArrMonth.selectedIndex=tmpIndex;	
		
	}
	
	depMonth=getMonthYear(objDepMonth.options[objDepMonth.selectedIndex ].value,false);
	arrMonth=getMonthYear(objArrMonth.options[objArrMonth.selectedIndex ].value,false);
	
	if(((depMonth*1)==(arrMonth*1)) && ((depDate*1)>(arrDate*1))){
		
		tmpIndex=getIndex(objArrDate,depDate);
		objArrDate.selectedIndex=tmpIndex;	
		
	}
	
	changeDay(1);
	
	
	return false;
	
}

function getMonthYear(val,isYear){
	var tmpStr=	val.split('/');
	var value=tmpStr[0];
	if(isYear)
		value=tmpStr[1];
	return value;
}