
 
var tmp;
var im;
im=new Image();
im.src = 'gif/loading1.gif' // to preload the loading image....
	
function makeRequest(SearchBoxName)
{
	
	var url = getURL(SearchBoxName)
	//alert(url);
	
	var d = document.getElementById(SearchBoxName);
	tmp = d.innerHTML;
	d.innerHTML = "<table height='100%' width='100%'><tr><td valign='middle'><p align='center'><img  height='30' width='30' src='"+ im.src +"'></p></td></tr></table>";// show loading.gif image
	var http_request = false;

	if(window.XMLHttpRequest)
	 {
		try {
		
				netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
				
			} catch (e) 
			{
				//alert("Boss, please help I am trying to update the security level for the browser.");
            }
 	           // alert("yes boss : I support XMLHttpRequest");
                http_request = new XMLHttpRequest();
				
				//alert("yes boss : I support XMLHttpRequest");
                if(http_request.overrideMimeType)
                    {
                       http_request.overrideMimeType('text/xml');
					  
                    }
					
		}
        else if(window.ActiveXObject)
		{
					 //alert("hi")
                    //alert("yes boss : I support ActiveX");
                     try
					    {
	                       http_request = new ActiveXObject("Msxml2.XMLHTTP");
						   //alert("t yes boss : I support ActiveX");
                        }
                     catch(e)
                        {
	                       http_request = new ActiveXObject("Microsot.XMLHTTP");
						    //alert("c yes boss : I support ActiveX");
                        }
		  }
		if(! http_request)
			{
				//alert("oh, sorry dear I am not able to do this task");
				return false;
			}

				http_request.onreadystatechange =function() { dotheAction(http_request,SearchBoxName); };
				
				http_request.open('GET',url, true);
				http_request.send(null);      
				
				//to set position of result div 
				 var hs= document.getElementById(SearchBoxName);
				 var divSearch =document.getElementById("DivSearchResults");
				 divSearch.style.left = hs.offsetLeft + 270;
				 divSearch.style.display = 'block';
 
}

function dotheAction(http_request,SearchBoxName)
{
	//alert("Boss, I got some thing from server, need to process");
	var ResultFor='';
	var tagName = '';
	var  dispURL='';
	
	if(SearchBoxName=='HotelSearch')
	{
		ResultFor = 'Hotels';
		tagName='hotel';
		dispURL='default.asp?action=category&id=97&qID=';
	}
	else if(SearchBoxName=='Rsearch')
	{
			ResultFor = 'Restaurants'
			tagName = 'restaurant';
			dispURL='default.asp?action=category&id=97&rID=';
	}
	else if(SearchBoxName=='Film')
	{
			ResultFor = 'Film'
			tagName = 'Film';
			dispURL='default.asp?action=category&id=96&rID=';
			
	}
	else if(SearchBoxName=='Directory')
	{
			ResultFor = 'Directory'
			tagName = 'dir';
	}
	
	
	
	
	
	 if(http_request.readyState == 4)
        {
			
			var d = document.getElementById(SearchBoxName);
			d.innerHTML =tmp;//Replacing Loading.gif into old html
			
           if(http_request.status == 200)
             {
				
				var i=0;
				
				var xmlDoc=http_request.responseXML;
				document.getElementById("DivSearchResults").innerHTML="";
			
				
					
				var result="";
				result ="<table cellpadding='1' cellspacing='1' border='0'>"
				result += "<tr><td style='text-align:left;height:30px;' class='clsTitle' >Search Results for "+ ResultFor +"</td></tr>";
				
				if(SearchBoxName=='HotelSearch')
					{var SR =document.getElementById('sRate').value;
					if(SR==0)
						SR = "";
						
						result += "<tr><td style='text-align:left;height:30px;' class='clsTitle'><i>" + SR + " Star Hotels:</i></td></tr>"
						
					}
					//alert(tagName)
				if (xmlDoc.documentElement.hasChildNodes)
					{
						var x=xmlDoc.getElementsByTagName(tagName);
						//alert("x" + x.length)
						for (var i=0;i<x.length;i++)
							{
								var U=x[i].getElementsByTagName("url")[0].childNodes[0].nodeValue;
								var N=x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
								var ID=x[i].getElementsByTagName("ID")[0].childNodes[0].nodeValue;
								result +=  "<tr><td>&nbsp;&nbsp;<a href='"+ dispURL + ID +"' class='HS'>"+ N +"</a></td></tr>"
							}
		
					}
					else //no record found
						{
								result += "<tr><td style='text-align:left;height:30px;' class='clsTitle' >There is no result found, <br> Please try again...</td></tr>";
						}
				result +="</table>"
				document.getElementById("DivSearchResults").innerHTML = result //to print the result
				//alert(document.getElementById("DivSearchResults").innerHTML)
				
			}
			else
             {
				 //alert("There was a problem with the request.");
				 //alert(http_request.status);
	         }
         }

}

function getURL(SearchBoxName)
{
	var url='';
	if(SearchBoxName=='HotelSearch')
	{
		var sRate=document.getElementById("sRate").value;
		var Loc=document.getElementById("Loc").value;
		url = "./TourismAppl/Static/HotelSearch.aspx";
		url = url + "?sRate=" + sRate;
		url = url +  "&Loc=" + Loc;
		//url = "http://dotnet2:8001/hotel.asp"
		//alert(url)
		
	}
	else if(SearchBoxName=='Rsearch')
	{
		var N = document.getElementById("fType").value;
		var L = document.getElementById("RLoc").value;
		url = "./tourismappl/static/RestaurantSearch.aspx?foodtype="+ N +"&Loc="+ L;
	}
	else if(SearchBoxName=='Film')
	{
		var N = document.getElementById("fLang").value;
		var L = document.getElementById("fComplex").value;
		url = "./tourismappl/static/FilmFilterListView.aspx?filmlang="+ N +"&Complex="+ L;
	}
	else if(SearchBoxName=='Directory')
	{
		var N = document.getElementById("dName").value;
		var L = document.getElementById("dLoc").value;
		url = "./tourismappl/static/RestaurantSearch.aspx?name="+ N +"&Loc="+ L;
	}

	return url;
	
}
//Ajax Section Ends
//Presentation Logic
var Ht = ""
function showHideDiv(Did)
 {

   

	var d=document.getElementById("Footer").getElementsByTagName("DIV");
	var D = document.getElementById(Did);
	var DR = document.getElementById("DivSearchResults");
	DR.innerHTML = '';

	
	DR.style.display='none'; //hide results div
		for(i=0;i<d.length;i++) //to hide all the div
			{
				
					if(d[i].id==D.id)
					{
						//alert(D.style.display)
						if(D.style.display=='none') //to check current the element whether it's  displayed or not
							D.style.display='block';
						else if(D.style.display=="")
							D.style.display='block';
						else
							D.style.display='none';
					}
					else
					{
						d[i].style.display='none';	
					}
				
			}
	
	//to get footer div height
	
	 
	
	
	if(Ht=='')
	{
//		DR.style.top =document.body.scrollHeight-419;
//		D.style.top = document.body.scrollHeight-419;

	    DR.style.top =document.body.scrollHeight-365;
		D.style.top = document.body.scrollHeight-365;

		Ht = document.body.scrollHeight
	}
	else
	{
		DR.style.top =Ht-265;
		D.style.top = Ht-265;
	}
		//alert(DR.style.top);


	
 }

function CloseMe(E)
{
	var DR = document.getElementById("DivSearchResults");
	var ths = document.getElementById(E);
	ths.style.display='none';
	DR.style.display='none';
	
}


function checkServerForChange()

{              
         clearTimeout(newjob);
         newjob = setTimeout('makeRequest()',curInterval);
}

function printpage(title)
{

var out;

out = window.open("","","toolbar=no,location=no,directories=no,scrollbars=yes,width=570");

out.document.open();
out.document.write("<html><head><link rel='stylesheet' href='style.css' type='text/css'></head><body><table width='500'><tr><td dir='rtl'><a href='#' onClick='window.print();return false'><img src='img/icon-print.jpg' width='27' height='32' border='0' /></a></td></tr></table><h1 align='center'>Bahrain Tourism</h1>");
out.document.write("<h1 align='center'>" + title + "</h1>");
out.document.write(document.getElementById('body').innerHTML);
out.document.write("</body></html>");
out.document.close();
out.focus();

}







var monArr=Array("January","February","March","April","May","June","July","August","September","October","November","December");
var preInDate="";
var preOutDate="";
function updateInDates()
{
	updateInDates2();
	updateOutDatesByList();
}
function updateInDates2(date)
{  
	if(!isValidDate(date))
	{
		alert("Invalid In Date Selected");
		document.frmHotelBookingSearch.dateCheckIn.value=preInDate;
		return false;
	}
	var dateArr=date.split("/");
	document.frmHotelBookingSearch.lstCheckIn.value=eval(dateArr[0]);
	document.frmHotelBookingSearch.lstCheckIn1.value=eval(dateArr[1])+"-"+dateArr[2];
	preInDate=document.frmHotelBookingSearch.dateCheckIn.value;
}
function updateOutDates(date)
{
	if(!isValidDate(date))
	{
		alert("Invalid Out Date Selected");
		document.frmHotelBookingSearch.dateCheckOut.value=preOutDate;
		return false;
	}
	var dateArr=date.split("/");
	document.frmHotelBookingSearch.lstCheckOut.value=eval(dateArr[0]);
	document.frmHotelBookingSearch.lstCheckOut1.value=eval(dateArr[1])+"-"+dateArr[2];
	preInDate=document.frmHotelBookingSearch.dateCheckIn.value;
	preOutDate=document.frmHotelBookingSearch.dateCheckOut.value;
}
function updateOutDatesByList()
{ 
	dateArr=document.frmHotelBookingSearch.lstCheckIn1.value.split("-");
	dd=document.frmHotelBookingSearch.lstCheckIn.value;
	if(dd<10)	
		dd='0'+dd;
	if(dateArr[0]<10)
		mm="0"+dateArr[0];
	else
		mm=dateArr[0];
	indate=dd+"/"+mm+"/"+dateArr[1];
	document.frmHotelBookingSearch.dateCheckIn.value=indate;
	if(!isValidDate(document.frmHotelBookingSearch.dateCheckIn.value))
	{
		alert("Invalid In Date Selected");
		document.frmHotelBookingSearch.dateCheckIn.value=preInDate;
		updateInDates2();
		return false;
	}
	outdate=addDays(indate,1);
	document.frmHotelBookingSearch.dateCheckOut.value=outdate;
	document.frmHotelBookingSearch.lstCheckOut.value=eval(outdate.substring(0,2));
	document.frmHotelBookingSearch.lstCheckOut1.value=eval(outdate.substring(3,5))+"-"+outdate.substring(6,10);
	preInDate=document.frmHotelBookingSearch.dateCheckIn.value;
	preOutDate=document.frmHotelBookingSearch.dateCheckOut.value;
}

function updateOutDatesByList2()
{
	dateArr=document.frmHotelBookingSearch.lstCheckOut1.value.split("-");
	dd=document.frmHotelBookingSearch.lstCheckOut.value;
	if(dd<10)	
		dd='0'+dd;
	if(dateArr[0]<10)
		mm="0"+dateArr[0];
	else
		mm=dateArr[0];
	outdate=dd+"/"+mm+"/"+dateArr[1];
	document.frmHotelBookingSearch.dateCheckOut.value=outdate;
	if(!isValidDate(document.frmHotelBookingSearch.dateCheckOut.value))
	{
		alert("Invalid Out Date Selected");
		document.frmHotelBookingSearch.dateCheckOut.value=preOutDate;
		updateOutDates();
		return false;
	}
	preInDate=document.frmHotelBookingSearch.dateCheckIn.value;
	preOutDate=document.frmHotelBookingSearch.dateCheckOut.value;
}

function fnResBoxSubmit()
{
	dateArr=document.frmHotelBookingSearch.lstCheckOut1.value.split("-");
	if(document.frmHotelBookingSearch.lstCheckOut.value<10)
	dd='0'+document.frmHotelBookingSearch.lstCheckOut.value;
	else
	dd=document.frmHotelBookingSearch.lstCheckOut.value;
	if(dateArr[0]<10)
	mm="0"+dateArr[0];
	else
	mm=dateArr[0];
	outdate=dd+"/"+mm+"/"+dateArr[1];

	dateArr=document.frmHotelBookingSearch.lstCheckIn1.value.split("-");
	if(document.frmHotelBookingSearch.lstCheckIn.value<10)
	dd='0'+document.frmHotelBookingSearch.lstCheckIn.value;
	else
	dd=document.frmHotelBookingSearch.lstCheckIn.value;
	if(dateArr[0]<10)
	mm="0"+dateArr[0];
	else
	mm=dateArr[0];
	indate=dd+"/"+mm+"/"+dateArr[1];

	document.frmHotelBookingSearch.dateCheckIn.value=indate;
	document.frmHotelBookingSearch.dateCheckOut.value=outdate;
	//document.frmHotelBookingSearch.submit();
	
	
	
	window.open('http://www.visitbahrain.org/index.php?option=reservation&task=search&dateCheckIn='+document.frmHotelBookingSearch.dateCheckIn.value+'&dateCheckOut=' + document.frmHotelBookingSearch.dateCheckOut.value+'&lstRooms=1'+'&siteid=231&a1=1&c1=0&a2=0&c2=0&a3=0&c3=0&ref=tr','_blank');
	
	
	}


function fnFilmBoxSubmit()
{

var fLang="";
var fComplex="";

fLang = document.frmFilmSearch.fLang.value;
fComplex = document.frmFilmSearch.fLoc.value;

window.location('http://www.bahraintourism.com/tourismappl/static/FilmFilterListView.aspx?filmlang='+ fLang +'&Complex=' + fComplex +'');
	
}





var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(day,month,year){
	var daysInMonth = DaysArray(12)
	if (month<1 || month>12){
		return false
	}
	if (day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return false
	}
	if (year==0 || year<minYear || year>maxYear){
		return false
	}
return true;
}

function addDays(dtStr,dayAdd)
{
	if(dayAdd<1)
		return false;
	dateArr=dtStr.split("/")
	var strMonth=dateArr[1];
	var strDay=dateArr[0];
	var strYear=dateArr[2];
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	for(i=0;i<dayAdd;i++)
	{
		day=day+1;
		if( !isDate(day,month,year) ) 
		{
			day=1;
			month=month+1;
			if( !isDate(day,month,year) ) 
			{
				month=1;
				year=year+1;
			}
		}

	}
	strDay = (day<10) ? '0'+day : day ;
	strMonth = (month<10) ? '0'+month : month ;
	strDate = strDay + "/" + strMonth + "/" + year;
	return strDate;
}

function isValidDate(dtStr)
{
	dateArr=dtStr.split("/")
	var strMonth=dateArr[1];
	var strDay=dateArr[0];
	var strYear=dateArr[2];
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)

	dateArr2=dtStr.split("/")
	var strMonth2=dateArr2[1];
	var strDay2=dateArr2[0];
	var strYear2=dateArr2[2];
	strYr2=strYear2
	if (strDay2.charAt(0)=="0" && strDay2.length>1) strDay2=strDay2.substring(1)
	if (strMonth2.charAt(0)=="0" && strMonth2.length>1) strMonth2=strMonth2.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr2.charAt(0)=="0" && strYr2.length>1) strYr2=strYr2.substring(1)
	}
	month2=parseInt(strMonth2)
	day2=parseInt(strDay2)
	year2=parseInt(strYr2)
	if(year2<year)
		return true;
	else
	{
		if(month2<month)
			return true;
		else
		{
			if(day2<=day)
				return true;
			else
			{
				return false;
			}
		}
	}
}



