﻿// JScript File


	var enablepersist="on" //Enable saving state of content structure using session cookies? (on/off)
	var collapseprevious="no" //Collapse previously open content when opening present? (yes/no)
	
	var contractsymbol='<img src="<%=Constants.WEB_ROOT%>/images/minus.gif">' //HTML for contract symbol. For image, use: <img src="whatever.gif">
	var expandsymbol='<img src="<%=Constants.WEB_ROOT%>/images/plus.gif">' //HTML for expand symbol.
	
	var showstateobj;

	if (document.getElementById){
	document.write('<style type="text/css">')
	document.write('.switchcontent{display:none;}')
	document.write('</style>')
	}
	
	function getElementbyClass(rootobj, classname){
	var temparray=new Array()
	var inc=0
	var rootlength=rootobj.length
	for (i=0; i<rootlength; i++){
	if (rootobj[i].className==classname)
	temparray[inc++]=rootobj[i]
	}
	return temparray
	}
	
	function sweeptoggle(ec){
	var thestate=(ec=="expand")? "block" : "none"
	
	var inc=0
	while (ccollect[inc]){
	ccollect[inc].style.display=thestate
	inc++
	}
	revivestatus()
	}
	
	function contractcontent(omit){
	var inc=0
	while (ccollect[inc]){
	if (ccollect[inc].id!=omit)
	ccollect[inc].style.display="none"
	inc++
	}
	}
	function expandcontent(curobj, cid){
	var spantags=curobj.getElementsByTagName("SPAN")
	showstateobj=getElementbyClass(spantags, "showstate")
	if (ccollect.length>0){
	if (collapseprevious=="yes")
	contractcontent(cid)
	document.getElementById(cid).style.display=(document.getElementById(cid).style.display!="block")? "block" : "none"
	if (showstateobj.length>0){ //if "showstate" span exists in header
	if (collapseprevious=="no")
	showstateobj[0].innerHTML=(document.getElementById(cid).style.display=="block")? contractsymbol : expandsymbol
	else
	revivestatus()
	}
	}
	}
	
	function revivecontent(){
	contractcontent("omitnothing")
	selectedItem=getselectedItem()
	selectedComponents=selectedItem.split("|")
	for (i=0; i<selectedComponents.length-1; i++)
	document.getElementById(selectedComponents[i]).style.display="block"
	}
	
	function revivestatus(){
	var inc=0
//	while (statecollect[inc]){
//	if (ccollect[inc].style.display=="block")
//	statecollect[inc].innerHTML=contractsymbol
//	else
//	statecollect[inc].innerHTML=expandsymbol
//	inc++
//	}
	}
	
	function get_cookie(Name) { 
	var search = Name + "="
	var returnvalue = "";
	if (document.cookie.length > 0) {
	offset = document.cookie.indexOf(search)
	if (offset != -1) { 
	offset += search.length
	end = document.cookie.indexOf(";", offset);
	if (end == -1) end = document.cookie.length;
	returnvalue=unescape(document.cookie.substring(offset, end))
	}
	}
	return returnvalue;
	}
	
	function getselectedItem(){
	if (get_cookie(window.location.pathname) != ""){
	selectedItem=get_cookie(window.location.pathname)
	return selectedItem
	}
	else
	return ""
	}
	
	function saveswitchstate(){
	var inc=0, selectedItem=""
	while (ccollect[inc]){
	if (ccollect[inc].style.display=="block")
	selectedItem+=ccollect[inc].id+"|"
	inc++
	}
	
	document.cookie=window.location.pathname+"="+selectedItem
	}
	
	function textCounter(field,cntfield,maxlimit) {
        if (field.value.length > maxlimit) {// if too long...trim it!
            field.value = field.value.substring(0, maxlimit);
        }
        
            
        else{
            // otherwise, update 'characters left' counter
            cntfield.innerText = maxlimit - field.value.length;
        }
    }

	
	function do_onload(){
	
	    uniqueidn=window.location.pathname+"firsttimeload"
	    var alltags=document.all? document.all : document.getElementsByTagName("*")
	    ccollect=getElementbyClass(alltags, "switchcontent")
	    //statecollect=getElementbyClass(alltags, "showstate")
	    if (enablepersist=="on" && ccollect.length>0){
	        document.cookie=(get_cookie(uniqueidn)=="")? uniqueidn+"=1" : uniqueidn+"=0" 
	        firsttimeload= 0 //check if this is 1st page load
	        if (!firsttimeload)
	        revivecontent()
	    }
    	
	    //if (ccollect.length>0 && statecollect.length>0)
	    //revivestatus()
	    
        //menuStatus()
	}
	//end of do_onload
	
	function menuStatus(){	  	
    
	    var templocation = escape(window.location);
	    var tempindex = templocation.indexOf("omn");
	    var tempfinal = templocation.charAt(tempindex + 6);
	    for (var j=0;j<5;j++){
	        if (j==tempfinal){
	            document.getElementById("sc"+j).style.display = 'block';  	            
	            }
	        else{
	            document.getElementById("sc"+j).style.display = 'none';	
	            }
	    }
	    //templocation.indexOf("omn")+4
	}
	
	if (window.addEventListener)
	window.addEventListener("load", do_onload, false)
	else if (window.attachEvent)
	window.attachEvent("onload", do_onload)
	else if (document.getElementById)
	window.onload=do_onload
	
	

	
	
	if (enablepersist=="on" && document.getElementById)
	    window.onunload=saveswitchstate
	
    function checkValidation(formInput) {

    if (typeof(formInput) != "object") {
        alert("Validation not supported on this browser.");
        return(false);
    }

    var message;

    if (stringEmpty(formInput.value)) {
        message = "Error! There is no input value entered.";
        alert(message);
    } else if (noAtSign( formInput.value )) {
        message = "Error! The address \"" + formInput.value + "\" does not contain an '@' character.";
        alert(message);
    } else if (nothingBeforeAt(formInput.value)) {
        message = "Error! The address \"" + formInput.value;
        message += "\" must contain at least one character before the '@' character";
        alert(message);
    } else if (noLeftBracket(formInput.value)) {
        message = "Error! The address \"" + formInput.value;
        message += "\" contains a right square bracket ']',\nbut no corresponding left square bracket '['.";
        alert(message);
    } else if (noRightBracket(formInput.value)) {
        message = "Error! The address \"" + formInput.value;
        message += "\" contains a left square bracket '[',\nbut no corresponding right square bracket ']'.";
        alert( message);
    } else if (noValidPeriod(formInput.value)) {
        message = "Error! The address \"" + formInput.value + "\" must contain a period ('.') character.";
        alert(message);
    } else if (noValidSuffix(formInput.value)) {
        message = "Error! The address \"" + formInput.value;
        message += "\" must contain a two, three or four character suffix.";
        alert(message);
    } else {
        //message = "Success! The email address \"" + formInput.value + "\" validates OK.";
        //alert(message);
        return true;
    }

    var objType = typeof(formInput.focus);
    if (objType == "object" || objType == "function") {
         formInput.focus();
    }

    return (false);
}

function checkValid (formField) {
    if ( checkValidation ( formField ) == true ) {
        alert ( 'E-Mail Address Validates OK' );
    }

    return ( false );
}

function stringEmpty (formField) {
    // CHECK THAT THE STRING IS NOT EMPTY
    if ( formField.length < 1 ) {
        return ( true );
    } else {
        return ( false );
    }
}

function noAtSign (formField) {
    // CHECK THAT THERE IS AN '@' CHARACTER IN THE STRING
    if (formField.indexOf ('@', 0) == -1) {
        return ( true )
    } else {
        return ( false );
    }
}

function nothingBeforeAt (formField) {
    // CHECK THERE IS AT LEAST ONE CHARACTER BEFORE THE '@' CHARACTER
    if ( formField.indexOf ( '@', 0 ) < 1 ) {
        return ( true )
    } else {
        return ( false );
    }
}

function noLeftBracket (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR LEFT BRACKET
    if ( formField.indexOf ( '[', 0 ) == -1 && formField.charAt (formField.length - 1) == ']') {
        return ( true )
    } else {
        return ( false );
    }
}

function noRightBracket (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN CHECK FOR RIGHT BRACKET
    if (formField.indexOf ( '[', 0 ) > -1 && formField.charAt (formField.length - 1) != ']') {
        return ( true );
    } else {
        return ( false );
    }
}

function noValidPeriod (formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if (formField.indexOf ( '@', 0 ) > 1 && formField.charAt (formField.length - 1 ) == ']')
        return ( false );

    // CHECK THAT THERE IS AT LEAST ONE PERIOD IN THE STRING
    if (formField.indexOf ( '.', 0 ) == -1)
        return ( true );

    return ( false );
}

function noValidSuffix(formField) {
    // IF EMAIL ADDRESS IN FORM 'user@[255,255,255,0]', THEN WE ARE NOT INTERESTED
    if (formField.indexOf('@', 0) > 1 && formField.charAt(formField.length - 1) == ']') {
        return ( false );
    }

    // CHECK THAT THERE IS A TWO OR THREE CHARACTER SUFFIX AFTER THE LAST PERIOD
    var len = formField.length;
    var pos = formField.lastIndexOf ( '.', len - 1 ) + 1;
    if ( ( len - pos ) < 2 || ( len - pos ) > 4 ) {
        return ( true );
    } else {
        return ( false );
    }
}