﻿// Object/Class for the map
function Mapcontainer() {
    var map = null;
    var sf=1;
    var lat=1,lng=0;
    var t1=null;
    var planeimg = 'image/HC130transparent_right_s.gif';
    var pin=null;
    var params;
    
 	this.endPan = function (x) {
		map.EndContinuousPan();
		
		if (t1) {
			window.clearInterval(t1);
			t1=null;
		} 
		
		map.DeleteAllPushpins();
		pin=null;
				
		document.getElementById('airplane').style.visibility = 'hidden';
	};
	
	
	this.doPan2 = function (e, data) {
	var x = data.x;
	var y = data.y;
	var imgsrc = data.imgsrc;
	
		lat=x;lng=y;
		this.endPan();
		map.StartContinuousPan(x*sf,y*sf);
		document.getElementById('airplane').style.visibility='visible';
		if (imgsrc)
		{
			imgsrc="image/"+imgsrc;
			document.getElementById("airplane").src=imgsrc.replace("_s","");
			planeimg=imgsrc;
		}
		else
			document.getElementById("airplane").src=planeimg.replace("_s","");


			t1=setInterval(function(){document.getElementById("info").innerHTML= 'Latitude, longitude at the center of the map:<br> '+map.GetCenter();
		
			map.DeleteAllPushpins();

			pin = new VEPushpin(1, 
			map.GetCenter(), 
			planeimg
			);
	        
			map.AddPushpin(pin); }, 50);
	}
	
	this.speed = function(e, z) {
	sf=z.spd;
	for (var i=1; i <6; i++)
		document.getElementById("sp"+i).style.visibility = (i==sf? "visible":"hidden");
		
		
	z.that.doPan2(null, {x: lat, y:lng, imgsrc: null});
	}


	
	this.newgeo = function() {
		var lat= document.getElementById("lat").value;
		var lng= document.getElementById("lng").value;
		if (lat==null || lat== "" || isNaN(lat) )
		{
			alert("Please enter a valid latitude.");
			return false;
		}
		if (lng==null || lng=="" || isNaN(lng) )
		{
			alert("Please enter a valid longtitude.");
			return false;
		}
		document.location.replace("EarthPanMashup.htm?lat="+lat+"&lng="+lng);
		return true;
	}
	
	this.retnewgeo = function(ev, that) {

	    if (ev == null)
			ev = window.event;
    var key = null;
    if (ev.keyCode)
        key = ev.keyCode;
    else if (ev.which)
        key = ev.which;
        
    if (key != null && key == 13)
        return that.newgeo();

    return true;
	}
      
	function gtour()
	{
		this.endPan();
		getParams();

		document.location.assign("Default.aspx?geo=1&lat="+map.GetCenter().Latitude+"&lng="+map.GetCenter().Longitude+(window.params && params["citystatezip"] ? "&citystatezip="+params["citystatezip"]: ""));

		return true;
	}      
	
	function getParams() 
	{
		params = null;
			var qs=window.location.search.substring(1);
		if(qs) 
		{
			params = {};
			var pairs = qs.split("&");
			for(var i = 0; i < pairs.length; i++) 
			{
				var pair = pairs[i].split("=");
				var value = pair[1];

					// decodeURI
				params[ pair[0] ] = value;

			}
		}
	}
	
    this.GetMap = function () {
         map = new VEMap('myMap');
         getParams();
   

		if (params == null || params["lat"]==null) {
				map.LoadMap(new VELatLong(35.67221028352852, 51.41398787498473), 20 ,'h');
		}
		else {
				map.LoadMap(new VELatLong(parseFloat(params["lat"]), parseFloat(params["lng"])), 20 ,'h');
				document.getElementById("lat").value=params["lat"];
				document.getElementById("lng").value=params["lng"];
				document.getElementById("info").innerHTML= 'Latitude, longitude at the center of the map:<br> '+map.GetCenter();
		}   

		
		// array can contain object references, element ids, or both
		var ids = ["pdown2", "pdown"];
		//var mydata = {x: 0, y:1, imgsrc: 'HC130transparent_down_s.gif'}; 
		YAHOO.util.Event.addListener(ids, "click", this.doPan2, {x: 0, y:1, imgsrc: 'HC130transparent_down_s.gif'}, this);
				

		var idsr = ["pright2", "pright"];
		var mydatar = {x: 1, y:0, imgsrc: 'HC130transparent_right_s.gif'}; 
		YAHOO.util.Event.addListener(idsr, "click", this.doPan2, mydatar, this);

		var idsl = ["pleft2", "pleft"];
		var mydatal = {x: -1, y:0, imgsrc: 'HC130transparent_left_s.gif'}; 
		YAHOO.util.Event.addListener(idsl, "click", this.doPan2, mydatal, this);

		var idsu = ["pup2", "pup"];
		var mydatau = {x: 0, y:-1, imgsrc: 'HC130transparent_up_s.gif'}; 
		YAHOO.util.Event.addListener(idsu, "click", this.doPan2, mydatau, this);

		YAHOO.util.Event.addListener("btnEnd", "click", this.endPan);
		
		this.doPan2(null, {x: 1, y:0, imgsrc: 'HC130transparent_right_s.gif'}); 
		
		YAHOO.util.Event.addListener("sred", "click", this.speed, {that:this, spd:5});
		YAHOO.util.Event.addListener("sorange", "click", this.speed, {that:this, spd:4});
		YAHOO.util.Event.addListener("syellow", "click", this.speed, {that:this, spd:3});
		YAHOO.util.Event.addListener("steal", "click", this.speed, {that:this, spd:2});
		YAHOO.util.Event.addListener("solive", "click", this.speed, {that:this, spd:1});
		
		YAHOO.util.Event.addListener("button1", "click", this.newgeo);
		YAHOO.util.Event.addListener("retid", "keypress", this.retnewgeo, this);
		YAHOO.util.Event.addListener("button1", "mouseover", UIUtils.prototype.bgChange, "lime");
		YAHOO.util.Event.addListener("button1", "mouseout", UIUtils.prototype.bgChange, "#ECE9D8");
	};
};


 function GetMap()
{
var themap = new Mapcontainer();
themap.GetMap();

} 
      


