// JavaScript Document



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];}

}











var __scroll = {sp:6, fps:16, timer:0};

function setScrollSp(sp) {

	if(typeof sp == "number") {

		this.__scroll.sp = sp;

	}

}

function setScrollFps(fps) {

	if(typeof fps == "number") {

		this.__scroll.fps = fps;

	}

}

function scrollToTop() {

	pageScroll(0, 0);

}

function getScrollLeft() {

	if(navigator.userAgent.indexOf("MSIE") != -1) {

		return (document.compatMode=="CSS1Compat")?document.documentElement.scrollLeft:document.body.scrollLeft;

	} else {

 	 return (window.pageXOffset) ? window.pageXOffset : 0;

 }

}

function getScrollTop() {

	if(navigator.userAgent.indexOf("MSIE") != -1) {

		return (document.compatMode=="CSS1Compat")?document.documentElement.scrollTop:document.body.scrollTop;

	} else {

 	 return (window.pageYOffset) ? window.pageYOffset : 0;

 }

}

function pageScroll(toX, toY, cuX, cuY) {

	clearTimeout(this.__scroll.timer);

	toX = (!toX || toX < 0) ? 0 : toX;

	toY = (!toY || toY < 0) ? 0 : toY;

	cuX = (!cuX) ? 0 + getScrollLeft() : cuX;

	cuY = (!cuY) ? 0 + getScrollTop() : cuY;

	cuX += (toX - getScrollLeft()) / this.__scroll.sp; 

	cuY += (toY - getScrollTop()) / this.__scroll.sp; 

	if(cuX < 0) { cuX = 0; }

	if(cuY < 0) {	cuY = 0;	}

	window.scrollTo(Math.floor(cuX), Math.floor(cuY));

	if(Math.floor(cuX) != toX || Math.floor(cuY) != toY) {

		this.__scroll.timer = setTimeout("pageScroll("+toX+","+toY+"," +cuX+","+cuY+")",this.__scroll.sp);

	}

}







ScrollClass.prototype.speed = 12;

ScrollClass.prototype.timer = 0;

ScrollClass.prototype.direction = new Object();

ScrollClass.prototype.offset = new Object();



ScrollClass.prototype.isCompatMode = document.compatMode == "CSS1Compat";

ScrollClass.prototype.major = parseInt(navigator.appVersion);

ScrollClass.prototype.minor = parseFloat(navigator.appVersion);

ScrollClass.prototype.isIE = navigator.userAgent.indexOf("MSIE") != -1;

ScrollClass.prototype.isOpera = window.opera;

ScrollClass.prototype.isMozilla = navigator.userAgent.indexOf("Gecko") != -1;

ScrollClass.prototype.isNN  = navigator.userAgent.indexOf("Netscape") != -1;

ScrollClass.prototype.isMac = navigator.userAgent.indexOf("Mac") != -1;



var scroll = new ScrollClass();

function ScrollClass() {}

ScrollClass.prototype.setScrollSpeed = function(num) {

	if(typeof num == "number") {

		this.speed = num;

	}

}

ScrollClass.prototype.getScrollSpeed = function() {

	return this.speed;

}

ScrollClass.prototype.getMaxScroll = function() {

	var pos = new Object();

	if(this.isNN) {

		pos.x = this.major <= 5 ? document.documentElement.offsetWidth - window.innerWidth + 16 : document.documentElement.offsetWidth - window.innerWidth + 17;

		pos.y = this.major <= 5 ? document.documentElement.offsetHeight - window.innerHeight + 16 : document.documentElement.offsetHeight - window.innerHeight + 17;

	} else {

		if(this.isMac) {

			pos.x = document.body.offsetWidth- document.body.clientWidth + 1;

			pos.y = document.body.offsetHeight - document.body.clientHeight + 1;

		} else {

			pos.x = this.isCompatMode ? document.documentElement.scrollWidth - document.documentElement.clientWidth : document.body.scrollWidth - document.body.clientWidth;

			pos.y = this.isCompatMode ? document.documentElement.scrollHeight - document.documentElement.clientHeight : document.body.scrollHeight - document.body.clientHeight;

		}

	}

	if(pos.x < 0) { sc.x = 0; }

	if(pos.y < 0) { sc.y = 0; }

	return {x:pos.x, y:pos.y };

}

ScrollClass.prototype.getScrollLeft = function() {

	if(this.isIE) {

		return this.isCompatMode ? document.documentElement.scrollLeft : document.body.scrollLeft;

	} else {

		return window.pageXOffset ? window.pageXOffset : 0;

	}

}

ScrollClass.prototype.getScrollTop = function() {

	if(this.isIE) {

		return this.isCompatMode ? document.documentElement.scrollTop : document.body.scrollTop;

	} else {

		return window.pageYOffset ? window.pageYOffset : 0;

	}

}

ScrollClass.prototype.scrollTo = function() {

	clearTimeout(this.timer);

	this.offset.x = null;

	this.offset.y = null;

	var toX = this.parse("x", this.findAnchor(arguments[0]) ? this.getAnchorPos(arguments[0]).x : arguments[0]);

	var toY = this.parse("y", this.findAnchor(arguments[1]) ? this.getAnchorPos(arguments[1]).y : arguments[1]);

	this.direction.is_x = toX - this.getScrollLeft() >= 0 ? true : false;

	this.direction.is_y = toY - this.getScrollTop() >= 0 ? true : false;

	this.pageScroll(toX, toY);

}

ScrollClass.prototype.findAnchor = function(id) {

	return (document.getElementsByName(id)[0] || document.anchors[id]);

}

ScrollClass.prototype.getAnchorPos = function(id) {

	if(document.getElementsByName(id)[0]) {

		var element = document.getElementsByName(id)[0];

		var obj = new Object();

		do {

			obj.x = (!obj.x) ? element.offsetLeft : obj.x + element.offsetLeft;

			obj.y = (!obj.y) ? element.offsetTop : obj.y + element.offsetTop;

		} while((element = element.offsetParent) != null);

		return {x:obj.x < 0 ? 0 : obj.x, y:obj.y };

	} else if(document.layers) {

		var element = document.anchors[id];

		return {x:element.x, y:element.y };

	} else {

		return {x:0, y:0};

	}

}

ScrollClass.prototype.parse = function(direction, value) {

	var maxScroll = this.getMaxScroll();

	var range = {min_x:0, max_x:maxScroll.x, min_y:0, max_y:maxScroll.y };

	switch(direction) {

		case "x":

			if(typeof value == "boolean") {

				return value ? 0 : this.getScrollLeft();

			} else if(typeof value == "number") {

				if(!this.isOpera) {

					if(value < 0) {

						return 0;

					} else if(value > range.max_x) {

						return range.max_x;

					}

				}

				return value;

			} else if(typeof value == "string") {

				switch(value) {

					case "left": return 0;

					case "center": return Math.floor(range.max_x / 2);

					case "right": return range.max_x;

					default: this.getScrollLeft();

				}

			}

			return this.getScrollLeft();

			break;

		case "y":

			if(typeof value == "boolean") {

				return value ? 0 : this.getScrollTop();

			} else if(typeof value == "number") {

				if(value < 0) {

					return 0;

				} else if(value > range.max_y) {

					return range.max_y;

				}

				return value;

			} else if(typeof value == "string") {

				switch(value) {

					case "top": return 0;

					case "middle": return Math.floor(range.max_y / 2);

					case "bottom": return range.max_y;

					default: this.getScrollTop();

				}

			}

			return this.getScrollTop();

			break;

	}

}

ScrollClass.prototype.pageScroll = function(toX, toY) {

	if(this.isOpera) {

		window.scrollTo(toX, toY);

		return;

	}

	clearTimeout(this.timer);

	var dX = this.direction.is_x;

	var dY = this.direction.is_y;

	var scX = this.getScrollLeft();

	var scY = this.getScrollTop();

	var cuX = dX ? Math.ceil((toX - scX) / this.speed) : Math.floor((toX - scX) / this.speed);

	var cuY = dY ? Math.ceil((toY - scY) / this.speed) : Math.floor((toY - scY) / this.speed);

	if(((dX && scX + cuX < toX -1) || (!dX && scX + cuX > toX + 1)) || ((dY && scY + cuY < toY - 1) || (!dY && scY + cuY > toY +1))) {

		if(this.offset.x != null && this.offset.y != null) {

			if(this.offset.x == scX && this.offset.y == scY) {

				return;

			} else if((dX && this.offset.x > scX) || (!dX && this.offset.x < scX)) {

				return;

			} else if((dY && this.offset.y > scY) || (!dY && this.offset.y < scY)) {

				return;

			}

		}

		window.scrollTo(scX + cuX, scY + cuY);

		this.timer = setTimeout("ScrollClass.prototype.pageScroll("+toX+","+toY+")",this.speed);

		this.offset.x = scX;

		this.offset.y = scY;

	} else {

		clearTimeout(this.timer);

		window.scrollTo(toX, toY);

		return false;

	}

}


function MM_openBrWindow(theURL,winName,features) {

  window.open(theURL,winName,features);

}


// gNav dropdown list
  $(document).ready(function(){
		$("#gNavlist li").hover(
			function(){ $("ul", this).fadeIn("fast"); }, 
			function() { } 
		);
	if (document.all) {
			$("#gNavlist li").hoverClass ("sfHover");
		}
  });
  
	$.fn.hoverClass = function(c) {
		return this.each(function(){
			$(this).hover( 
				function() { $(this).addClass(c);  },
				function() { $(this).removeClass(c); }
			);
		});
	};