
/*
	--------------------------------------------------------------------------------------------------------------
	@package:  Various Functions Library
	@author:     Michael Walsh
	@date:        13-08-2006
	@version:    1.0
	--------------------------------------------------------------------------------------------------------------
	MSIE 5.5+
	Firefox 1.07+
	Netscape 7.0+
	Opera 8.0+
	--------------------------------------------------------------------------------------------------------------
*/

/*
	@method:   Matches a variable to a numeric pattern.
	@version:   1.0
*/
function isNumeric(n)
{
	var re = /[\d]/;
	return (!re.exec(n)) ? false : true;
}

/*
	@method:   Returns a query variable.
	@version:   1.0
*/
function getQueryVariable(variable)
{
	var qString = window.location.search.substring(1);
	var vars = qString.split("&");
	for (var i=0;i<vars.length;i++)
	{
		var pair = vars[i].split("=");
		if (pair[0] == variable) { return pair[1]; }
	}
}

/*
	@method:   Backwards compatible method to get an element from the DOM.
	@version:   1.0
*/
function get(id)
{
	return (document.getElementById) ? document.getElementById(id) : document.all[id];
};

/*
	@method:   Finds the index of an element in an array.
	@version:   1.0
*/
function getArrayIndex(a,v)
{
	var i=-1;
	for (var j=0; j<a.length; j++) if (a[j]==v) { i=j; break; }
	return i;
};

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function toggle(id1,id2) {
    var o1 = get(id1), o2 = get(id2);
    o2.innerHTML = (o1.style.display=='none')?'&ndash;':'+';
    o1.style.display = (o1.style.display=='none')?'block':'none';
}

/*
	--------------------------------------------------------------------------------------------------------------
	@package:  Macromedia Functions Library
	@author:     Macromedia
	--------------------------------------------------------------------------------------------------------------
*/

// check browser
ns4 = (document.layers)? true:false;
ie4 = (document.all)? true:false;

// mouseover functions
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// jump menu
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

// javascript open new browser window
function MM_openBrWindow(theURL,windowName,features,windowType) { //v2.0
	if (windowType == 'normal') {
	features = 'toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes'
	}
  mywindow = window.open(theURL,windowName,features);
  mywindow.focus();
}

// set css properties with javascript
function setStyleById(i, p, v) {
	var n = document.getElementById(i);
	n.style[p] = v;
}

// set object class via js 
function setClassName(objId, classNam) {
objId.className = classNam;
}

// dhtml show/hide functions
function toggleVisible(id, toggleIcon) {
	if(document.all[id].style.display != undefined){
		if(document.all[id].style.display == "none"){
			document.all[id].style.display = "block";
			toggleIcon.src = "../images/leftmenu_minus.gif";
		}
		else{
			document.all[id].style.display = "none";
			toggleIcon.src = "../images/leftmenu_plus.gif";
		}
	}
}
function show(id) {
        if (ns4) document.layers[id].display = "show"
        else if (ie4) document.all[id].style.display = "visible"
}
function hide(id) {
        if (ns4) document.layers[id].display = "hide"
        else if (ie4) document.all[id].style.display = "none"
}

// load document in the originating window
function loadinparent(url, closeSelf){
	self.opener.location = url;
	if(closeSelf) self.close();
}





// set css properties with javascript
function setStyleById(i, p, v) {
 var n = document.getElementById(i);
 n.style[p] = v;
	}
	

// set object class via js 
function setClassName(objId, classNam) {
		// alert(objId + classNam);
objId.className = classNam;
	}


// dhtml show/hide functions
function toggleVisible(id, toggleIcon) {
	if(document.all[id].style.display != undefined){
		if(document.all[id].style.display == "none"){
			document.all[id].style.display = "block";
			toggleIcon.src = "../images/leftmenu_minus.gif";
		}
		else{
			document.all[id].style.display = "none";
			toggleIcon.src = "../images/leftmenu_plus.gif";
		}
	}
}

function show(id) {
        if (ns4) document.layers[id].display = "show"
        else if (ie4) document.all[id].style.display = "visible"
}

function hide(id) {
        if (ns4) document.layers[id].display = "hide"
        else if (ie4) document.all[id].style.display = "none"
}

<!-- common script functions -->

    function getObject(name)
       {
           var obj = null;
           if (document.getElementById) {
               obj = document.getElementById(name);
               if (!obj){
					obj = document.getElementsByName(name);
					if (obj.length>0)
						obj = obj[0]
				}

           }
           else if (document.all) {
               obj = document.all[name];
           }
           else if (document.layers) {
               obj = getObjNN4(document,name);
           }
           
           return obj
       }
       
       function getObjNN4(obj,name)
       {
           var x = obj.layers;
           var foundLayer;
           for (var i=0;i<x.length;i++)
           {
               if (x[i].id == name)
                   foundLayer = x[i];
               else if (x[i].layers.length){
                   var tmp = getObjNN4(x[i],name);
                   if (tmp) foundLayer = tmp;
               }
           }
           return foundLayer;
       }

     function setVisibility(objectId, vis)
    {
       var obj = getObject(objectId)
       if (!obj)
           return              
       obj.style.display = (vis) ? 'block':'none'
     }

	function getStyleObject(objectId) 
    {
        var obj = getObject(objectId)
        if (!obj)
            return null
            
        if(document.getElementById || document.all) {
            return obj.style;
        } else if (document.layers) {
             return obj;
        } else {
            return null;
        }
    }
	
	function doBtnClick(evt)
	{
		evt = (evt) ? evt : ((event) ? event : null);
		if (evt){
			var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
			if (elem){
			    var obj = getObject('btnLabel')
				if (obj)
					obj.innerHTML = elem.value
			}
		}

	}
	
	function doPrint(where)
	{
		if (window.print)
		{
			setVisibility('btnRow',false)
			window.print()
		}
		else
		{
			alert("Sorry, your browser doesn't support this feature.");
		}
		setTimeout("setVisibility('btnRow',true)",3000) //mozilla needs a delay
	}
	
	
	function onHover(evt, color)
	{
		evt = (evt) ? evt : ((event) ? event : null);
		if (evt){
			var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
			if (elem){
				if (elem.disabled)
					return
				
				if (evt.type == "mouseover")
					elem.style.backgroundColor = color
				else
					elem.style.backgroundColor = ""
			
			}
		}
	}

 	function onLineHover(evt)
	{
		evt = (evt) ? evt : ((event) ? event : null);
		if (evt){
			var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
			if (elem){
				if (elem.disabled)
					return
				
				if (evt.type == "mouseover")
					elem.style.textDecoration = "Underline"
				else
					elem.style.textDecoration = ""
			
			}
		}
	}

 	function onButtonHover(evt, color)
	{
		evt = (evt) ? evt : ((event) ? event : null);
		if (evt){
			var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
			if (elem){
				if (elem.disabled)
					return
				
				if (evt.type == "mouseover")
					elem.style.color = color
				else
					elem.style.color = ""
			
			}
		}
	}

     function show_win(winObj, windowUrl, target, width, height, scrollbars, bAlwaysNew)
     {
	 	// bAlwaysNew = if set will close an existing popup, then open a new window otherwise
		// it will just refocus the exitsing window
         //document.body.style.cursor = 'wait'
//alert(winObj.open );       
         if (winObj && winObj.open && !winObj.closed){
		 	if (bAlwaysNew)
				winObjclose()
			else {
				 winObj.focus()
				 return winObj
			}
         }
		var LeftPosition = (screen.width) ? (screen.width-width)/2 : 0;
		var TopPosition = (screen.height) ? (screen.height-height)/2 : 0;
		var settings ='height='+height+',width='+width+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+((scrollbars)?'yes':'no')+',resizable=yes';
 //alert(windowUrl + " | " + target + " | " + settings);
		//return  window.open(windowUrl);
        return window.open(windowUrl, target, settings);
     }
	 
	 function close_win(win)
	 {
	    if (win && win.open && !win.closed){
			win.close()
		}

	 }

