var defFont = "0.9";
var defFontUnit = "em";
var defFontColor = "05";
var overStyle = "78";
var months = new Array();
months[0] = "";
months[1] = "January";
months[2] = "February";
months[3] = "March";
months[4] = "April";
months[5] = "May";
months[6] = "June";
months[7] = "July";
months[8] = "August";
months[9] = "September";
months[10] = "October";
months[11] = "November";
months[12] = "December";

depTemp = "<span class=\"pstMth\">%M%</span><br /><span class=\"pstDy\">%D%</span>";

function dispDate(currDate, temp, el)
{
	var cmp = currDate.split("/");
	
	document.getElementById(el).innerHTML = depTemp.replace("%M%",months[cmp[0]].substring(0,3)).replace("%D%",cmp[1]).replace("%Y%",cmp[2]);
}

function initDte(id)
{
	var wrp = document.getElementById("wrp"+id);
	var lft = document.getElementById("lft"+id);
	
	//lft.style.width = overStyle + "%";
	wrp.style.display = "block";
}

function addClick(u, t, s) {
	switch (s) {
		case 'f': 
			window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
			break;
		case 'd': 
			window.open('http://delicious.com/save?v=5&amp;noui&amp;jump=close&amp;url='+encodeURIComponent(u)+'&amp;title='+encodeURIComponent(t),'delicious', 'toolbar=no,width=550,height=550'); 
			break;
		case 't': 
			window.open('http://twitter.com/home?status='+t+'%20'+encodeURIComponent(u),'twitter','toolbar=0,status=0,width=626,height=550');
			break;
	}
	return false;
}

function addLoadEvent(func) {   
   var oldonload = window.onload;   
   if (typeof window.onload != 'function') {   
     window.onload = func;   
   } else {   
     window.onload = function() {   
       if (oldonload) {   
         oldonload();   
       }   
       func();   
     }   
   }   
 }

function twtrReplace(inputText) {
   var txt = inputText.replace(/&#039;/g,"'");
   var urlReplace = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
   var atuReplace = /(^|\s)@(\w+)/ig;
   var hshReplace = /[#]+[A-Za-z0-9-_]+/ig;

   txt = txt.replace( urlReplace, '<a href="$1">$1</a> ' ).replace( 
		atuReplace, '<a href="http://www.twitter.com/$2">@$2</a> ' ).replace( 
		hshReplace, function(t) { var tag = t.replace(/#/g,"%23"); return t.link("http://search.twitter.com/search?q="+tag); } );

   return txt;
}

function checkByClassName() {
	if (document.getElementsByClassName == undefined) {
		document.getElementsByClassName = function(className)
		{
			var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
			var allElements = document.getElementsByTagName("*");
			var results = [];

			var element;
			for (var i = 0; (element = allElements[i]) != null; i++) {
				var elementClass = element.className;
				if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
					results.push(element);
			}

			return results;
		}
	}
}

/* Preferences */
function loadPrefs() {
	var col, d = new Date();

	var fontSize = readCookie("fontSize");
	if( fontSize != null && fontSize != "") document.body.style.fontSize = fontSize + defFontUnit;

	//var fontColor = readCookie("fontColor");
	//if( fontColor == null || fontColor == "") col = Right("0"+(d.getMonth()+1),2);
	//else col = fontColor;

	//col = Right("0"+(d.getMonth()+1),2);
	//var colStr = "/styles/prefs" + col + ".css";

	//setStyleSheet("colorprefs",colStr);
	//appendStyleSheet(colStr);
}

/* Text Sizing Functions */
function resizeText(m) { 
	if(document.body.style.fontSize == "") document.body.style.fontSize = defFont + defFontUnit; 
 	var fontSize = parseFloat(document.body.style.fontSize) + (m * 0.2);

	document.body.style.fontSize = fontSize + defFontUnit; 
	createCookie("fontSize",fontSize,90);
}

function resetText() { 
  	document.body.style.fontSize = defFont + defFontUnit; 
	createCookie("fontSize",defFont,90);
}

/* Color functions */
function setFontColor(col) {
	var colStr = "/styles/prefs" + col + ".css";
	setStyleSheet("colorprefs",colStr);
	createCookie("fontColor",col,90);
}

function resetFontColor() {
	var colStr = "/styles/prefs" + defFontColor + ".css";
	setStyleSheet("colorprefs",colStr);
	eraseCookie("fontColor");
}

/* Query string argument capture */
function getArgs(  ) {
	var args = new Object(  );
	var query = location.search.substring(1);    
	var pairs = query.split("&");
	for(var i = 0; i < pairs.length; i++) {
		var pos = pairs[i].indexOf('=');
	        if (pos == -1) continue;
	        var argname = pairs[i].substring(0,pos);
	        var value = pairs[i].substring(pos+1);
	        args[argname] = unescape(value);
	}
	return args; 
}

/* Cookie functions */
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/;domain=scottmhallett.com";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function setStyleSheet(title, ref) {
   	var i, a, main;
  	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
     		if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") == title ) {
       			a.href = ref;
     		}
   	}
}

function setRSSFeed(title, ref) {
   	var i, a, main;
  	for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
     		if(a.getAttribute("rel").indexOf("alternate") != -1 && a.getAttribute("title") == title ) {
       			a.href = ref;
     		}
   	}
}

function appendStyleSheet(filename) {
	var ref = document.createElement("link");

  	ref.setAttribute("rel", "stylesheet");
  	ref.setAttribute("type", "text/css");
  	ref.setAttribute("href", filename);

  	document.getElementsByTagName("head")[0].appendChild(ref);
}

function Right(str, n) {
	if (n <= 0) return "";
	else if (n > String(str).length) return str;
	else {
		var iLen = String(str).length;
		return String(str).substring(iLen, iLen - n);
	}
}

function showEl( el ) {
	var par = document.getElementById("par" + el);
	var lnk = document.getElementById("lnk" + el);

	if( lnk.innerHTML == "MORE..." ) {
		lnk.innerHTML = "HIDE";
		par.style.display = "block";
	}
	else {
		lnk.innerHTML = "MORE...";
		par.style.display = "none";
	}
}


/* Initialization inherent to all pages */
addLoadEvent(checkByClassName);
addLoadEvent(loadPrefs);
