absoluteUrl = "http://www.debordieu.com/";

var toggleForm = function(e) {
	if (e) YAHOO.util.Event.stopEvent(e);
	var formDiv = document.getElementById('request-availability');
	var formLink = document.getElementById('request-availability-link');
	formLink.blur();
	if (formDiv.style.height != "270px") {
		YAHOO.util.Dom.addClass(formLink, 'active');
		var formAnim = new YAHOO.util.Anim(formDiv, { height: {to: 270}, opacity: { from: 0, to: 0.8 } }, 0.5, YAHOO.util.Easing.backOut);
		formAnim.onComplete.subscribe(displayForm);
		formAnim.animate();
	}
	else {
		YAHOO.util.Dom.removeClass(formLink, 'active');
		var formAnim = new YAHOO.util.Anim(formDiv, { height: {to: 0}, opacity: { to: 0 } }, 0.5, YAHOO.util.Easing.easeOut);
		hideForm();
		formAnim.animate();
	}
}

var requestAvailability = function(e) {
	var formDiv = document.getElementById('request-availability');
	var formAnim = new YAHOO.util.Anim(formDiv, { height: {to: 270}, opacity: { from: 0, to: 0.8 } }, 0.5, YAHOO.util.Easing.backOut);
	formAnim.onComplete.subscribe(displayForm);
	formAnim.animate();
}

var displayForm = function() {
	var formItself = document.getElementById('availability-form');
	//Thanks IE for all the code below. Really appriciate doing this the incredibly hard way to force hasLayout.
	var ieCopy = document.getElementById('availability-form').innerHTML;
	document.getElementById('availability-form').innerHTML = "";
	formItself.style.display = "block";
	document.getElementById('availability-form').innerHTML = ieCopy;
	formItself.style.height = "300px";
}

var hideForm = function() {
	var formItself = document.getElementById('availability-form');
	formItself.style.display = "none";
}

var pageLoad = function() 
{
	loadmap();
	YAHOO.util.Event.addListener('request-availability-link', 'click', toggleForm);
	YAHOO.util.Event.addListener('closeRequest', 'click', toggleForm);
	if (document.location.href.search(/available/) != -1) toggleForm();
	var links = document.getElementsByTagName('a');
	for (var i = 0; i < links.length; i++) {
		if (links[i].rel == 'external') links[i].target = "_blank";
	}
}

YAHOO.util.Event.addListener(window, 'load', pageLoad);
YAHOO.util.Event.addListener(window, 'unload', GUnload);


function loadmap() {
	var id, lat, lng;	

	var scripts = document.getElementsByTagName('script');
	for (i=0; i<scripts.length; i++) {
		if (scripts[i].src.match(/propertyMap\.js(\?.*)?$/)) {
			id = scripts[i].src.match(/id=([0-9,]*)/);
			lat = scripts[i].src.match(/lat=([0-9]*)\.([0-9]*)/);
			lng = scripts[i].src.match(/lng=-([0-9]*)\.([0-9]*)/);
			id = id[1];
			lat = lat[1] + '.' + lat[2];
			lng = -1 * (lng[1] + '.' + lng[2]);
		}
	}

  	if (GBrowserIsCompatible()) {
    	var map = new GMap2(document.getElementById("property-map-large"));
    	map.addControl(new GSmallMapControl());
	    map.addControl(new GMapTypeControl());
	    map.setCenter(new GLatLng(lat, lng), 17,G_HYBRID_MAP);

	    // Create our marker icon
	    var houseicon = new GIcon();
		houseicon.image = "/media/mm_20_blue.png";
		houseicon.shadow = "/media/mm_20_shadow.png";
		houseicon.iconSize = new GSize(12, 20);
		houseicon.shadowSize = new GSize(22, 20);
		houseicon.iconAnchor = new GPoint(6, 20);
		houseicon.infoWindowAnchor = new GPoint(5, 1);
	
		var rentals = new Array();
		GDownloadUrl("/components/mapdata.cfm?id="+id, function(data, responseCode) {
			var xml = GXml.parse(data);
			var markers = xml.documentElement.getElementsByTagName("marker");
			for (var i = 0; i < markers.length; i++) {
		    	rentals[i] = new Object();
		    	rentals[i].point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng")));
				rentals[i].gdetail = clickedhtml(markers[i].getAttribute("src"), markers[i].getAttribute("name"), markers[i].getAttribute("address"), markers[i].getAttribute("idkey"))
		    	rentals[i].marker = new GMarker(rentals[i].point, houseicon);
		    	map.addOverlay(rentals[i].marker);
				GEvent.bind(rentals[i].marker, "click", rentals[i], function() { this.marker.openInfoWindowHtml(this.gdetail); });	
				rentals[i].marker.openInfoWindowHtml(rentals[i].gdetail);
		  	}
		});
	}
}

function clickedhtml(imgsrc, name, address, id) {
	return "<div class='infoWindow'><a href='/real-estate/listings/detail/" + id + "/'><img src='" + absoluteUrl + imgsrc + "' alt='" + name + "' /></a><h3>" + name + "</h3><p>" + address + "</p></div>";
}