	sfHover = function() {
		var sfEls = document.getElementById("nav").getElementsByTagName("LI");
		for (var i=0; i<sfEls.length; i++) {
			sfEls[i].onmouseover=function() {
				this.className+=" sfhover";
			}
			sfEls[i].onmouseout=function() {
				this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
			}
		}
	}
	if (window.attachEvent) window.attachEvent("onload", sfHover);

	// show / hide an area
	function toggle ( target )
	{
	  if (document.getElementById)
	  {
			target = document.getElementById( target );
			
			if (target.style.display == "none")
			{
				target.style.display 	= "";
			}
			else
			{
				target.style.display 	= "none";
			}
		}
	}

	// rock the emo's
	function emo(t,tf) {
		tf.post.value += t+" ";
		tf.post.focus();
	}

	function checkBoxer(tf) {
		for (var i = 0; i < tf.elements.length; i++) {
			if(tf.elements[i].type == 'checkbox') {
				tf.elements[i].checked = !(tf.elements[i].checked);
			}
		}
	}

	function url(tf) {
		linkurl 	= prompt("enter the full url","http://");
		linktext 	= prompt("enter the text/name for the link","");

		if ((linkurl != null) && (linkurl != "")) {
			if ((linktext != null) && (linktext != "")) {
				tf.post.value	+= "[url="+linkurl+"]"+linktext+"[/url] ";
			}
			else {
				tf.post.value 	+= "[url]"+linkurl+"[/url] ";
			}
		}

		tf.post.focus();
	}
	
	function checkEmail(email) {
		if (email.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi) == false) {
			alert("invalid email");
			return false;
		} else {
			return true;
		}
	}

	function SetSelectByValue(sel,val){
//		for (var i=0,opts=sel.options,len=options.length;i<len;i++) if (opts[i].value==val) return sel.selectedIndex=i;
		for (var i=0,opts=sel.options,len=opts.length;i<len;i++) {
			if (opts[i].value==val) {return sel.selectedIndex=i;}
		}
	}
	// load in parent for IFRAME
	function lip(place)
	{
		parent.location = place;
	}

	function popup(url,w,h)
	{
		window.open(url,"popup_pd","fullscreen=no,toolbar=no,status=no,menubar=no,scrollbars=auto,resizable=yes,directories=no,location=no,width="+w+",height="+h).focus();
		return false;
	}

	function closeWindow()
	{
		self.opener=null;
		self.close();
	}
	
	// change images	
	function changePic(url,picNum,totalPics)
	{
		if (picNum < 2) 
		{
			picNum = pic_num = 2;
		}
		else if (picNum > totalPics) 
		{
			picNum = pic_num = totalPics;
		}
	
		frames['pic_big'].location = url+picNum;
	}
	
	// dropdown jump
	function MM_jumpMenu(targ,selObj,restore)
	{
		if (selObj.value.substring(0,6) == "prompt") {
			prompt('Permalink',selObj.value.substring(7));
			return false;
		}
		else {
			eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
			if (restore) selObj.selectedIndex=0;
		}
	}

	function yousure(msg)
	{
		if (!msg) {msg = "Are you sure?";}
		
		var where_to= confirm(msg);

		if (where_to == true) {
			document.getElementById('yousure').value = '1';
			return true;
		} else if (where_to == false) {
			document.getElementById('yousure').value = '0';
			return false;
		}
	}
	
	function LTrim(str) {
	   var whitespace = new String(" \t\n\r");
	
	   var s = new String(str);
	
	   if (whitespace.indexOf(s.charAt(0)) != -1) {
		  // We have a string with leading blank(s)...
	
		  var j=0, i = s.length;
	
		  // Iterate from the far left of string until we
		  // don't have any more whitespace...
		  while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
			 j++;
	
		  // Get the substring from the first non-whitespace
		  // character to the end of the string...
		  s = s.substring(j, i);
	   }
	   return s;
	}

	function RTrim(str) {
	   // We don't want to trip JUST spaces, but also tabs,
	   // line feeds, etc.  Add anything else you want to
	   // "trim" here in Whitespace
	   var whitespace = new String(" \t\n\r");
	
	   var s = new String(str);
	
	   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
		  // We have a string with trailing blank(s)...
	
		  var i = s.length - 1;       // Get length of string
	
		  // Iterate from the far right of string until we
		  // don't have any more whitespace...
		  while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
			 i--;
	
	
		  // Get the substring from the front of the string to
		  // where the last non-whitespace character is...
		  s = s.substring(0, i+1);
	   }
	
	   return s;
	}
	
	function trim(str) {
	   return RTrim(LTrim(str));
	}
	
