
// jump to specified anchor on the page
function jump_to(a){
	if(a != ''){
		window.location.href = "#"+a;
	}
}



// confirm deletion of item
function confirm_remove(to_remove)
{ 
	to_remove = to_remove || 'Item';
	if(confirm("Are you sure you want to remove this " + to_remove +"?")){
		return true;			  
	} else {
		return false;		
	}
}


function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}




/*

check fields in array -- > post erros into div with id=errors

var emailRegexp = new RegExp("^[a-z0-9\._'-]+@+[a-z0-9\._-]+\.+[a-z]{2,6}$", "i"); // valid email format
var phoneRegexp = new RegExp("^[0-9\-]{1,30}$", "i"); /// valid phone number 1-30 chars with numerics and -
var extRegexp = new RegExp("^[0-9\-]{1,30}$", "i");

function validate(theform)
{
	validForm = true;
	//alert(validation);
	if(validation == 'on'){
	
		firstError = null;
		errorstring = '';
		var formFields = theform.elements;
		try{
			for (var i=0;i<requiredFields.length;i++)
			{
				var field = requiredFields[i][0];
				var check = requiredFields[i][1];
				// check that field isn't blank	
				if(check == 'blank'){
					if(!formFields[field].value){
						writeError(formFields[field],'This field is required');	
					}
				}
				
				// check that email is valid
				else if(check == 'email')
				{
					if(formFields[field].value.length > 0)	{
						if(!emailRegexp.test(formFields[field].value)){
							writeError(formFields[field],'The email entered is invalid');
						}		
					}
				}
				
				// auto-remove non-numerics but allow dashes
				else if(check == 'phone')
				{
					if(formFields[field].value.length > 0)	{
						if(!phoneRegexp.test(formFields[field].value)){
							writeError(formFields[field],'The phone number entered is invalid');
						}	
					}
				}
				
				// auto-remove non-numerics
				else if(check == 'ext')
				{
					if(formFields[field].value.length > 0)	{
						if(!phoneRegexp.test(formFields[field].value)){
							writeError(formFields[field],'The exention number entered is invalid');
						}
					}
				}
				
				// check that password & confirmpassword fields match
				else if(check == 'passmatch')
				{
					var passwords = field.split(","); // (format should be 'password,password_confirm')
					var password = passwords[0];
					var password_confirm = passwords[1];
		
					if(formFields[password].value != formFields[password_confirm].value){
						writeError(formFields[password_confirm],'Passwords entered do not match');
					}
				}
			}
		} catch(ex) {}
		
		if (!W3CDOM){
			alert(errorstring);
		}
		if (firstError){
			firstError.focus();
		}
		return validForm;
	}
}

function writeError(obj,message)
{
	validForm = false;
	if (obj.hasError) return;
	if (W3CDOM)
	{
		obj.className += ' error';
		obj.onchange = removeError;
		var sp = document.createElement('span');
		sp.className = 'error';
		sp.appendChild(document.createTextNode(message));
		obj.parentNode.appendChild(sp);
		obj.hasError = sp;
	}
	else
	{
		errorstring += obj.name + ': ' + message + '\n';
		obj.hasError = true;
	}
	if (!firstError)
		firstError = obj;
}
*/



function insertAtCaret(obj, text) {
	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);
	}
}


function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


/* for suckerfish style drop downs */
<!--//--><![CDATA[//><!--
startList = function() {
	if (document.all&&document.getElementById) {
		navRoot = document.getElementById("nav");
		for (i=0; i<navRoot.childNodes.length; i++) {
			node = navRoot.childNodes[i];
			if (node.nodeName=="LI") {
				node.onmouseover=function() {
					this.className+=" over";
				}
				node.onmouseout=function() {
					this.className=this.className.replace(" over", "");
				}
			}
		}
	}
}
window.onload=startList;

//--><!]]><
