// original global.js
var ajax = new sack();
var ajax2 = new sack();

var months = new Array()
months[1] = "January"
months[2] = "February"
months[3] = "March"
months[4] = "April"
months[5] = "May"
months[6] = "June"
months[7] = "July"
months[8] = "August"
months[9] = "September"
months[10] = "October"
months[11] = "November"
months[12] = "December"

var today = new Date()
var thisYear = today.getYear()
var date = today.getDate()
var month = today.getMonth()

var goSubmit = false;
var goAjax = true;

function createLinks()
{
	eval(ajax.response);
	document.getElementById('container_page').style.cursor='auto';
	closebar();
}

function createLinks2()
{
	eval(ajax2.response);
	document.getElementById('container_page').style.cursor='auto';
	closebar();
}

function ajaxResult()
{
	//alert(ajax.response);
	prompt('',ajax.response);
}

function submit_login(vType)
{
	if ((vType=='login') || (vType=='login2'))
	{
		if (vType=='login2') var objForm = document.login2;
		else var objForm = document.login;
		
		var un = objForm.username.value;
		var pw = objForm.userpassword.value;
		
		if ((un.length==0 || un=='User ID') || (pw.length==0)) 
		{
			alert('Please enter a valid Username/Password');
			if (un.length==0) objForm.username.value='User ID';
			if (un.length==0 || un=='User ID')
				objForm.username.select();
			else
				objForm.userpassword.select();
			return;
		}
		else objForm.submit();
	}
	else if (vType=='password')
	{
		var objEmail = document.lostpassword.emailaddress.value;
		echeck(objEmail);
		if (goSubmit)
		{
			ajax.requestFile = '../prodsearch/LostPassword.aspx?email=' + objEmail;
			ajax.onCompletion = sendLostPassword;
			ajax.runAJAX();
		}
	}

	else if (vType=='logout') { location.href=rootPath+'ajax_remote_script.asp?type='+vType; return; }
	else if (vType=='archives') { location.href=rootPath+'bookings.asp?type='+vType; return; }
	else if (vType=='bookings') { location.href=rootPath+'bookings.asp?type='+vType; return; }
	else if (vType=='quotes') { location.href=rootPath+'bookings.asp?type='+vType; return; }
	else alert('Page Not Recognized!');
}

function sendLostPassword(varNotice,varObj)
{
	eval(ajax.response);
	document.getElementById('passenger_error').innerHTML = 'Your password has been sent!';
	document.lostpassword.emailaddress.value='';
}

function onEnterLogin(varObj,varEvent)
{
	if(window.event)
	{
		if (varEvent.keyCode==13)
			EnterLogin(varObj);
	}
	else if(varEvent.which) // Netscape/Firefox/Opera
	{
		if (varEvent.which==13)
			EnterLogin(varObj);
	}
}

function EnterLogin(varObj)
{
	varForm=document.login
	if (varObj.name=='username')
	{
		varForm.userpassword.focus();return;
	}
	else if (varObj.name=='userpassword')
	{
		submit_login('login');return;
	}
	else
	{
		alert('Invalid Username/Password');return;
	}
}

//AJAX FOR COUNTRY
function getState(varForm,varCountry,varState,varCity,varClearCity){
	ajax.requestFile = rootPath+'ajax_global.asp?type=country';
	ajax.setVar('getform',varForm.name);
	ajax.setVar('country',varCountry.value);
	ajax.setVar('fld_state',varState.name);
	ajax.setVar('fld_city',varCity.name);
	ajax.setVar('clear_city',varClearCity);
	ajax.onLoading = createLoading;
	ajax.onCompletion = createLinks;
	ajax.method = 'POST';
	ajax.runAJAX();
}

//AJAX FOR CITIES
function getCity(varForm,varCountry,varState,varCity){
	ajax.requestFile = rootPath+'ajax_global.asp?type=city';
	ajax.setVar('getform',varForm);
	ajax.setVar('country',varCountry);
	ajax.setVar('state',varState);
	ajax.setVar('fld_city',varCity.name);
	ajax.onLoading = createLoading;
	ajax.onCompletion = createLinks;
	ajax.method = 'POST';
	ajax.runAJAX();
}

function createLoading()
{
	document.getElementById('loadingstate').innerHTML = 'Loading...';
}

function MoveToHome()
{
	location.href='index.asp';
}

function ProductReadMore(countryID,productCode,productName,productCity,productCountry,varSessionID,varProductType,varProductCat,varProductTypeName,varCurrency)
{
	window.location.href = rootPath+'product.asp?prod='+productCode+'&currency='+varCurrency;
}

function isEmail(varElem)
{
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(varElem.value)) return true;
	else {
		varElem.focus();
		return false;
	}
}

function correctDate(form,menu1,leap_year,objDay)
{
	checkLeapYear = (leap_year % 4);
	var nextmenu=objDay;
	var formerlength=nextmenu.options.length;
	if(menu1.options[1].selected)
	{
		if (checkLeapYear == 0)	thelength=29
		else thelength=28
	}
	else if(menu1.options[3].selected || menu1.options[5].selected || menu1.options[8].selected || menu1.options[10].selected) thelength=30;
	else thelength=31;

	nextmenu.options.length=thelength
	for(i=formerlength; i<thelength; i++)
	{
		nextmenu.options[i].value=i+1
		nextmenu.options[i].text=i+1
	}
}

function addZero(vNumber)
{ 
	vNumber = parseInt(vNumber,10)
	return ((vNumber < 10) ? "0" : "") + vNumber 
}

function IsNumeric(sText)
{
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	for (i = 0; i < sText.length && IsNumber == true; i++) 
	{ 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) IsNumber = false;
	}
	return IsNumber;
}

function showWaitMessage()
{
	document.getElementById('container_page').style.cursor='wait';
}

function ValidatePassengers()
{
	alert('Please fill out REQUIRED FIELDS.');
	document.getElementById('tooltip').style.display = 'block';
	//document.getElementById('passenger_detail').style.display = 'block';
	//document.getElementById('passengerdetails').src = 'images/btn_up.gif';
	location.href='#passengers';
}

/***********************************************
* Floating Top Bar script- © Dynamic Drive (www.dynamicdrive.com)
* Sliding routine by Roy Whittle (http://www.javascript-fx.com/)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

var persistclose=0 //set to 0 or 1. 1 means once the bar is manually closed, it will remain closed for browser session
var verticalpos="fromtop" //enter "fromtop" or "frombottom"

function iecompattest()
{
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function get_cookie(Name)
{
	var search = Name + "="
	var returnvalue = "";
	if (document.cookie.length > 0) 
	{
		offset = document.cookie.indexOf(search)
		if (offset != -1) 
		{
			offset += search.length
			end = document.cookie.indexOf(";", offset);
			if (end == -1) end = document.cookie.length;
				returnvalue=unescape(document.cookie.substring(offset, end))
		}
	}
	return returnvalue;
}

function closebar()
{
	if (persistclose)
	document.cookie="remainclosed=1"
	document.getElementById("topbar").style.visibility="hidden"
	document.getElementById('container_page').style.cursor='auto';
}

function staticbar()
{
	barheight = document.getElementById("topbar").offsetHeight;
	barWidth = document.getElementById("topbar").offsetWidth;
	document.getElementById('container_page').style.cursor='wait';
	//prompt('',barheight)
	
	var varWindowWidth = (document.documentElement.clientWidth - barWidth) * 0.5;
	var varWindowHeight = (document.documentElement.clientHeight - barheight) * 0.5;
	
	startX = varWindowWidth;
	startY = varWindowHeight;
	
	// especial case of affiliation, product page
	if (ajax.scrollTo) {
		var top = 0;
		var xelem=ajax.scrollTo;
		while (xelem.offsetParent) {
			top+=xelem.offsetTop;
			xelem=xelem.offsetParent;
		}
		ajax.scrollTo = null;
		startY = top;
	}
	
	var ns = (navigator.appName.indexOf("Netscape") != -1) || window.opera;
	var d = document;
	
	function ml(id)
	{
		var el=d.getElementById(id);
		if (!persistclose || persistclose && get_cookie("remainclosed")=="")
		el.style.visibility="visible"
		if(d.layers)el.style=el;
		el.sP=function(x,y){this.style.left=x+"px";this.style.top=y+"px";};
		el.x = startX;
		if (verticalpos=="fromtop")
		el.y = startY;
		else{
		el.y = ns ? pageYOffset + innerHeight : iecompattest().scrollTop + iecompattest().clientHeight;
		el.y -= startY;
		}
		return el;
	}
	window.stayTopLeft=function()
	{
		if (verticalpos=="fromtop")
		{
			var pY = ns ? pageYOffset : iecompattest().scrollTop;
			ftlObj.y += (pY + startY - ftlObj.y)/8;
		}
		else
		{
			var pY = ns ? pageYOffset + innerHeight - barheight: iecompattest().scrollTop + iecompattest().clientHeight - barheight;
			ftlObj.y += (pY - startY - ftlObj.y)/8;
		}
		ftlObj.sP(ftlObj.x, ftlObj.y);
		setTimeout("stayTopLeft()", 10);
	}
	ftlObj = ml("topbar");
	stayTopLeft();
}

function more_products(country,countrycity,typeid)
{		
	var objForm = document.et2search;
	if (typeid==1)
	{
		objForm.product_type.value='16';
		objForm.product_catid.value='2';
		objForm.product_cat.value='Tours';
		objForm.product_type_name.value='Escorted Tours';
	}
	
	objForm.country_ID.value=country;
	objForm.country.value=countrycity;
	submit_search();
}

function check_all(objForm,objChecked)
{
	if (objChecked== false)
		objChecked= true
	else
		objChecked= false

	for (var i =0; i < objForm.elements.length; i++) 
	{
		objForm.elements[i].checked = objChecked;
	}
}

function passFocus(varObj)
{
	document.getElementById('userpassword').style.backgroundImage ='none';
}

function Left(str, n)
{
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function Right(str, n)
{
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function MultiCurr(objVal,objHref)
{
	//prompt('',objHref)
	ajax.setVar('redirect',objHref);
	ajax.requestFile = rootPath+'ajax_global.asp?type=multicurr&curr='+objVal;
	ajax.onLoading = staticbar;
	ajax.onCompletion = createLinks;
	ajax.runAJAX();
}

// COOKIE MONSTER
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(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 eraseCookie(name) {
	createCookie(name,"",-1);
}

// original global.js ends here

// original pages.js
//PRE-LOAD IMAGES
if (document.images)
{
	imgtab16 = new Image(); imgtab16.src = rootPath+"images/btn_next.gif";
	imgtab17 = new Image(); imgtab17.src = rootPath+"images/btn_skip.gif";
}

var submenu=new Array()
submenu[0]='<p class="home"><a class="submenu" href="'+rootPath+'misc.asp?page=ABOUTUS&title=About Euroscape">About Euroscape</a> <a class="submenu" href="'+rootPath+'helpdesk.asp">Help Desk</a> <a class="submenu" href="'+rootPath+'misc.asp?page=CONTACTUS&title=Contact%20Us">Contact Us</a> <a class="submenu" href="'+rootPath+'login.asp?page=newsletter">Newsletters</a> <a class="submenu" href="'+rootPath+'brochure.asp">Brochures</a> <a class="submenu" href="'+rootPath+'misc.asp?page=PAYTERMS&title=Legals">Legals</a> <a class="submenu" href="'+rootPath+'sitemap.asp">Site Map</a></p>'
submenu[1]='<p class="accommodation"><a class="submenu" href="#search" onClick="change_product_type(\'7\',\'Hotels\',\'1\');">Hotels</a> <a class="submenu" href="#search" onClick="change_product_type(\'8\',\'Apartments\',\'1\');">Apartments</a> <a class="submenu" href="#search" onClick="change_product_type(\'9\',\'Villas\',\'1\');">Villas</a> <a class="submenu" href="#search" onClick="change_product_type(\'13\',\'Farm Houses\',\'1\');">Farm Houses</a> <a class="submenu" href="#search" onClick="change_product_type(\'14\',\'Home Stays\',\'1\');">Home Stays</a> <a class="submenu" href="#search" onClick="change_product_type(\'15\',\'Residences\',\'1\');">Residences</a></p>'
submenu[2]='<p class="tours"><a class="submenu2" href="#search" onClick="change_product_type(\'16\',\'Escorted Tours\',\'2\');">Escorted Tours</a> <a class="submenu2" href="#search" onClick="change_product_type(\'17\',\'Independent Tours\',\'2\');">Independent Tours</a> <a class="submenu2" href="#search" onClick="change_product_type(\'18\',\'Special Packages\',\'2\');">Special Packages</a></p>'
submenu[3]='<p class="cruises"><a class="submenu2" href="#search" onClick="change_product_type(\'19\',\'Rivers | Waterways\',\'3\');">Rivers | Waterways</a> <a class="submenu2" href="#search" onClick="change_product_type(\'20\',\'Sea\',\'3\');">Sea</a> <a class="submenu2" href="#search" onClick="change_product_type(\'21\',\'Combined Sea | Waterways\',\'3\');">Combined Sea | Waterways</a></p>'
submenu[4]='<p class="sightseeing"><a class="submenu" href="#search" onClick="change_product_type(\'22\',\'City Tours\',\'4\');">City Tours</a> <a class="submenu" href="#search" onClick="change_product_type(\'23\',\'Night Tours\',\'4\');">Night Tours</a> <a class="submenu" href="#search" onClick="change_product_type(\'24\',\'Hop-On Hop-Off Tours\',\'4\');">Hop-On Hop-Off Tours</a></p>'
submenu[5]='<p class="transport"><a class="submenu" href="#search" onClick="change_product_type(\'28\',\'Transfers\',\'5\');">Transfers</a> <a class="submenu" href="#search" onClick="change_product_type(\'29\',\'Car Hire\',\'5\');">Car Hire</a> <a class="submenu" href="#search" onClick="change_product_type(\'30\',\'Trains\',\'5\');">Trains</a> <a class="submenu" href="#search" onClick="change_product_type(\'31\',\'Ferries\',\'5\');">Ferries</a></p>'
submenu[6]='<p class="services"><a class="submenu" href="#search" onClick="change_product_type(\'33\',\'Entertainment\',\'6\');">Entertainment</a> <a class="submenu" href="#search" onClick="change_product_type(\'35\',\'Visa Support\',\'6\');">Visa Support</a> <a class="submenu" href="#search" onClick="change_product_type(\'36\',\'City Cards\',\'6\');">City Cards</a></p>'
submenu[7]='<p class="experiences"><a class="submenu" href="'+rootPath+'brochure.asp">Countries</a> <a class="submenu" href="'+rootPath+'matrix.asp?type=hotdeals">Deals</a> <a class="submenu" href="'+rootPath+'matrix.asp">Planner</a></p>'

var colors= new Array(7)
colors[0]="#f37221";
colors[1]="#f99b1c";
colors[2]="#ffd003";
colors[3]="#ccd02a";
colors[4]="#6dab43";
colors[5]="#01837b"; 
colors[6]="#2981c3"; 
colors[7]="#253271";

var imgtab= new Array(7)
imgtab[0]='home';
imgtab[1]='accommodation';
imgtab[2]='tours';
imgtab[3]='cruises';
imgtab[4]='sightseeing';
imgtab[5]='transport';
imgtab[6]='services';
imgtab[7]='contactus';

function overtab(id) {
	resettab();

	if ((id==2) || (id==3))	varFcolor = "#333366";
	else varFcolor = "#FFFFFF";

	document.getElementById('tabs_bar').innerHTML = submenu[id];
	document.getElementById('tabs_bar').style.backgroundColor = colors[id];
	var el=document.getElementById('tab'+id);
	el.className='tabs_menu tabh'+id;
	el.style.color = varFcolor;
}

function resettab() {
	for (x=0; x<8; x++) {
		var el=document.getElementById('tab'+x);
		el.className='tabs_menu tab'+x;
		el.style.color = "#333366";
	}
}

function change_product_type(prod_type,prod_label,prodcategory)
{
	var varURL = (location.href);
	var varFileURL = varURL.substring(varURL.lastIndexOf('/') + 1, varURL.lastIndexOf('.'));

	if (prod_type.length>4)
		prod_type = '1,7';

	//if (!varFileURL=='productsearch')
	var prod_type2 = prodcategory+','+prod_type;

	if (prodcategory==0)
	{
		var varTempProdType = new Array();
		varTempProdType = prod_type.split(',');
		
		if (!varFileURL=='productsearch')
			var prod_type2 = prod_type;
		
		prodcategory = varTempProdType[0];
		prod_type = varTempProdType[1];
	}
	
	var prodCat = new Array(7)
	prodCat[0]="All Products";
	prodCat[1]="Accommodation";
	prodCat[2]="Tours";
	prodCat[3]="Cruises";
	prodCat[4]="Sightseeing";
	prodCat[5]="Transport";
	prodCat[6]="Services";
	
	overtab(prodcategory);
	
	var objForm = document.et2search;
	var product_type = objForm.product_type;
	var product_type2 = objForm.product_type2;
	var product_cat = objForm.product_cat;
	var product_catid = objForm.product_catid;
	var product_type_name = objForm.product_type_name;
	var product_category = prodCat[prodcategory];
	
	//WHEN SECTION
	ShowDateInputs(prod_type);
	
	//SPECIFIC REQUIREMENTS
	//ShowSpecificReq(prod_type);
	show_specs(prod_type);
	
	if ((product_category=='Tours') || (product_category=='Cruises')) varFcolor = 0;
	else varFcolor = 1;
	
	page_label('&nbsp;&nbsp;<span class="where">Where Am I?</span>&nbsp;&nbsp;' + product_category + ' &#62;&#62; ' + prod_label+'<p onclick="parent.history.back();">&nbsp;&nbsp;&nbsp;&nbsp;GO BACK</p>',prodcategory,varFcolor);
	product_type2.value = prodcategory+','+prod_type;
	product_type.value = prod_type;
	product_cat.value = product_category;
	product_catid.value = prodcategory;
	product_type_name.value = prod_label;

	document.getElementById('div_prod_type').innerHTML=product_category;
	//}
	//else
	//	location.href='productsearch.asp?prod='+prod_type2+'&prodText='+prod_label+'#search';
}

function page_label(vartext,varBGColor,varFcolor)
{
	var colors= new Array(7)
	colors[0]="#f37221";
	colors[1]="#f99b1c";
	colors[2]="#ffd003";
	colors[3]="#ccd02a";
	colors[4]="#6dab43";
	colors[5]="#01837b"; 
	colors[6]="#2981c3"; 
	colors[7]="#253271"; 

	var Fcolors= new Array(1)
	Fcolors[0]="#333366";
	Fcolors[1]="#FFFFFF";

	document.getElementById('page_label').innerHTML = vartext;
	document.getElementById('page_label').style.backgroundColor = colors[varBGColor];
	document.getElementById('page_label').style.color = Fcolors[varFcolor];
	
	document.getElementById('div_prod_type').style.color =Fcolors[varFcolor];
	document.getElementById('div_prod_type').style.backgroundColor = colors[varBGColor];
}

function echeck(str)
{
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	
	goSubmit = true;
	return true
	
	alert(str);
	
	if (str.indexOf(at)==-1)
	{
		alert("Please enter a valid Email Address")
		goSubmit = false;
		return false
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr)
	{
		alert("Please enter a valid Email Address")
		goSubmit = false;
		return false
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)
	{
		alert("Please enter a valid Email Address")
		goSubmit = false;
		return false
	}
	if (str.indexOf(at,(lat+1))!=-1)
	{
		alert("Please enter a valid Email Address")
		goSubmit = false;
		return false
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot)
	{
		alert("Please enter a valid Email Address")
		goSubmit = false;
		return false
	}
	if (str.indexOf(dot,(lat+2))==-1)
	{
		alert("Please enter a valid Email Address")
		goSubmit = false;
		return false
	}
	if (str.indexOf(" ")!=-1){
		alert("Please enter a valid Email Address")
		goSubmit = false;
		return false
	}
}

//Needed for this JS FILE, moved this function to this js file, original function was found in calendar.js
function createWeekDay(dateSelected,monthSelected,yearSelected)
{
	var FinalDate = (monthSelected+1) + '/' + dateSelected + '/' + yearSelected;
	//myDays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
	myDays = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"];
	myDate = new Date(eval('"'+FinalDate+'"'));
	return myDays[myDate.getDay()];
}

function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
  var rv = -1; // Return value assumes failure.
  if (navigator.appName == 'Microsoft Internet Explorer')
  {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if (re.exec(ua) != null)
      rv = parseFloat( RegExp.$1 );
  }
  return rv;
}

// original pages.js ends here

// original search.js
function clear_val(varObj)
{
	var objForm = document.et2search;
	var objLogin = document.login;
	hideWhatPopups();

	if ((varObj.name == 'keyword') && (objForm.keyword.value=='Type Your Requirement (Hotel Name, City/Town, Area)'))
		objForm.keyword.value='';

	if ((varObj.name == 'country') && (objForm.country.value=='Type first few letters of City/Town' || objForm.country.value==''))
	{
		if (objForm.product_type.value=='')
		{
			alert('Please select a Product Category before selecting a Town or Country.',
				function() {
					MoveToSearch();
					return true;
				}
			);
			return;
		}	
		objForm.country.value='';
	}
		
	if ((varObj.name == 'username') && (objLogin.username.value=='User ID'))
		objLogin.username.value='';
}

//from prodsearch.asp
function ShowSpecificReq(varProdID)
{
	ajax.requestFile = rootPath+'ajax_remote_script.asp?type=specific&id='+varProdID+'&search=<%=varSearch%>&resid=<%=varResultID%>&rootpath='+rootPath;
	ajax.onCompletion = createLinks;
	ajax.runAJAX();
}

function show_specs(prod_type)
{
	var objForm = document.et2search;
	showRequirements();
	
	// prod type
	var item = jQuery("#producttypeitems li[title $= '," + prod_type + "']");
	if (item.get(0)) {
		document.getElementById('producttypetext').innerHTML=item.get(0).firstChild.innerHTML;
		jQuery('#producttypeitems li').removeClass('selected');
		jQuery(item).addClass('selected');
	}
	var spec = document.getElementById('specifics');
	if (prod_type==1 || prod_type==2 || prod_type==7 || prod_type==14 || prod_type==16 || prod_type==17 || prod_type==18)
		spec.innerHTML = 'Room Types (Adult/Children)';
	else if (prod_type==8 || prod_type==9 || prod_type==13 || prod_type==15)
		spec.innerHTML = 'Maximum Numbers of Persons';
	else if (prod_type==3 || prod_type==19 || prod_type==20 || prod_type==21) //CRUISES
		spec.innerHTML = 'Cabin (Berths - Persons)';
	else if (prod_type==4 || prod_type==22 || prod_type==23 || prod_type==24 || prod_type==28 || prod_type==29)
		spec.innerHTML = 'For No: of Adults/Children';
	else if (prod_type==30)
		spec.innerHTML = 'For No: of Adults/Children (Class)';
	else if (prod_type==31)
		spec.innerHTML = 'For No: of Adults/Children (Cabin)';
	else
		spec.innerHTML = 'Select Requirements here....';

	//SPECIFIC REQUIREMENTS
	if (objForm.product_type.value=='')
	{
		ShowSpecificReq(prod_type);
	}
	else if (objForm.product_type.value==prod_type)
	{
		if (document.getElementById('specific_requirements').innerHTML=='&nbsp;Loading...')
		ShowSpecificReq(prod_type);
		else
		{
		ShowSpecificReq(prod_type);
		return;//do nothing
		}
	}
	else
		ShowSpecificReq(prod_type);
}

function specific_requirement_display()
{
	var spec = document.getElementById('specifics');
	var specific_requirement_display_init = spec.innerHTML; 
	spec.innerHTML = '';
		
	// ACCOMODATION : HOTEL, TOUR and variant
	//  If varProductID=7 OR varProductID=10 OR varProductID=12 OR varProductID=14 OR varProductID=16 OR varProductID=17 OR varProductID=18 
	if (document.et2search.single !== undefined ) 
		{
		if (document.et2search.single.value !=='0' )
			{
			spec.innerHTML = document.et2search.single.value + '-Single ';
			}
		}		
		
	if (document.et2search.double !== undefined ) 
		{
		if (document.et2search.double.value !=='0' )
			{
			spec.innerHTML += (document.et2search.double.value + '-Double ');
			}
		}	
	
	if (document.et2search.double_child !== undefined ) 
		{
		if (document.et2search.double_child.value !=='0' )
			{
			spec.innerHTML += (document.et2search.double_child.value + '-DblChild ');
			}
		}
	
	if (document.et2search.twin !== undefined ) 
		{
		if (document.et2search.twin.value !=='0' )
			{
			spec.innerHTML += (document.et2search.twin.value + '-Twin ');
			}
		}
		
	if (document.et2search.twin_child !== undefined ) 
		{
		if (document.et2search.twin_child.value !=='0' )
			{
			spec.innerHTML += (document.et2search.twin_child.value + '-TwinChild ');
			}
		}
		
	if (document.et2search.triple !== undefined ) 
		{
		if (document.et2search.triple.value !=='0' )
			{
			spec.innerHTML += (document.et2search.triple.value + '-Triple ');
			}
		}
		
	if (document.et2search.triple_child !== undefined ) 
		{
		if (document.et2search.triple_child.value !=='0' )
			{
			spec.innerHTML += (document.et2search.triple_child.value + '-TripleChild ');
			}
		}
		
	if (document.et2search.quad !== undefined ) 
		{
		if (document.et2search.quad.value !=='0' )
			{
			spec.innerHTML += (document.et2search.quad.value + '-Quad ');
			}
		}
	
	
	// ACCOMODATION : APARTMENT  and variant
	//  If varProductID=8 OR varProductID=9 OR varProductID=11 OR varProductID=13 OR varProductID=15
	
	if (document.et2search.maxnum2 !== undefined ) 
		{
		if (document.et2search.maxnum2.value !=='0' )
			{
			spec.innerHTML += (document.et2search.maxnum2.value + '-Max of 2 ');
			}
		}
	
	if (document.et2search.rooms2 !== undefined ) 
		{
		if (document.et2search.rooms2.value !=='0' )
			{
			spec.innerHTML += (document.et2search.rooms2.value + '-Max of 2+2 ');
			}
		}
	
	if (document.et2search.maxnum3 !== undefined ) 
		{
		if (document.et2search.maxnum3.value !=='0' )
			{
			spec.innerHTML += (document.et2search.maxnum3.value + '-Max of 3 ');
			}
		}
	
	if (document.et2search.rooms3 !== undefined ) 
		{
		if (document.et2search.rooms3.value !=='0' )
			{
			spec.innerHTML += (document.et2search.rooms3.value + '-Max of 3+2 ');
			}
		}
		
	if (document.et2search.maxnum4 !== undefined ) 
		{
		if (document.et2search.maxnum4.value !=='0' )
			{
			spec.innerHTML += (document.et2search.maxnum4.value + '-Max of 4 ');
			}
		}
	
	if (document.et2search.rooms4 !== undefined ) 
		{
		if (document.et2search.rooms4.value !=='0' )
			{
			spec.innerHTML += (document.et2search.rooms4.value + '-Max of 4+2 ');
			}
		}
	
	if (document.et2search.maxnum5 !== undefined ) 
		{
		if (document.et2search.maxnum5.value !=='0' )
			{
			spec.innerHTML += (document.et2search.maxnum5.value + '-Max of 5 ');
			}
		}
			
	if (document.et2search.maxnum6 !== undefined ) 
		{
		if (document.et2search.maxnum6.value !=='0' )
			{
			spec.innerHTML += (document.et2search.maxnum6.value + '-Max of 6 ');
			}
		}
	
	
	//  CRUISES  and variant
	//  If varProductID=19 OR varProductID=20 OR varProductID=21 
		
	 if (document.et2search['1berth'] !== undefined ) 
		{
		if (document.et2search['1berth'].value !=='0' )
			{
			spec.innerHTML += document.et2search['1berth'].value + '-1Berth ';
			}
		}		
	
	if (document.et2search['2berths'] !== undefined ) 
		{
		if (document.et2search['2berths'].value !=='0' )
			{
			spec.innerHTML += document.et2search['2berths'].value + '-2Berths ';
			}
		}	
		
	if (document.et2search['3berths'] !== undefined ) 
		{
		if (document.et2search['3berths'].value !=='0' )
			{
			spec.innerHTML += document.et2search['3berths'].value + '-3Berths ';
			}
		}	
		
	if (document.et2search['4berths'] !== undefined ) 
		{
		if (document.et2search['4berths'].value !=='0' )
			{
			spec.innerHTML += document.et2search['4berths'].value + '-4Berths ';
			}
		}	
	
	
	////  SIGHTSEEING, TRANSFER, CARHIRE, TRAIN, FERRIES and variant
	// If varProductID=22 OR varProductID=23 OR varProductID=24 
	// If varProductID=28
	// If varProductID=29
	// If varProductID=30
	
	if (document.et2search['adults'] !== undefined ) 
		{
		if (document.et2search['adults'].value !=='' )
			{
			spec.innerHTML += document.et2search['adults'].value + '-Adults ';
			}
		}	
			
	if (document.et2search['child'] !== undefined ) 
		{
		if (document.et2search['child'].value !=='' )
			{
			spec.innerHTML += document.et2search['child'].value + '-Child ';
			}
		}	

	if (document.et2search['inside'] !== undefined ) 
		{
		if (document.et2search['inside'].value !=='0' )
			{
			spec.innerHTML += document.et2search['inside'].value + '-Inside ';
			}
		}	
		
	if (document.et2search['outside'] !== undefined ) 
		{
		if (document.et2search['outside'].value !=='0' )
			{
			spec.innerHTML += document.et2search['outside'].value + '-Inside ';
			}
		}	

	if (document.et2search['deluxe'] !== undefined ) 
		{
		if (document.et2search['deluxe'].value !=='0' )
			{
			spec.innerHTML += document.et2search['deluxe'].value + '-Deluxe ';
			}
		}	
		
	if (document.et2search['jrsuite'] !== undefined ) 
		{
		if (document.et2search['jrsuite'].value !=='0' )
			{
			spec.innerHTML += document.et2search['jrsuite'].value + '-Jr. Suite ';
			}
		}	
		
	// if none is selected, restore its text *
	if (spec.innerHTML == '')
		{
		spec.innerHTML = specific_requirement_display_init 
		}
}

function specific_skip(varAction)
{
	specific_requirement_display(); 
	hideWhatPopups();

	if (varAction==0)
	document.getElementById('specific_requirements').innerHTML= 'Loading...';
	
	//reset_www();
	//start_here(2,'green');
	
	setTimeout("reset_www();start_here(2,'green')", 50);
}

function submit_reset()
{	
	var objForm = document.et2search;
	document.getElementById('producttypetext').innerHTML='Select Product Here...';
	var cat = document.getElementById('div_prod_type');
	cat.style.color='#283571';
	cat.style.backgroundColor='#d9ddf0';
	cat.innerHTML='Product Category';
	document.getElementById('specifics').innerHTML='Select Requirements here...';
	objForm.country_ID.value='';
	objForm.checkin_date2.value='';
	objForm.checkout_date2.value='';
	objForm.product_type2.selectedIndex=0;
	objForm.product_type.value='';
	objForm.country.value='Type first few letters of City/Town';
	objForm.keyword.value='Type Your Requirement (Hotel Name, City/Town, Area)';
	objForm.checkin_date4.value='dd/mm/yyyy';
	objForm.checkout_date4.value='dd/mm/yyyy';
	objForm.nonights.value='0';
	hideWhatPopups();
}

function keywordFocused()
{
	var objForm = document.et2search;
	if (objForm.product_type.value == '') {
		document.getElementById('producttypetext').innerHTML='All Products';
		document.getElementById('producttypeselection').value='0,0';
		jQuery('#producttypeitems li:first').addClass('selected');
		change_product_type('0,0','All Products',0);
		setTimeout('toggleProductTypes()', 100);	// delay so that it will not immediately close
	}
}

function submit_gosearch(objForm)
{		
	var objForm = document.et2search;
	
	if (objForm.product_type.value=='')
	{
		alert('Please select a Product Category',
			function() {
				MoveToSearch();
				return true;
			}
		);
		return;
	}
	
	if ((objForm.country.value=='Type first few letters of City/Town' || objForm.country.value=='') && (objForm.keyword.value=='Type Your Requirement (Hotel Name, City/Town, Area)' || objForm.keyword.value==''))
	{
		alert('Please enter a valid City/Town or Country or an Advanced Search Keyword');
		var countryfield = document.getElementById('country');
		if (countryfield) {
			countryfield.focus();
			if (countryfield.value == 'Type first few letters of City/Town')
				countryfield.value = '';
		}
		return;
	}
	
	if ((objForm.country.value=='Type first few letters of City/Town') || (objForm.country.value==''))
		objForm.country.value='';

	if (objForm.keyword.value=='Type Your Requirement (Hotel Name, City/Town, Area)')
		objForm.keyword.value='';
	
	if ((!objForm.checkin_date4.value=='dd/mm/yyyy') && (!objForm.checkout_date4.value=='dd/mm/yyyy'))
		dateValidate(objForm.checkin_date4.value,objForm.checkin_date4);

	var valid = false;
	var country_id_hid = document.getElementById('country_hidden').value;
	if (objForm.country.value != '' && (country_id_hid == '' || country_id_hid == '0'))
	{
		var key = objForm.country.value.toLowerCase();
		key = key.replace(/(^\s*)|(\s*$)/gi,'');
		key = key.replace(/[ ]{2,}/gi,' ');
		for (var i = 0; i < countries.length; i++) {
			if (countries[i] == key) {
				valid = true;
				break;
			}
		}
		objForm.country.value = key;
		valid = true;
	}
	else
		valid = true;
	
	if (valid)
	{
		hideProductTypes();
		hideRequirements();
		showWaitMessage();
		staticbar();
		objForm.submit();
	}
}

function start_here(varStep,varHigh)
{	
	var hi = '';
	if (varHigh=='green') hi = '_hi';
	switch (varStep) {
		case 1: varType = 'what'; break;
		case 2: varType = 'where'; break;
		case 3: varType = 'when'; break;
		case 4: varType = 'find'; break;
	}
	document.getElementById('boxhead_'+varType).className = "boxhead_" + varType + hi;
	document.getElementById('title_'+varType).className = "cont_box" + hi;
	document.getElementById('boxhead2_'+varType).className = "boxhead2" + hi;
	if (varStep < 4) {
		document.getElementById('boxleft_'+varType).className = "boxleft" + hi;
		document.getElementById('boxright_'+varType).className = "boxright" + hi;
		document.getElementById('hide'+varType).className = "cont_boxmain" + hi;
	} else {
		document.getElementById('hidefind').className = "cont_boxfind" + hi;
	}
}

function start_find()
{
	reset_www();
}

function reset_www()
{
	start_here(1,'blue');
	start_here(2,'blue');
	start_here(3,'blue');
	start_here(4,'blue');
}

function highlight_box(id)
{
	reset_www();
	if (document.getElementById('hidewhat').style.display != 'none') {
		start_here(id,'green');
		if (id != 1) {
			hideWhatPopups();
		}
	}
}

function req_hotel(varObj,varObjAdult)
{
	var varRoomType = varObj.name;
	var varRoomValue = varObj.value;

	if (varRoomType=='single') varType = 1;
	else if ((varRoomType=='double') || (varRoomType=='twin')) varType = 2;
	else if (varRoomType=='triple') varType = 3;
	else if (varRoomType=='quad') varType = 4;
	else varType = 0;
								
	varAdultValue = (varRoomValue*varType);
							
	if ((varRoomValue==15) || (varAdultValue>15))
	{
		var i=(30);
		for(j=16; j<=i; j++)
		{
			new_option = new Option(j,j)
			varObj.options[j] = new_option;
		}
		if (varRoomType!='single')
		{
			var i=(30*varType);
			for(j=16; j<=i; j++)
			{
				new_option = new Option(j,j)
				varObjAdult.options[j] = new_option;
			}
		}
	}
	varObjAdult.value=varAdultValue;
	varObj.value=varRoomValue;
}

function ShowDateInputs(id)
{
	//LEGEND:
	// 16, 17 - Tours
	// 18 - Special Packages
	// 19, 20, 21 - Cruises
	// 22, 23, 24 - Sightseeing
	// 30 - Trains
	// 29 - Car Hire
	// 28 - Transfers
	
	//id==16 || id==17 || id==18 || 
	//id==19 || id==20 || id==21 || 
	if (id==22 || id==23 || id==24 || id==28 || id==30 || id==31 || id==32 || id==33 || id==34 || id==35 || id==36)
	{
		document.getElementById('layer_checkin_label').innerHTML = 'Select Date';
		document.getElementById('layer_checkout_txt').style.visibility = 'hidden';
		document.getElementById('layer_checkout').style.visibility = 'hidden';
		document.getElementById('layer_nonights').style.visibility = 'hidden';
	}
	else
	{
		if (id==29) //CAR HIRE
		{
			document.getElementById('layer_checkin_label').innerHTML = 'Pick Up';
			document.getElementById('layer_checkout_label').innerHTML = 'Drop Off';
			document.getElementById('layer_nonights_txt').innerHTML = 'Number of Days&nbsp;&nbsp;&nbsp;';
		}
		else
		{
			document.getElementById('layer_checkin_label').innerHTML = 'Check In';
			document.getElementById('layer_checkout_label').innerHTML = 'Check Out';
			document.getElementById('layer_nonights_txt').innerHTML = 'Number of Nights&nbsp;';
		}
		document.getElementById('layer_checkout_txt').style.visibility = 'visible';
		document.getElementById('layer_checkout').style.visibility = 'visible';
		document.getElementById('layer_nonights').style.visibility = 'visible';
	}
}


function MoveToMap(country_id)
{
	var varCountry = country_id;
	if(varCountry.length>0)
	{
		ajax2.requestFile = rootPath+'ajax_remote_script.asp?type=movemap&countryid='+varCountry;
		ajax2.onCompletion = createLinks2;
		ajax2.runAJAX();
	}
}

function highlight_text(varObj)
{
	varObj.select();
	varObj.focus();	
}

function CollapseSearch(varType)
{
	if (varType=='start')
	{
		animatedcollapse.toggle('hidestart');
		animatedcollapse.toggle('hidelogin');
		animatedcollapse.toggle('hidelivehelp');
		animatedcollapse.toggle('hidesettings');
	}
	else if (varType=='showsearch')
	{
		animatedcollapse.show('hidewhat');
		animatedcollapse.show('hidewhere');
		animatedcollapse.show('hidewhen');
		animatedcollapse.show('hidefind');
	}
	else
	{
		animatedcollapse.toggle('hidewhat');
		animatedcollapse.toggle('hidewhere');
		animatedcollapse.toggle('hidewhen');
		animatedcollapse.toggle('hidefind');
	}
}

function MoveToSearch()
{
	highlight_box(1);
	location.href='#start';
	showProductTypes();
	return;
}

function showProductTypes() {
	jQuery('#specific_requirements').slideUp('normal');
	jQuery('#producttypeitems').slideDown('normal', adjustProductView);
}

function showRequirements() {
	jQuery('#producttypeitems').slideUp('normal');
	jQuery('#specific_requirements').slideDown('normal', adjustReqtView);
}

function hideProductTypes() {
	jQuery('#producttypeitems').slideUp('normal');
}

function hideRequirements() {
	jQuery('#specific_requirements').slideUp('normal');
}

function toggleProductTypes() {
	jQuery('#producttypeitems').slideToggle('normal', adjustProductView);
}

function hideWhatPopups() {
	hideRequirements();
	hideProductTypes();
}

function adjustProductView() {
	if (document.getElementById('producttypeitems').style.display != 'none')
		adjustViews(1);
}

function adjustReqtView() {
	adjustViews(2);
}

function adjustViews(type) {
	if (screen.height <= 600) {
		maximizeBrowser();
		scrollToWhat();
		if (screen.height <= 480 && type == 1)
			document.getElementById('producttypeitems').style.height = '230px';
		return;
	}
	var docel = document.documentElement;
    var curHeight = docel.clientHeight;
    var curWidth = docel.clientWidth;
	var minHeight = 380;
	var minWidth = 781;
	if (curHeight <= minHeight || curWidth <= minWidth) {
		scrollToWhat();
		resizeBrowser(minHeight,curHeight,minWidth,curWidth);
		return;
	}
	var obj;
	var popheight;
	if (type == 1)
		obj = document.getElementById('producttypeitems');
	else
		obj = document.getElementById('specific_requirements');
	if (!obj)
		return;
	popheight = obj.offsetHeight;
	var oobj = obj;
	var poptop = oobj.offsetTop;
	while((oobj = oobj.offsetParent) != null){
		poptop += oobj.offsetTop;
	}
	if (navigator.userAgent.indexOf('Chrome') >= 0) {
		if (poptop + popheight > document.body.scrollTop + docel.clientHeight) {
			document.body.scrollTop += (poptop + popheight - document.body.scrollTop - docel.clientHeight);
		}
	} else {
		if (poptop + popheight > docel.scrollTop + docel.clientHeight) {
			docel.scrollTop += (poptop + popheight - docel.scrollTop - docel.clientHeight);
		}
	}
}

function maximizeBrowser() {
	if (window.parent != window)
		return;
	window.moveTo(0,0);
	window.resizeTo(screen.availWidth,screen.availHeight);
}

function resizeBrowser(minHeight,curHeight,minWidth,curWidth) {
	if (window.parent != window)
		return;
	var adjy = minHeight - curHeight;
	var adjx = minWidth - curWidth;
	if (adjy < 0) adjy = 0;
	if (adjx < 0) adjx = 0;
	var botpos = screen.availHeight;
	var rigpos = screen.availWidth;
	if (wevent) {
		botpos = wevent.screenY - wevent.clientY + document.documentElement.clientHeight;
		rigpos = wevent.screenX - wevent.clientX + document.documentElement.clientWidth;
		if (adjx > 0 || adjy > 0) {
			if (!window.outerHeight) {
				botpos += 32;
				rigpos += 26;
			} else {
				botpos += 42;
				rigpos += 22;
			}
		}
	}
	var adjb = screen.availHeight - botpos - adjy;
	var adjr = screen.availWidth - rigpos - adjx;
	if (adjb < 0 && adjr < 0)
		window.moveBy(adjr,adjb);
	else if (adjb < 0)
		window.moveBy(0,adjb);
	else if (adjr < 0)
		window.moveBy(adjr,0);
	if (adjx > 0 || adjy > 0)
		window.resizeBy(adjx,adjy);
	wevent = null;
}

function scrollToWhat() {
	document.getElementById('cont_what_where_when').scrollIntoView();
}

var wevent;

/* Product type combo box initializer
*/
jQuery(document).ready(function($) {
	$('#producttypetext').click(function(e) {
		wevent = e;
		toggleProductTypes();
		hideRequirements();
	});
	$('#producttypeitems .ptitem, #producttypeitems .ptigroup').click(function() {
		document.getElementById('producttypetext').innerHTML=this.firstChild.innerHTML;
		document.getElementById('producttypeselection').value=this.title;
		$('#producttypeitems li').removeClass('selected');
		$(this).addClass('selected');
		hideProductTypes();
		change_product_type(this.title,this.firstChild.innerHTML,0);
	});
	$('#starthere').click(function(e) { wevent = e; });
	$('#hidewhere').click(function(e) { wevent = e; });
	$('#hidewhen').click(function(e) { wevent = e; });
	$('#hidefind').click(function(e) { wevent = e; });
});

function loadScript(url) {
	var e = document.createElement("script");
	e.src = url;
	e.type="text/javascript";
	document.body.appendChild(e);
}

function loadCSS(url) {
	var e = document.createElement("link");
	e.href = url;
	e.rel="stylesheet";
	e.type="text/css";
	document.body.appendChild(e);
}
