﻿//	GET ELEMENT BY ID
//----------------------------------------------------------------
//		This custom method allows us to perform
//		tasks to ensure we get the element we are requesting
function _getElementById(sID)
{
	var obj = document.getElementById(sID);
	return(obj);
}

//	GET ELEMENTS BY CLASS NAME
//----------------------------------------------------------------
//		http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
//		This function gets an array of elements via their style sheet class name
function getElementsByClassName(oElm, strTagName, strClassName){
    try {
		var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
		var arrReturnElements = new Array();
		strClassName = strClassName.replace(/\-/g, "\\-");
		var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
		var oElement;
		for(var i=0; i<arrElements.length; i++){
			oElement = arrElements[i];      
			if(oRegExp.test(oElement.className)){
				arrReturnElements.push(oElement);
			}   
		}
		return (arrReturnElements)
	} catch (err) {
		alert("getElementsByClassName",err.description);
		return;
	}
}
//----------------------------------------------------------------
// Browser Window Size and Position
// copyright Stephen Chapman, 3rd Jan 2005, 8th Dec 2005
// you may copy these functions but please keep the copyright notice as well
function pageWidth() 
{
    return window.innerWidth != null ? 
        window.innerWidth : document.documentElement && document.documentElement.clientWidth ?
            document.documentElement.clientWidth : document.body != null ? 
                document.body.clientWidth : null;
} 

function pageHeight() 
{
    return window.innerHeight != null ? 
        window.innerHeight : document.documentElement && document.documentElement.clientHeight ?  
            document.documentElement.clientHeight : document.body != null ? 
                document.body.clientHeight : null;
} 

function posLeft() 
{
    return typeof window.pageXOffset != 'undefined' ? 
        window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? 
            document.documentElement.scrollLeft : document.body.scrollLeft ? 
                document.body.scrollLeft : 0;
} 

function posTop() 
{
    return typeof window.pageYOffset != 'undefined' ?  
        window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? 
            document.documentElement.scrollTop : document.body.scrollTop ? 
                document.body.scrollTop : 0;
} 

function posRight() 
{
    return posLeft() + pageWidth();
} 

function posBottom() 
{
    return posTop() + pageHeight();
}

function findPosY(obj)
{
	var curtop = 0;
	
	if(obj.offsetParent)
		while(1)
		{
			curtop += obj.offsetTop;
			if(!obj.offsetParent)
				break;
			obj = obj.offsetParent;
		}
	else if(obj.y)
		curtop += obj.y;
	
	return curtop;
}

// element manipulation
var hideElement = function(el)
{
	el.style.display = "none";
}
var showElement = function(el)
{
	el.style.display = "";
}