//
// Javascript functions
//

var sysStatus = 'dev';

if(document.layers) window.captureEvents(Event.CLICK | Event.MOUSEMOVE | Event.CLICK | Event.DBLCLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.MOUSEOUT | Event.MOUSEOVER | Event.KEYDOWN | Event.KEYUP | Event.KEYPRESS | Event.FOCUS | Event.BLUR)

document.onmousedown=right;
document.onmouseup=right;
window.onmousedown=right;
window.onmouseup=right;

//window.onkeydown=checkKeys;
//document.onkeydown=checkKeys;

window.onclick = _NSBubbling;

//if(document.layers){ document.captureEvents(Event.KEYPRESS) } document.onkeypress=kpress; 

//function kpress(e)
//{ 
//	key=(document.layers)?e.which:window.event.keyCode 
//	key2=String.fromCharCode(key); 
//	if (key2=="IE ctrlKey" || key2=="NN ctrlLeft")
//	{ 
//		alt(); 
//	} 
//}

function _NSBubbling(ev) {
	// This simulates very simple event bubbling in Netscape
	// Create the event object on the window.
	window.event = ev;
	// Initialize properties on the event object
	window.event.cancelBubble = false;
	window.event.button = ev.which 
	window.event.keyCode = ev.which
	window.event.type = ev.type
	if ((ev.type=="focus") || (ev.type=="blur")) return false
	// Get the "synthesized" element if it fired the event.
	var el = null;
	if ("document"==ev.target._type) 
		el = ev.target.owningElement.id
	else
		el = ev.target.id
	if ((el!=null) && (el!="")) {
		//el = document.all[el]
		el = document.layers[el]
		window.event.srcElement = el
	} else {
		if (ev.target!=null) {
			window.event.srcElement=ev.target
		}
		else
			ev.target=null
	}
	window.event.returnValue = true
	window.event.clientX = ev.pageX - window.pageXOffset
	window.event.clientY = ev.pageY - window.pageYOffset
	window.event.offsetX = ev.layerX
	window.event.offsetY = ev.layerY
	window.event.screenX = ev.screenX
	window.event.screenY = ev.screenY
	window.event.altKey = (ev.modifiers & Event.ALT_MASK) ? true : false
	window.event.ctrlKey = (ev.modifiers & Event.CONTROL_MASK) ? true : false
	window.event.shiftKey = (ev.modifiers & Event.SHIFT_MASK) ? true : false
	window.event.NSEvent = ev;
	if ((ev.target._type=="layer") && ((ev.type=="mouseover") || (ev.type=="mouseout")))  {
		// Special handling to bubble over and out events on layers
		var elLoop = ev.target.document.owningElement
		while (elLoop!=null) {
			if (!window.event.cancelBubble)
				if (elLoop["on"+ev.type]!=null) elLoop["on"+ev.type]()
					elLoop = elLoop.offsetParent;
		}
	}
	// Send this event onward...
	// Make sure to wire event return values 
	var bCancel = window.routeEvent(ev);
	if (typeof bCancel=="boolean") 
		window.event.returnValue = bCancel
	else
		bCancel = window.event.returnValue
	
	// Bubble but do not fire document events twice
	if ((ev.target!=window.document) && (!window.event.cancelBubble))
		if (typeof document["on"+ev.type]=="function") bCancel = document["on"+ev.type]()
	if (typeof bCancel=="boolean")
		window.event.returnValue = bCancel
	return (window.event.returnValue)
}

//function checkKeys(e) {
//	if(window.event.ctrlKey || window.event.ctrlLeft) {
//		event.returnValue=false;
//	}
//}

function right(e) {
	if(sysSecurity == 'on' || sysStatus == 'live') {
        	if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2)){
                //	alert(sysRightMessage + sysForm + ' ' + sysVersion + sysCopyright );
			alert(sysRightMessage + ' ' + sysVersion + sysCopyright );
                	return false;
		}
        	else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3)) {
                // 	alert(sysRightMessage + sysForm + ' ' + sysVersion + sysCopyright );
			alert(sysRightMessage + ' ' + sysVersion + sysCopyright );
                	return false;
		}
	}
        return true;
}

function showMessage(msg) {
	if(!parent.valid) 
		return;

	var mObj=findObject('message', 'valid');
	if(mObj) {
        	if(document.all) {
                	mObj.innerText=msg;
                	mObj.style.visibility="visible";
        	} else {
                	mObj.visibility="show";
        	}
	}
}
 
function hideMessage() {
	if(!parent.valid) 
		return;

	var mObj=findObject('message', 'valid');
	if(mObj) {
        	if(document.all) {
                	mObj.innerText='';
                	mObj.style.visibility="hidden";
        	} else {
                	mObj.visibility="hide";
        	}
	}
}

function systemFields(next, prev, field, value) {
	sysNext=next;
	sysPrev=prev;
	sysLinkField=field;
	sysLinkValue=value;
}

function go(there) {
        var now  = new Date();
        var unique_url = escape(now.toGMTString());

//	showMessage('Please wait....');
	showMessage(promptmsg);

	if(parent.main) {
        	parent.main.location.href=(there + '&sysUnq=' + unique_url);
	} else if(top.main) {
		top.main.location.href=(there + '&sysUnq=' + unique_url);
	} else {
		location.href=(there + '&sysUnq=' + unique_url);
	}
        return false;
}

function nsgo(there) {
        var now  = new Date();
        var unique_url = escape(now.toGMTString());
	if(parent.main) {
        	parent.main.location.href=(there + '&sysUnq=' + unique_url);
	} else if(top.main) {
		top.main.location.href=(there + '&sysUnq=' + unique_url);
	} else {
		location.href=(there + '&sysUnq=' + unique_url);
	}
        event.returnValue=false;
}

function goPrev() {
	var myURL='';
	var queryString=location.search;

	if(sysKeyString!='') {
        	myURL=sysPrev+'.cgi?'+sysKeyString+'&sysMove=back';
	} else if(sysLinkField!='') {
       	 	myURL=sysPrev+'.cgi?'+sysLinkField+"="+sysLinkValue+'&sysMove=back';
	} else if(queryString!='') {
		myURL=sysPrev+'.cgi?'+queryString;
	} else {
		myURL=sysPrev+'.cgi';
	}
        go(myURL);
}

function goNext() {
	var myURL='';
	var queryString=location.search;
	
	if(sysKeyString!='') {
        	myURL=sysNext+'.cgi?'+sysKeyString+'&sysMove=fwd';
	} else if(sysLinkField!='') {
       	 	myURL=sysNext+'.cgi?'+sysLinkField+"="+sysLinkValue+'&sysMove=fwd';
	} else if(queryString!='') {
		myURL=sysPrev+'.cgi?'+queryString;
	} else {
		myURL=sysPrev+'.cgi';
	}
        go(myURL);
}

function GetCookie (CookieName) {
        var ckname = CookieName + "=";
        var i = 0;
        while (i < document.cookie.length) {
                var j = i + ckname.length;
                if (document.cookie.substring(i, j) == ckname){
                        var leng = document.cookie.indexOf (";", j);
                        if (leng == -1) leng = document.cookie.length;
                        return unescape(document.cookie.substring(j, leng));
                }
                i = document.cookie.indexOf(" ", i) + 1;
                if (i == 0) break;
        }
        return "";
}
 
function SetCookie(name, value, expiredays) {
        var todayDate = new Date();
        var CookieData;
        var plustime = (expiredays * 24 * 3600000);
 
        todayDate.setTime(todayDate.getTime() + plustime);
        CookieData = name + "=" + value + "; expires=" + todayDate.toGMTString() + ";";
        document.cookie = CookieData;
}

function findObject(ele, frame) {
        var i, oForm, obj, iForms;
	if(frame) {
		iForms=eval("parent." + frame + ".document.forms.length");
	} else {
		iForms=document.forms.length;
	}
        for(i=0; i<iForms; i++) {
		if(frame) {
			oForm=eval("parent." + frame + ".document.forms[" + i +"]");
		} else {
                	oForm=document.forms[i];
		}
		obj=oForm[ele];
		if(obj) return obj;
	}
	if(!obj) {
		if(document.all) {
			if(frame) {
				obj=eval("parent." + frame + ".document.all." + ele);
			} else {
				obj=eval("document.all." + ele);
			}
		} else {
			if(frame) {
				obj=eval("parent." + frame + ".document." + ele );
			} else {
				obj=eval("document.layers[" + ele + "]");
			}
		}
	}
	return obj;
}

function setFocus(ele) {
	var obj=findObject(ele);
	if(obj)
		obj.focus();
}

function disableField(form, ele, dis) {
	var obj=findObject(ele);
	var type=obj.type;
	if (type.indexOf('text', 0) >= 0)
		obj.readOnly=dis;
	else
		obj.disabled=dis;
}

function getValue(form, ele) {
        var val;
	var obj=findObject(ele);
	if(obj) {
        	var type=obj.type;
        	if (type.indexOf('select', 0) >= 0)
        	//if (type=='select')
                	val = obj.options[obj.selectedIndex].value;
        	else
                	val = obj.value;
 	
        	var rep=/( +)\$/;
        	return val.replace(rep, '');
        	//return val;
	} else {
		return null;
	}
}

function getText(form, ele) {
        var val;
	var obj=findObject(ele);
	if(obj) {
        	var type=obj.type;
        	if (type.indexOf('select', 0) >= 0)
                	val = obj.options[obj.selectedIndex].text;
        	else
                	val = obj.value;
 	
        	var rep=/( +)\$/;
        	return val.replace(rep, '');
	} else {
		return null;
	}
}

function hideObject(ele) {
	var obj=findObject(ele);
	if(obj) {
		if(document.all) {
			obj.style.visibility='hidden';
		} else {
			obj.visibility='hide';
		}
	}
}

function showObject(ele) {
	var obj=findObject(ele);
	if(obj) {
		if(document.all) {
			obj.style.visibility='visible';
		} else {
			obj.visibility='show';
		}
	}
}

function setValue(form, ele, val) {
	var obj=findObject(ele);
	if(obj) {
        	var type=obj.type;
        	if (type.indexOf('select', 0) >= 0) {
                	if(val=='^')
                        	obj.selectedIndex=1;
                	else {
                        	obj.selectedIndex=-1;
                        	for (var i=0; i<obj.length; i++) {
                                	if(obj.options[i].value==val) {
                                        	obj.selectedIndex=i;
                                        	break;
                                	}
                        	}
                	}
        	} else {
                	if(val=='^')
                        	val='';
                	obj.value=val;
        	}
	}
}
 
function clearValues(form, ele) {
	var obj=findObject(ele);
	if(obj) {
        	var type=obj.type;
        	if (type.indexOf('select', 0) >= 0)
                	obj.length=0;
        	else
                	obj.value='';
	}
}
 
function singleValueSelect(form, ele) {
	var obj=findObject(ele);
	if(obj) {
        	var type=obj.type;
        	if (type.indexOf('select', 0) >= 0) {
                	if(obj.length==2)
                        	return true;
                	else
                        	return false;
        	} else
                	return false;
	}
}

function numDaysIn(mth,yr) {
        if(yr>999) {
                if (mth==4 || mth==6 || mth==9 || mth==11) return 30;
                else if ((mth==2) && leapYear(yr)) return 29;
                else if (mth==2) return 28;
                else return 31;
        } else
                return 31;
}

function leapYear(yr) {
        if (((yr % 4 == 0) && yr % 100 != 0) || yr % 400 == 0)
                return true;
        else
                return false;
}

function isNum(v) {
	return(v.toString() && !/\D/.test(v));
}

function markFirst() {
	hideMessage();
        var i, oForm, iForms=document.forms.length;
        for(i=0; i<iForms; i++) {
                oForm=document.forms[i];
                var j, oElement, iElements=oForm.length;
                for(j=0; j<iElements; j++) {
                        oElement=oForm.elements[j];
                        if(!oElement.disabled
                        && !oElement.readOnly
                        && oElement.type!='hidden'
                        && oElement.type!='button') {
                                var ok=true;
                                if(document.all) {
                                        if(oElement.style.visibility=='hidden') ok=false;
                                } else {
                                        if(oElement.visibility=='hide') ok=false;
                                }
				if(ok) {
					oElement.focus();
					return false;
				}
                        }
                }
        }
	return false;
}

function stringSplit ( string, delimiter ) {
    if ( string == null || string == "" ) {
        return null ;
    } else if ( string.split != null ) {
        return string.split ( delimiter ) ;
    } else {
        var ar = new Array() ;
        var i = 0 ;
        var start = 0 ;
        while( start >= 0 && start < string.length ) {
            var end = string.indexOf ( delimiter, start ) ;
            if( end >= 0 ) {
                ar[i++] = string.substring ( start, end ) ;
                start = end+1 ;
            } else {
                ar[i++] = string.substring ( start, string.length ) ;
                start = -1 ;
            }
        }
        return ar ;
    }
}

function compareDates(date1, comp, date2) {
	var splitDate;

	// I've commented these lines out, the getvalue wouldn't work but I don't think itneeds to be done
	// If anyone puts them back in, please let me know, ben 4-12-00
	//var d1=getValue('', date1);
	//var d2=getValue('', date2);
	var d1=date1;
	var d2=date2;
	
	splitDate=d1.split('-');
	var d1r=splitDate[2]+splitDate[1]+splitDate[0];

	splitDate=d2.split('-');
	var d2r=splitDate[2]+splitDate[1]+splitDate[0];

	if(comp=='lt' && d1r<d2r) return true;
	if(comp=='le' && d1r<=d2r) return true;
	if(comp=='gt' && d1r>d2r) return true;
	if(comp=='ge' && d1r>=d2r) return true;
	if(comp=='eq' && d1r==d2r) return true;

	return false;
}

function doPick() {
	var obj=event.srcElement;
	var oName=obj.name;
       	var oType=obj.tagName;
	if(oName) 
		if(oName.indexOf('_link_',0) >=0)
			return true;

	if (oType.indexOf('IMG', 0) >= 0 || oType.indexOf('SELECT', 0) >= 0 || oType.indexOf('INPUT', 0) >= 0 || oType.indexOf('TEXT', 0) >= 0)
		return false;
	else 
		return true;
}

function setPickItem(objHit, item, val) {
	if(objHit.name!=item.name) {
	        if(item.checked) {
	                item.checked=false;
	        } else {
	                item.checked=true;
	        }
	}
	if(item.checked) {
	        item.value=val;
	        checkCount++;
	} else {
	        item.value="";
	        checkCount--;
	}
	if(checkCount > checkLimit && checkLimit != 0) {
	        item.checked=false;
	        checkCount--;
		return false;
	}
	return true;
}

function DisplayStatusMsg(msg) {//v3.0
	status=msg; document.returnValue = true;
}
