<!--
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_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_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];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

//dropdown jump menu
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function IEHoverPseudo() {
	var navItems = document.getElementById("primary-nav").getElementsByTagName("li");

	for (var i=0; i<navItems.length; i++) {
		if(navItems[i].className == "menuparent") {
			navItems[i].onmouseover=function() { this.className += " over"; }
			navItems[i].onmouseout=function() { this.className = "menuparent"; }
		}
	}
}

function isNumberKey(evt) {
	var charCode = (evt.which) ? evt.which : event.keyCode

	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;

	return true;
}

function isDecimalKey(evt) {
	var charCode = (evt.which) ? evt.which : event.keyCode

	if (charCode == 46) // Decimal Period
		return true;

	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;

	return true;
}

function isQuantityKey(evt) {
	var charCode = (evt.which) ? evt.which : event.keyCode

	if (charCode == 43 || charCode == 45) // + or - key
		return true;

	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;

	return true;
}

//configure status message not to show
var statusmsg=""
function hidestatus(){
	window.status=statusmsg
	return true
}

function doClear(theText) {
	if (theText.value == theText.defaultValue) {
		theText.value = ""
	}
}

function doDefault(theText) {
	if (theText.value == "") {
		theText.value = theText.defaultValue
	}
}

function hlight(theText) {
	id = theText.id;
    document.getElementById(id).focus();
    document.getElementById(id).select();
}

function bookmark(url,title){
	if ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4)) {
		window.external.AddFavorite(url,title);
	} else if (navigator.appName == "Netscape") {
		window.sidebar.addPanel(title,url,"");
	} else {
		alert("Press CTRL-D (Netscape) or CTRL-T (Opera) to bookmark");
	}
}

function toggleBox(szDivID, iState) { // 1 visible, 0 hidden
	var obj = document.layers ? document.layers[szDivID] : document.getElementById ?  document.getElementById(szDivID).style : document.all[szDivID].style;
	obj.display = document.layers ? (iState ? "show" : "hide") : (iState ? "block" : "none");
}

/*
 addOnloadEvent(myFunctionName);
Or to pass arguments
 addOnloadEvent(function(){ myFunctionName('myArgument') });
*/

function addOnloadEvent(fnc){
  if ( typeof window.addEventListener != "undefined" )
    window.addEventListener( "load", fnc, false );
  else if ( typeof window.attachEvent != "undefined" ) {
    window.attachEvent( "onload", fnc );
  }
  else {
    if ( window.onload != null ) {
      var oldOnload = window.onload;
      window.onload = function ( e ) {
        oldOnload( e );
        window[fnc]();
      };
    }
    else 
      window.onload = fnc;
  }
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function isDate(dateStr) {

    var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
    var matchArray = dateStr.match(datePat); // is the format ok?

    if (matchArray == null) {
        //alert("Please enter date in one of the following formats:\nmm/dd/yy, mm/dd/yyyy, mm-dd-yyyy, or mm-dd-yyyy.");
        return false;
    }

    month = matchArray[1]; // parse date into variables
    day = matchArray[3];
    year = matchArray[4];

    if (month < 1 || month > 12) { // check month range
        //alert("Month must be between 1 and 12.");
        return false;
    }

    if (day < 1 || day > 31) {
        //alert("Day must be between 1 and 31.");
        return false;
    }

    if ((month==4 || month==6 || month==9 || month==11) && day==31) {
        //alert("Month "+month+" doesn't have 31 days!")
        return false;
    }

    if (month == 2) { // check for february 29th
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day==29 && !isleap)) {
            //alert("February " + year + " doesn't have " + day + " days!");
            return false;
        }
    }
    return true; // date is valid
}

function isDocument(formElement, message) {
	var OK = new Array ("csv","doc","pdf","ppt","txt","xls");  // if you change this element, please change the config.php

	trimElement = trim(formElement.value);
	if (trimElement == '') {
		return true;
	}

	var ext = getExt(trimElement);
	_isDocument = false;

	for (i=0; i<OK.length; i++) {
		if (OK[i] == ext) {
			_isDocument = true; // one of the file extensions found
		} 
	}

	if (!_isDocument) { 
		if (message!='') alert(message);
		formElement.focus();
	}

	return _isDocument;
}

function isImage(formElement, message) {
	var OK = new Array ("gif","jpg","jpeg","png","wbmp");  // if you change this element, please change the config.php

	trimElement = trim(formElement.value);
	if (trimElement == '') {
		return true;
	}

	var ext = getExt(trimElement);

	_isImage = false;

	for (i=0; i<OK.length; i++) {
		if (OK[i] == ext) {
			_isImage = true; // one of the file extensions found
		} 
	}

	if (!_isImage) { 
		if (message!='') alert(message);
		formElement.focus();
	}

	return _isImage;
}

function isVideo(formElement, message) {
	var OK = new Array ("3gp","asf","asx","avi","mov","mp4","mpg","qt","rm","swf","wmv");  // if you change this element, please change the config.php

	trimElement = trim(formElement.value);
	if (trimElement == '') {
		return true;
	}

	var ext = getExt(trimElement);
	_isDocument = false;

	for (i=0; i<OK.length; i++) {
		if (OK[i] == ext) {
			_isDocument = true; // one of the file extensions found
		} 
	}

	if (!_isDocument) { 
		if (message!='') alert(message);
		formElement.focus();
	}

	return _isDocument;
}

function validateEmail(email) {
	var splitted = email.match("^(.+)@(.+)$");

	if(splitted == null) return false;

	if(splitted[1] != null ) {
		var regexp_user=/^\"?[\w-_\.]*\"?$/;
		if(splitted[1].match(regexp_user) == null) return false;
	}

	if(splitted[2] != null) {
		var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
		if(splitted[2].match(regexp_domain) == null) {
			var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
			if(splitted[2].match(regexp_ip) == null) return false;
		}// if
		return true;
	}

	return false;
}

function validatePhone(elementValue) {
	if (elementValue == '') return;
	var phoneNumberPattern = /^\(?(\d{3})\)?[-\. ]?(\d{3})[-\. ]?(\d{4})$/;
	return phoneNumberPattern.test(elementValue);
}

var prefix="$"
var wd
function parseelement(thisone){
	if (thisone.charAt(0)=="$")
		return thisone;

	wd="w";
	var tempnum='';

	for (i=0;i<thisone.length;i++){
		if (thisone.charAt(i)=="."){
			wd="d";
			break;
		}
	}

	if (wd=="w")
		tempnum=prefix+thisone+".00";
	else{
		if (thisone.charAt(thisone.length-2)=="."){
			tempnum=prefix+thisone+"0";
		}
		else{
			thisone=Math.round(thisone*100)/100
			tempnum=prefix+thisone;
		}
	}

	return tempnum;
}

function getURL() {
	// Get URL
	if (location.href.indexOf("https://")!= -1) 
		var prefix = "https://"; 
	else 
		var prefix = "http://"; 

	if (location.href.indexOf('//') !=-1) {
		firstpos = location.href.indexOf('//')+2;
		var tmpHref = location.href.substring(firstpos);
		if (tmpHref.indexOf('/') !=-1) {
			lastpos = tmpHref.indexOf('/');
			var strHref = prefix + tmpHref.substring(0, lastpos);
		} else {
			var strHref = location.href;
		}
	} else {
		if (location.href.indexOf('/') !=-1) {
			lastpos = location.href.indexOf('/');
			var strHref = prefix + location.href.substring(0, lastpos);
		} else {
			var strHref = prefix + location.href;
		}
	}

	return strHref;
}

// Smooth scrolling 
var ss = {
  fixAllLinks: function() {
    // Get a list of all links in the page
    var allLinks = document.getElementsByTagName('a');
    // Walk through the list
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if ((lnk.href && lnk.href.indexOf('#') != -1) && 
          ( (lnk.pathname == location.pathname) ||
	    ('/'+lnk.pathname == location.pathname) ) && 
          (lnk.search == location.search)) {
        // If the link is internal to the page (begins in #)
        // then attach the smoothScroll function as an onclick
        // event handler
        ss.addEvent(lnk,'click',ss.smoothScroll);
      }
    }
  },

  smoothScroll: function(e) {
    // This is an event handler; get the clicked on element,
    // in a cross-browser fashion
    if (window.event) {
      target = window.event.srcElement;
    } else if (e) {
      target = e.target;
    } else return;

    // Make sure that the target is an element, not a text node
    // within an element
    if (target.nodeName.toLowerCase() != 'a') {
      target = target.parentNode;
    }
  
    // Paranoia; check this is an A tag
    if (target.nodeName.toLowerCase() != 'a') return;
  
    // Find the <a name> tag corresponding to this href
    // First strip off the hash (first character)
    anchor = target.hash.substr(1);
    // Now loop all A tags until we find one with that name
    var allLinks = document.getElementsByTagName('a');
    var destinationLink = null;
    for (var i=0;i<allLinks.length;i++) {
      var lnk = allLinks[i];
      if (lnk.name && (lnk.name == anchor)) {
        destinationLink = lnk;
        break;
      }
    }
    if (!destinationLink) destinationLink = document.getElementById(anchor);

    // If we didn't find a destination, give up and let the browser do
    // its thing
    if (!destinationLink) return true;
  
    // Find the destination's position
    var destx = destinationLink.offsetLeft; 
    var desty = destinationLink.offsetTop;
    var thisNode = destinationLink;
    while (thisNode.offsetParent && 
          (thisNode.offsetParent != document.body)) {
      thisNode = thisNode.offsetParent;
      destx += thisNode.offsetLeft;
      desty += thisNode.offsetTop;
    }
  
    // Stop any current scrolling
    clearInterval(ss.INTERVAL);
  
    cypos = ss.getCurrentYPos();
  
    ss_stepsize = parseInt((desty-cypos)/ss.STEPS);
    ss.INTERVAL =
setInterval('ss.scrollWindow('+ss_stepsize+','+desty+',"'+anchor+'")',10);
  
    // And stop the actual click happening
    if (window.event) {
      window.event.cancelBubble = true;
      window.event.returnValue = false;
    }
    if (e && e.preventDefault && e.stopPropagation) {
      e.preventDefault();
      e.stopPropagation();
    }
  },

  scrollWindow: function(scramount,dest,anchor) {
    wascypos = ss.getCurrentYPos();
    isAbove = (wascypos < dest);
    window.scrollTo(0,wascypos + scramount);
    iscypos = ss.getCurrentYPos();
    isAboveNow = (iscypos < dest);
    if ((isAbove != isAboveNow) || (wascypos == iscypos)) {
      // if we've just scrolled past the destination, or
      // we haven't moved from the last scroll (i.e., we're at the
      // bottom of the page) then scroll exactly to the link
      window.scrollTo(0,dest);
      // cancel the repeating timer
      clearInterval(ss.INTERVAL);
      // and jump to the link directly so the URL's right
      location.hash = anchor;
    }
  },

  getCurrentYPos: function() {
    if (document.body && document.body.scrollTop)
      return document.body.scrollTop;
    if (document.documentElement && document.documentElement.scrollTop)
      return document.documentElement.scrollTop;
    if (window.pageYOffset)
      return window.pageYOffset;
    return 0;
  },

  addEvent: function(elm, evType, fn, useCapture) {
    // addEvent and removeEvent
    // cross-browser event handling for IE5+,  NS6 and Mozilla
    // By Scott Andrew
    if (elm.addEventListener){
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } else if (elm.attachEvent){
      var r = elm.attachEvent("on"+evType, fn);
      return r;
    } else {
      alert("Handler could not be removed");
    }
  } 
}

ss.STEPS = 25;

ss.addEvent(window,"load",ss.fixAllLinks);

