/* Validate form for required fields */
function verifyForm(thisform, noLoginAllowed) {
		var reqmatch = "req_";
		var message = "All colored or marked(*) fields are required.\nPlease double check the form and try again."
		var offenders = new Array;

		if (!noLoginAllowed) {
			noLoginAllowed = false;
			/*
			if (verifyLogin()) {
				alert("in");
			} else {
				login_htmlInlineLogin();
			}
			*/
		} else {
			noLoginAllowed = true;
		}

		for(i=0; i < thisform.elements.length; i++) {
			var field = thisform.elements[i];

			if (field.name) {
				var isReq = (field.name.substr(0,reqmatch.length)==reqmatch) ? true : false
				var pos   = offenders.length;
			} else {
				isReq = false;
			}

			if (pos <= 0) { pos = 0; }

			if(isReq) {
				if((field.type=="text" || field.type=="textarea" || field.type=="password" || field.type=="file")) { // && field.value==""
					var fieldValue = field.value;
					if (!field.value.match(/\w/)) {
						offenders[pos]  = field;
						field.className = "requiredField";
					}
				} else if(field.type=="select-one" && field.selectedIndex == 0){
					offenders[pos]  = field;
					field.className = "requiredField";
				} else if(field.type=="select-multiple"){
					Sel=0
					for(o=0; o<field.options.length; o++){
						if(field.options[o].selected){
							Sel++
							break
						}
					}

					if(Sel == 0){
						offenders[pos]  = field;
						field.className = "requiredField";
					}
				} else if(field.type=="radio" || field.type=="checkbox"){
					var startingIndex = i
					var Checked = 0
					var rLength=1
					while(field.name == thisform.elements[i+1].name){
						rLength++
						i++
					}

					for(g = startingIndex; g < rLength+startingIndex; g++){
						if(thisform.elements[g].checked){
							Checked++
							break
						}
					}
					if(Checked == 0){
						offenders[pos]  = field;
						field.className = "requiredField";
					}
				}
			}
		}

		a_highlighted = document.getElementsByClassName("requiredField");

		for (a=0; a < a_highlighted.length; a++) {
			var highlightObj   = a_highlighted[a];
			var highlightField = highlightObj.name;
			var keepHighlighted = false;

			for(b=0; b < offenders.length; b++) {
				var offenderObj   = offenders[b];
				var offenderField = offenderObj.name;

				if (highlightField == offenderField) {
					keepHighlighted = true;
					break;
				}
			}

			if (keepHighlighted == false) {
				highlightObj.className = "";
			}
		}

		if (offenders.length > 0) {
			alert(message);
			return false;
		} else {
			return true;
		}
}

/* Auto tabbing for input fields */
var tagfield_length=0;
function autoTab(obj,event,len,next_field) {
	if (event == "down") {
		tagfield_length=obj.value.length;
		}
	else if (event == "up") {
		if (obj.value.length != tagfield_length) {
			tagfield_length=obj.value.length;
			if (tagfield_length == len) {
				next_field.focus();
			}
		}
	}
}

/* Element display */
function toggle(the_sub) {
	Element.toggle(the_sub);
}

function hide(the_sub) {
	Element.hide(the_sub);
	return;
}

function show(the_sub) {
	Element.show(the_sub);
	return;
}


/* Generic pop-up window */
function popupFull($file,w,h) {
	if (!w) { w = 200; }
	if (!h) { h = 200; }

	window.open($file,"popup","toolbar=0, location=0, menubar=1, scrollbars=1, status=0, resizable=1,width="+w+",height="+h);
}

/* No-feature pop-up window */
function popupBasic($file,w,h) {
	if (!w) { w = 200; }
	if (!h) { h = 200; }

	window.open($file,"popup","scrollbars=1, resizable=1,width="+w+",height="+h);
}

/* Inline popup DHTML - Disables all page except popup (see wiki)*/
	function inlinePopup() {
		for (var i=0; i < inlinePopup.arguments.length; i++) {
			var element = document.getElementById(inlinePopup.arguments[i]);

			element.style.display = (element.style.display == "none") ? "block" : "none";
		}
	}
	
	
	
/* Ajax caching workaround for IE */
	function ajax_nocache_time() {
		var cache = parseInt(Math.random()*99999999) + new Date().valueOf();
		return(cache);
	}

	function ajax_nocache_pars(pars) {
		var newpars = pars + "&cache="+ajax_nocache_time();
		return(newpars);
	}	