var lat="";
var lon="";
function calculator(la1,lo1,la2,lo2) {
  var degtorad = 0.01745329;
  var radtodeg = 57.29577951;
  var lat1h = la1;
  var lat2h = la2;
  var long1h = lo1;
  var long2h = lo2;
  var lat1 = parseFloat(lat1h);
  var lat2 = parseFloat(lat2h);
  var long1 = parseFloat(long1h);
  var long2 = parseFloat(long2h);
  if ((lat1h.lastIndexOf("S"))!=-1 || (lat1h.lastIndexOf("s"))!=-1)
    lat1 = (lat1 * (-1));
  if ((lat1h.lastIndexOf("W"))!=-1 || (lat1h.lastIndexOf("w"))!=-1)
    lat1 = (lat1 * (-1));
  if((lat2h.lastIndexOf("S"))!=-1 || (lat2h.lastIndexOf("s"))!=-1)
    lat2 = (lat2 * (-1));
  if((lat2h.lastIndexOf("W")!=-1) || (lat2h.lastIndexOf("w"))!=-1)
    lat2 = (lat2 * (-1));
  if((long1h.lastIndexOf("S")!=-1) || (long1h.lastIndexOf("s"))!=-1)
    long1 = (long1 * (-1));
  if((long1h.lastIndexOf("W")!=-1) || (long1h.lastIndexOf("w"))!=-1)
    long1 = (long1 * (-1));
  if((long2h.lastIndexOf("S")!=-1) || (long2h.lastIndexOf("s"))!=-1)
    long2 = (long2 * (-1));
  if((long2h.lastIndexOf("W")!=-1) || (long2h.lastIndexOf("w"))!=-1)
    long2 = (long2 * (-1));
  var dlong = (long1 - long2);
  var dvalue = (Math.sin(lat1 * degtorad) * Math.sin(lat2 * degtorad))
   + (Math.cos(lat1 * degtorad) * Math.cos(lat2 * degtorad)
   * Math.cos(dlong * degtorad));
  var dd = Math.acos(dvalue) * radtodeg;
  var miles = (dd * 69.16);
  miles = (miles * 100)/100;
  var km = (dd * 111.302);
  km = (km * 100)/100;
  return km;
 }

function ChanRAdd(vid,t,tok)
{
	var x; 
	for(i=0;i<=document.getElementsByName("TypEdit").length;i++)
	{
		if(document.getElementsByName("TypEdit")[i].checked == true)
		{	x = document.getElementsByName("TypEdit")[i].value;break;}
	}
	switch(x)
	{
		case "1":
			if(lat.length > 0) 
			{
				lat = document.getElementById("nAddress").value;
				lon = "~"
				Save(vid,t,tok,3);
			}
			else
			{alert("Insert address")}			
		break;
		case "2":
			if((lat.length > 0)&&(lon.length > 0)) 
			{
				lat = document.getElementById("xlat1").value;
				lon = document.getElementById("xlon1").value;
				Save(vid,t,tok,3);
			}
			else
			{alert("Insert Lat and Long")}			
		break;
		case "3":
			initialize(vid,t,2);
			document.getElementById("pMe2").style.display = "";
		break;
		default:
			alert("Select an Option");
		break;
	}
}
function Save(vid,t,tok,ed)
{
	document.getElementById("bSav").style.display = "none";
	document.getElementById("bCan").style.display = "none";
	document.getElementById("pMe2").style.display = "none";
	SaveNewLatLon(vid,tok);
}
function Cancel(vid,t,ed)
{
	document.getElementById("bSav").style.display = "none";
	document.getElementById("bCan").style.display = "none";
	document.getElementById("pMe2").style.display = "none";
	
	initialize(vid,t,ed) 
}
function Edit()
{
	document.getElementById("bSav").style.display = "";
	document.getElementById("bCan").style.display = "";
}
function handleHttpResponse() { 
	if (http.readyState == 4) { 
	   if (http.status == 200) { 
		  if (http.responseText.indexOf('invalid') == -1) {
			 results = http.responseText.split("|"); 
			 document.getElementById("xPlayerVideo").innerHTML = results[0];
			 enProceso = false;
		  }
	   }
	}
}
function GetVideo(vid,t) {
	if (!enProceso && http) {
	   var url = "http://www.vidlisting.com/js/g.asp?vid=" + escape(vid) + "&t=" + escape(t);
	   http.open("GET", url, true);
	   http.onreadystatechange = handleHttpResponse;
	   enProceso = true;
	   http.send(null);
	}
}
function handleHttpResponseNLL() { 
	if (http.readyState == 4) { 
	   if (http.status == 200) { 
		  if (http.responseText.indexOf('invalid') == -1) {
			 results = http.responseText.split("-x-"); 
			 if(results[0]=="ERROR")
			 {
				 document.getElementById("map_canvasLoad").innerHTML = "Error 4523";
			 }
			 else
			 {
				if(results[0]=="MISMO")
				{
					document.getElementById("map_canvas").style.display = "";	
					document.getElementById("map_canvasLoad").style.display = "none";
					document.getElementById("pMe").style.display = "";
				}
				else
				{
					for(c1=0;c1<results.length;c1++)
					{
						ArryPlace[c1]=new Array(3);
						results2 = results[c1].split("_"); 
						ArryPlace[c1][0] = results2[0];
						ArryPlace[c1][1] = results2[1];
						ArryPlace[c1][2] = results2[2];
						ArryPlace[c1][3] = results2[3];
					}	
					 initialize("","",1);	
					 document.getElementById("map_canvas").style.display = "";	
					 document.getElementById("map_canvasLoad").style.display = "none";
					 document.getElementById("pMe").style.display = "";
				 }
			 }
			 enProceso = false;
		  }
	   }
	}
}
function SaveNewLatLon(vid,t) {
	if (!enProceso && http) {
	   document.getElementById("map_canvas").style.display = "none";	
	   document.getElementById("map_canvasLoad").style.display = "";	
	   var url = "http://www.vidlisting.com/js/SaveNewLatLon.asp?t=" + escape(t) + "&vid=" + escape(vid) + "&la=" + escape(lat) + "&lo=" + escape(lon);
	   http.open("GET", url, true);
	   http.onreadystatechange = handleHttpResponseNLL;
	   enProceso = true;
	   http.send(null);
	}
}
function handleHttpResponseFLL() { 
	if (http.readyState == 4) { 
	   if (http.status == 200) { 
		  if (http.responseText.indexOf('invalid') == -1) {
			 results = http.responseText.split("-x-"); 
			 if(results[0]=="ERROR")
			 {
				 document.getElementById("map_canvasLoad").innerHTML = "Error 4523";
			 }
			 else
			 {
				var ArryPlace2 = new Array(2);
				for(c1=0;c1<results.length;c1++)
				{
					ArryPlace2[c1]=new Array(3);
					results2 = results[c1].split("_"); 
					ArryPlace2[c1][0] = results2[0];
					ArryPlace2[c1][1] = results2[1];
					ArryPlace2[c1][2] = results2[2];
					ArryPlace2[c1][3] = results2[3];
				}
				initialize2(ArryPlace2);	
				 document.getElementById("map_canvas").style.display = "";	
				 document.getElementById("map_canvasLoad").style.display = "none";
			 }
			 enProceso = false;
		  }
	   }
	}
}
function filter(vid) {
	var cad="";
	for (i=0;i<document.forms[0].elements.length;i++)
      if(document.forms[0].elements[i].type == "checkbox")
        {
			if(document.forms[0].elements[i].checked == true)
				cad = cad + document.forms[0].elements[i].value + "1" + "/" 
			else
				cad = cad + document.forms[0].elements[i].value + "0" + "/" 
		}	
		cad = cad + "OTHER"
	if (!enProceso && http) {
	   document.getElementById("map_canvas").style.display = "none";	
	   document.getElementById("map_canvasLoad").style.display = "";	
	   var url = "http://www.vidlisting.com/js/FilterNewLatLon.asp?vid=" + escape(vid) + "&c=" + escape(cad);
	   http.open("GET", url, true);
	   http.onreadystatechange = handleHttpResponseFLL;
	   enProceso = true;
	   http.send(null);
	}
}
function getHTTPObject() {
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version >= 5)
	   try {
		  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	   } catch (e) {
		  try {
			 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		  } catch (E) { xmlhttp = false; }
	   }
	@else
	xmlhttp = false;
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
	   try {
		  xmlhttp = new XMLHttpRequest();
	   } catch (e) { xmlhttp = false; }
	}
	return xmlhttp;
}

var enProceso = false; 
var http = getHTTPObject(); 
function initialize(vid,t,ed) 
{
var dom = top.location.hostname;
if(ed == 1) 
{

	var xcheck = "";
	for(i=0;i<=ArryCat.length-1;i++)
	{
			xcheck = xcheck + "<div class='marker'>";
			
			switch (ArryCat[i].toUpperCase()){
			case "AIRPORT":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_aeropuerto.png' /></span>";
				break;
			case "PARK":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_parque.png' /></span>";
				break;
			case "BRIDGE":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_puente.png' /></span>";
				break;
			case "CEMETERY":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_cementerio.png' /></span>";
				break;
			case "COMMUNITY":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_complejo.png' /></span>";
				break;
			case "POST OFFICE":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_correo.png' /></span>";
				break;
			case "GOLF":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_golf.png' /></span>";
				break;
			case "HOTEL":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_hotel.png' /></span>";
				break;
			case "LIBRARY":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_libreria.png' /></span>";
				break;
			case "LOCALGOV":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_localgov.png' /></span>";
				break;
			case "MARINA":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_marina.png' /></span>";
				break;
			case "DC METRO STATION":
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_dcmetro.png' /></span>";
				break;
			default:
				xcheck = xcheck + "<span class='img_marker'><img src='http://" + dom + "/images/vidlisting2009/markers/mar_propiedad.png' /></span>";
				break;
			
		  }
			xcheck = xcheck + "<span class='chk_marker'><input type='checkbox' name='XX_" + ArryCat[i].toUpperCase() + "' value='" + ArryCat[i].toUpperCase() + "'/></span>";
			xcheck = xcheck + "<label>" + ArryCatName[i] + "</label>";
			xcheck = xcheck + "</div>";
	}			
	

	document.getElementById("chkCustom").innerHTML = xcheck;	
}	
  if (GBrowserIsCompatible()) 
  {
	var map = new GMap2(document.getElementById("map_canvas"),
		{ size: new GSize(470,300) } );

	
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);

	
	function createMarker(latlng, number, xmsg, xtype) {
	  var letteredIcon = new GIcon(baseIcon);
	  switch (xtype){
		 case "PROPERTY":
			letteredIcon.image = "http://www.google.com/mapfiles/marker.png";
			break;
		case "CHURCH":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_iglesia.png";
			break;
		case "HOSPITAL":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_hospital.png";
			break;
		case "SCHOOL":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_escuela.png";
			break;
		case "POLICE":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_policia.png";
			break;
		case "FIRESTATION":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_bomberos.png";
			break;
		case "AIRPORT":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_aeropuerto.png";
			break;
		case "BRIDGE":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_puente.png";
			break;
		case "PARK":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_parque.png";
			break;
		case "CEMETERY":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_cementerio.png";
			break;
		case "COMMUNITY":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_complejo.png";
			break;
		case "POST OFFICE":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_correo.png";
			break;
		case "GOLF":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_golf.png";
			break;
		case "HOTEL":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_hotel.png";
			break;
		case "LIBRARY":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_libreria.png";
			break;
		case "LOCALGOV":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_localgov.png";
			break;
		case "MARINA":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_marina.png";
			break;
		case "DC METRO STATION":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_dcmetro.png";
			break;
		default:
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_propiedad.png";
			break;
		
	  }
	  markerOptions = { icon:letteredIcon };

		if((xtype == "PROPERTY") && (ed == 2))  
		{
			Edit();
			var marker = new GMarker(latlng, {draggable: true});
			GEvent.addListener(marker, "dragend", function() {
				xlatlng = marker.getLatLng();
				lat = xlatlng.lat();
				lon = xlatlng.lng();
			});

		}	
		else	
			var marker = new GMarker(latlng,markerOptions);

	  marker.value = number;
	  GEvent.addListener(marker,"click", function() {
		var myHtml = xmsg
		map.openInfoWindowHtml(latlng, myHtml);
	  });
	  return marker;
	}
		
	var center = new GLatLng(ArryPlace[ArryPlace.length-1][2], ArryPlace[ArryPlace.length-1][3]);
	map.setCenter(center, 13);

	map.setUIToDefault();
	
	var dis="";
	var min="";
	for(i=0;i<=ArryPlace.length-1;i++)
	{	
		var latlng = new GLatLng(ArryPlace[i][2], ArryPlace[i][3]);
		map.addOverlay(createMarker(latlng, i + 1, ArryPlace[i][1], ArryPlace[i][0].toUpperCase()));
		if(i==0) 
		{
			dis = calculator(ArryPlace[ArryPlace.length-1][2],ArryPlace[ArryPlace.length-1][3],ArryPlace[i][2],ArryPlace[i][3]);
			min = dis;
		}
		else
			if(i!=(ArryPlace.length-1))
				dis = calculator(ArryPlace[ArryPlace.length-1][2],ArryPlace[ArryPlace.length-1][3],ArryPlace[i][2],ArryPlace[i][3]);
		if(dis < min)
			min = dis;
	}
	if(min >= 1)
	{
		map.setCenter(center, 11);
	}	
	
  }
  
}
function initialize2(ArryPlace2) 
{
  if (GBrowserIsCompatible()) 
  {
	var map = new GMap2(document.getElementById("map_canvas"),
		{ size: new GSize(470,300) } );

	
	var baseIcon = new GIcon(G_DEFAULT_ICON);
	baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
	baseIcon.iconSize = new GSize(20, 34);
	baseIcon.shadowSize = new GSize(37, 34);
	baseIcon.iconAnchor = new GPoint(9, 34);
	baseIcon.infoWindowAnchor = new GPoint(9, 2);

	
	function createMarker(latlng, number, xmsg, xtype) {
	  var letteredIcon = new GIcon(baseIcon);
	  switch (xtype){
		 case "PROPERTY":
			letteredIcon.image = "http://www.google.com/mapfiles/marker.png";
			break;
		case "CHURCH":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_iglesia.png";
			break;
		case "HOSPITAL":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_hospital.png";
			break;
		case "SCHOOL":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_escuela.png";
			break;
		case "POLICE":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_policia.png";
			break;
		case "FIRESTATION":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_bomberos.png";
			break;
		case "AIRPORT":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_aeropuerto.png";
			break;
		case "PARK":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_parque.png";
			break;
		case "CEMETERY":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_cementerio.png";
			break;
		case "COMMUNITY":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_complejo.png";
			break;
		case "POST OFFICE":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_correo.png";
			break;
		case "GOLF":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_golf.png";
			break;
		case "HOTEL":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_hotel.png";
			break;
		case "LIBRARY":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_libraria.png";
			break;
		case "LOCALGOV":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_localgov.png";
			break;
		case "MARINA":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_marina.png";
			break;
		case "DC METRO STATION":
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_dcmetro.png";
			break;
		default:
			letteredIcon.image = "http://www.vidlisting.com/images/vidlisting2009/markers/mar_propiedad.png";
			break;
		
	  }
	  markerOptions = { icon:letteredIcon };

		var marker = new GMarker(latlng,markerOptions);

	  marker.value = number;
	  GEvent.addListener(marker,"click", function() {
		var myHtml = xmsg
		map.openInfoWindowHtml(latlng, myHtml);
	  });
	  return marker;
	}
		
	var center = new GLatLng(ArryPlace2[ArryPlace2.length-1][2], ArryPlace2[ArryPlace2.length-1][3]);
	map.setCenter(center, 13);

	map.setUIToDefault();
	
	var dis="";
	var min="";
	for(i=0;i<=ArryPlace2.length-1;i++)
	{	
		var latlng = new GLatLng(ArryPlace2[i][2], ArryPlace2[i][3]);
		map.addOverlay(createMarker(latlng, i + 1, ArryPlace2[i][1], ArryPlace2[i][0].toUpperCase()));
		if(i==0) 
		{
			dis = calculator(ArryPlace2[ArryPlace2.length-1][2],ArryPlace2[ArryPlace2.length-1][3],ArryPlace2[i][2],ArryPlace2[i][3]);
			min = dis;
		}
		else
			if(i!=(ArryPlace2.length-1))
				dis = calculator(ArryPlace2[ArryPlace2.length-1][2],ArryPlace2[ArryPlace2.length-1][3],ArryPlace2[i][2],ArryPlace2[i][3]);
		if(dis < min)
			min = dis;
	}
	if(min >= 1)
	{
		map.setCenter(center, 11);
	}	
	
  }
}