﻿// JScript File

function addEvent(elm, evType, fn, useCapture)
// addEvent and removeEvent
// cross-browser event handling for IE5+,  NS6 and Mozilla
// By Scott Andrew
{
  if (elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent){
    var r = elm.attachEvent("on"+evType, fn);
	return r;
  } else {
    alert("Handler could not be removed");
  }
} 

function getElementsByClassName(oElm, strTagName, strClassName){
    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)
}

function Right(str, n)
        /***
                IN: str - the string we are RIGHTing
                    n - the number of characters we want to return

                RETVAL: n characters from the right side of the string
        ***/
        {
                if (n <= 0)     // Invalid bound, return blank string
                   return "";
                else if (n > String(str).length)   // Invalid bound, return
                   return str;                     // entire string
                else { // Valid bound, return appropriate substring
                   var iLen = String(str).length;
                   return String(str).substring(iLen, iLen - n);
                }
        }

function confirmDelete(obj, msg) {
    var oP = getParentObjByTagName(obj, 'TR');
    if (oP) { 
        oP.className += ' hiliteDelete'; 
    }
	
	if (confirm(msg)) {
		return true;
	} else {
		if (oP) { 
		    if (oP.className == 'hiliteDelete') {
		        oP.className = oP.className.replace('hiliteDelete', ''); 
		    } else {
		        oP.className = oP.className.replace(' hiliteDelete', ''); 
		    }
        }
		return false;
	}
}

function getParentObjByTagName(obj, tag) {
    if (obj.parentNode.tagName.toLowerCase() == tag.toLowerCase()) {
        return obj.parentNode;
    } else if (!obj.parentNode) {
        return null;
    } else {
        return getParentObjByTagName(obj.parentNode, tag);
    }
}

function eventTrigger (e) {
    if (! e)
        e = event;
    return e.target || e.srcElement;
}

function autoFixFields() {
    var aPCase = getElementsByClassName(document, 'input', 'pcase');
    for (var i = 0; i < aPCase.length; i++) {
        aPCase[i].onblur = function() {
            var start = this.value.substr(0,1);
            var rest = this.value.substr(1,this.value.length-1);
            this.value = start.toUpperCase() + rest;
        }
    }
    
    var aDates = getElementsByClassName(document, 'input', 'datefld');
    for (var d = 0; d < aDates.length; d++) {
        aDates[d].onmouseover = function() {
            scwShow(this,this);
        }
    }
    
    var aDataRows = getElementsByClassName(document, 'tr', 'datarow');
    for (var dr = 0; dr < aDataRows.length; dr++) {
        aDataRows[dr].onmouseover = function() {
            this.className = this.className + ' datarowhilite';
        }
        
        aDataRows[dr].onmouseout = function() {
            this.className = this.className.replace(' datarowhilite', '');
        }
    }
    
    var aAltDataRows = getElementsByClassName(document, 'tr', 'altdatarow');
    for (var dr = 0; dr < aAltDataRows.length; dr++) {
        aAltDataRows[dr].onmouseover = function() {
            this.className = this.className + ' datarowhilite';
        }
        
        aAltDataRows[dr].onmouseout = function() {
            this.className = this.className.replace(' datarowhilite', '');
        }
    }
}

function toggleDisplay(elm) {
    if (elm) {
        if (elm.className.indexOf('hidden') >= 0) {
            elm.className = elm.className.replace('hidden', '');
        } else {
            if (elm.style.display == 'none') {
                elm.style.display = '';
            } else {
                elm.style.display = 'none';
            }
        }
    }
}

addEvent(window, 'load', autoFixFields);

function setActiveNavTab(grp) {
    var pggrp = ''; var oNav = getObj('navlist');
    for (i=0; i<oNav.childNodes.length; i++) {
        node = oNav.childNodes[i];
        if (node.nodeName=='LI') {
            pggrp = node.getAttribute('pggrp');
            if (pggrp == grp) {
                if (node.className.indexOf(' active')<0) {
                    if (node.className != 'active') {
                        node.className+=' active';
                    }
                }
            } else {
                if (node.className != 'active') {
                    node.className=node.className.replace(' active', '');
                } else {
                    node.className = '';
                }
            }
        }
    }
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}


function getObj(name) {
  if (document.getElementById) {
    return document.getElementById(name);
  } else if (document.all) {
    return document.all[name];
  } else if (document.layers) {
	return getObjNN4(document,name);
  }
}

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;
}

d=document;l=d.layers;op=navigator.userAgent.indexOf('Opera')!=-1;px='px';
function gE(e,f){if(l){f=(f)?f:self;var V=f.document.layers;if(V[e])return V[e];for(var W=0;W<V.length;)t=gE(e,V[W++]);return t;}if(d.all)return d.all[e];return d.getElementById(e);}
function sE(e){l?e.visibility='show':e.style.visibility='visible';}
function hE(e){l?e.visibility='hide':e.style.visibility='hidden';}
function sZ(e,z){l?e.zIndex=z:e.style.zIndex=z;}
function sX(e,x){l?e.left=x:op?e.style.pixelLeft=x:e.style.left=x+px;}
function sY(e,y){l?e.top=y:op?e.style.pixelTop=y:e.style.top=y+px;}
function sW(e,w){l?e.clip.width=w:op?e.style.pixelWidth=w:e.style.width=w+px;}
function sH(e,h){l?e.clip.height=h:op?e.style.pixelHeight=h:e.style.height=h+px;}
function sC(e,t,r,b,x){l?(X=e.clip,X.top=t,X.right=r,X.bottom=b,X.left=x):e.style.clip='rect('+t+px+' '+r+px+' '+b+px+' '+x+px+')';}
function wH(e,h){if(l){Y=e.document;Y.open();Y.write(h);Y.close();}if(e.innerHTML)e.innerHTML=h;}

