

// ## doPopup ##


function doPopup(popname,popwidth,popheight) {

// Determine how much the visitor had scrolled

	var scrolledX, scrolledY;
	if( self.pageYOffset ) {
		scrolledX = self.pageXOffset;
		scrolledY = self.pageYOffset;
	} else if( document.documentElement && document.documentElement.scrollTop ) {
		scrolledX = document.documentElement.scrollLeft;
		scrolledY = document.documentElement.scrollTop;
	} else if( document.body ) {
		scrolledX = document.body.scrollLeft;
		scrolledY = document.body.scrollTop;
	}
	
	// Determine the coordinates of the center of browser's window
	
	var centerX, centerY;
	if( self.innerHeight ) {
		centerX = self.innerWidth;
		centerY = self.innerHeight;
	} else if( document.documentElement && document.documentElement.clientHeight ) {
		centerX = document.documentElement.clientWidth;
		centerY = document.documentElement.clientHeight;
	} else if( document.body ) {
		centerX = document.body.clientWidth;
		centerY = document.body.clientHeight;
	}

	var leftOffset = scrolledX + (centerX - popwidth) / 2;
	var topOffset = scrolledY + (centerY - popheight) / 2;

	document.getElementById(popname).style.top = topOffset + "px";
	document.getElementById(popname).style.left = leftOffset + "px";
	document.getElementById(popname).style.display = "block";

}


// ## formassistuser ##

runform = 0;

function formassistuser(name) {


	// userid

	if(name == 'puserid' || name == 'useradd') {

		puserid = document.getElementById('puserid');

		if(puserid.value.length < 1) {
	
			document.getElementById('labelpuserid').innerHTML = "required";
			document.getElementById('labelpuserid').style.color = "#900";
	
		} else if(puserid.value.length < 3) {
	
			document.getElementById('labelpuserid').innerHTML = "3 char min";
			document.getElementById('labelpuserid').style.color = "#900";

		} else if(puserid.value.search('[^a-z0-9]') > -1) {
	
			document.getElementById('labelpuserid').innerHTML = "lowercase letters/numbers";
			document.getElementById('labelpuserid').style.color = "#900";
	
		} else {
	
			document.getElementById('labelpuserid').innerHTML = "good";
			document.getElementById('labelpuserid').style.color = "#060";
	
		}
	}


	// roll

	if(name == 'prollid' || name == 'useradd' || name == 'useredit') {

		jprollid = document.getElementById('prollid').options(document.getElementById('prollid').selectedIndex).value;

		if(jprollid == '') {
	
			document.getElementById('labelprollid').innerHTML = "required";
			document.getElementById('labelprollid').style.color = "#900";

			// document.getElementById('labelpaccountid').innerHTML = "required";
			// document.getElementById('labelpaccountid').style.color = "#900";
			document.getElementById('paccountid').disabled=false;
	
		} else if(jprollid == 'admin') {
	
			document.getElementById('labelprollid').innerHTML = "good";
			document.getElementById('labelprollid').style.color = "#060";
	
			document.getElementById('paccountid').disabled=true;
			document.getElementById('paccountid').selectedIndex = 0;
			document.getElementById('labelpaccountid').innerHTML = "n/a";
			document.getElementById('labelpaccountid').style.color = "#000";
			document.getElementById('newaccount').style.display = "none";
	
		} else if(jprollid == 'indiv') {
	
			document.getElementById('labelprollid').innerHTML = "good";
			document.getElementById('labelprollid').style.color = "#060";
	
			document.getElementById('paccountid').disabled=true;
			document.getElementById('paccountid').selectedIndex = 0;
			document.getElementById('labelpaccountid').innerHTML = "n/a";
			document.getElementById('labelpaccountid').style.color = "#000";
	
		} else {
	
			document.getElementById('labelprollid').innerHTML = "good";
			document.getElementById('labelprollid').style.color = "#060";

			document.getElementById('paccountid').disabled=false;

			if(document.getElementById('paccountid').selectedIndex == 0) {
				document.getElementById('labelpaccountid').innerHTML = "required";
				document.getElementById('labelpaccountid').style.color = "#900";
			}


		}

	}


	// verify passwords

	if(name == 'ppassword' || name == 'useradd' || name == 'useredit') {

		p1 = document.getElementById('ppassword1');
		p2 = document.getElementById('ppassword2');
	
		if(p1.value != p2.value) {
	
			document.getElementById('labelpassword').innerHTML = "not a match";
			document.getElementById('labelpassword').style.color = "#900";
	
		} else if (p1.value.length < 1) {
	
			document.getElementById('labelpassword').innerHTML = "required";
			document.getElementById('labelpassword').style.color = "#900";
	
		} else if (p1.value.length < 6) {
	
			document.getElementById('labelpassword').innerHTML = "6 characters minimum";
			document.getElementById('labelpassword').style.color = "#900";
	
		} else if (p1.value.search("[0-9]") + p1.value.search("[a-z]") < 0 || p1.value.search('[^a-z0-9]') > -1) {
	
			document.getElementById('labelpassword').innerHTML = "lowercase letters/numbers";
			document.getElementById('labelpassword').style.color = "#900";
	
		} else {
	
			document.getElementById('labelpassword').innerHTML = "good";
			document.getElementById('labelpassword').style.color = "#060";
	
		}

	}



	// account

	if(name == 'paccountid' || name == 'paccname' || name == 'useradd' || name == 'useredit') {
	
		if(document.getElementById('paccountid').selectedIndex == 0) {

			document.getElementById('labelpaccountid').innerHTML = "required";
			document.getElementById('labelpaccountid').style.color = "#900";
			document.getElementById('newaccount').style.display = "none";

		} else if(document.getElementById('paccountid').selectedIndex == 1) {
	
			document.getElementById('newaccount').style.display = "block";
			document.getElementById('labelpaccountid').innerHTML = "good";
			document.getElementById('labelpaccountid').style.color = "#060";

		} else {
	
			document.getElementById('newaccount').style.display = "none";
			document.getElementById('labelpaccountid').innerHTML = "good";
			document.getElementById('labelpaccountid').style.color = "#060";
	
		}

	}


	// new account

	if(name == 'paccname' || name == 'useradd' || name == 'useredit') {

		paccname = document.getElementById('paccname');

		if(paccname.value.length < 1) {
	
			document.getElementById('labelpaccname').innerHTML = "required";
			document.getElementById('labelpaccname').style.color = "#900";

		} else {
			
		document.getElementById('labelpaccname').innerHTML = "good";
		document.getElementById('labelpaccname').style.color = "#060";

		}

	}


	if(name == 'submit') {

	}


	runform++;
	document.getElementById('runform').innerHTML = runform;

}



// ## insert


function insertAtCaret(id, text) {

	obj = document.getElementById(id);

	if(document.selection) {

		obj.focus();
		var orig = obj.value.replace(/\r\n/g, "\n");
		var range = document.selection.createRange();

		if(range.parentElement() != obj) {
			return false;
		}

		range.text = text;
		
		var actual = tmp = obj.value.replace(/\r\n/g, "\n");

		for(var diff = 0; diff < orig.length; diff++) {
			if(orig.charAt(diff) != actual.charAt(diff)) break;
		}

		for(var index = 0, start = 0;
			tmp.match(text)
				&& (tmp = tmp.replace(text, ""))
				&& index <= diff;
			index = start + text.length
		) {
			start = actual.indexOf(text, index);
		}
	} else if(obj.selectionStart) {
		var start = obj.selectionStart;
		var end   = obj.selectionEnd;

		obj.value = obj.value.substr(0, start)
			+ text
			+ obj.value.substr(end, obj.value.length);

	}
	
	if(start != null) {

		setCaretTo(obj, start + text.length);

	} else {

		obj.value += text;

	}

}

function setCaretTo(obj, pos) {
	if(obj.createTextRange) {
		var range = obj.createTextRange();
		range.move('character', pos);
		range.select();
	} else if(obj.selectionStart) {
		obj.focus();
		obj.setSelectionRange(pos, pos);
	}
}



















