function rollOn(imgName) {
	   if (document.images) {
    	   document[imgName].src = eval(imgName + "on.src");
        }
}

function rollOff(imgName) {
        if (document.images) {
            document[imgName].src = eval(imgName + "off.src");
        }
}

function formDoIt(formName) {
		if (document.forms) {
			if (genericValidateForm(document[formName])) {document[formName].submit()}
		}
}

function genericValidateForm(form) {
	var tempid = new String()
	var temppwd	= new String()
	var re = new RegExp("\\W+");
	var datere2 = new RegExp("(^[01]?\\d)[/-]([0123]?\\d)[/-]([12]\\d{3}$)");
   var datere1 = new RegExp("\\w*date$");
	var reqre = new RegExp("\\w*notreq$");
	for (i=0;i<form.length;i++) {
		var tempobj=form.elements[i];
		if ((tempobj.type=="text"||tempobj.type=="textarea"||tempobj.type=="password") && tempobj.value=='' && !(reqre.test(String(tempobj.name)))){
				alert('You cannot have a blank value for ' + tempobj.name + '.');
				return false;
		}
		if ((tempobj.type=="text") && datere1.test(String(tempobj.name))) {
				if (!(OK=datere2.exec(String(tempobj.value)))) {
					alert("The date field " + tempobj.name + " (currently " + tempobj.value + ") must contain a date in the format MM/DD/YYYY (i.e. 8/13/1972).");
					return false;
				}
				else {
					switch (Number(OK[1])) {
						case 1:
						case 3:
						case 5:
						case 7:
						case 8:
						case 10:
						case 12:
							if (Number(OK[2]) < 1 || Number(OK[2]) > 31) {
								alert("The date field " + tempobj.name + " (currently " + tempobj.value + ") contains an INVALID day (please use 1-31 for day).");
								return false;
							}
							break;
						case 4:
						case 6:
						case 9:
						case 11:
							if (Number(OK[2]) < 1 || Number(OK[2]) > 30) {
								alert("The date field " + tempobj.name + " (currently " + tempobj.value + ") contains an INVALID day (please use 1-30 for day).");
								return false;
							}
							break;
						case 2:
							if (Number(OK[2]) < 1 || Number(OK[2]) > 29) {
								alert("The date field " + tempobj.name + " (currently " + tempobj.value + ") contains an INVALID day (please use 1-29 for day).");
								return false;
							}
							break;
						default:
							alert("The date field " + tempobj.name + " (currently " + tempobj.value + ") contains an INVALID month (please use 1-12 for month).");
							return false;
							break;
					}
		

				}
		}
		else if ((tempobj.type=="text"||tempobj.type=="password") && tempobj.value.search(re) != -1 && !(reqre.test(String(tempobj.name)))){
		 		alert("Your " + tempobj.name + " must only contain alphanumeric characters. (A-Z, 0-9)");
				return false;
		}
	}

	return true;

}

function toggleAll(formName) {
	var toggleMode = -1;
    for (var i = 0; i<document[formName].elements.length; i++) {
        if ((document[formName].elements[i].type == 'checkbox')) {
            if (toggleMode == -1) {
				if (document[formName].elements[i].checked) {toggleMode = 0;}
				else {toggleMode = 1;}
			}
			if (toggleMode == 1) {document[formName].elements[i].checked = -1;}
			else {document[formName].elements[i].checked = 0;}
        }
    }
}

function delete4popUp(tgtformName, by, niceby) {
	by = "\'" + by + "\'";
	if (by.length > 0) {
		if (window.opener && !window.opener.closed){
			if (confirm("The current tag range will be removed from any future listings and reports for your company:\n\n     * "+niceby+"\n\n\nAre you certain you want to proceed with deletion??\n     (Choose OK to PROCEED, or CANCEL to ABORT)\n")) {
				window.opener.document[tgtformName].phpRecNrs.value = by;
				window.opener.focus();
				window.opener.document[tgtformName].submit();
				window.focus();
				setTimeout('window.close()', 5000);
			}
		}
    }
}

function addRange4popUp(srcformName, tgtformName) {
	if (document.forms) {
		if (genericValidateForm(document[srcformName])) {
			if (Number(document[srcformName].low.value) <= Number(document[srcformName].high.value)) {
				if (window.opener && window.opener.document[tgtformName] && !window.opener.closed){
					window.opener.document[tgtformName].low.value = document[srcformName].low.value;
					window.opener.document[tgtformName].high.value = document[srcformName].high.value;
					window.opener.document[tgtformName].ddate.value = document[srcformName].ddate.value;
					window.opener.document[tgtformName].by.value = "";
					window.opener.document[tgtformName].mode.value = "ADD";
					window.opener.document[tgtformName].submit();
					window.close();
				}
			}
			else {alert ('Low Tag Number must be less than or equal to High Tag Number.');}
		}
	}
}

function modifyRange4popUp(srcformName, tgtformName, by) {
	if (document.forms) {
		if (genericValidateForm(document[srcformName])) {
			if (Number(document[srcformName].low.value) <= Number(document[srcformName].high.value)) {
				if (window.opener && window.opener.document[tgtformName] && !window.opener.closed){
					window.opener.document[tgtformName].low.value = document[srcformName].low.value;
					window.opener.document[tgtformName].high.value = document[srcformName].high.value;
					window.opener.document[tgtformName].ddate.value = document[srcformName].ddate.value;
					window.opener.document[tgtformName].by.value = by;
					window.opener.document[tgtformName].mode.value = "MODIFY";
					window.opener.document[tgtformName].submit();
					window.close();
				}
			}
			else {alert ('Low Tag Number must be less than or equal to High Tag Number.');}
		}
	}
}

function deleteSel(formName) {
	var by = "";
	var niceby = "";
	var any = 0;
    for (var i = 0; i<document[formName].elements.length; i++) {
        if ((document[formName].elements[i].type == 'checkbox')) {
			if (document[formName].elements[i].checked) {
				if (document[formName].elements[i].name.search(/YES/) != -1) {
					any = 1;
					if (by != "") {by = by + ","; niceby = niceby + "\n";}
					by = by + "\'" + document[formName].elements[i].value + "\'";
					niceby = niceby + "     * " + document[formName].elements[i].name.replace(/YES/,'');
				}
				else {alert("Cannot DELETE the record " + document[formName].elements[i].name.replace(/NO/,'') + " because it was created prior to today.");}
			}
        }
    }
	if (any) {
		if (confirm("The following Tag Range Records will be removed from any future listings and reports for your company:\n\n"+niceby+"\n\nAre you certain you want to proceed with deletion??\n     (Choose OK to PROCEED, or CANCEL to ABORT)\n")) {
			document[formName].phpRecNrs.value = by;
			document[formName].submit();
		}
	}
	else {
		alert ('You must check at least one Tag Range Record to delete!');
	}
}
			
function modifySel(formName, tgtName) {
	var by = "";
	var any = 0;
   for (var i = 0; i<document[formName].elements.length; i++) {
        if ((document[formName].elements[i].type == 'checkbox')) {
				if (document[formName].elements[i].checked) {
					any = any + 1;
					by = tgtName + "&recnr=" + document[formName].elements[i].value;
				}
        }
    }
	 if (any == 0) {alert ("Please mark the checkbox next to the Tag Range you wish to Modify.");}
	 else if (any > 1) {alert ("You can only check one Tag Range to Modify at a time.");}
	 else {popUp(by,800,600);}
}

function addSel(formName) {
	var temp = new String(getCookie('userid'));
	if (temp==''||temp.toUpperCase()=='NULL') {
		temp=="UNKNOWN";
	}
	var result = prompt("Please a valid supplier Tricinae Identification Number (TIN) to add to all future listings and reports for your USER ID of "+temp+":\n", "");
	if (result.length>0 && result.length<17){
		document[formName].mode.value = "ADD";
		document[formName].by.value = result;
		document[formName].submit();
	}
	else {
		alert ('Invalid Entry, try again.');
	}
}

function refreshSel(formName) {
	document[formName].mode.value = "VIEW";
	document[formName].by.value = "";
	document[formName].low.value = "";
	document[formName].high.value = "";
	document[formName].ddate.value = "";
	document[formName].submit();
}

function replace(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

function printUserID() {
		var temp = new String(getCookie('userid'));
		if (temp==''||temp.toUpperCase()=='NULL') {
			document.write('UNKNOWN');
		}
		else {
			document.write(temp.toUpperCase());
		}

		return null;
}

function popUp(by,w,h) {
	by = replace(by, '*', '&');
	if (!w) {w = 620;}
	if (!h) {h = 460;}
	mywindow = window.open(by, "popUp", "width="+w+",height="+h+",resizable=1,scrollbars=1;dependent=1");
}

function getCookieVal (offset) {  
        var endstr = document.cookie.indexOf (";", offset);  
        if (endstr == -1)    
                endstr = document.cookie.length;  
                return unescape(document.cookie.substring(offset, endstr));
}

function getCookie (name) {  
        var arg = name + "=";  
        var alen = arg.length;  
        var clen = document.cookie.length;  
        var i = 0;  
        while (i < clen) {    
        var j = i + alen;    
        if (document.cookie.substring(i, j) == arg)      
                return getCookieVal (j);    
                i = document.cookie.indexOf(" ", i) + 1;    
                if (i == 0) break;   
        }  
        return null;
}

function setCookie (name, value) {  
        var argv = SetCookie.arguments;  
        var argc = SetCookie.arguments.length;  
        var expires = (argc > 2) ? argv[2] : null;  
        var path = (argc > 3) ? argv[3] : null;  
        var domain = (argc > 4) ? argv[4] : null;  
        var secure = (argc > 5) ? argv[5] : false;  
        document.cookie = name + "=" + escape (value) + 
        ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
        ((path == null) ? "" : ("; path=" + path)) +  
        ((domain == null) ? "" : ("; domain=" + domain)) +    
        ((secure == true) ? "; secure" : "");
}

function onTop() {
	if (top.location != location)
		top.location.href = location.href;
}

function isNN4() {
	if (navigator.appVersion.charAt(0) >= "4" && navigator.appName == "Netscape") return true;
	else return false;
	return false;
}

function isIE4() {
	if (navigator.appVersion.charAt(0) >= "4" && navigator.appName == "Microsoft Internet Explorer") return true;
	else return false;
	return false;
}

function goodBrowser() {
	if (isNN4()) {
//		alert("Netscape OK"); 
		return true;
	}
	else if (isIE4()) {
//		alert("IE OK");
		return true;
	}
	else {
		alert("The Scrapie Flock Certification Page requires Internet Explorer 4.0 or Netscape 4.0 or higher.  Please upgrade your browser before proceeding.  Returning you to the VS Home Page...");
		location = "http://www.aphis.usda.gov/vs";
		return false;
	}
	return false;
}

