
	var xPos;
	var yPos;

	document.onmousemove = setXY;
	//document.onmouseout = hideInfo;

	var FIREFOX = 'Netscape';
	var IE = 'Microsoft Internet Explorer';
	var browser = navigator.appName;

	var style = getCookie('stylesheet');
	if( style == null ) style = 'elegant';

	if( browser == IE ){
		document.write('<link rel="stylesheet" type="text/css" href="styles/' + style + '/ie.css">');
		window.attachEvent("onload", correctPNG);
		document.getElementById('firefoxrequest').innerHTML = 'Please consider downloading and using Firefox as an alternative Web Browser to Internet Explorer.';
		
	}

	function correctPNG() 
	{
		for(var i=0; i<document.images.length; i++)
		{
			var img = document.images[i]
			var imgName = img.src.toUpperCase()
			if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
			{
				var imgID = (img.id) ? "id='" + img.id + "' " : ""
				var imgClass = (img.className) ? "class='" + img.className + "' " : ""
				var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
				var imgStyle = "display:inline-block;" + img.style.cssText 
				if (img.align == "left") imgStyle = "float:left;" + imgStyle
				if (img.align == "right") imgStyle = "float:right;" + imgStyle
				if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle		
				var strNewHTML = "<span " + imgID + imgClass + imgTitle
		 	+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
	     	+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
		 	+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
				img.outerHTML = strNewHTML
				i = i-1
			}
      	}
   	}


/*
	if( screen.width <= 1024 || screen.height <= 768 )
	{
		document.write('<link rel="stylesheet" type="text/css" href="styles/lowres.css">');
	}
 */

	function setXY ( e )
	{
		xPos = (window.Event) ? e.pageX : event.clientX;
		yPos = (window.Event) ? e.pageY : event.clientY;
	}


	function setContentStyle()
	{
		var content = document.getElementById('content');
		var sidemenu = document.getElementById('sidemenu');
		content.style.marginLeft = ((screen.width - 775) / 2) + ' px';
	}

	function setDirty(){
		document.cookie = 'sanBlogDirty=true';
	}

	function unsetDirty(){
		deleteCookie('sanBlogDirty');
	}

	function isDirty(){
		return 'true' == getCookie('sanBlogDirty');
	}

	function getCookie( name ){
		var dc = document.cookie;
		var prefix = name + '=';
		var begin = dc.indexOf('; ' + prefix);
		if(begin == -1){
			begin = dc.indexOf(prefix);
			if(begin != 0) return null;
		} else {
			begin += 2;
		}
		var end = document.cookie.indexOf(';', begin);
		if( end == -1){
			end = dc.length;
		}
		return (dc.substring(begin + prefix.length, end));
	}

	function deleteCookie( name ){
		document.cookie = name + "=false;expires=Thu, 01-Jan-70 00:00:01 GMT";
	}

	function createCookie(cookieName, cookieValue, nDays) {
		var expire = new Date();
		if (nDays==null || nDays==0) nDays=1;
		expire.setTime(expire.getTime() + 3600000*24*nDays);
		document.cookie = cookieName+"="+escape(cookieValue)
					                  + ";expires="+expire.toGMTString();
	}

	function newSubmitForm(id){
		window.open('rteblogentry.php?blogid='+id,'popupblogentry','width=850,height=585,scrollbars=yes,resizable=yes');
	}
	function submitForm(id, t){
		window.open('rteblogentry.php?id='+id+'&timestamp='+t,'popupblogentry','width=850,height=585,scrollbars=yes,resizable=yes');
		//window.open('blogentry.php?id='+id+'&timestamp='+t,'popupblogentry','width=850,height=585,scrollbars=yes,resizable=yes');
	}


	function clear( id, t ){
		if( document.getElementById(id).value == t )
			document.getElementById(id).value = '';
	}

	function strip( str ) {
		var ret =  str.replace(/^\s*/g,'');
		return ret;
	}

	function validateFriendRequest(){
		var errmsg = '';
		//alert(document.forms.newfriend.name.value);
		var frm = document.forms.newfriend;

		//get a name
		if(strip(frm.name.value) == '') errmsg += '<li>I need to know how to refer to your friend (Fill in &quot;Refer To My Friend As:&quot; field)</li>';
		
		//if site get sitename; if sitename get site
		if(strip(frm.site.value) != '' && strip(frm.sitename.value) == '') errmsg += '<li>Need a username for ' + frm.site.value + '</li>';
		if(strip(frm.sitename.value) != '' && strip(frm.site.value) == '') errmsg += '<li>Need a site for username: ' + frm.sitename.value + '</li>';

		//other site verification
		if(strip(frm.nickname.value) != '' && strip(frm.urls.value) == '') errmsg += '<li>No url associated with ' + frm.nickname.value + '</li>';
		if(strip(frm.urls.value) != '' && strip(frm.nickname.value) == '') errmsg += '<li>No description for http://' + frm.urls.value + '</li>';

		//make sure there is some data
		//if(errmsg.length == 0 && frm.sanname.value == '') errmsg += '<li>I need some information to associate with ' + frm.name.value + '</li>';
		
		if(errmsg.length == 0){
			document.forms.newfriend.action = 'insertfriendrequest.php';
			document.forms.newfriend.submit();
		} else {
			document.getElementById('error').innerHTML = '<ul>' + errmsg + '</ul>';
		}
	}

	var v = false;
	function toggleEntry(){
		v = !v;
		if(v){
			document.getElementById('newentry').style.display = 'block';
			document.getElementById('oldentry').style.display = 'none';
		}else{
			document.getElementById('newentry').style.display = 'none';
			document.getElementById('oldentry').style.display = 'block';
		}
	}

	function toggle( vis, invis ){
		document.getElementById(vis).style.display = 'block';
		document.getElementById(invis).style.display = 'none';
	}

	function previewblog( type, titleId, contentId ){
		var title = document.getElementById(titleId).value;
		var content = document.getElementById(contentId).value;
		content = content.replace(/\n/g,'<\n>');
		window.open("previewblog.php?type="+type+"&title="+title+"&content="+content,"preview","toolbar=no,location=no,directories=no,menubar=no");
	}

// pass in array of objects of things to verify
/*
   array[0] = o
   o.id = 'html id';
   o.idval = id refer to as
   o.value = 'invalid value'
   o.min = 0 minimum length
   o.max = 5 max length
   o.req = 'required value'
   o.reqval = req refer to as
*/
	function verify( ary, dest ){
		var err = new Object();
		var x = ary.length;
		for(var i=0; i < x; ++i){
			var form = document.getElementById( ary[i].id ).value;
			if (ary[i].idval == null)
				err.field = ary[i].id;
			else
				err.field = ary[i].idval;
			if (ary[i].max != null && form.length > ary[i].max) {
				err.msg = 'exceeds max length';
				return err;
			} else if (ary[i].min != null && form.length < ary[i].min) {
				err.msg = 'less than minimum length';
				return err;
			} else if (ary[i].value != null && form == ary[i].value) {
				err.msg = 'cannot equal \'' + ary[i].value + '\' ';
				return err;
			} else if (ary[i].req != null && form != ary[i].req) {
				if (ary[i].reqval == null)
					err.msg = 'must equal \'' + ary[i].req + '\' ';
				else
					err.msg = 'must equal ' + ary[i].reqval;
				return err;
			}
		}
		return null;
	}

function enableTime( enable )
{
	if (enable)
		document.getElementById('enterTime').style.display = 'block';
	else
		document.getElementById('enterTime').style.display = 'none';
}

function getBackURL()
{
	document.writeln('<a href="' + document.referer + '">Back</a>');
}

function showInfo( msg )
{
	document.getElementById('info').style.top = (yPos + 10) + 'px';
	document.getElementById('info').style.left = (xPos) + 'px';
	document.getElementById('info').innerHTML = '<p>' + msg + '</p>';
	document.getElementById('info').style.display = 'block';
}

function hideInfo()
{
	document.getElementById('info').style.display = 'none';
}

function adjustForResolution()
{
	if (screen.width < 1000)
	{
			var src = document.getElementById('shortangryninja').src;
			var start = src.lastIndexOf('/');
			document.getElementById('shortangryninja').src = 'styles/elegant/lowres/' + src.substring(start);

			//document.getElementById('shortangryninja').src = 'styles/elegant/lowrestopleft.png';
			document.getElementById('shortangryninja').style.width = '100px';
			document.getElementById('shortangryninja').style.height = '100px';

			document.getElementById('content').style.width = '600px';
			document.getElementById('right').style.width = '600px';
	}
	/*
	else if (screen.width == 1024)
	{
			document.getElementById('shortangryninja').style.width = '250px';
			document.getElementById('shortangryninja').style.height = '100px';
	}
	*/
}

function updateStartPage( frameID, val, userID)
{
	f = document.getElementById(frameID);
	f.style.display = 'block';
	f.src = 'updatestartpage.php?value='+val+'&id='+userID;
	f.style.display = 'none';
}

function editMode(mode, dbValue)
{
	if (mode)
	{
		document.getElementById('editMenu').style.display = 'block';
		showStartPageElements();
		if (navigator.userAgent.toLowerCase().indexOf('safari') != -1)
		{
			setTimeout("setURLToReload()", 100);
		}
		else
		{
			document.getElementById('editModeText').innerHTML = 'Stop Editing';
		}
		
		if (dbValue >= 4)
		{
			dbValue -= 4;
			toggle('startsurveyel', 'startsurveymenu');
		}
		else
		{
			toggle('startsurveymenu', 'startsurveyel');
		}
		if (dbValue >= 2)
		{
			dbValue -= 2;
			toggle('starttodoel', 'starttodomenu');
		}
		else
		{
			toggle('starttodomenu', 'starttodoel');
		}
		if (dbValue >= 1)
		{
			dbValue -= 1;
			toggle('startweatherel', 'startweathermenu');
		}
		else
		{
			toggle('startweathermenu', 'startweatherel');
		}
	}
	else
	{
		document.getElementById('editMenu').style.display = 'none';
		document.getElementById('editModeText').innerHTML = '';
		hideStartPageElements();
		window.location.reload();
	}

}

function setURLToReload()
{
	var url = document.getElementById('editModeText');
	url.href = 'index.php?page=start';
}

function showStartPageElements()
{
	document.getElementById('startsurvey').style.display = 'block';
	document.getElementById('startweather').style.display = 'block';
	document.getElementById('starttodo').style.display = 'block';
	//document.getElementById('startrecent').style.display = 'block';
}

function hideStartPageElements()
{
	document.getElementById('startsurvey').style.display = 'none';
	document.getElementById('startweather').style.display = 'none';
	document.getElementById('starttodo').style.display = 'none';
	//document.getElementById('startrecent').style.display = 'block';
}

function handCursor( element )
{
	element.style.cursor = 'pointer';
}

function windowGainsFocus()
{
	if(isDirty())
	{
		unsetDirty();
		window.location.reload();
	}
	unsetDirty();
}

function showMenu(e) {
	var el;
	if (e.target) el = e.target;
	else if (e.srcElement) el = e.srcElement;
	if (el.nodeType == 3) el = el.parentNode;

	var pos = getPosition(el);
	var topPos = getPosition(document.getElementById('top'));
	var parent = document.getElementsByTagName('table');
	var parentPos = getPosition(parent[0]);
	var menu = document.getElementById(el.id + '_menu');
	menu.style.position = 'absolute';
	menu.style.top = (parentPos.y + topPos.y + pos.y + el.offsetHeight) + 'px';
	menu.style.left = (parentPos.x + topPos.x + pos.x + 2) + 'px';
	menu.style.display = 'block';
}

function hideMenu(e) {
	var el;
	if (e.target) el = e.target;
	else if (e.srcElement) el = e.srcElement;
	if (el.nodeType == 3) el = el.parentNode;

	var menu = document.getElementById(el.id);
	menu.style.display = 'none';
}

	function debug(msg) {
		var debug = document.getElementById('output');
		debug.innerHTML = debug.innerHTML + '<br>' + msg;
	}

	function getPosition(el) {
		var posx = Left(el);
		var posy = Top(el);
		debug(el.id + ' (' + posx + ',' + posy + ')');
		return {x: posx, y: posy};
	}

	function getMousePosition(e) {
		var posx = 0;
		var posy = 0;
		if (!e) var e = window.event;
		if (e.pageX || e.pageY) { posx = e.pageX; posy = e.pageY; }
		else if (e.clientX || e.clientY) { 
			posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
			posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
		}
		return {x: posx, y: posy};
	}

	function Left( el ) {
		if (!el.offSetParent) {
			return el.offsetLeft;
		}
		else {
			debug('getting parent...');
			return el.offsetLeft + Left(el.offsetParent);
		}
	}

	function Top( el ) {
		if (!el.offSetParent) {
			return el.offsetTop;
		}
		else {
			return el.offsetTop + Top(el.offsetParent);
		}
	}

function addListeners() {
	//document.getElementById('bloglink').onmouseover = showMenu;
	//document.getElementById('bloglink_menu').onmouseout = hideMenu;
}
	/**
	 * Default Listeners
	 */

function getSource(e) {
	var src;
	try {
		src = e.target;
	} catch (ex) {
		src = event.srcElement;
	}
	return src;
}

function changeStyles( e, color, border, background ) {
	var src = getSource(e);
	if (color != '')
		src.style.color = color;
	if (border != '')
		src.style.border = border;
	if (background != '')
		src.style.background = background;
}

