var countryArray;
var getdata1="";
function fillTheme(url,opt,id)
{
	if(url=="")
		var url="search/?countryid="+id;
	else
		var url=url+"countryid="+id;
	document.getElementById('theme').options[0].text="------Please Wait------";
	callByAjax(opt,url);
	
}

function fillCountry(url,opt)
{
	if(url=="")
	var url="search/?";
	
	callByAjax(opt,url);
}
function callByAjax(opt,url)
{
		var getdata="";
        var systemTime= "&ms="+new Date().getTime();
        url=url+systemTime;
	xmlHttp_html=GetXmlHttpObject();
	xmlHttp_html.open("GET",url,true);
	//alert(url)

	xmlHttp_html.onreadystatechange=sendRequest;
	function sendRequest()
	{
	
		if(xmlHttp_html.readyState==4)
		{
			if(xmlHttp_html.status==200)
			{
				getdata=xmlHttp_html.responseText;
				//alert(getdata);
				splitData(opt,getdata);
			}
		}
	}
	xmlHttp_html.send(null);
}
var xmlHttp_html=GetXmlHttpObject();
function callByAjax1(url,id)
{
	var xmlHttp_html=GetXmlHttpObject();
	var getdata="";
	var parameters="";
    var systemTime= "&ms="+new Date().getTime();
        url=url+systemTime;
	document.getElementById(id).innerHTML='<span class="" align="center">Wait....<IMG SRC="gifs/loader.gif" WIDTH="15" HEIGHT="15" BORDER="0" ALT="Loading.."></span>';
	//alert(xmlHttp_html)
	xmlHttp_html.open("GET",url,true);
	//xmlHttp_html.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	//xmlHttp_html.setRequestHeader("Content-length", parameters.length);
   // xmlHttp_html.setRequestHeader("Connection", "close");
	xmlHttp_html.onreadystatechange=sendReq;

	function sendReq()
	{
		
		if(xmlHttp_html.readyState==4)
		{
			
			if(xmlHttp_html.status==200)
			{
				
				getdata=xmlHttp_html.responseText;
				//alert(getdata);
				document.getElementById(id).innerHTML=getdata;
				//return true;
				
			}
			else
				document.getElementById(id).innerHTML="";
		
		}
		
	
	}
	xmlHttp_html.send(null); 
		
}
function displayForm(divId,flag)
{
	var url="searchtabbyajax/?flag="+flag;
	var systemTime= "&ms="+new Date().getTime();
	url=url+systemTime;
	callByAjax1(url,divId);

}

function dateTime(divId)
{
	var url="gettime/?";
	var systemTime= "&ms="+new Date().getTime();
	url=url+systemTime;
	callByAjax1(url,divId);
	
}
function splitData(opt,string)
{
		var array="";
	
		opt.options.length=1;
		array=string.split("~");
	
		var i=0;
		for(i=0;i<array.length;i++)
		{
			var str=array[i];
			var arr=str.split("#");
			
			var obj = new Option(arr[1],arr[0]);
			opt.options[opt.options.length]=obj;
		}
		if(document.getElementById('theme'))
			document.getElementById('theme').options[0].text="--------- Select ---------";
		
	return true;
}

function selectTheme()
{
	frmsearch.themeid.value=frmsearch.theme.options[frmsearch.theme.selectedIndex].value;
	
	frmsearch.themename.value=frmsearch.theme.options[frmsearch.theme.selectedIndex].text;
	
	return true;
}

function return_data(data)
{

}
var currentDivId=0;
function showMapDiv(id,h)
{	
	
	// close old layer
	if(currentDivId)
	{
		currentDivId.style.visibility = 'hidden';
		document.getElementById(id).style.display='none';
		currentDivId.style.height=0;
	}
	
	// get new layer and show it
	currentDivId = document.getElementById(id);
	currentDivId.style.visibility = 'visible';
	currentDivId.style.height=h;
	document.getElementById(id).style.display='block';
	

}


function drawLine(point1,point,color)
		{
			
			var polyline = new GPolyline([
  point1,
  point
], color,2,1);
map.addOverlay(polyline);
map.addOverlay(polyline);
		}	
		
			function drawHeads(x1,x2,y1,y2,headColor)
			{
				var dy=y2-y1;
				var dx=x2-x1;
				var headlength=0.1;
				tempx1=(x1+x2)/2;
				tempy1=(y1+y2)/2;
				var theta=findAngle(x1,y1,tempx1,tempy1);
				drawHead(tempx1,tempy1,theta,headlength,headColor);
				
				tempx2=(x1+tempx1)/2;
				tempy2=(y1+tempy1)/2;
				theta=findAngle(x1,y1,tempx2,tempy2);
				drawHead(tempx2,tempy2,theta,headlength,headColor);
				
				tempx2=(tempx1+x2)/2;
				tempy2=(tempy1+y2)/2;
				theta=findAngle(tempx1,tempy1,tempx2,tempy2);
				drawHead(tempx2,tempy2,theta,headlength,headColor);

			}

			function findAngle(x1,y1,x2,y2)
			{
				var dx = x2-x1;
				 var dy = y2-y1;
				var theta = Math.atan2(-dy,dx);
				return theta;
			}

			

			
		function drawHead(x,y,theta,arrowlength,color,icon) {
		
		//add an arrow head at the specified point
		
		var t = theta + (Math.PI/4) ;
		if(t > Math.PI)
			t -= 2*Math.PI;
		var t2 = theta - (Math.PI/4) ;
		if(t2 <= (-Math.PI))
			t2 += 2*Math.PI;
		
		var headPointsArray = new Array();
		var x1 = x-Math.cos(t)*arrowlength;
		var y1 = y+Math.sin(t)*arrowlength;
		var x2 = x-Math.cos(t2)*arrowlength;
		var y2 = y+Math.sin(t2)*arrowlength;
		
		drawLine(new GLatLng(y1,x1),new GLatLng(y,x),color);
		drawLine(new GLatLng(y,x),new GLatLng(y2,x2),color);
		
	}
	function getMin(f1,f2,f3)
	{
		if(f1>f2)
			f1=f2;
		return f1;
	}

	function getMax(f1,f2,f3)
	{
		if(f1<f2)
			f1=f2;
		return f1;
	}

	//function reDrawHead()
	//{
		//map.removeOverlay(arrow1);
		//map.removeOverlay(arrow2);
		/*for(i=0;i<heads.length;i=i+3)
		{
			
		arrow1=new GPolyline([heads[i],heads[i+1]], "#0000ff",2,1);
		arrow2=new GPolyline([heads[i+1],heads[i+2]], "#0000ff",2,1);
		map.addOverlay(arrow1);
		map.addOverlay(arrow2);

		}*/
	//}

	
	function createMarker(points,htmlInfo,tabs,mrk,sessid)
	{
	//alert(htmlInfo);
		 var point = null;
		 var footerHtml = null;
		 var InfoHTML = null;
		 var marker = null;
		var iconbig = new GIcon();
		
		iconbig.image = "mapimg/marker_34_red.png";
		//iconbig.image = "mapimg/marker_arrow.png";
		iconbig.shadow = "";
		//iconbig.iconSize = new GSize(20, 34);
		//iconbig.shadowSize = new GSize(37, 34);
		iconbig.iconAnchor = new GPoint(9, 34);
		iconbig.infoWindowAnchor = new GPoint(6, 1);
		var marker = null;
		map.clearOverlays();
		
		var pointsArr=points.split("$");
		var p1=pointsArr[0].split(",");
		startPoint=new GLatLng(parseFloat(p1[0]),parseFloat(p1[1]));
		point1 = startPoint;
		var htmlInfoArr=htmlInfo.split("$");
		var tabArr=tabs.split(",");
		tabsObj=[tabArr[0],tabArr[1]];
		var i=0;
		var southWestX=parseFloat(p1[1]);
		var southWestY=parseFloat(p1[0]);
		var northEastX=parseFloat(p1[1]);
		var northEastY=parseFloat(p1[0]);
		for(i=0;i<pointsArr.length;i++)
		{
			if(pointsArr[i]=="")
				continue;
			var pointStr=new String(pointsArr[i]);
			var p=pointStr.split(",");
			point = new GLatLng(parseFloat(p[0]), parseFloat(p[1]));
			var htmlStr=new String(htmlInfoArr[i]);
			var htmlArr=htmlStr.split("|");
			var j=0;
			bounds = new GLatLngBounds();	
			//var htmlInfoStr="";
			drawLine(point1,point,"#ff0000");
			if((point.lng()!=startPoint.lng())||(point.lat()!=startPoint.lat()))
				drawHeads(point1.lng(),point.lng(),point1.lat(),point.lat(),"#0000ff");
			southWestX=getMin(southWestX,point.lng());
			southWestY=getMax(southWestY,point.lat());
			northEastX=getMax(northEastX,point.lng());
			northEastY=getMin(northEastY,point.lat());
			point1=point;
			htmlInfoObj=[];
			footerHtml = "<div class=\"IWFooter\"><div class=\"IWFooterZoom\"><a href=\"javascript:void(0)\" onclick=\"ZoomMapTo()\">Zoom To</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href=\"javascript:void(0)\" onclick=\"ZoomMapIn()\">Zoom In</a></div></div>";
			for(j=0;j<htmlArr.length;j++)
			{
				//var strTemp= new String(htmlArr[j]);
				//var strTempArr=strTemp.split("~");
				switch (j)
				{
				case 0:
						htmlInfoObj.push("<div class=\"IW\"><IFRAME SRC=\"http://www.concordtravels/maptheme/?_id="+sessid+"&cityid="+htmlArr[j]+"\" NAME=\"infobox\"  WIDTH=\"340\" HEIGHT=\"210\"  MARGINWIDTH=\"0\" MARGINHEIGHT=\"0\" FRAMEBORDER=\"0\" SCROLLING=\"no\"></IFRAME></div>"+footerHtml);		
						break;
				case 1:
						htmlInfoObj.push("<div class=\"IW\"><IFRAME SRC=\"http://www.concordtravels/maptheme/?_id="+sessid+"&tourid="+htmlArr[j]+"\" NAME=\"infobox\"  WIDTH=\"340\" HEIGHT=\"210\" MARGINWIDTH=\"0\" MARGINHEIGHT=\"0\" FRAMEBORDER=\"0\" SCROLLING=\"no\"></IFRAME></div>"+footerHtml);		
						break;
				
				}
			}
//<div class=\"IWCaption\">"+strTempArr[0]+"</div><div class=\"BSLContent\">&nbsp;&nbsp;&nbsp;"+strTempArr[1]+"<br><br>Duration: "+strTempArr[2]+" Days<br>Destination : "+strTempArr[3]+"<br><A HREF=\"http://concordtravels.com/inbound/"+strTempArr[4]+"\" TARGET=\"_blank\">View Tour Detail</A></div>
			map.addOverlay(createTabbedMarker(point, htmlInfoObj,tabsObj));
						
		}
		drawLine(point,startPoint,"#ff0000");
		drawHeads(point1.lng(),startPoint.lng(),point1.lat(),startPoint.lat(),"#0000ff");
		
		var tourBounds = null;
	
		tourBounds=new GLatLngBounds(new GLatLng(southWestY,southWestX),new GLatLng(northEastY,northEastX));
		map.setCenter(tourBounds.getCenter(), map.getBoundsZoomLevel(tourBounds));

		function createTabbedMarker(point,htmls,labels) 
		{
			var marker = new GMarker(point,iconbig);
			
			GEvent.addListener(marker, "click", function() {
          // adjust the width so that the info window is large enough for this many tabs
			if (htmls.length > 2) 
			{
				htmls[0] = '<div style="width:'+htmls.length*100+'px">' + htmls[0] + '</div>';
			}
			var tabs = [];
			for (var i=0; i<htmls.length; i++) 
			{
				tabs.push(new GInfoWindowTab(labels[i],htmls[i]));
			}
			marker.openInfoWindowTabsHtml(tabs);
        });
		//alert (marker);
        return marker;
      }  
	

		

	}

	function clearMarkers() {
      mgr.clearMarkers();
    }
   function ZoomMapTo()
   {
	map.zoomIn();

	}
 
function ZoomMapIn()
   {
	map.zoomOut();

	}
  function validateCar(frm)
{	
	//*** Pickup  ***//
	if(frm.pickupcityid.selectedIndex==0)
	{
		alert("Please Select Pickup City.");
		frm.pickupcityid.focus();
		return false;
	}
	if(frm.date_pickup.value=="")
	{
		alert("Please Select Pickup date.");
		frm.date_pickup.focus();
		return false;
	}
	else
	{
		var arr_date=Array();
		var curdate=new Date();
		var str_date=frm.date_pickup.value;
		
		arr_date=str_date.split("-");
		flag=false;
		
		if((arr_date[0]>curdate.getFullYear()) || ((arr_date[1]>curdate.getMonth()+1) && arr_date[0]>=curdate.getFullYear()) || ((arr_date[2]>=curdate.getDate()) && (arr_date[1]>=curdate.getMonth()+1) && arr_date[0]>=curdate.getFullYear()))
		{
				flag=true;
		}
		if(!flag)
		{
			alert("Date should be greater then current date.");
			return false;
		}
		

	}
	if(frm.pickuptime.selectedIndex==0)
	{
		alert("Please Select Pickup Time.")
		frm.pickuptime.focus();
		return false;
	}

	//*** Drop  ***//
	/*
	if(frm.dropcityid.selectedIndex==0)
	{
		alert("Please Select Pickup City.");
		frm.dropcityid.focus();
		return false;
	}
	if(frm.date_drop.value=="")
	{
		alert("Please Select Drop date.");
		frm.date_drop.focus();
		return false;
	}
	if(frm.droptime.selectedIndex==0)
	{
		alert("Please Select Drop Time.")
		frm.droptime.focus();
		return false;
	}*/
	/*if(frm.packageid.selectedIndex==0)
	{
		alert("Please Select Car Package.")
		frm.packageid.focus();
		return false;
	}*/
	
	return true;
}

//Finde Tour
function find(frm)
{
	frm.action="../result/?themeid="+frm.theme.options[frm.theme.selectedIndex].value+"&days="+frm.days.value;
}