function toggle(a) {
	var item = document.getElementById(a);
	item.style.display = item.style.display == 'none' ? 'block' : 'none';
}




var app = {
	require_script: function(url) {
		document.write('<script type="text/javascript" src="' + url + '"></script>');
	},
	
	load_library: function(name) {
		var elements = document.getElementsByTagName('script');
		for (var e=0; e<elements.length; e++) {
			if (elements[e].src.indexOf('application.js') != -1) {
				app.require_script(elements[e].src.substring(0, elements[e].src.indexOf('application.js')) + 'libs/' + name + '.js');
			}
		}
	}
}

app.bar = {
	hash: null,
	options: [],
	url: '',
	useBar: true,
	linkHover: function (element, url) {
		if (!app.bar.useBar) {
			return;
		}
		element.href = 'http://www.at.com/bar#' + url;
	},
	
	detect: function () {
 		var newHash = document.location.hash;
 		if (app.bar.hash != newHash) { 
	 		app.bar.hash = newHash;
	 		newHash = newHash.substring(1);
	 		var pos;
	 		if ((pos = newHash.indexOf('$$=')) != -1) {
		 		try { 
		 			app.bar.options = eval(newHash.substring(pos));
		 		} catch (e) {
			 		if (console.log != undefined) { 
				 		console.log(e);
			 		} 
			 	}
		 		newHash = newHash.substring(0, pos); 
	 		}
	 		app.bar.handleChange(newHash);
 		} 
 		window.setTimeout(app.bar.detect, 50);
	},
	
	handleChange: function (data) {
		app.bar.url = data;
		app.bar.iframe.renew();
		app.bar.displayLink();
		app.bar.displayRelated();
	},
	
	search: function (u) {
		location.href = 'http://www.at.com/web?q=' + escape(u);
	},
	
	iframe: {
		renew: function () {
			$('#iframe')[0].src = app.bar.url;
		}
	},
	
	displayLink: function () {
		var url = app.bar.url;
		var max = 60;
		if (url.length > max) {
			var i = url.length / max;
			var url = url.substring(0, max) + '...'; 
		}
		$('#goLink').html('Go to <a href="' + app.bar.url + '" id="url">' + url + '</a>');
	},
	
	displayRelated: function () {
		var terms = app.bar.options.terms;
		if (terms == undefined || terms.length < 1) { 
			return;
		}
		var out = 'Related Searches: ';
		for (var o=0; o<terms.length; o++) {
			var term = terms[o];
			out += '<a href="http://www.at.com/web?q=' + escape(term) + '" onclick="app.bar.search(\'' + escape(term) + '\'); return false;">';
			out += term;
			out += '</a>';
			if (o < terms.length-1) {
				out += ' - ';
			}
		}
		$('relatedTerms').innerHTML = out;
	},
	detect: function () {
 		var newHash = document.location.hash;
 		if (app.bar.hash != newHash) { 
 			app.bar.hash = newHash;
	 		newHash = newHash.substring(1);
	 		var pos;
	 		if ((pos = newHash.indexOf('$$=')) != -1) {
		 		try { 
		 			app.bar.options = eval(newHash.substring(pos));
		 		} catch (e) {
			 		if (console.log != undefined) { 
				 		console.log(e);
			 		} 
			 	}
		 		newHash = newHash.substring(0, pos); 
	 		}
	 		app.bar.handleChange(newHash);
 		} 
 		window.setTimeout(app.bar.detect, 50);
	}
}


app.map = {
	obj: null,
	active: null,
	items: [],
	markers: [],
	bounds: null,
	
	init: function () {
		if (GBrowserIsCompatible()) {
			$('#map').addClass('active');
			
			app.map.obj = new GMap2($('#map')[0]);
	        app.map.obj.setCenter(new GLatLng(0, 0), 13);
			
			app.map.obj.setUIToDefault();
			app.map.bounds = new GLatLngBounds(); 
			
		}
	},
	
	finalize: function ()
	{
		for (var a=0; a<this.markers.length; a++) {
			app.map.bounds.extend(app.map.markers[a].getLatLng());
		}
		app.map.obj.setZoom(app.map.obj.getBoundsZoomLevel(app.map.bounds));
		app.map.obj.setCenter(app.map.bounds.getCenter());
		//app.map.obj.setCenter(new GLatLng(18.314114582548655, -65.29294967651367), 13, G_NORMAL_MAP); 
	},
	
	
	addItem: function (opt, key)
	{
		app.map.items.push(opt);
		
		var coor = new GLatLng(opt.latitude, opt.longitude);
		var marker = new GMarker(coor); 
		GEvent.addListener(marker, "mouseover", function() { app.map.elementOver(key); });
		GEvent.addListener(marker, "mouseout", function() { app.map.elementOut(key); });
		app.map.obj.addOverlay(marker);
		app.map.markers[key] = marker;
	},

	elementOver: function (i, key) {
		$(i).addClass('local_result_active');
		if (app.map.active != key) {
			app.map.active = key; 
			var a = app.map.items[key];
			var html = ''
					 + '<strong>' + a.title + '</strong> - ' + a.miles + ' miles away <br />'
					 + a.address + ' <br />'
					 + a.city + ', ' + a.state + ' ' + a.phone;
			
			app.map.markers[key].openInfoWindowHtml('<div class="localItem">' + html  + '</div>');
		}
	},
	
	elementOut: function (key) { 
		//$('item'+key).className = 'localItem  localItemH item'; 
	}
};




app.nav = {
	active: null,
	over: function (i, key)
	{ 
		i.href = i.rel + (i.rel.indexOf('?') != -1 ? '' : '?q=') + escape(eval('(typeof(QUERY) != "undefined");') ? QUERY : $('#query')[0].value);
	}
};
$(document).ready(function(){
	$('#tnav span a').hover(function(){
		app.nav.over(this);
	});
});
