$(document).ready(function(){	
	$('object').attr('height', '250');
	$('object').attr('width', '280');
	$('embed').attr('height', '250');
	$('embed').attr('width', '280');
	$("#_ratingmsg").fadeOut(15000);	
});
function ajax_server_check(){
	try{			
		xmlHttp=new XMLHttpRequest();	// Firefox, Opera 8.0+, Safari
	}catch (e){	// Internet Explorer
		try{ 	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
		}catch (e){
			try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
			}catch (e){
				alert("Your browser does not support AJAX!");
				return false;
			}
		}
	}
}
function get_locality(lid)
{
	//alert("kk");	
	$.get(SITEROOT+"/modules/common/show_locality.php",{lid:lid},function(data){
		if(data){
			$('#address').html(data);
			$('#address2').html(data);			
			document.getElementById('lable_add2').innerHTML="<FONT for='address2' ><FONT color='Silver'>Second location:</FONT></label>";
			document.getElementById('address2').disabled=true;
		}else{
			$('#address').html("<option value=''>--Please Select--</option>");
			$('#address2').html("<option value=''>--Please Select--</option>");
		}
	});
}

function get_localityHM(lid)
{
	//alert("kk");	
	$.get(SITEROOT+"/modules/common/show_locality.php",{lid:lid},function(data){
		if(data){
			$('#address').html(data);
			$('#address2').html(data);			
			document.getElementById('lable_add2').innerHTML="<FONT for='address2' ><FONT color='Silver'>Second location:</FONT></label>";
			document.getElementById('address2').disabled=true;
		}else{
			$('#address').html("<option value=''>--Please Select--</option>");
			$('#address2').html("<option value=''>--Please Select--</option>");
		}
	});
}

function allcities(cityid){	
	$.get(SITEROOT+"/modules/common/show_indian_city.php",{cityid:cityid},function(self){$("#property_city").html(self);});
	get_locality(cityid);	
}
function fn_chng_location1(){
	if(document.getElementById('address').value==''){
		document.getElementById('address2').disabled=true;
		document.getElementById('lable_add2').innerHTML="<FONT for='address2' ><FONT color='Silver'>Second location:</FONT></label>";
	}else{
		document.getElementById('address2').disabled=false;
		document.getElementById('lable_add2').innerHTML="<FONT for='address2' ><FONT color='black'>Second location:</FONT></label>";
	}
}

//check radius
function check_radius()
{
	if(document.getElementById('address2').value!='')
	{
		if(document.getElementById('address2').value == document.getElementById('address').value)
		{
			alert("Second location should not be same as first.");
			document.getElementById('address2').value = '';
			return false
		}
		document.getElementById('radius').value = 1.6;
		document.addr.radius.readOnly = true;
		
	}
	else
	{
		document.getElementById('radius').value = 1.6;
		document.addr.radius.readOnly = false;
	}	
}



window.onunload = function(){
	GUnload();
}
window.onload = function(){
	load();
}

//<![CDATA[

_mSvgEnabled = true ;
_mSvgForced  = true ;

var center ;
var circle ;
var radius ;
var marker = [] ;
var poly = [] ;
var line ;
var geocoder ;
var icon ;
var gicon ;
var map ;

function load()
{
	
	map = new GMap(document.getElementById("map"));
	
// 	var start = new GLatLng(35.127771,-89.967041);
	var start = new GLatLng(18.5205,73.8566);
	//alert("aaaaaa"+start);
	map.setCenter(start, 13);
	
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GScaleControl()) ;
	//map.addControl(new GOverviewMapControl()) ;
	geocoder = new GClientGeocoder() ;
	icon = new GIcon();
	icon.image = SITEROOT+"/templates/default/images/mm_20_red.png";
	icon.shadow = SITEROOT+"/templates/default/images/mm_20_shadow.png";
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	
	gicon = new GIcon(icon);
	gicon.image = SITEROOT+"/templates/default/images/mm_20_green.png";
	gicon.iconAnchor = new GPoint(-20, 20);
	if((prop_address1 != '') && (prop_address2!='') && (prop_radius!=''))
	{
		showAddress(prop_address1,prop_address2,prop_radius);
	}
}

// Draw...

function draw()
{
	var bounds ;	
	var html = '' ;
	poly = [] ; 
	
	for(var i = 0 ; i < marker.length ;i++)
	{	
		poly.push(marker[i].getPoint()) ;
		html += marker[i].getPoint().toUrlValue() + "<br>\n" ;
	}
	if(line)
	{
		map.removeOverlay(line) ;
	}

	poly.push(marker[0].getPoint()) ;	
	html += marker[0].getPoint().toUrlValue() + "<br>\n" ;	
	line = new GPolyline(poly,'#FF0000', 1, 1) ;
	map.addOverlay(line) ;
	html = "Polygon Coordinates:<br>\n" + html + "<br>" ;

 //document.getElementById("sidebar").innerHTML = html ;
 return ( poly )
}

// Draw a circle...

function drawCircle( )
{
	for(var n = 0 ; n < marker.length ; n++)
	{
		map.removeOverlay( marker[n] ) ;
	}
 
	marker = [] ;
	var points = [] ;
	var point = center.getPoint() ;
	var lat = point.lat() ;
	var lng = point.lng() ;
	if ( center.oldpoint )                 // Move radius when center is moved
	{
		var p = radius.getPoint() ;
		var x = point.lat() - center.oldpoint.lat() ;
		var y = point.lng() - center.oldpoint.lng() ;
		radius.setPoint( new GLatLng( p.lat() + x, p.lng() + y) ) ;
	}
	center.oldpoint = point ;
	
	var Cradius = point.distanceFrom(radius.getPoint()) * 0.000621371192 ;
	document.addr.radius.value = Math.round(Cradius * 100)/100 ;
	var b = radius.getPoint() ;
	
	var meters = distance(point.lat(),point.lng(),b.lat(),b.lng()) ;
	
	var Ccolor = '#0000ff' ;               // color blue
	var Cwidth = 3 ;                       // width pixels
	var d2r = Math.PI/180 ;                // degrees to radians
	var r2d = 180/Math.PI ;                // radians to degrees
	var Clat = (Cradius/3963) * r2d ;      //  using 3963 as earth's radius
	
	var Clng = Clat/Math.cos(lat*d2r);
	var Cpoints = [] ;

	var list = '' ;
	for (var i = 0 ; i < 13 ; i++)
	{
		var theta = Math.PI * (i/6) ;
		Cx = lng + (Clng * Math.cos(theta)) ;
		Cy = lat + (Clat * Math.sin(theta)) ;
		Cpoints.push(new GLatLng(Cy,Cx)) ;
		points.push(new GLatLng(Cy,Cx)) ;
	}
	
	for(var n = 0 ; n < (points.length -1) ; n++)
	{
		//alert("aaaaaaaa"+points[n]);
		marker[n] = new GMarker(points[n], {icon:icon, draggable: true, title: n});
		marker[n] = new GMarker(points[n]);
		//  map.addOverlay(marker[n]);
		marker[n].enableDragging();
		GEvent.addListener(marker[n],'dragend',function() {draw()});		
		GEvent.addListener(marker[n], 'click', function() {  
			// When clicked, open an Info Window  
		marker[n].openInfoWindowHtml('Some text');  
		});  
	}
	point_properties(center,points);
	var poly = draw() ;
	
	map.setCenter(center.getPoint(), map.getBoundsZoomLevel(getMBR( poly ))) ;
	
	//  document.getElementById("distance").innerHTML = "Radius Information<br>Miles:" + Math.round(Cradius * 100)/100 + "<br>Meters: " + Math.round(meters) + "<br>Center: " + Math.round(point.lat()*10000)/10000 + "," + Math.round(point.lng()*10000)/10000 ;
} 

// Find the address using the geocoder...


function showAddress(address,address2,miles)
{	
	if(prop_address1 == '')
	{
		load();
	}
	//alert(document.getElementById('property_city').value);
	if(address ==''){
		document.getElementById('first_loc_div').innerHTML = 'Please select location';
		return false;
	}else if(miles ==''){	
		document.getElementById('second_loc_div').innerHTML = '';	
		document.getElementById('radius_div').innerHTML = 'Please enter location';
		return false;
	}else if(isNaN(miles)== true){
		document.getElementById('radius_div').innerHTML = 'Please enter radius in digits';
		return false;
	}else{
		document.getElementById('first_loc_div').innerHTML = '';
		document.getElementById('second_loc_div').innerHTML = '';
		document.getElementById('radius_div').innerHTML = '';
		//address = address+' '+seleted_city_name;	//alert(address);
		js_city=$('#property_city option:selected').text();
		address = address+' '+js_city;
		geocoder = new GClientGeocoder();
		geocoder.getLatLng(address, function(point)
 		{
			//document.addr.radius.readOnly = false;
			if(!point)
			{
				alert(address + " not found");
			}else{
			//alert(point);
			//ggggggg(18.5106492, 73.8351769)	
			if(address2!='')
			{				
				document.addr.radius.readOnly = true;

				address2 = address2+' '+js_city;	
				var point_1 = ''+point+'';		//alert(point_1);
				var remove_start_brace_1=point_1.replace("(","");
				var remove_end_brace_1=remove_start_brace_1.replace(")",""); //alert("remove_end_brace_1"+remove_end_brace_1);
				//longitude_adrr_1 = remove_end_brace_1;
	
				var arr_1 = remove_end_brace_1.split(',');
				var latitude_adrr_1 = arr_1[0];
				var longitude_adrr_1 = arr_1[1];		
				
				document.getElementById('address1_lat').value = latitude_adrr_1;
				document.getElementById('address1_long').value = longitude_adrr_1;
				geocoder.getLatLng( address2, function(point)
				{
					if(!point)
					{
						alert(address2 + " not found");
					} else
					{	
						var point_2 = ''+point+'';	
						var remove_start_brace_2=point_2.replace("(","");
						var remove_end_brace_2=remove_start_brace_2.replace(")","");
						//latitude_adrr_2 = remove_end_brace_2;
						var arr_2 = remove_end_brace_2.split(',');
						var latitude_adrr_2 = arr_2[0];
						var longitude_adrr_2 = arr_2[1];
						document.getElementById('address2_lat').value = latitude_adrr_2;
						document.getElementById('address2_long').value = longitude_adrr_2;			
						//hhhhhh(16.6988671, 74.2275109)
	
						var cnt_pt_lat = (parseFloat(document.getElementById('address1_lat').value) + parseFloat(document.getElementById('address2_lat').value))/2;
		
						var cnt_pt_long = (parseFloat(document.getElementById('address1_long').value) + parseFloat(document.getElementById('address2_long').value))/2;
	
						
						//var new_lat = "18.514121";
						var new_lat1 = Math.round(cnt_pt_lat*10000000)/10000000;
						var new_lang1 = Math.round(cnt_pt_long*10000000)/10000000;
	
						var new_lat = new_lat1.toString();
						var new_lang = new_lang1.toString();
		
						//var getdistance = distance(lat1,lng1,lat2,lng2);	
						var getdistance = ( distance(document.getElementById('address1_lat').value,document.getElementById('address1_long').value,document.getElementById('address2_lat').value,document.getElementById('address2_long').value))/1000;
					
						getdist_inmiles = (getdistance/1.6)/2;
						//alert('distamce='+getdistance);
						//alert('getdist_inmiles='+getdist_inmiles);





						var usCenterPoint = new GPoint(new_lang,new_lat); 
						//alert('usCenterPoint22='+usCenterPoint+'point'+point);
		
 						center = new GMarker(usCenterPoint, {icon:icon, draggable: false,  title: "Center"});	
						//center = new GMarker(usCenterPoint);	
						//center = new GMarker(point, {icon:icon, draggable: true,  title: "Center"});	
						center.enableDragging();
						//map.addOverlay(center);
						GEvent.addListener(center,'dragend',function() {drawCircle()});
						
						oldpoint = center.getPoint() ;

	

// 						radius = new GMarker(getRadius(miles,center));
						radius = new GMarker(getRadius(getdist_inmiles,center));
						//alert(radius);
						GEvent.addListener(radius,'dragend',function() {drawCircle()});
						drawCircle( ) ;
										
					}
				});
			}else{	//alert(point);

				if (center)
				{
					map.removeOverlay( center ) ;
					map.removeOverlay( radius ) ;
				}
 				center = new GMarker(point, {icon:icon, draggable: false,  title: "Center"});
				//center = new GMarker(point);
				center.enableDragging();
				//map.addOverlay(center);
				GEvent.addListener(center,'dragend',function() {drawCircle()});
				
				oldpoint = center.getPoint() ;
				
				radius = new GMarker(getRadius(miles,center));
				//map.addOverlay(radius);
				//radius.enableDragging();
				GEvent.addListener(radius,'dragend',function() {drawCircle()});
				drawCircle( ) ;

	/*
				alert(point);
				center = new GMarker(point, {icon:icon, draggable: false,  title: "Center"});				
				center.enableDragging();
				map.addOverlay(center);
				GEvent.addListener(center,'dragend',function() {drawCircle()});					
				oldpoint = center.getPoint() ;		
				radius = new GMarker(getRadius(miles,center));			
				GEvent.addListener(radius,'dragend',function() {drawCircle()});
				drawCircle( ) ;	*/
			}
					
		}
 	}) ;
	}
}

// Calculate the distance...

function distance(lat1,lng1,lat2,lng2)
{
	var O = Math.PI/180 ;
	var b = lat1 * O ;
	var c = lat2 * O ;
	var d = b - c ;
	var e = (lng1 * O) - (lng2 * O) ;
	var f = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(d/2),2)+Math.cos(b)*Math.cos(c)*Math.pow(Math.sin(e/2),2)));
	return f*6378137
}

// Figure out the radial point...

function getRadius( miles, center )
{
	var point = center.getPoint() ;
	var lat = point.lat() ;
	var lng = point.lng() ;
	var d2r = Math.PI/180 ;                // degrees to radians
	var r2d = 180/Math.PI ;                // radians to degrees
	var Clat = (miles/3963) * r2d ;       //  using 3963 as earth's radius
	var Clng = Clat/Math.cos(lat*d2r);
	Clng = lng + (Clng * Math.cos(0)) ;
	Clat = lat + (Clat * Math.sin(0)) ;
	return(new GLatLng(Clat,Clng)) ;
} 

// Minimum Bounding Rectangle...

function getMBR (points)
{
	var minx = 0;
	var miny = 0;
	var maxx = 0;
	var maxy = 0;

	if ( points.length < 4 )
	{
		return ( GLatLngBounds(new GLatlng(minx,miny), new GLatlng(maxx,maxy)) ) ;
	}
	
	minx = points[0].lat() ;
	miny = points[0].lng() ;
	maxx = points[0].lat() ;
	maxy = points[0].lng() ;

	for(var i = 1; i < points.length ; i++ )
	{
		if ( points[i].lat() > maxx )
		{
			maxx = points[i].lat() ;
		}
		if ( points[i].lat() < minx )
		{
			minx = points[i].lat() ;
		}
		if ( points[i].lng() > maxy )
		{
			maxy = points[i].lng() ;
		}
		if ( points[i].lng() < miny )
		{
			miny = points[i].lng() ;
		}
	}

 	return ( new GLatLngBounds(new GLatLng(maxx,miny), new GLatLng(minx,maxy)) ) ;
}

function count(array)
{
	var c = 0;
	for(i in array) // in returns key, not object
	if(array[i] != undefined)
	c++;
	
	return c;

}
function point_properties(center,points)
{
//alert(center+","+points);
	var point = center.getPoint() ;
	var lat = point.lat() ;
	var lng = point.lng() ;
	lat_arr = [];
	long_arr = [];

	///////
	for(var n = 0 ; n < (points.length -1) ; n++)
	{
		lat_arr.push(points[n].lat());
		long_arr.push(points[n].lng());
	}
	var msg =new Array();
	var map_points = new Array();
	var entered_address = document.addr.address.value;
	var entered_radius = document.addr.radius.value; 	

	for (var i=0; i < document.addr.property.length; i++)
	{
		if (document.addr.property[i].checked){
			entered_property = document.addr.property[i].value;
		}
	}	

	//alert(posted_by_user);

//   	$.ajax({
// 		type:'POST',  
// 		url: SITEROOT+'/modules/projects/get_projects.php',
// // 		data: 'address='+entered_address+'&radius='+entered_radius+'&lat_val='+lat+'&long_val='+lng,
// 		data: '&radius='+entered_radius+'&lat_val='+lat+'&long_val='+lng,
// 		success: function(msg){
// 			
// 			var map_points = msg;
// 	
// 	
// 			var map_points= msg.toString();
// 			var map_points_array= map_points.split(",");
// 		
// 			var lat = Array();
// 			var lang = Array();
// 			var prop_details = Array();
// 			//alert("map_len"+map_points_array.length);
// 			for(var n = 0 ; n < (map_points_array.length - 1);  n += 3)
// 			{
// 				if(map_points_array[n] !='' && map_points_array[n+1] != '' && map_points_array[n+2] != '')
// 				{
// 					lat[n] = map_points_array[n];		
// 					lang[n] = map_points_array[n+1];	
// 					/*prop_details[n] = '('+map_points_array[n]+''+map_points_array[n+1]+')'+map_points_array[n+2];	*/
// 					prop_details[n] = map_points_array[n+2];
// 				}
// 			}
// 
// 			for(var i = 0 ; i < (lat.length);  i++)
// 			{			
// 				if(isNaN(lang[i])){
// 				}else{	
//  					var usCenterPoint = new GPoint(lang[i],lat[i]); 	
// 					//alert('lat='+lang[i]+'long'+lat[i]+'usCenterPoint'+usCenterPoint);
// 					showAddress_overlay(usCenterPoint, prop_details[i]);
// 
// 				}
// 			}
// 		/////// code to display the points on map within the specified search criteria///////////
// 		}
//  	}) 

		ajax_server_check();
		xmlHttp.onreadystatechange=function(){
			if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){
				var xmlDoc=xmlHttp.responseXML;
					js_address_tag = xmlDoc.getElementsByTagName('lat_lang');
					js_html_tag = xmlDoc.getElementsByTagName('address');

					if(js_address_tag.length > 0){
 						pointCount = 1;
						js_prop_add=new Array();
						for (var i=0;i<js_address_tag.length;i++){	
							js_html="";	js_add=""; js_icon=""; js_sequence='';

							js_add=js_address_tag[i].firstChild.nodeValue;
							js_html=js_html_tag[i].firstChild.nodeValue;

							if(js_add!=""){							
								js_prop_add[i]=js_add.split(",");
								var icon = new GIcon();
								var point = new GLatLng(js_prop_add[i][0], js_prop_add[i][1]);
								var bounds = new GLatLngBounds();
								
								if(point){
									marker1 = createMarker(point, pointCount, js_html);
									marker1.importance = pointCount+1;
									map.addOverlay(marker1);
									bounds.extend(point);
									pointCount++;	
								}
							}
						}
					}
					
			}
		}
		var url;
		var passData;
		url =  SITEROOT+'/modules/projects/get_projects.php';
		passData='address='+entered_address+'&radius='+entered_radius+'&lat_val='+lat+'&long_val='+lng+'&property='+entered_property;

		xmlHttp.open("POST",url,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
		xmlHttp.send(passData);	

////////
}
function createMarker(point, number, html) {
		var icon = new GIcon(G_DEFAULT_ICON);
		
		icon.image = SITEIMG+'/markers/purple/purple.png';
		
		icon.shadow = SITEIMG+'/markers/shadow.png';
		icon.iconSize = new GSize(24.0, 29.0);
		icon.shadowSize = new GSize(39.0, 29.0);
		icon.iconAnchor = new GPoint(10.0, 29.0);
		icon.infoWindowAnchor = new GPoint(12.0, 14.0);  
		/* marker */
		var marker = new google.maps.Marker(point, {icon:icon});
		GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html);});
		return marker;
}
function showAddress_overlay(prop_address, htmlInfo) 
{	
	//alert('prop_address'+prop_address);
	var centerMarker = new GMarker(prop_address);
	map.addOverlay(centerMarker);
	if (htmlInfo != "") {
		GEvent.addListener(centerMarker, "click", function() {
		centerMarker.openInfoWindowHtml(htmlInfo);
	});              
	}
}

function get_property_list(){






}
