// common.js







//http://www.gvisit.com/record.php?sid=f6516276c89fd66adf24b895c6826705

var CurrentId = null;

var Quotes = new Array();
function Quote(text,by,from) {
	this.text=text;
	this.by=by;
	this.from=from;
}




rnd.today=new Date();
rnd.seed=rnd.today.getTime();

function rnd() {
	rnd.seed = (rnd.seed*9301+49297) % 233280;
	return rnd.seed/(233280.0);
};

function rand(number) {
	return Math.ceil(rnd()*number);
};

var lastQuote=-1;
function GetQuoteFromXml() {
	var i;
	do {i = rand(Quotes.length)-1;} while (i == lastQuote);
	//var q = Quotes;
	document.getElementById("quote").innerHTML = 
		'<i>"'+Quotes[i].text+'"</i><br>'
		+Quotes[i].from
		+' by '+Quotes[i].by
	setTimeout('GetQuoteFromXml()', 15000);
}




function getBaseElement(aEvent) {
	var o = aEvent ? aEvent.target : window.event.srcElement;
	if (o.tagName != "A") {
		if (o.parentElement) {
			o = o.parentElement;
		} else if (o.parentNode) {
			o = o.parentNode;
		}
	}
	return o;
}

function mmonclick(aEvent) {
	var o = getBaseElement(aEvent);
	var s = o.id.substr(5);
	if (CurrentId!= null) {
		//document.getElementById("page_"+CurrentId).style.display = "none";
		document.getElementById("page_"+CurrentId).style.visibility = "hidden";
		document.getElementById("menu_"+CurrentId).className="";
	}
	//document.getElementById("page_"+s).style.display = "block";
	document.getElementById("page_"+s).style.visibility = "visible";
	document.getElementById("menu_"+s).className="current";

	CurrentId = s;
	return false;
}

function mmonmouseover(aEvent) {
	var o = getBaseElement(aEvent);
	alert('here '+o.id);
	return false;
}

function mmOnMouseOver(aEvent) {
	var o = getBaseElement(aEvent);
	if (o.id != "menu_"+CurrentId) {
		document.getElementById("menu_"+CurrentId).className="currentout";
		o.className="hover";
	}
	return false;
}

function mmOnMouseOut(aEvent) {
	var o = getBaseElement(aEvent);
	if (o.id != "menu_"+CurrentId) {
		document.getElementById("menu_"+CurrentId).className="current";
		o.className="";
	}
	return false;
}








function AjaxError(req) {
	if (this.req.status!=200) alert("Error loading "+this.url+"\n\nstatus: "+this.req.status+" "+this.req.statusText);
}

function ProcessQuotes(req) {
	//debugger;
	
	var root  = req.responseXML.documentElement;
	var quotes = root.getElementsByTagName("quote");
	//alert(getChildNode(quotes[0],"text").nodeName);

	for(var i=0;i<quotes.length;i++) {
/*
		Quotes[Quotes.length]=new Quote(
			GetElementTextByTagName(quotes[i],"text")
			,GetElementTextByTagName(quotes[i],"by")
			,GetElementTextByTagName(quotes[i],"from")
*/
		Quotes[Quotes.length]=new Quote(
			getNodeText(quotes[i],"text")
			,getNodeText(quotes[i],"by")
			,getNodeText(quotes[i],"from")
		);
	}
	
	GetQuoteFromXml();
	
}











//---------------------------------------------------------------------
//begin for gvisit

// Creates a marker whose info window displays the given number
function createMarker(point, number, text, open) {

	var marker = new GMarker(point);
	map.addOverlay(marker);
	// Show this marker's index in the info window when it is clicked
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(text); 
	});
	if(open) {
		marker.openInfoWindowHtml(text); 
	}
	return marker;
}

//here when data loaded into rssVisitors
function toMixedCase(str) {
	var strs = str.toLowerCase().split(" ");
	var ret = "";
	
	for (var i in strs) {
		ret += strs[i].substr(0,1).toUpperCase()+strs[i].substr(1)+" ";
	}

	return ret;
}

//var markers = new Array();
function rssVisitorsOnload(o) {
	
	var vt = document.getElementById("visitorsText");
	//var ul = document.createElement("ul");
	
	for (var i=0;i<o.items.length;i++) {
		//var sp = o.items[i].description.split(",");
		//var txt = '<b>'+toMixedCase(o.items[i].title)+'</b><br>on '+o.items[i].pubDate+'<br>';
		//var marker = createMarker(new GPoint(sp[3],sp[2]), i+1, txt);
		//map.addOverlay(marker);
		
		var d = document.createElement("div");
		if ( (i%2) ==0) {
			d.className = "veven";
		} else {
			d.className = "vodd";
		}
		d.appendChild(document.createTextNode(toMixedCase(o.items[i].title)));
		vt.appendChild(d);
	}
}

var rssVisitors = new Rss();
rssVisitors.onload = rssVisitorsOnload;
rssVisitors.onerror = AjaxError;

//end for gvisit
//---------------------------------------------------------------------



function IpInfoSorry(req) {
	o = document.getElementById("mapSorry");
	o.style.display="block";
}

function ProcessIpInfo(req) {
	
	var root  = req.responseXML.documentElement;
	
	var region = getNodeText(root,"region");
	var city = getNodeText(root,"city");
	var market = getNodeText(root,"market");
	var latitude = getNodeText(root,"latitude");
	var longitude = getNodeText(root,"longitude");
	var txt = 'You are here!<br /><b>'+city + ", " + region +'</b>';
	if (city != market) {
		txt += "<br />"+market+" area";
	}
	
	//alert(txt);
	
	if(latitude=="" || longitude=="") {
		IpInfoSorry(req);
	} else {
		var marker = createMarker(new GPoint(longitude,latitude), 1, txt, false);
		map.centerAndZoom(new GPoint(longitude,latitude), 13);
		//map.addOverlay(marker);
	}	
}




//---------------------------------------------------------------------

var quotes;
var map;
var myIpInfo;

function OnEndOfPage() {



	//supercharge the menu system
	var mm = document.getElementById("mainmenu");
	var children = mm.getElementsByTagName("a");
	for(var i in children) {
		var c = children[i];
		if (typeof(c)=="object") {
			c.onclick = mmonclick;
			c.onmouseout = mmOnMouseOut;
			c.onmouseover = mmOnMouseOver;
			if (c.className != "") {
				CurrentId = c.id.substr(5);
			}
		}
	}



//debugger;


	quotes = new Ajax();
	quotes.onload = ProcessQuotes;
	quotes.onerror = AjaxError;
	quotes.load("quotes.xml");
		

	try {
		map = new GMap(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.centerAndZoom(new GPoint(1, 35.0), 16);

		rssVisitors.load("visitors.rpx");

		myIpInfo = new Ajax();
		myIpInfo.onload = ProcessIpInfo;
		myIpInfo.onerror = IpInfoSorry;
		myIpInfo.load("GetIpInfo.aspx");
	}
	catch(e) {
	}


}

//load the appropriate google map
var gkey;
if (location.hostname=="localhost") {
	gkey="ABQIAAAAmdZ0y2On9L-E9J2TfIkNBBTK6QcwxesNhxuyro-dLHMHkiH5sxTOoXx3B1mJFABcpIsY9icyqIgNdQ";
} else {
	gkey="ABQIAAAAmdZ0y2On9L-E9J2TfIkNBBS9uigEkRaq1NrZ-vKYgck2H5mk6hQwBH2x1bWweydNOYP9NhQVKnuubw";
}
document.write('<script type="text/javascript" src="http://maps.google.com/maps?file=api&amp;v=1&amp;key='+gkey+'"></script>');



//a test to see if the counter increases (will remove soon)
//var cache = new Image();
//cache.src="http://microsoftgadgets.com/Gallery/Source/1683.zip";
