function $(id) {
	var elm;
	if(elm = document.getElementById(id)) return elm;
	return null;
}

function toggle(div) {
	var o = document.getElementById(div);
	var oImg = document.getElementById(div + "_img");
	
	if(o.style.display == "none") {
		o.style.display = "list-item";
		oImg.src = "/images/expanded.gif";
	} else {
		o.style.display = "none";
		oImg.src = "/images/collapsed.gif";
	}
}

function toggleBlock(div) {
	var o = document.getElementById(div);
	var oImg = document.getElementById(div + "_img");
	
	if(o.style.display == "none") {
		o.style.display = "block";
		oImg.src = "/images/expanded.gif";
	} else {
		o.style.display = "none";
		oImg.src = "/images/collapsed.gif";
	}
}
	
function togglePost(div) {
	var o = document.getElementById(div);
	
	if(o.style.display == "none") {
		o.style.display = "block";
	} else {
		o.style.display = "none";
	}
}

function popup(url) {
	/* optional arguments */
	/* popup(url, width, height, showNav) */
	
	var w = (arguments.length > 1) ? arguments[1] : "800";
	var h = (arguments.length > 2) ? arguments[2] : "600";
	if(arguments.length < 3 || !arguments[3]) url += (url.indexOf("?") > -1) ? "&shownav=0" : "?shownav=0";
	
	props = "width="+w+",height="+h+",toolbar=0,location=1,directories=0,status=1,menuBar=0,scrollBars=1,resizable=1";
	ch = window.open(url, "Popup", props);
	if(ch.opener == null) ch.opener = self;
}

function getElementsByClassName(elm, tag, cl) {
	var retnode = [];
	var myclass = new RegExp('\\b'+cl+'\\b');
	var elem = elm.getElementsByTagName(tag);
	for (var i = 0; i < elem.length; i++) {
		var classes = elem[i].className;
		if (myclass.test(classes)) retnode.push(elem[i]);
	}
	
	return retnode;
}

function isNumeric(val) {
	var isNum = true;
	var nums = "0123456789";
	for(var i = 0; i < val.length && isNum == true; i++) {
		isNum = nums.indexOf(val.charAt(i)) > -1;
	}
	return isNum;
}

function getURLParams( name )	{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
	return "";
  else
	return results[1];
}

function getEventSource(evt) {
    if (window.event) {
        evt = window.event; // For IE
        return evt.srcElement;
    } else {
        return evt.target; // For Firefox
    }
}

function addEvent(obj,evt,fn) {
	if (obj.addEventListener)
		obj.addEventListener(evt,fn,false);
	else if (obj.attachEvent)
		obj.attachEvent('on'+evt,fn);
}

function removeEvent(obj,evt,fn) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt,fn,false);
	else if (obj.detachEvent)
		obj.detachEvent('on'+evt,fn);
}

function addClassName(obj, cName) {
	removeClassName(obj, cName);
	if(obj.className != "") obj.className += " " + cName;
	else obj.className = cName;
}

function removeClassName(obj, cName) {
	if(obj.className != "") {
		var cArr = obj.className.split(" ");
		for(var i = cArr.length-1; i >= 0; i--) {
			if(cArr[i] == cName) cArr.splice(i, 1);
		}
		obj.className = cArr.join(" ");
	}
}

function textareaMaxLength() {
	var x = document.getElementsByTagName('textarea');
	var counter = document.createElement('div');
	counter.className = 'caption light';
	for (var i=0;i<x.length;i++) {
		if (x[i].getAttribute('maxlength')) {
			var counterClone = counter.cloneNode(true);
			counterClone.relatedElement = x[i];
			counterClone.innerHTML = '<span>0</span>/'+x[i].getAttribute('maxlength')+' characters';
			x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);
			x[i].relatedElement = counterClone.getElementsByTagName('span')[0];

			x[i].onkeyup = x[i].onchange = textareaCheckMaxLength;
			x[i].onkeyup();
		}
	}
}

function textareaCheckMaxLength() {
	var maxLength = this.getAttribute('maxlength');
	var currentLength = this.value.length;
	if (currentLength > maxLength)
		this.relatedElement.className = 'overflow';
	else
		this.relatedElement.className = '';
	this.relatedElement.firstChild.nodeValue = currentLength;
	// not innerHTML
}

addEvent(window, "load", textareaMaxLength);

function externalAnchors() {
	var hostname = window.location.hostname.replace("www.","").toLowerCase();
	var anchors = document.getElementsByTagName("a");
	for(var i = 0; i < anchors.length; i++) {
		if(anchors[i].href.toLowerCase().indexOf("http://") != -1 && anchors[i].href.toLowerCase().indexOf(hostname) == -1) {
			if(!anchors[i].className.match(/\bnoTargetBlank\b/)) anchors[i].target = "_blank";
			if(anchors[i].getElementsByTagName("img").length == 0) addClassName(anchors[i], "external");
		}
	}
}
addEvent(window, "load", externalAnchors);