function openpopup(pageurl) {
  sid='trs';
  window.open(pageurl,'notes','toolbar=no,width=650,height=375,directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no');
}

function openpopup2(pageurl) {
  sid='trs';
  window.open(pageurl,'notes','toolbar=no,width=650,height=430,directories=no,status=no,scrollbars=yes,resizable=yes,menubar=no');
}

function OnMouseOverEvent(obj)
{   
    if (obj.name !='' && obj.name != 'undefined')
    {
        document.getElementsByName(obj.name)[0].style.cursor = 'pointer';
    }
    else if (obj.id !='')
    {
        document.getElementById(obj.id).style.cursor = 'pointer';
    }
}

function OnMouseOutEvent(obj)
{
    if (obj.name !='' && obj.name != 'undefined')
    {
        document.getElementsByName(obj.name)[0].style.cursor = 'default';
    }
    else if (obj.id !='')
    {
        document.getElementById(obj.id).style.cursor = 'default';
    }
}

function hideDIV(divName)
{
    document.getElementById(divName).style.display = 'none';
    document.getElementById(divName).style.visibility = 'hidden';
}

function showDIV(divName)
{
    document.getElementById(divName).style.display = 'block';
    document.getElementById(divName).style.visibility = 'visible';
}

function ValidDateTime(dateTimeIn)
{    
    var regex=/(?=\d)^(?:(?!(?:10\D(?:0?[5-9]|1[0-4])\D(?:1582))|(?:0?9\D(?:0?[3-9]|1[0-3])\D(?:1752)))((?:0?[13578]|1[02])|(?:0?[469]|11)(?!\/31)(?!-31)(?!\.31)|(?:0?2(?=.?(?:(?:29.(?!000[04]|(?:(?:1[^0-6]|[2468][^048]|[3579][^26])00))(?:(?:(?:\d\d)(?:[02468][048]|[13579][26])(?!\x20BC))|(?:00(?:42|3[0369]|2[147]|1[258]|09)\x20BC))))))|(?:0?2(?=.(?:(?:\d\D)|(?:[01]\d)|(?:2[0-8])))))([-.\/])(0?[1-9]|[12]\d|3[01])\2(?!0000)((?=(?:00(?:4[0-5]|[0-3]?\d)\x20BC)|(?:\d{4}(?!\x20BC)))\d{4}(?:\x20BC)?)(?:$|(?=\x20\d)\x20))?((?:(?:0?[1-9]|1[012])(?::[0-5]\d){0,2}(?:\x20[aApP][mM]))|(?:[01]\d|2[0-3])(?::[0-5]\d){1,2})?$/;
    if (!regex.test(dateTimeIn)) {
        return false;
    }
    else {
        return true;
    }
}
function Trim(str)
{
   return str.replace(/^\s*|\s*$/g,'');
}

function LTrim(str) 
{
    var re = /\s*((\S+\s*)*)/;
    return str.replace(re, '$1');
}

function RTrim(str) 
{
    var re = /((\s*\S+)*)\s*/;
    return str.replace(re, '$1');
}

function getAbsolutePos(el) {
    var SL = 0, ST = 0;
    var is_div = /^div$/i.test(el.tagName);
    if (is_div && el.scrollLeft)
        SL = el.scrollLeft;
    if (is_div && el.scrollTop)
        ST = el.scrollTop;
    var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
    if (el.offsetParent) {
        var tmp = this.getAbsolutePos(el.offsetParent);
        r.x += tmp.x;
        r.y += tmp.y;
    }
    return r;
}

var is_ie = ( /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent) );
var is_ie5 = ( is_ie && /msie 5\.0/i.test(navigator.userAgent) );
var is_opera = /opera/i.test(navigator.userAgent);

if (!Array.prototype.indexOf) {
    Array.prototype.indexOf = function(item, startIndex) {
        var length = this.length;
        if (length != 0) {
            startIndex = startIndex || 0;
            if (startIndex < 0) {
                startIndex = Math.max(0, length + startIndex);
            }
            for (var i = startIndex; i < length; i++) {
                if (this[i] == item) {
                    return i;
                }
            }
        }
        return -1;
    }
}

var saveInputProperties = new Array();
var inputTags = new Array('SELECT', 'BUTTON','TEXTAREA','IFRAME', 'OBJECT', 'APPLET');    

function checkCalloutHide(el)
{
    if (!is_ie && !is_opera)
        return;

    var i = 0;
    var tagElementsInPopUp = new Array();
    
    saveInputProperties = new Array();

    for (var j = 0; j < inputTags.length; j++) {
        var tagElements = document.getElementsByTagName(inputTags[j]);
        for (var k = 0 ; k < tagElements.length; k++) {
            tagElementsInPopUp[i] = tagElements[k];
            i++;
        }
    }

    i = 0;

    for (var j = 0; j < inputTags.length; j++) {
        var hideSelect = (0 == j);
        var tagElements = document.getElementsByTagName(inputTags[j]);

        for (var k = 0 ; k < tagElements.length; k++) {
            var inputTag = tagElements[k];
                if (tagElementsInPopUp.indexOf(inputTag) != -1)  {                
                    saveInputProperties[i] = { tag: inputTag,
                                                index: inputTag.tabIndex };
                    inputTag.tabIndex = '-1';
                    if (hideSelect) {
                        saveInputProperties[i].wasVisible = inputTag.style.visibility;
                        inputTag.style.visibility = 'hidden';
                }
                i++;
            }
        }
    }
}

function checkCalloutDisplay()
{
    if (!is_ie && !is_opera)
        return;

    for (var i = 0; i < saveInputProperties.length; i++) {
        var properties = saveInputProperties[i];
        var inputTag = properties.tag;
        inputTag.tabIndex = properties.index;
        
        if (typeof(properties.wasVisible) != 'undefined') {
            inputTag.style.visibility = properties.wasVisible;
        }
    }
}
function disableEnter(e)
{    
    return e.keyCode != 13
}

// date entry checker
function checkdate(strField){

    err = 0;
    a=strField;
    if (a.length == 0) {
        return true;
    }
        if (a.substring(1, 2) == '/')
          {a = '0' + a.substring(0,10);}
        if (a.substring(4, 5) == '/')
      {a  = a.substring(0 , 3) + '0' + a.substring(3, 10);}
    if (a.length == 8)
      {a = a.substring(0, 6) + '20' + a.substring(6, 10)}
    if (a.length != 10) err=1
    b = a.substring(0, 2)// month
    c = a.substring(2, 3)// '/'
    d = a.substring(3, 5)// day
    e = a.substring(5, 6)// '/'
    f = a.substring(6, 10)// year
    //basic error checking
    if (b<'01' || b>'12') err = 1
    if (err==1){
                return false;
    }
    if (c != '/') err = 1
    if (d<'01' || d>'31') err = 1
    if (err==1){
                return false;
    }
    if (e != '/') err = 1
    if (f<'0000' || f>'9999') err = 1
    if (err==1){
                return false;
    }
    //advanced error checking
    // months with 30 days
    if (b==4 || b==6 || b==9 || b==11){
        if (d==31) err=1
    }
    // february, leap year
    if (b==2){
        // feb
        g = parseInt(f / 4)
        if (isNaN(g)) {
            Err = 1
        }
        if (d>29) err=1
        if (d==29 && ((f/4)!=parseInt(f/4))) err=1
    }
    if (a=='')
      {
        Err = 0
      }
    if (err==1){
               return false;
    }
    else{
    
        return true;
    }
}

// numeric entry checker
function numericCheck(strField){
    nr1=strField;
    if (nr1 == '')
    {
        nr1 = 0
    }
    flg=0;
    str='';
    spc=''
    arw='';
    for (var i=0;i<nr1.length;i++)
    {
        cmp = '.0123456789'
        tst = nr1.substring(i, i + 1)
        if (cmp.indexOf(tst)<0)
        {
            flg++;
            str+=' '+tst;
            spc+=tst;
            arw+='^';
        }
        else
        {
            arw+='_';
        }
    }
    if (flg!=0)
    {
        if (spc.indexOf(' ')>-1)
        {
            str+=' and a space';
        }
        return false;
    }
    return true;
    }

//SSN Validation    
function SSNValidation(ssn) {
    var matchArr = ssn.match(/^(\d{3})-?\d{2}-?\d{4}$/);
    var numDashes = ssn.split('-').length - 1;
    if (matchArr == null || numDashes == 1) {
        return false;
    }
    else 
        if (parseInt(matchArr[1],10)==0) {
            return false;
        }
        else {
        return true;
   }
}
// used for 508c compliance.
function KeyPressed(el,e)
{
    var key;
    if(window.event)
          key = window.event.keyCode;     //IE
    else
          key = e.which;     //firefox
    if (key == 13)
    {
        //Get the button the user wants to have clicked
        if (el != null && el != 'undefined')
        {
            el.click();
            if (window.event) event.keyCode = 0;
        }
    }
}

//Wait function pass in time to wait in miliseconds.    
function wait(ms)
{
    var date = new Date();
    var curDate = null;

    do { curDate = new Date(); }
    while(curDate-date < ms);
}

function displayItems(ID)
{
    var el = document.getElementById(ID);
    var x = window.screenX;
    var y = window.screenY;
     
    if (el.style.display == 'none' || el.style.display == '')
    {
        el.style.display = 'block';
        window.scrollTo(x, y);
    }
    else
    {
        el.style.display = 'none';
    }
    el.focus();
}



function amountTest(src) 
{
    var regex = /^[0-9]+(\.[0-9]{2})$/;
    return regex.test(src);
}


function initPanel() 
{
	if (!YAHOO.trs.container.wait) 
	{
		YAHOO.trs.container.wait = 
				new YAHOO.widget.Panel('wait',  
						{ width: '120px', 
						  fixedcenter: true, 
						  close: false, 
						  draggable: false, 
						  zindex: 2000,
						  modal: true,
						  visible: false
						} 
					);

	}
	YAHOO.trs.container.wait.setHeader('Processing...');
	YAHOO.trs.container.wait.setBody('<img src="images/ajax-loader-2.gif" alt="Please Wait" />');
	YAHOO.trs.container.wait.render(document.body);
}

function showWaitPanel()
{
    initPanel();
	YAHOO.trs.container.wait.show();
    
}

function hideWaitPanel()
{
    if (YAHOO.trs.container.wait) 
    {
        YAHOO.trs.container.wait.hide();
    }
}

function doPageReload(url)
{
    if (url.length == 0)
    {
        window.location.reload(true);
    }
    else
    {
        window.location.href = url;
    }
}

var BrowserDetect = 
{
	init: function ()
	{
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data)
	{
		for (var i=0;i<data.length;i++)
		{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString)
			{
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString)
	{
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser:
	[
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS:
	[
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]
};
BrowserDetect.init();

function PopUpBlockerDetect()
{
    var popup = window.open('','','width=1,height=1,left=5000,top=5000,scrollbars=no');
    if (popup)
    {
        var popUpsBlocked = false;
    }            
    else
    {
        var popUpsBlocked = true;
    }

    if (!popUpsBlocked)
    {
        popup.close();
    }
    return popUpsBlocked;
}

function SetAllCheckBoxes(FormName, FieldName, CheckValue)
{
	if(!document.forms[FormName])
		return;
	var objCheckBoxes = document.forms[FormName].elements[FieldName];
	if(!objCheckBoxes)
		return;
	var countCheckBoxes = objCheckBoxes.length;
	if(!countCheckBoxes)
		objCheckBoxes.checked = CheckValue;
	else
		// set the check value for all check boxes
		for(var i = 0; i < countCheckBoxes; i++)
			objCheckBoxes[i].checked = CheckValue;
}

function colExpEle(BtnID, eToShowHide )
{
    var fBtn = document.getElementById(BtnID);
    var fBtnValue = fBtn.value;
    
    if (fBtn.value.indexOf('Show') > -1)
    {
        fBtn.value = fBtnValue.replace(/Show/i, 'Hide');
        document.getElementById(eToShowHide).className = 'divExpanded';
    }
    else
    {
        fBtn.value = fBtnValue.replace(/Hide/i, 'Show');
        document.getElementById(eToShowHide).className = 'divCollasped';
    }
}
