function findPosX(obj){
	var PosX=0;
	if(obj.offsetParent){
		while(obj.offsetParent){
			PosX+=obj.offsetLeft;
			obj=obj.offsetParent;
		}
	}
	else if(obj.x)
		PosX+=obj.x;
	return PosX;
}

function findPosY(obj){
	var PosY=0;
	if(obj.offsetParent){
		while(obj.offsetParent){
			PosY+=obj.offsetTop;
			obj=obj.offsetParent;
		}
	}
	else if(obj.y)
		PosY+=obj.y;
	return PosY;
}

function setSelectValue(obj,val){
	var selectedActive='';
	for (var i=0; i<obj.options.length; i++) {
		if (obj.options[i].value==val){
			obj.selectedIndex=i;
			selectedActive='Y';
			break;
		}
	}
	if(selectedActive!='Y')
		obj.selectedIndex=0;
}

function addEvent(event,functionName){
	if (document.attachEvent){
		document.attachEvent('on'+event,functionName);
	}else if(document.addEventListener){
		document.addEventListener(event,functionName,true);
	}else{
		document['on'+event]=functionName;
	}
}

function stopEvent(event,functionName){
	if (document.detachEvent){
		document.detachEvent('on'+event,functionName);
	}else if(document.removeEventListener){
		document.removeEventListener(event,functionName,true);
	}else{
		document['on'+event]=null;
	}
}

function createInputHidden(Name_Id,Value){
	if(!document.getElementById(Name_Id)){
		hidden=document.createElement('input');
		hidden.type='hidden';
		hidden.name=Name_Id;
		hidden.id=Name_Id;
		hidden.value=Value;
		document.body.appendChild(hidden);
	}
	else
		document.getElementById(Name_Id).value=Value;
}

function unsetIten(ItenNameId){
	if(document.getElementById(ItenNameId)){
		unset=document.getElementById(ItenNameId)
		document.body.removeChild(unset);
	}
}

//-- addon
window.onload=function(){
	createInputHidden('windowOnload',false);

	if(document.getElementById('DefaultCityCode') && document.getElementById('DefaultCityCode').value!=''){
		searchArea();
		searchHotelChain();
	}
	if(document.getElementById('openOptionSearch') && document.getElementById('openOptionSearch').value!=''){
		document.getElementById('OptionSearch').style.display='none';
		document.getElementById('openOptionSearch').style.display='';
	}

	if(document.getElementById('ujaxOnload') && document.getElementById('ujaxOnload').value=='Y')
		ujaxOnload();
};

window.onresize=function(){
	if(document.getElementById("tableCityList")){
		var iframeBG=document.getElementById("iframeCityListBG");
		var tableCL=document.getElementById("tableCityList");
		iframeBG.style.top=tableCL.style.top=parseInt(findPosY(document.getElementById("inputCityName"))+document.getElementById("inputCityName").offsetHeight+1)+"Px";
		iframeBG.style.left=tableCL.style.left=parseInt(findPosX(document.getElementById("inputCityName")))+"Px";
	}
	if(document.getElementById("tableCountryCityBox")){
		var iframeCCBBG=document.getElementById("iframeCountryCityBoxBG");
		var sCCB=document.getElementById("subCountryCityBox");
		iframeCCBBG.style.top=sCCB.style.top=parseInt(findPosY(document.getElementById("countrycitybox"))+document.getElementById("countrycitybox").offsetHeight+1)+"Px";
		iframeCCBBG.style.left=sCCB.style.left=parseInt(findPosX(document.getElementById("countrycitybox")))+"Px";
	}
	if(document.getElementById('CalendarFrame')){
		var iframeBG=document.getElementById('CalendarBG');
		var CFrame=document.getElementById('CalendarFrame');
		iframeBG.style.top=CFrame.style.top=parseInt(findPosY(document.getElementById(xlinkback))+document.getElementById(xlinkback).offsetHeight)+"Px";
		iframeBG.style.left=CFrame.style.left=parseInt(findPosX(document.getElementById(xlinkback))-100)+"Px";
	}
	if(document.getElementById("tableHotelNameList")){
		var iframeBG=document.getElementById("iframeHotelNameListBG");
		var tableCL=document.getElementById("tableHotelNameList");
		iframeBG.style.top=tableCL.style.top=parseInt(findPosY(document.getElementById("inputHotelName"))+document.getElementById("inputHotelName").offsetHeight+1)+"Px";
		iframeBG.style.left=tableCL.style.left=parseInt(findPosX(document.getElementById("inputHotelName")))+"Px";
	}
};

//--citypopup
removeCityListRule();
function activeCityListRule(){
	if(!document.getElementById('RuleCityList') || document.getElementById('RuleCityList').value==''){
		addEvent('keyup',checkkeyCity);
		addEvent('mousedown',checkCityListMouseOver);
		createInputHidden('RuleCityList','Rule');
	}
	if(!document.getElementById('focusCityList'))
		createInputHidden('focusCityList','0');
	if(!document.getElementById('inputCityCode'))
		createInputHidden('inputCityCode','');
}

function removeCityListRule(evt){
	stopEvent('keyup',checkkeyCity);
	stopEvent('mousedown',checkCityListMouseOver);
	unsetIten('RuleCityList');
}

function resetinputCityName(){
	if(document.getElementById('inputCityName'))
		document.getElementById('inputCityName').value='';
	if(document.getElementById('inputCityCode'))
		document.getElementById('inputCityCode').value='';
}

var createCL='';
function getCityList(){
	if(createCL!='N'){
		if(!document.getElementById('RuleCityList') || document.getElementById('RuleCityList').value=='')
			activeCityListRule();
		if(document.getElementById('inputCityName').value.length >= 3)
			createCityList();
	}
}

function checkkeyCity(evt){
	if(!evt) evt=event;
	a=evt.keyCode;
	var oldfocus=document.getElementById('focusCityList').value;
	switch (a){
		case 38: //up
			createCL='N';
			var focusUp=parseInt(oldfocus)-1;
			if(document.getElementById('trCityList_'+focusUp)){
				onfocusCityList(oldfocus,focusUp);
				document.getElementById('tableCityList').scrollTop=document.getElementById('trCityList_'+focusUp).offsetTop;
			}
			return false;
			break;
		case 40: //down
			createCL='N';
			var focusDown=parseInt(oldfocus)+1;
			if(document.getElementById('trCityList_'+focusDown)){
				onfocusCityList(oldfocus,focusDown);
				document.getElementById('tableCityList').scrollTop=document.getElementById('trCityList_'+focusDown).offsetTop;
			}
			return false;
			break;
		case 37: case 39: //left, right
			createCL='N';
			return false;
			break;
		case 13: case 9: //enter, tab
			createCL='N';
			if(document.getElementById('tableCityList'))
				copyCityList();
			return false;
			break;
		case 8: case 46: //back ,delete
			createCL='';
			if(document.getElementById('inputCityName').value.length==0){
				if(document.getElementById('tableCityList'))
					resetCityList();
				createInputHidden('inputCityCode', '');
				searchArea();
				searchHotelChain();
			}
			return true;
			break;
		default:
			createCL='';
			return true;
			break;
	}
}

function checkCityListMouseOver(){
	var focusCityListNo=document.getElementById('focusCityList').value;
	if(document.getElementById('hiddenCityCode_'+focusCityListNo)){
		if(document.getElementById('CityListMouseOver').value=='N')
			copyCityList();
		else if(document.getElementById('CityNameMouseOver').value=='Y'){
			copyCityList();
			unsetIten('CityListMouseOver');
			unsetIten('CityNameMouseOver');
		}
	}
	else if(document.getElementById('RuleCityList').value=='Rule')
		removeCityListRule();
}

function createCityList(){
	window.status="Searching...";
	if(document.getElementById('tableCityList'))
		resetCityList();
	createInputHidden('inputCityCode','');
	createInputHidden('CityListMouseOver','N');
	createInputHidden('CityNameMouseOver','N');

	var url=location.protocol+'//'+document.domain+'/search_list.php?type=citylistpopup&CityName='+escape(document.getElementById('inputCityName').value);
	var jsel=document.createElement('SCRIPT');
	jsel.type='text/javascript';
	jsel.src=url;
	// Append JS element (therefore executing the 'uJAX' call)
	document.body.appendChild(jsel);
	window.status="";
}

function resetCityList(){
	if(document.getElementById('iframeCityListBG'))
		document.getElementById('iframeCityListBG').style.display='none';
	if(document.getElementById('tableCityList')){
		document.getElementById('tableCityList').style.display='none';
		unsetIten('tableCityList');
	}
	document.getElementById('focusCityList').value='';
}

function onfocusCityList(oldfocus,newfocus){
	document.getElementById('focusCityList').value=newfocus;
	document.getElementById('trCityList_'+oldfocus).style.backgroundColor='';
	document.getElementById('trCityList_'+oldfocus).style.textDecoration='';
	document.getElementById('trCityList_'+newfocus).style.backgroundColor='#ECF0AE';
	document.getElementById('trCityList_'+newfocus).style.textDecoration='underline';
	document.getElementById('trCityList_'+newfocus).style.color='#0000FF';
}

function copyCityList(){
	var focusCityListNo=document.getElementById('focusCityList').value;
	if(document.getElementById('hiddenCityCode_'+focusCityListNo)){
		document.getElementById('inputCityCode').value=document.getElementById('hiddenCityCode_'+focusCityListNo).value;
		document.getElementById('inputCityName').value=document.getElementById('tdCityList_'+focusCityListNo).innerHTML;
	}
	resetCityList();

	if(document.getElementById('RuleCityList').value=='Rule')
		removeCityListRule();

	document.getElementById('inputCityName').blur();
	searchArea();
	searchHotelChain();
}

//--date list
function setDefaultDate(offset){
	var setupDate=new Date();
	setupDate.setDate(setupDate.getDate()+parseInt(offset));
	setSelectValue(document.getElementById('CheckinDateDay_List'),setupDate.getDate());
	var Month=setupDate.getMonth()+1;
	if(Month<10)
		var setM_Y='0'+Month+'_'+setupDate.getFullYear();
	else
		var setM_Y=Month+'_'+setupDate.getFullYear();
	setSelectValue(document.getElementById('CheckinDateMonth_Year_List'),setM_Y);

	setOutDate();
}

function setOutDate(){
	var checkin2checkout='2';
	var in_d_obj=document.getElementById('CheckinDateDay_List');
	var in_m_y_obj=document.getElementById('CheckinDateMonth_Year_List');
	var out_d_obj=document.getElementById('CheckoutDateDay_List');
	var out_m_y_obj=document.getElementById('CheckoutDateMonth_Year_List');

	var checkindate=new Date();
	checkindate.setDate(in_d_obj.value);
	checkindate.setMonth(in_m_y_obj.value.substring(0,2)-1);
	checkindate.setFullYear(in_m_y_obj.value.substring(3,7));
	var checkoutdate=new Date();
	checkoutdate.setDate(out_d_obj.value);
	checkoutdate.setMonth(out_m_y_obj.value.substring(0,2)-1);
	checkoutdate.setFullYear(out_m_y_obj.value.substring(3,7));
	if(((checkoutdate-checkindate)/86400000)<=0 || document.getElementById('windowOnload').value!=false){
		checkindate.setDate(parseInt(checkindate.getDate())+parseInt(checkin2checkout));
		setSelectValue(document.getElementById('CheckoutDateDay_List'), checkindate.getDate());
		var Month=checkindate.getMonth()+1;
		if(Month<10)
			var setM_Y='0'+Month+'_'+checkindate.getFullYear();
		else
			var setM_Y=Month+'_'+checkindate.getFullYear();
		setSelectValue(document.getElementById('CheckoutDateMonth_Year_List'),setM_Y);
		
		createInputHidden('windowOnload',false);
	}
}

//--Calender
	strDay=new Array(7);
	strDay[0]='Sun'; strDay[1]='Mon'; strDay[2]='Tue'; strDay[3]='Wed'; strDay[4]='Thu'; strDay[5]='Fri'; strDay[6]='Sat';

	strMonth=new Array(12);
	strMonth[0] ='January'; strMonth[1] ='February'; strMonth[2] ='March'; strMonth[3] ='April'; strMonth[4] ='May'; strMonth[5] ='June'; strMonth[6] ='July'; strMonth[7] ='August'; strMonth[8] ='September'; strMonth[9] ='October'; strMonth[10]='November'; strMonth[11]='December';

function popupCalendar(linkback){
	var dd=document.getElementById(linkback+"Day_List").value;
	var mm=document.getElementById(linkback+"Month_Year_List").value.substring(0,2)-1;
	var yyyy=document.getElementById(linkback+"Month_Year_List").value.substring(3,7);
	createCalendar(dd,mm,yyyy,linkback,dd,mm,yyyy);
}

function createCalendar(dd,mm,yyyy,linkback,ddset,mmset,yyyyset){
	xset=new Array(3);
	xset[0]=ddset; xset[1]=mmset; xset[2]=yyyyset;

	xback=new Array(3);
	xback[0]=''; xback[1]=mm-1; xback[2]=yyyy;

	xnext=new Array(3);
	xnext[0]=''; xnext[1]=mm+1; xnext[2]=yyyy;

	xlinkback=linkback;

	if(!document.getElementById('CalendarBG')){
		var iframeBG=document.createElement('iframe');
		iframeBG.setAttribute('id','CalendarBG');
		iframeBG.setAttribute('scrolling','no');
		iframeBG.setAttribute('frameborder','0');
		iframeBG.style.position='absolute';
		iframeBG.style.display='none';
		iframeBG.style.zIndex='70';
		document.body.appendChild(iframeBG);
	}

	if(!document.getElementById('CalendarFrame')){
		var cf=document.createElement('table');
		cf.setAttribute('id','CalendarFrame');
		cf.style.position='absolute';
		cf.style.border='1px inset #000000';
		cf.style.display='none';
		cf.style.zIndex='71';
		cf.style.background='#FFFFFF';
		cf.border='0';
		cf.cellPadding='0px';
		cf.cellSpacing='5px';
		cf.onmouseover=function() { activeMouseRule(); }
		cf.onmouseout=function() { removeMouseRule(); }
		document.body.appendChild(cf);
			cf_tr=cf.insertRow(-1);

				cf_td=cf_tr.insertCell(-1);
				cf_td.style.fontFamily='Verdana, Arial, Helvetica, sans-serif';
				cf_td.style.fontSize='11px';
				cf_td.style.width='25px';
				cf_td.style.textAlign='left';
				cf_td.id='cf_td_1_left';
				cf_td.onmouseover=function() { 
					createInputHidden('CFrameTop', findPosY(document.getElementById('CalendarFrame')));
					createInputHidden('CFrameLeft', findPosX(document.getElementById('CalendarFrame')));
					if(!document.getElementById('activeCalendarRule') || document.getElementById('activeCalendarRule').value!='N'){
						removeCalendarRule();
						createInputHidden('activeCalendarRule', 'N');
						}
					}
				cf_td.onmouseout=function() {
					unsetIten('CFrameTop');
					unsetIten('CFrameLeft');
					if(!document.getElementById('activeCalendarRule') || document.getElementById('activeCalendarRule').value!='Y'){
						activeCalendarRule();
						createInputHidden('activeCalendarRule', 'Y');
						}
					}

				cf_td=cf_tr.insertCell(-1);
				cf_td.style.fontFamily='Verdana, Arial, Helvetica, sans-serif';
				cf_td.style.fontSize='11px';
				cf_td.style.textAlign='center';
				cf_td.style.verticalAlign='middle';
				cf_td.id='cf_td_1';

				cf_td=cf_tr.insertCell(-1);
				cf_td.style.fontFamily='Verdana, Arial, Helvetica, sans-serif';
				cf_td.style.fontSize='11px';
				cf_td.style.width='25px';
				cf_td.style.textAlign='right';
				cf_td.id='cf_td_1_right';
				cf_td.onmouseover=function() { 
					createInputHidden('CFrameTop', findPosY(document.getElementById('CalendarFrame')));
					createInputHidden('CFrameLeft', findPosX(document.getElementById('CalendarFrame')));
					if(!document.getElementById('activeCalendarRule') || document.getElementById('activeCalendarRule').value!='N'){
						removeCalendarRule();
						createInputHidden('activeCalendarRule', 'N');
						}
					}
				cf_td.onmouseout=function() {
					unsetIten('CFrameTop');
					unsetIten('CFrameLeft');
					if(!document.getElementById('activeCalendarRule') || document.getElementById('activeCalendarRule').value!='Y'){
						activeCalendarRule();
						createInputHidden('activeCalendarRule', 'Y');
						}
					}


			cf_tr=cf.insertRow(-1);

				cf_td=cf_tr.insertCell(-1);
				cf_td.colSpan='3';
				cf_td.style.fontFamily='Verdana, Arial, Helvetica, sans-serif';
				cf_td.style.fontSize='11px';
				cf_td.style.textAlign='left';
				cf_td.style.verticalAlign='top';
				cf_td.id='cf_td_2';


			cf_tr=cf.insertRow(-1);
				cf_td=cf_tr.insertCell(-1);
				cf_td.colSpan='3';
				cf_td.style.height='10px'
				cf_td.style.textAlign='center';
				cf_td.style.verticalAlign='middle';
				cf_td.style.fontFamily='Verdana, Arial, Helvetica, sans-serif';
				cf_td.style.fontSize='11px';
				cf_td.style.fontWeight='bold';
				cf_td.style.color='#000099';
				cf_td.innerHTML="<span onClick='javascript:colseCalendar()' style='cursor:hand'>close</span>";
	}

	var today=new Date()
	var dchack=new Date()
	dchack.setDate(1);
	dchack.setMonth(11);
	dchack.setFullYear(dchack.getFullYear()+1);
	var dAll=new Date()
	dAll.setDate(1);
	dAll.setMonth(mm);
	dAll.setFullYear(yyyy);

	if(dAll>today)
		document.getElementById('cf_td_1_left').innerHTML="<a href='javascript:reloadCalendar_back()'><img border='0' align='absmiddle' src='http://res.12bookhotels.com/images/calendar_left.gif'></a>";
	else
		document.getElementById('cf_td_1_left').innerHTML='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';

	document.getElementById('cf_td_1').innerHTML=strMonth[mm].substring(0,3)+' '+yyyy;

	if(dAll < dchack)
		document.getElementById('cf_td_1_right').innerHTML="<a href='javascript:reloadCalendar_next()'><img border='0' align='absmiddle' src='http://res.12bookhotels.com/images/calendar_right.gif'></a>";
	else
		document.getElementById('cf_td_1_right').innerHTML='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';

	if(document.getElementById('cf_td_2'))
		document.getElementById('cf_td_2').innerHTML='';

	dAll.setDate(dAll.getDate()-dAll.getDay());
	var dSet=new Date()
	dSet.setDate(ddset)
	dSet.setMonth(mmset);
	dSet.setFullYear(yyyyset);

	var ta=document.createElement('table');
	ta.setAttribute('id','Calendar');
	ta.border='0';
	ta.cellPadding='1px';
	ta.cellSpacing='1px';
	ta.style.background='#99CC66';
	document.getElementById('cf_td_2').appendChild(ta);
		tr=ta.insertRow(-1);
		tr.style.textAlign='center';
		for(i=0; i<=6; i++){
			td=tr.insertCell(-1);
			td.style.fontFamily='Verdana, Arial, Helvetica, sans-serif';
			td.style.fontSize='11px';
			td.style.height='18px';
			td.style.width='15px';
			td.style.textAlign='center';
			td.style.fontWeight='bold';
			td.style.color='#FFFFFF';
			td.innerHTML='&nbsp;'+strDay[i].substring(0,1)+'&nbsp;';
		}
		for(i=1; i<=6; i++)		{
			tr=ta.insertRow(-1);
			tr.style.textAlign='center';
			tr.id= 'trCalendar_'+i;
				for(j=1; j<=7; j++){
					td=tr.insertCell(-1);
					td.id= 'tdCalendar_'+dAll.getFullYear()+'_'+dAll.getMonth()+'_'+dAll.getDate();
					td.style.fontFamily='Verdana, Arial, Helvetica, sans-serif';
					td.style.fontSize='11px';
					td.style.height='18px';
					td.style.textAlign='center';
					if((mm==dAll.getMonth()) && (today <= dAll)){
						td.innerHTML="<span onClick='javascript:setDMY("+td.id+")' style='cursor:hand'>"+dAll.getDate()+"</span>";
						if(dAll.getDay()==0)
							td.style.color='#FF0000'; //sun
						else if(dAll.getDay()==6)
							td.style.color='#008888'; //sat
						else
							td.style.color='#000000'; //mon-fri

						if(dAll.getDate()==dSet.getDate() && dAll.getMonth()==dSet.getMonth() && dAll.getFullYear()==dSet.getFullYear())
							td.style.background='#FFFF00'; //select
						else
							td.style.background='#DDDDDD'; //not select
					}
					else{
						td.innerHTML=dAll.getDate();
						td.style.color='#C0C0C0';
						td.style.background='#DDDDDD';
					}
					dAll.setDate(dAll.getDate()+1);
				}
		}

	var iframeBG=document.getElementById('CalendarBG');
	var CFrame=document.getElementById('CalendarFrame');
	var CFrame_td2=document.getElementById('cf_td_2')
	var tableCa=document.getElementById('Calendar');
	CFrame.style.borderTopColor='#0000FF';

	if (!window.opera)
		iframeBG.style.display='inline';
	CFrame.style.display='inline';

	CFrame_td2.style.width=parseInt(tableCa.offsetWidth)+"Px";
	CFrame_td2.style.height=parseInt(tableCa.offsetHeight)+"Px";
	iframeBG.style.width=parseInt(CFrame.offsetWidth)+"Px";
	iframeBG.style.height=parseInt(CFrame.offsetHeight)+"Px";

	if(document.getElementById('CFrameTop') && document.getElementById('CFrameLeft')){
		iframeBG.style.top=CFrame.style.top=parseInt(document.getElementById('CFrameTop').value)+"Px";
		iframeBG.style.left=CFrame.style.left=parseInt(document.getElementById('CFrameLeft').value)+"Px";
	}
	else{
		iframeBG.style.top=CFrame.style.top=parseInt(findPosY(document.getElementById(linkback))+document.getElementById(linkback).offsetHeight)+"Px";
		iframeBG.style.left=CFrame.style.left=parseInt(findPosX(document.getElementById(linkback))-100)+"Px";
	}

	if(!document.getElementById('activeCalendarRule') || document.getElementById('activeCalendarRule').value!='Y'){
		activeCalendarRule();
		createInputHidden('activeCalendarRule', 'Y');
	}
}

function setDMY(id){
	var yyyy=id.id.substring(11,15);
	if(id.id.substring(17,18)=='_'){
		var mm=parseInt(id.id.substring(16,17))+1;
		var dd=id.id.substring(18);
	}
	else{
		var mm=parseInt(id.id.substring(16,18))+1;
		var dd=id.id.substring(19);
	}
	if(mm < 10)
		mm='0'+mm;
	if(dd < 10)
		dd='0'+dd;
	setSelectValue(document.getElementById(xlinkback+'Day_List'),dd);
	setSelectValue(document.getElementById(xlinkback+'Month_Year_List'),mm+'_'+yyyy);

	var in_d_obj=document.getElementById('CheckinDateDay_List');
	var in_m_y_obj=document.getElementById('CheckinDateMonth_Year_List');
	var out_d_obj=document.getElementById('CheckoutDateDay_List');
	var out_m_y_obj=document.getElementById('CheckoutDateMonth_Year_List');

	var checkindate=new Date();
	checkindate.setDate(in_d_obj.value);
	checkindate.setMonth(in_m_y_obj.value.substring(0,2)-1);
	checkindate.setFullYear(in_m_y_obj.value.substring(3,7));
	var checkoutdate=new Date();
	checkoutdate.setDate(out_d_obj.value);
	checkoutdate.setMonth(out_m_y_obj.value.substring(0,2)-1);
	checkoutdate.setFullYear(out_m_y_obj.value.substring(3,7));

	if(((checkoutdate-checkindate)/86400000)<=0)
		setOutDate();

	colseCalendar();
}

function reloadCalendar_back(){
	date=new Date();
	date.setDate(1);
	date.setFullYear(xback[2]);
	date.setMonth(xback[1]);
	createCalendar(xback[0],date.getMonth(),date.getFullYear(),xlinkback,xset[0],xset[1],xset[2]);
}

function reloadCalendar_next(){
	date=new Date();
	date.setDate(1);
	date.setFullYear(xnext[2]);
	date.setMonth(xnext[1]);
	createCalendar(xnext[0],date.getMonth(),date.getFullYear(),xlinkback,xset[0],xset[1],xset[2]);
}

function colseCalendar(){
	unsetIten('CalendarBG');
	unsetIten('CalendarFrame');
	removeCalendarRule();
	unsetIten('activeCalendarRule');
}

function activeCalendarRule(){
	addEvent('mousedown', checkCalendar);
}

function removeCalendarRule(evt){
	stopEvent('mousedown', checkCalendar);
}

function checkCalendar(e){
	var CFrame=document.getElementById('CalendarFrame');
	if (window.opera || document.all)
		CFrame.focus();
	var minX=CFrame.offsetLeft;
	var maxX=minX+CFrame.offsetWidth;
	var minY=CFrame.offsetTop;
	var maxY=minY+CFrame.offsetHeight;

	if (!e)
		var e=window.event;

	if (e.pageX || e.pageY) {
		posx=e.pageX;
		posy=e.pageY;
	}
	else if (e.clientX || e.clientY) {
		posx=e.clientX+document.body.scrollLeft;
		posy=e.clientY+document.body.scrollTop;
	}

	if(posx < minX || posx > maxX || posy < minY || posy > maxY)
	{
		colseCalendar();
		return false;
	}
	else
		return true;
}

function activeMouseRule()
{
	addEvent('mousedown',mouseDownRule);
}

function removeMouseRule()
{
	stopEvent('mousedown',mouseDownRule);
}

function mouseDownRule()
{
	addEvent('mouseup',mouseUpRule);
	addEvent('mousemove',calendarMove);
}

function mouseUpRule()
{
	stopEvent('mouseup',mouseUpRule);
	stopEvent('mousemove',calendarMove);
	unsetIten('CalendarFrameX');
	unsetIten('CalendarFrameY');
	unsetIten('MouseX');
	unsetIten('MouseY');
	document.body.style.cursor='default';
}

function calendarMove(e)
{
	document.body.style.cursor='move';
	if(document.getElementById('CalendarFrame')){
		var posx=0;
		var posy=0;

		if (!e)
			var e=window.event;

		if (e.pageX || e.pageY){
			posx=e.pageX;
			posy=e.pageY;
		}
		else if(e.clientX || e.clientY){
			posx=e.clientX+document.body.scrollLeft;
			posy=e.clientY+document.body.scrollTop;
		}

		var iframeBG=document.getElementById('CalendarBG');
		var CFrame=document.getElementById('CalendarFrame');

		if(!document.getElementById('MouseX') || document.getElementById('MouseX').value==''){
			createInputHidden('CalendarFrameX',findPosX(CFrame));
			createInputHidden('CalendarFrameY',findPosY(CFrame));
			createInputHidden('MouseX',posx);
			createInputHidden('MouseY',posy);
		}

		CalendarX=posx-parseInt(document.getElementById('MouseX').value)+parseInt(document.getElementById('CalendarFrameX').value);
		CalendarY=posy-parseInt(document.getElementById('MouseY').value)+parseInt(document.getElementById('CalendarFrameY').value);

		iframeBG.style.left=CFrame.style.left=parseInt(CalendarX)+"Px";
		iframeBG.style.top=CFrame.style.top=parseInt(CalendarY)+"Px";

		if (window.opera || document.all)
			CFrame.focus();
	}
}

//-- room type info
function RoomInfo(roomtype){
	if(!document.getElementById('tip')){
		var divtip=document.createElement('div');
		divtip.setAttribute('id','tip');
		divtip.style.position='absolute';
		divtip.style.zIndex='60';
		divtip.style.width='auto';
		divtip.style.background='#EAE8E8';
		document.body.appendChild(divtip);
	}

	if(!document.getElementById('iframeBG')){
		var iframeBG=document.createElement('iframe');
		iframeBG.id='iframeBG';
		iframeBG.style.zIndex='59';
		iframeBG.setAttribute('scrolling','no');
		iframeBG.setAttribute('frameborder','0');
		iframeBG.style.position='absolute';
		if(window.opera)
			iframeBG.style.display='none';
		document.body.appendChild(iframeBG);
	}

	IDroomtype=document.getElementById('id_'+roomtype);
	tdroomtype=document.getElementById('td_'+roomtype);
	divtip=document.getElementById('tip');
	iframeBG=document.getElementById('iframeBG');
	divtip.innerHTML=GetRoomInfo(roomtype);

	iframeBG.style.height=parseInt(divtip.offsetHeight)+'px';
	iframeBG.style.width=parseInt(divtip.offsetWidth)+'px';
	iframeBG.style.top=divtip.style.top=parseInt(findPosY(IDroomtype)+IDroomtype.offsetHeight+1)+"Px";
	iframeBG.style.left=divtip.style.left=parseInt(findPosX(IDroomtype))+"Px";

}

function GetRoomInfo(roomtype){
	var strHTML='';
	var strHTML="<table style='border:1px inset #000000' width='240'><tr><td class='textBlack'>";
	if(roomtype=='Single') strHTML=strHTML+'A room with one single bed for one person.';
	if(roomtype=='Double') strHTML=strHTML+'A room with one double bed for two persons.';
	if(roomtype=='Twin') strHTML=strHTML+'A room with two single beds for two persons.';
	if(roomtype=='Triple') strHTML=strHTML+'A room with three single beds, or double bed plus an extra bed.';
	if(roomtype=='Quad') strHTML=strHTML+'A room with four single beds for four persons.';
	var strHTML=strHTML+'</td></tr></table>';
	return strHTML
}

function KillTip(){
	unsetIten('tip');
	unsetIten('iframeBG');
}

//-- search Area
function searchArea(LandmarkName){
	if(LandmarkName==undefined && document.getElementById("inputLandmarkName"))
		LandmarkName=document.getElementById("inputLandmarkName").value;

	if(document.getElementById('AreaList')){
		div=document.getElementById('AreaList');
		div.innerHTML="<select name='Area' class='input' tabindex='160' size='1'><option value=''>All Areas</option></select>";

		if((document.getElementById('inputCityCode')) && (document.getElementById('inputCityCode').value!='')){
			var url=location.protocol+'//'+document.domain+'/search_list.php?type=arealist&CityCode='+document.getElementById('inputCityCode').value;
			if (LandmarkName!=undefined)
				url+='&LandmarkName='+LandmarkName;
		}

		var jsel=document.createElement('SCRIPT');
		jsel.type='text/javascript';

		jsel.src=url;
		  // Append JS element (therefore executing the 'uJAX' call)
		document.body.appendChild(jsel);
	}
}

//-- hotelchainlist
function searchHotelChain(HotelChainCode){
	if(HotelChainCode==undefined && document.getElementById("inputHotelChainCode"))
		HotelChainCode=document.getElementById("inputHotelChainCode").value;

	if(document.getElementById('HotelChainList')){
		div=document.getElementById('HotelChainList');
		div.innerHTML="<select name='HotelChain' class='input' tabindex='170' size='1'><option value=''>Any</option></select>";

		if((document.getElementById('inputCityCode')) && (document.getElementById('inputCityCode').value!='')){
			var url=location.protocol+'//'+document.domain+'/search_list.php?type=hotelchainlist&CityCode='+document.getElementById('inputCityCode').value;
			if (HotelChainCode!=undefined)
				url+='&HotelChainCode='+HotelChainCode;
		}

		var jsel=document.createElement('SCRIPT');
		jsel.type='text/javascript';

		jsel.src=url;
		// Append JS element (therefore executing the 'uJAX' call)
		document.body.appendChild(jsel);
	}
}

//-- hotelnamePopup
removeHotelNameListRule();	//reset Rule onload
function activeHotelNameListRule(){
	if(!document.getElementById('RuleHotelNameList') || document.getElementById('RuleHotelNameList').value==''){
		addEvent('keyup', checkkeyHotelName);
		addEvent('mousedown', checkHotelNameListMouseOver);
		createInputHidden('RuleHotelNameList','Rule');
	}
	if(!document.getElementById('focusHotelNameList'))
		createInputHidden('focusHotelNameList','0');
}

function removeHotelNameListRule(evt){
	stopEvent('keyup',checkkeyHotelName);
	stopEvent('mousedown',checkHotelNameListMouseOver);
	unsetIten('RuleHotelNameList');
}

var createHL='';
function getHotelNameList(){
	if(createHL!='N'){
		if(!document.getElementById('RuleHotelNameList') || document.getElementById('RuleHotelNameList').value=='')
			activeHotelNameListRule();
		if(document.getElementById('inputHotelName').value.length>0)
			createHotelNameList();
	}
}

function checkkeyHotelName(evt){
	if (!evt) evt=event;
	a=evt.keyCode;
	var oldfocus=document.getElementById('focusHotelNameList').value;
	switch (a){
		case 38: //up
			createHL='N';
			var focusUp=parseInt(oldfocus)-1;
			if(document.getElementById('trHotelNameList_'+focusUp)){
				onfocusHotelNameList(oldfocus,focusUp);
				document.getElementById('tableHotelNameList').scrollTop=document.getElementById('trHotelNameList_'+focusUp).offsetTop;
			}
			return false;
			break;
		case 40: //down
			createHL='N';
			var focusDown=parseInt(oldfocus)+1;
			if(document.getElementById('trHotelNameList_'+focusDown)){
				onfocusHotelNameList(oldfocus,focusDown);
				document.getElementById('tableHotelNameList').scrollTop=document.getElementById('trHotelNameList_'+focusDown).offsetTop;
			}
			return false;
			break;
		case 13: //enter
			createHL='N';
			if(document.getElementById('tableHotelNameList'))
				copyHotelNameList();
			return false;
			break;
		case 9: //tab
			createHL='N';
			resetHotelNameList();
			if(document.getElementById('RuleHotelNameList').value=='Rule')
				removeHotelNameListRule();
			document.getElementById('inputHotelName').blur();
			return false;
			break;
		case 8: case 46: //back ,delete
			createHL='';
			if(document.getElementById('inputHotelName').value.length==0){
				if(document.getElementById('tableHotelNameList'))
					resetHotelNameList();
			}
			return true;
			break;
		default:
			createHL='';
			return true;
			break;
	}
}

function checkHotelNameListMouseOver(){
	var focusHotelNameListNo=document.getElementById('focusHotelNameList').value;
	if(document.getElementById('hiddenHotelNameCode_'+focusHotelNameListNo)){
		if(document.getElementById('HotelNameListMouseOver').value=='N'){
			resetHotelNameList();

			if(document.getElementById('RuleHotelNameList').value=='Rule')
				removeHotelNameListRule();

			document.getElementById('inputHotelName').blur();
		}
		else if(document.getElementById('HotelNameMouseOver').value=='Y'){
			copyHotelNameList();
			unsetIten('HotelNameListMouseOver');
			unsetIten('HotelNameMouseOver');
		}
	}
	else if(document.getElementById('RuleHotelNameList').value=='Rule')
		removeHotelNameListRule();
}

function createHotelNameList(){
	window.status="Searching...";
	if(document.getElementById('tableHotelNameList'))
		resetHotelNameList();
	
	createInputHidden('HotelNameListMouseOver','N');
	createInputHidden('HotelNameMouseOver','N');

	if((document.getElementById('inputCityCode') && (document.getElementById('inputCityCode').value!='') && document.getElementById('inputHotelName').value!='')){
		var url=location.protocol+'//'+document.domain+'/search_list.php?type=hotellistpopup&CityCode='+document.getElementById('inputCityCode').value+'&HotelName='+escape(document.getElementById('inputHotelName').value);
		//url = escape(url);
	}
	var jsel=document.createElement('SCRIPT');
	jsel.type='text/javascript';

	jsel.src=url;
	// Append JS element (therefore executing the 'uJAX' call)
	document.body.appendChild(jsel);
	window.status="";
}

function resetHotelNameList(){
	if(document.getElementById('iframeHotelNameListBG'))
		document.getElementById('iframeHotelNameListBG').style.display='none';
	if(document.getElementById('tableHotelNameList')){
		document.getElementById('tableHotelNameList').style.display='none';
		unsetIten('tableHotelNameList');
	}

	document.getElementById('focusHotelNameList').value='';
}

function onfocusHotelNameList(oldfocus,newfocus){
	document.getElementById('focusHotelNameList').value=newfocus;
	document.getElementById('trHotelNameList_'+oldfocus).style.backgroundColor='';
	document.getElementById('trHotelNameList_'+oldfocus).style.textDecoration='';
	document.getElementById('trHotelNameList_'+newfocus).style.backgroundColor='#ECF0AE';
	document.getElementById('trHotelNameList_'+newfocus).style.textDecoration='underline';
	document.getElementById('trHotelNameList_'+newfocus).style.color='#0000FF';
}

function copyHotelNameList(){
	var focusHotelNameListNo=document.getElementById('focusHotelNameList').value;
	if(document.getElementById('hiddenHotelNameCode_'+focusHotelNameListNo))
		document.getElementById('inputHotelName').value=document.getElementById('tdHotelNameList_'+focusHotelNameListNo).innerHTML;

	resetHotelNameList();

	if(document.getElementById('RuleHotelNameList').value=='Rule')
		removeHotelNameListRule();

	document.getElementById('inputHotelName').blur();
}


//--CountryCityBox
function getCountryCityBox(subtype){
	if(!document.getElementById('tableCountryCityBox') || subtype=='reloadCityBox'){
		window.status='Searching...';

		var CityCode='';
		var CountryCode='';
		if(document.getElementById('CountryBox') && subtype=='reloadCityBox')
			CountryCode=document.getElementById('CountryBox').value;
		else if(document.getElementById('inputCityCode'))
			CityCode=document.getElementById('inputCityCode').value;

		var url=location.protocol+'//'+document.domain+'/search_list.php?type=countrycitybox&subtype='+subtype+'&CountryCode='+CountryCode+'&CityCode='+CityCode;

		var jsel=document.createElement('SCRIPT');
		jsel.type='text/javascript';

		jsel.src=url;
		  // Append JS element (therefore executing the 'uJAX' call)
		document.body.appendChild(jsel);
		window.status='';
	}
	else if(document.getElementById('subCountryCityBox') && document.getElementById('tableCountryCityBox')){
		if (!window.opera)
			unsetIten("iframeCountryCityBoxBG");
		unsetIten("subCountryCityBox");
	}
}
