function getDiv(id) {
	if (document.getElementById) {
		return document.getElementById(id);
	}
	
	if (document.all) {
		return document.all[id];
	}
	
	if (document.layers) {
		return document.all[id];
	}
	
	return null;
}

function addEvent(obj, evType, fn, opt_flag) { 
	var flag = false;
	if (opt_flag != null) {
		flag = opt_flag;
	}
		
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, flag); 
		return true; 
	} else if (obj.attachEvent){ 
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else { 
		return false; 
	} 
}

function addEventSimple(obj,evt,fn) {
	if (obj.addEventListener)
		obj.addEventListener(evt,fn,false);
	else if (obj.attachEvent) {
		obj.attachEvent('on'+evt,fn);
	}
}

function removeEventSimple(obj,evt,fn) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt,fn,false);
	else if (obj.detachEvent)
		obj.detachEvent('on'+evt,fn);
}


function hilite(element) {
	if (element) {
		if (element.className) {
			element.className = element.className.replace(/ on$/, "");
			element.className = element.className.replace(/on$/, "");
			element.className  = element.className + " on";
		} else {
			element.className  = "on";
		}
	}
}

function lolite(element) {
	if (element && element.className) {
		element.className = element.className.replace(/ on$/, "");
		element.className = element.className.replace(/on$/, "");
	}
}

function setFilter(css) {
    var ul = getDiv("story_list");
    if (ul != null) {
        ul.className = "stories filter-" + css;
    }
}

function getWindowDims() {
    var x,y;
    if (self.innerHeight) // all except Explorer
    {
        x = self.innerWidth;
        y = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight)
    // Explorer 6 Strict Mode
    {
        x = document.documentElement.clientWidth;
        y = document.documentElement.clientHeight;
    }
    else if (document.body) // other Explorers
    {
        x = document.body.clientWidth;
        y = document.body.clientHeight;
    }
    return [ x, y ];
}

function fudgeForm(frm) {
    var dims = getWindowDims();
    if (is_fx && frm != null && frm.offsetHeight < dims[1]) {
        frm.style.height = dims[1] + "px";
    }
}


function showPopup(url,height) {
    if (height == null) {
        height = 800;
    }
	//if (is_opera) {
	//	height += 30;
	//}
	
	var wnd = window.open(url, 'nlrg', 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=600,height=' + height );
	wnd.focus();
}

function submitOnReturn(node) {
    try {
	    if (event && ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13))) {
		    //var btn = getDiv("srchBtn");
		    if (node.form) {
			    node.form.submit();
		    }
		    return false;
	    } else {
		    return true;
	    }
	} catch (ex) {
	    //alert(ex);
	    return true;
	}
}

/*ppk popup */
function popUp(url) {
    var newwindow = window.open(url, 'extWin', 'height=600,width=1024,scrollbars=1,resizable=1,menubar=1,status=1,toolbar=1,location=1,personalbar=1');
    if (newwindow.focus) {
        newwindow.focus()
    }
    return false;
}

/*ppk external links */
function setLinks() {
    var anchors = document.getElementsByTagName('a');
    for (var i = 0; i < anchors.length; i++) {
        var h = anchors[i].getAttribute('href');
        var r = anchors[i].getAttribute("rel");
        if (h != null && r != null) {
            if (r == 'external') {
				//popup script
				anchors[i].onclick = function() {
					return popUp(this.getAttribute("href"));
				};
				anchors[i].setAttribute("title", anchors[i].getAttribute("title") + " - " + anchors[i]);
            }
        }
    }
}

var noLabelArr = new Array();
function initLabels() {
	var inputs = document.getElementsByTagName('input');
	var lbls = document.getElementsByTagName('label');
	
	for ( var i=0; i< inputs.length; i++) {
		
		if ( inputs[i].className.search(/noLabel/) != -1 ) {
			var curInput = inputs[i];
			for ( var x=0; x<lbls.length; x++ ) {
				if ( lbls[x].htmlFor == curInput.id ) {
					//matched label and input id with class of noLabel
					var curLabel = lbls[x];
					noLabelArr.push({iElem: curInput, lElem: curLabel});
					curInput.setAttribute('oid', (noLabelArr.length - 1));
					addEventSimple(curInput, 'focus', function(e) { hideLabel( e ) });
					addEventSimple(curInput, 'blur', function(e) { showLabel( e ) });
					if ( curInput.getAttribute('value') != null ) {
						if ( curInput.getAttribute('value').length > 0 ) {
							hideLabel(curLabel);
						}
					}
				}
			}
		}
	}
}

function hideLabel(e) {
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ != null) {
	    if (targ.nodeType == 3) // defeat Safari bug
	        targ = targ.parentNode;

	    var _this = targ;
	    var label = noLabelArr[_this.getAttribute('oid')].lElem;
	    label.style.textIndent = '-9999px';
	}
}

function showLabel(e) {
 
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ != null) {
	    if (targ.nodeType == 3) // defeat Safari bug
	        targ = targ.parentNode;

	    var _this = targ;
	    if (noLabelArr[_this.getAttribute('oid')].iElem.value == null || noLabelArr[_this.getAttribute('oid')].iElem.value == "") {
	        noLabelArr[_this.getAttribute('oid')].lElem.style.textIndent = '0';
	    }
	}
}

function clearFields() {
    var inputElems = document.getElementsByTagName('input');
    var txtElems = document.getElementsByTagName('textarea');
    for (var i = 0; i < inputElems.length; i++) {
        if (inputElems[i].getAttribute('type') == 'text') {
            if (typeof inputElems[i].focus == 'function') {
                inputElems[i].focus();
            }
            inputElems[i].value = "";
            if (typeof inputElems[i].blur == 'function') {
                inputElems[i].blur();
            }
        }
    }
    for (var x = 0; x < txtElems.length; x++) {
        txtElems[x].value = "";
    }
}

function cancel(url) {
    document.location = url;
}

addEvent(window, 'load', setLinks, false);
addEvent(window, 'load', initLabels, false);