var directions = {
	dirButton:null,
	toAddress:"",
	get:function(d, ta) {
		directions.dirButton = d;
		directions.toAddress = ta;
		if (!document.getElementById('slDirBox')) {
			
			var tmp = document.createElement('div');
			tmp.id = "slDirBox";
			tmp.style.position = "absolute";
			
			var fromIn = document.createElement('input');
			fromIn.id = "slDirBoxFromIn";
			fromIn.onfocus = function() {
				if (this.value == "Enter your address here") this.value = "";
			}
			fromIn.className = "slDirBoxInput";
			fromIn.name = "address";
			fromIn.value = "Enter your address here";
			fromIn.type = "text";
			fromIn.size = "40";
			tmp.appendChild(fromIn);
			
			var go = document.createElement('input');
			go.id = "slDirBoxGo";
			go.className = "slDirBoxInput";
			go.type = "button";
			go.value = "Get Directions";
		
			go.onclick = function() { directions.refresh(); }
			tmp.appendChild(go); 
			
			var close = document.createElement('input');
			close.className = "slDirBoxInput";
			close.type = "button";
			close.value = "X";
			close.onclick = function() { document.getElementById('slDirBox').style.display = "none"; }
			tmp.appendChild(close);
			
			var br = document.createElement('br');
			tmp.appendChild(br);
			
			var s = document.createElement('small');
				var a = document.createElement('a');
				a.target = "_blank";
				a.id = "slDirA";
				a.style.display = "none";
				a.innerHTML = "View Larger Map";
				s.appendChild(a);
			tmp.appendChild(s);
			
			var iFrame = document.createElement('iframe');
			iFrame.id = "slDirBoxFromIframe";
			iFrame.style.clear = "left";
			iFrame.style.display = "none";
			iFrame.frameBorder = "0";
			iFrame.style.border = "1px solid #999999";
			iFrame.style.width = "950px";
			iFrame.style.height = "600px";
			tmp.appendChild(iFrame); 
			
			document.body.appendChild(tmp); 
			
			
		}
		if (document.getElementById('slDirBoxFromIn').value != "" && document.getElementById('slDirBoxFromIn').value != "Enter your address here") directions.refresh();
		
		document.getElementById('slDirBox').style.display = "block";
		directions.position();
	},
	formatAddress:function(a) {
		return escape(a).split("%20").join("+");
	},
	position:function() {
		var pos = directions.getDPos(directions.dirButton);
		var d = document.getElementById('slDirBox');
		d.style.left = (pos[0] + directions.dirButton.offsetWidth - d.offsetWidth) + "px";
		d.style.top = (pos[1] + directions.dirButton.offsetHeight) + "px";
	},
	getDPos:function(d) { 
		var nTop = 0;
		var nLeft = 0;
		if (d) {
			do {
				nLeft += d.offsetLeft - ((d.nodeName == "BODY") ? 0 : d.scrollLeft);
				nTop += d.offsetTop - ((d.nodeName == "BODY") ? 0 : d.scrollTop);
				d = d.offsetParent;
			} while(d)
		}
		return [nLeft, nTop];
	},
	refresh:function() {
		document.getElementById('slDirA').href = "http://maps.google.com/maps?hl=en&q=from+" + directions.formatAddress(document.getElementById('slDirBoxFromIn').value) + "+to+" + directions.formatAddress(directions.toAddress) + "&ie=UTF8&t=h&avpsrc=0&saddr=" + directions.formatAddress(document.getElementById('slDirBoxFromIn').value) + "&daddr=" + directions.formatAddress(directions.toAddress) + "&source=embed";
		document.getElementById('slDirA').style.display = "block";
		var d = document.getElementById('slDirBoxFromIframe');
		d.style.display = "block";
		directions.position();
		d.src = "redir.html?"+escape("http://maps.google.com/maps?hl=en&q=from+" + directions.formatAddress(document.getElementById('slDirBoxFromIn').value) + "+to+" + directions.formatAddress(directions.toAddress) + "&ie=UTF8&t=h&vpsrc=0&saddr=" + directions.formatAddress(document.getElementById('slDirBoxFromIn').value) + "&daddr=" + directions.formatAddress(directions.toAddress) + "&output=embed");
	}
};

