//js to overlabel inputs
( function( $ ) {
    // plugin definition
    $.fn.overlabel = function( options ) {
        // build main options before element iteration
        var opts = $.extend( {}, $.fn.overlabel.defaults, options );
        var selection = this.filter( 'label[for]' ).map( function() {
             var label = $( this );
            var id = label.attr( 'for' );
            var field = document.getElementById( id );
             if ( !field ) return;
             // build element specific options
            var o = $.meta ? $.extend( {}, opts, label.data() ) : opts;
             label.addClass( o.label_class );
             var hide_label = function() { label.css( o.hide_css ) };
            var show_label = function() { this.value || label.css( o.show_css ) };
             $( field )
                 .parent().addClass( o.wrapper_class ).end()
                 .focus( hide_label ).blur( show_label ).each( hide_label ).each( show_label );
             return this;
         } );
         return opts.filter ? selection : selection.end();
    };
     // publicly accessible defaults
    $.fn.overlabel.defaults = {
        label_class:   'overlabel-apply',
        wrapper_class: 'overlabel-wrapper',
        hide_css:      { 'text-indent': '-10000px' },
        show_css:      { 'text-indent': '0px', 'cursor': 'text' },
        filter:        false
     };
} )( jQuery );
$(document).ready(function() {
    $("label.overlabel").overlabel();
});
//end js to overlabel inputs


/* idTabs ~ Sean Catchpole - Version 2.2 - MIT/GPL */
(function(){var dep={"jQuery":"http://code.jquery.com/jquery-latest.min.js"};var init=function(){(function($){$.fn.idTabs=function(){var s={};for(var i=0;i<arguments.length;++i){var a=arguments[i];switch(a.constructor){case Object:$.extend(s,a);break;case Boolean:s.change=a;break;case Number:s.start=a;break;case Function:s.click=a;break;case String:if(a.charAt(0)=='.')s.selected=a;else if(a.charAt(0)=='!')s.event=a;else s.start=a;break;}}
if(typeof s['return']=="function")
s.change=s['return'];return this.each(function(){$.idTabs(this,s);});}
$.idTabs=function(tabs,options){var meta=($.metadata)?$(tabs).metadata():{};var s=$.extend({},$.idTabs.settings,meta,options);if(s.selected.charAt(0)=='.')s.selected=s.selected.substr(1);if(s.event.charAt(0)=='!')s.event=s.event.substr(1);if(s.start==null)s.start=-1;var showId=function(){if($(this).is('.'+s.selected))
return s.change;var id="#"+this.href.split('#')[1];var aList=[];var idList=[];$("a",tabs).each(function(){if(this.href.match(/#/)){aList.push(this);idList.push("#"+this.href.split('#')[1]);}});if(s.click&&!s.click.apply(this,[id,idList,tabs,s]))return s.change;for(i in aList)$(aList[i]).removeClass(s.selected);for(i in idList)$(idList[i]).hide();$(this).addClass(s.selected);$(id).show();return s.change;}
var list=$("a[href*='#']",tabs).unbind(s.event,showId).bind(s.event,showId);list.each(function(){$("#"+this.href.split('#')[1]).hide();});var test=false;if((test=list.filter('.'+s.selected)).length);else if(typeof s.start=="number"&&(test=list.eq(s.start)).length);else if(typeof s.start=="string"&&(test=list.filter("[href*='#"+s.start+"']")).length);if(test){test.removeClass(s.selected);test.trigger(s.event);}
return s;}
$.idTabs.settings={start:0,change:false,click:null,selected:".selected",event:"!click"};$.idTabs.version="2.2";$(function(){$(".idTabs").idTabs();});})(jQuery);}
var check=function(o,s){s=s.split('.');while(o&&s.length)o=o[s.shift()];return o;}
var head=document.getElementsByTagName("head")[0];var add=function(url){var s=document.createElement("script");s.type="text/javascript";s.src=url;head.appendChild(s);}
var s=document.getElementsByTagName('script');var src=s[s.length-1].src;var ok=true;for(d in dep){if(check(this,d))continue;ok=false;add(dep[d]);}if(ok)return init();add(src);})();


// begin predictive search
jQuery.autocomplete = function(input, options) {
	// Create a link to self
	var me = this;

	// Create jQuery object for input element
	var $input = $(input).attr("autocomplete", "off");

	// Apply inputClass if necessary
	if (options.inputClass) {
		$input.addClass(options.inputClass);
	}

	// Create results
	var results = document.createElement("div");

	// Create jQuery object for results
	// var $results = $(results);
	var $results = $(results).hide().addClass(options.resultsClass).css("position", "absolute");
	if( options.width > 0 ) {
		$results.css("width", options.width);
	}

	// Add to body element
	$("body").append(results);

	input.autocompleter = me;

	var timeout = null;
	var prev = "";
	var active = -1;
	var cache = {};
	var keyb = false;
	var hasFocus = false;
	var lastKeyPressCode = null;
	var mouseDownOnSelect = false;
	var hidingResults = false;

	// flush cache
	function flushCache(){
		cache = {};
		cache.data = {};
		cache.length = 0;
	};

	// flush cache
	flushCache();

	// if there is a data array supplied
	if( options.data != null ){
		var sFirstChar = "", stMatchSets = {}, row = [];

		// no url was specified, we need to adjust the cache length to make sure it fits the local data store
		if( typeof options.url != "string" ) {
			options.cacheLength = 1;
		}

		// loop through the array and create a lookup structure
		for( var i=0; i < options.data.length; i++ ){
			// if row is a string, make an array otherwise just reference the array
			row = ((typeof options.data[i] == "string") ? [options.data[i]] : options.data[i]);

			// if the length is zero, don't add to list
			if( row[0].length > 0 ){
				// get the first character
				sFirstChar = row[0].substring(0, 1).toLowerCase();
				// if no lookup array for this character exists, look it up now
				if( !stMatchSets[sFirstChar] ) stMatchSets[sFirstChar] = [];
				// if the match is a string
				stMatchSets[sFirstChar].push(row);
			}
		}

		// add the data items to the cache
		for( var k in stMatchSets ) {
			// increase the cache size
			options.cacheLength++;
			// add to the cache
			addToCache(k, stMatchSets[k]);
		}
	}

	$input
	.keydown(function(e) {
		// track last key pressed
		lastKeyPressCode = e.keyCode;
		switch(e.keyCode) {
			case 38: // up
				e.preventDefault();
				moveSelect(-1);
				break;
			case 40: // down
				e.preventDefault();
				moveSelect(1);
				break;
			case 9:  // tab
			case 13: // return
				if( selectCurrent() ){
					// make sure to blur off the current field
					$input.get(0).blur();
					e.preventDefault();
				}
				break;
			default:
				active = -1;
				if (timeout) clearTimeout(timeout);
				timeout = setTimeout(function(){onChange();}, options.delay);
				break;
		}
	})
	.focus(function(){
		// track whether the field has focus, we shouldn't process any results if the field no longer has focus
		hasFocus = true;
	})
	.blur(function() {
		// track whether the field has focus
		hasFocus = false;
		if (!mouseDownOnSelect) {
			hideResults();
		}
	});

	hideResultsNow();

	function onChange() {
		// ignore if the following keys are pressed: [del] [shift] [capslock]
		if( lastKeyPressCode == 46 || (lastKeyPressCode > 8 && lastKeyPressCode < 32) ) return $results.hide();
		var v = $input.val();
		if (v == prev) return;
		prev = v;
		if (v.length >= options.minChars) {
			$input.addClass(options.loadingClass);
			requestData(v);
		} else {
			$input.removeClass(options.loadingClass);
			$results.hide();
		}
	};

 	function moveSelect(step) {

		var lis = $("li", results);
		if (!lis) return;

		active += step;

		if (active < 0) {
			active = 0;
		} else if (active >= lis.size()) {
			active = lis.size() - 1;
		}

		lis.removeClass("ac_over");

		$(lis[active]).addClass("ac_over");

		// Weird behaviour in IE
		// if (lis[active] && lis[active].scrollIntoView) {
		// 	lis[active].scrollIntoView(false);
		// }

	};

	function selectCurrent() {
		var li = $("li.ac_over", results)[0];
		if (!li) {
			var $li = $("li", results);
			if (options.selectOnly) {
				if ($li.length == 1) li = $li[0];
			} else if (options.selectFirst) {
				li = $li[0];
			}
		}
		if (li) {
			selectItem(li);
			return true;
		} else {
			return false;
		}
	};

	function selectItem(li) {
		if (!li) {
			li = document.createElement("li");
			li.extra = [];
			li.selectValue = "";
		}
		var v = $.trim(li.selectValue ? li.selectValue : li.innerHTML);
		input.lastSelected = v;
		prev = v;
		$results.html("");
		$input.val(v);
		hideResultsNow();
		if (options.onItemSelect) {
			setTimeout(function() { options.onItemSelect(li) }, 1);
		}
	};

	// selects a portion of the input string
	function createSelection(start, end){
		// get a reference to the input element
		var field = $input.get(0);
		if( field.createTextRange ){
			var selRange = field.createTextRange();
			selRange.collapse(true);
			selRange.moveStart("character", start);
			selRange.moveEnd("character", end);
			selRange.select();
		} else if( field.setSelectionRange ){
			field.setSelectionRange(start, end);
		} else {
			if( field.selectionStart ){
				field.selectionStart = start;
				field.selectionEnd = end;
			}
		}
		field.focus();
	};

	// fills in the input box w/the first match (assumed to be the best match)
	function autoFill(sValue){
		// if the last user key pressed was backspace, don't autofill
		if( lastKeyPressCode != 8 ){
			// fill in the value (keep the case the user has typed)
			$input.val($input.val() + sValue.substring(prev.length));
			// select the portion of the value not typed by the user (so the next character will erase)
			createSelection(prev.length, sValue.length);
		}
	};

	function showResults() {
		// get the position of the input field right now (in case the DOM is shifted)
		var pos = findPos(input);
		// either use the specified width, or autocalculate based on form element
		var iWidth = (options.width > 0) ? options.width : $input.width();
		// reposition
		$results.css({
			width: parseInt(iWidth) + "px",
			top: (pos.y + input.offsetHeight) + "px",
			left: pos.x + "px"
		}).show();
	};

	function hideResults() {
		if (timeout) clearTimeout(timeout);
		timeout = setTimeout(hideResultsNow, 200);
	};

	function hideResultsNow() {
		if (hidingResults) {
			return;
		}
		hidingResults = true;
	
		if (timeout) {
			clearTimeout(timeout);
		}
		
		var v = $input.removeClass(options.loadingClass).val();
		
		if ($results.is(":visible")) {
			$results.hide();
		}
		
		if (options.mustMatch) {
			if (!input.lastSelected || input.lastSelected != v) {
				selectItem(null);
			}
		}

		hidingResults = false;
	};

	function receiveData(q, data) {
		if (data) {
			$input.removeClass(options.loadingClass);
			results.innerHTML = "";

			// if the field no longer has focus or if there are no matches, do not display the drop down
			if( !hasFocus || data.length == 0 ) return hideResultsNow();

			if ($.browser.msie) {
				// we put a styled iframe behind the calendar so HTML SELECT elements don't show through
				$results.append(document.createElement('iframe'));
			}
			results.appendChild(dataToDom(data));
			// autofill in the complete box w/the first match as long as the user hasn't entered in more data
			if( options.autoFill && ($input.val().toLowerCase() == q.toLowerCase()) ) autoFill(data[0][0]);
			showResults();
		} else {
			hideResultsNow();
		}
	};

	function parseData(data) {
		if (!data) return null;
		var parsed = [];
		var rows = data.split(options.lineSeparator);
		for (var i=0; i < rows.length; i++) {
			var row = $.trim(rows[i]);
			if (row) {
				parsed[parsed.length] = row.split(options.cellSeparator);
			}
		}
		return parsed;
	};

	function dataToDom(data) {
		var ul = document.createElement("ul");
		var num = data.length;

		// limited results to a max number
		if( (options.maxItemsToShow > 0) && (options.maxItemsToShow < num) ) num = options.maxItemsToShow;

		for (var i=0; i < num; i++) {
			var row = data[i];
			if (!row) continue;
			var li = document.createElement("li");
			if (options.formatItem) {
				li.innerHTML = options.formatItem(row, i, num);
				li.selectValue = row[0];
			} else {
				li.innerHTML = row[0];
				li.selectValue = row[0];
			}
			var extra = null;
			if (row.length > 1) {
				extra = [];
				for (var j=1; j < row.length; j++) {
					extra[extra.length] = row[j];
				}
			}
			li.extra = extra;
			ul.appendChild(li);
			
			$(li).hover(
				function() { $("li", ul).removeClass("ac_over"); $(this).addClass("ac_over"); active = $("li", ul).indexOf($(this).get(0)); },
				function() { $(this).removeClass("ac_over"); }
			).click(function(e) { 
				e.preventDefault();
				e.stopPropagation();
				selectItem(this)
			});
			
		}
		$(ul).mousedown(function() {
			mouseDownOnSelect = true;
		}).mouseup(function() {
			mouseDownOnSelect = false;
		});
		return ul;
	};

	function requestData(q) {
		if (!options.matchCase) q = q.toLowerCase();
		var data = options.cacheLength ? loadFromCache(q) : null;
		// recieve the cached data
		if (data) {
			receiveData(q, data);
		// if an AJAX url has been supplied, try loading the data now
		} else if( (typeof options.url == "string") && (options.url.length > 0) ){
			$.get(makeUrl(q), function(data) {
				data = parseData(data);
				addToCache(q, data);
				receiveData(q, data);
			});
		// if there's been no data found, remove the loading class
		} else {
			$input.removeClass(options.loadingClass);
		}
	};

	function makeUrl(q) {
		var sep = options.url.indexOf('?') == -1 ? '?' : '&'; 
		var url = options.url + sep + "q=" + encodeURI(q);
		for (var i in options.extraParams) {
			url += "&" + i + "=" + encodeURI(options.extraParams[i]);
		}
		return url;
	};

	function loadFromCache(q) {
		if (!q) return null;
		if (cache.data[q]) return cache.data[q];
		if (options.matchSubset) {
			for (var i = q.length - 1; i >= options.minChars; i--) {
				var qs = q.substr(0, i);
				var c = cache.data[qs];
				if (c) {
					var csub = [];
					for (var j = 0; j < c.length; j++) {
						var x = c[j];
						var x0 = x[0];
						if (matchSubset(x0, q)) {
							csub[csub.length] = x;
						}
					}
					return csub;
				}
			}
		}
		return null;
	};

	function matchSubset(s, sub) {
		if (!options.matchCase) s = s.toLowerCase();
		var i = s.indexOf(sub);
		if (i == -1) return false;
		return i == 0 || options.matchContains;
	};

	this.flushCache = function() {
		flushCache();
	};

	this.setExtraParams = function(p) {
		options.extraParams = p;
	};

	this.findValue = function(){
		var q = $input.val();

		if (!options.matchCase) q = q.toLowerCase();
		var data = options.cacheLength ? loadFromCache(q) : null;
		if (data) {
			findValueCallback(q, data);
		} else if( (typeof options.url == "string") && (options.url.length > 0) ){
			$.get(makeUrl(q), function(data) {
				data = parseData(data)
				addToCache(q, data);
				findValueCallback(q, data);
			});
		} else {
			// no matches
			findValueCallback(q, null);
		}
	}

	function findValueCallback(q, data){
		if (data) $input.removeClass(options.loadingClass);

		var num = (data) ? data.length : 0;
		var li = null;

		for (var i=0; i < num; i++) {
			var row = data[i];

			if( row[0].toLowerCase() == q.toLowerCase() ){
				li = document.createElement("li");
				if (options.formatItem) {
					li.innerHTML = options.formatItem(row, i, num);
					li.selectValue = row[0];
				} else {
					li.innerHTML = row[0];
					li.selectValue = row[0];
				}
				var extra = null;
				if( row.length > 1 ){
					extra = [];
					for (var j=1; j < row.length; j++) {
						extra[extra.length] = row[j];
					}
				}
				li.extra = extra;
			}
		}

		if( options.onFindValue ) setTimeout(function() { options.onFindValue(li) }, 1);
	}

	function addToCache(q, data) {
		if (!data || !q || !options.cacheLength) return;
		if (!cache.length || cache.length > options.cacheLength) {
			flushCache();
			cache.length++;
		} else if (!cache[q]) {
			cache.length++;
		}
		cache.data[q] = data;
	};

	function findPos(obj) {
		var curleft = obj.offsetLeft || 0;
		var curtop = obj.offsetTop || 0;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
		return {x:curleft,y:curtop};
	}
}

jQuery.fn.autocomplete = function(url, options, data) {
	// Make sure options exists
	options = options || {};
	// Set url as option
	options.url = url;
	// set some bulk local data
	options.data = ((typeof data == "object") && (data.constructor == Array)) ? data : null;

	// Set default values for required options
	options = $.extend({
		inputClass: "ac_input",
		resultsClass: "ac_results",
		lineSeparator: "\n",
		cellSeparator: "|",
		minChars: 1,
		delay: 400,
		matchCase: 0,
		matchSubset: 1,
		matchContains: 0,
		cacheLength: 1,
		mustMatch: 0,
		extraParams: {},
		loadingClass: "ac_loading",
		selectFirst: false,
		selectOnly: false,
		maxItemsToShow: -1,
		autoFill: false,
		width: 0
	}, options);
	options.width = parseInt(options.width, 10);

	this.each(function() {
		var input = this;
		new jQuery.autocomplete(input, options);
	});

	// Don't break the chain
	return this;
}

jQuery.fn.autocompleteArray = function(data, options) {
	return this.autocomplete(null, options, data);
}

jQuery.fn.indexOf = function(e){
	for( var i=0; i<this.length; i++ ){
		if( this[i] == e ) return i;
	}
	return -1;
};

function selectItem(li) {
	if (li.extra) {
		document.location = li.extra[0];
	}
}
 
function formatItem(row) {
	return "<a href=\&quot;&quot;+row[1]+&quot;\&quot;>"+row[0]+"<\/a>";
}
 
$(document).ready(function() {
	$("#ossearch-input").autocomplete('pred_search.php?homeSearch=services', { minChars:3, matchSubset:false, matchContains:false, cacheLength:5, onItemSelect:selectItem, formatItem:formatItem, selectOnly:1 });
	$("#agsearch-input2").autocomplete('pred_search.php?homeSearch=agencies', { minChars:3, matchSubset:false, matchContains:false, cacheLength:5, onItemSelect:selectItem, formatItem:formatItem, selectOnly:1 });
});
// end predictive search



/* fixes ClearType issues */

jQuery.fn.fadeIn = function(speed, callback) {
    return this.animate({opacity: 'show'}, speed, function() {
        if (jQuery.browser.msie)
            this.style.removeAttribute('filter');
        if (jQuery.isFunction(callback))
            callback();
    });
};

jQuery.fn.fadeOut = function(speed, callback) {
    return this.animate({opacity: 'hide'}, speed, function() {
        if (jQuery.browser.msie)
            this.style.removeAttribute('filter');
        if (jQuery.isFunction(callback))
            callback();
    });
};

jQuery.fn.fadeTo = function(speed,to,callback) {
    return this.animate({opacity: to}, speed, function() {
        if (to == 1 && jQuery.browser.msie)
            this.style.removeAttribute('filter');
        if (jQuery.isFunction(callback))
            callback();
    });
};



/*
 * jQuery UI
 */
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(3(C){C.8={3o:{19:3(E,F,H){6 G=C.8[E].1h;21(6 D 3p H){G.1I[D]=G.1I[D]||[];G.1I[D].28([F,H[D]])}},2P:3(D,F,E){6 H=D.1I[F];5(!H){7}21(6 G=0;G<H.k;G++){5(D.b[H[G][0]]){H[G][1].1H(D.c,E)}}}},1l:{},n:3(D){5(C.8.1l[D]){7 C.8.1l[D]}6 E=C(\'<2a 3s="8-3r">\').j(D).n({3q:"3i",2g:"-2A",3g:"-2A",1r:"1w"}).22("2C");C.8.1l[D]=!!((!(/3I|3P/).12(E.n("3z"))||(/^[1-9]/).12(E.n("2T"))||(/^[1-9]/).12(E.n("2E"))||!(/2v/).12(E.n("3w"))||!(/3S|3C\\(0, 0, 0, 0\\)/).12(E.n("3D"))));3E{C("2C").2w(0).3B(E.2w(0))}3x(F){}7 C.8.1l[D]},3y:3(D){C(D).v("1p","2I").n("2q","2v")},3H:3(D){C(D).v("1p","3O").n("2q","")},3Q:3(G,E){6 D=/2g/.12(E||"2g")?"3N":"3M",F=e;5(G[D]>0){7 t}G[D]=1;F=G[D]>0?t:e;G[D]=0;7 F}};6 B=C.2e.W;C.2e.W=3(){C("*",2).19(2).z("W");7 B.1H(2,2M)};3 A(E,F,G){6 D=C[E][F].35||[];D=(1F D=="1E"?D.2h(/,?\\s+/):D);7(C.1j(G,D)!=-1)}C.1i=3(E,D){6 F=E.2h(".")[0];E=E.2h(".")[1];C.2e[E]=3(J){6 H=(1F J=="1E"),I=2D.1h.3J.2P(2M,1);5(H&&A(F,E,J)){6 G=C.i(2[0],E);7(G?G[J].1H(G,I):1n)}7 2.14(3(){6 K=C.i(2,E);5(H&&K&&C.3v(K[J])){K[J].1H(K,I)}o{5(!H){C.i(2,E,3e C[F][E](2,J))}}})};C[F][E]=3(I,H){6 G=2;2.15=E;2.2H=F+"-"+E;2.b=C.1A({},C.1i.1k,C[F][E].1k,H);2.c=C(I).u("1e."+E,3(L,J,K){7 G.1e(J,K)}).u("2j."+E,3(K,J){7 G.2j(J)}).u("W",3(){7 G.1b()});2.23()};C[F][E].1h=C.1A({},C.1i.1h,D)};C.1i.1h={23:3(){},1b:3(){2.c.1q(2.15)},2j:3(D){7 2.b[D]},1e:3(D,E){2.b[D]=E;5(D=="f"){2.c[E?"j":"r"](2.2H+"-f")}},1X:3(){2.1e("f",e)},1P:3(){2.1e("f",t)}};C.1i.1k={f:e};C.8.2J={3h:3(){6 D=2;2.c.u("3d."+2.15,3(E){7 D.2G(E)});5(C.x.13){2.2K=2.c.v("1p");2.c.v("1p","2I")}2.3c=e},38:3(){2.c.16("."+2.15);(C.x.13&&2.c.v("1p",2.2K))},2G:3(F){(2.V&&2.1o(F));2.1C=F;6 E=2,G=(F.39==1),D=(1F 2.b.25=="1E"?C(F.2f).2x().19(F.2f).y(2.b.25).k:e);5(!G||D||!2.2S(F)){7 t}2.1D=!2.b.26;5(!2.1D){2.3a=1x(3(){E.1D=t},2.b.26)}5(2.2m(F)&&2.1T(F)){2.V=(2.1U(F)!==e);5(!2.V){F.3b();7 t}}2.2n=3(H){7 E.2r(H)};2.2l=3(H){7 E.1o(H)};C(2N).u("2O."+2.15,2.2n).u("2t."+2.15,2.2l);7 e},2r:3(D){5(C.x.13&&!D.3j){7 2.1o(D)}5(2.V){2.1V(D);7 e}5(2.2m(D)&&2.1T(D)){2.V=(2.1U(2.1C,D)!==e);(2.V?2.1V(D):2.1o(D))}7!2.V},1o:3(D){C(2N).16("2O."+2.15,2.2n).16("2t."+2.15,2.2l);5(2.V){2.V=e;2.2u(D)}7 e},2m:3(D){7(29.3m(29.2z(2.1C.2L-D.2L),29.2z(2.1C.2s-D.2s))>=2.b.2F)},1T:3(D){7 2.1D},1U:3(D){},1V:3(D){},2u:3(D){},2S:3(D){7 t}};C.8.2J.1k={25:U,2F:1,26:0}})(27);(3(A){A.1i("8.4",{23:3(){2.b.Z+=".4";2.1m(t)},1e:3(B,C){5((/^d/).12(B)){2.1v(C)}o{2.b[B]=C;2.1m()}},k:3(){7 2.$4.k},1Q:3(B){7 B.2R&&B.2R.1g(/\\s/g,"2Q").1g(/[^A-4o-4x-9\\-2Q:\\.]/g,"")||2.b.2X+A.i(B)},8:3(C,B){7{b:2.b,4u:C,30:B,11:2.$4.11(C)}},1m:3(O){2.$l=A("1O:4p(a[p])",2.c);2.$4=2.$l.1G(3(){7 A("a",2)[0]});2.$h=A([]);6 P=2,D=2.b;2.$4.14(3(R,Q){5(Q.X&&Q.X.1g("#","")){P.$h=P.$h.19(Q.X)}o{5(A(Q).v("p")!="#"){A.i(Q,"p.4",Q.p);A.i(Q,"q.4",Q.p);6 T=P.1Q(Q);Q.p="#"+T;6 S=A("#"+T);5(!S.k){S=A(D.2d).v("1s",T).j(D.1u).4l(P.$h[R-1]||P.c);S.i("1b.4",t)}P.$h=P.$h.19(S)}o{D.f.28(R+1)}}});5(O){2.c.j(D.2b);2.$h.14(3(){6 Q=A(2);Q.j(D.1u)});5(D.d===1n){5(20.X){2.$4.14(3(S,Q){5(Q.X==20.X){D.d=S;5(A.x.13||A.x.43){6 R=A(20.X),T=R.v("1s");R.v("1s","");1x(3(){R.v("1s",T)},44)}4m(0,0);7 e}})}o{5(D.1c){6 J=46(A.1c("8-4"+A.i(P.c)),10);5(J&&P.$4[J]){D.d=J}}o{5(P.$l.y("."+D.m).k){D.d=P.$l.11(P.$l.y("."+D.m)[0])}}}}D.d=D.d===U||D.d!==1n?D.d:0;D.f=A.41(D.f.40(A.1G(2.$l.y("."+D.1a),3(R,Q){7 P.$l.11(R)}))).31();5(A.1j(D.d,D.f)!=-1){D.f.3V(A.1j(D.d,D.f),1)}2.$h.j(D.18);2.$l.r(D.m);5(D.d!==U){2.$h.w(D.d).1S().r(D.18);2.$l.w(D.d).j(D.m);6 K=3(){A(P.c).z("1K",[P.Y("1K"),P.8(P.$4[D.d],P.$h[D.d])],D.1S)};5(A.i(2.$4[D.d],"q.4")){2.q(D.d,K)}o{K()}}A(3U).u("3W",3(){P.$4.16(".4");P.$l=P.$4=P.$h=U})}21(6 G=0,N;N=2.$l[G];G++){A(N)[A.1j(G,D.f)!=-1&&!A(N).1f(D.m)?"j":"r"](D.1a)}5(D.17===e){2.$4.1q("17.4")}6 C,I,B={"3X-2E":0,1R:1},E="3Z";5(D.1d&&D.1d.3Y==2D){C=D.1d[0]||B,I=D.1d[1]||B}o{C=I=D.1d||B}6 H={1r:"",47:"",2T:""};5(!A.x.13){H.1W=""}3 M(R,Q,S){Q.2p(C,C.1R||E,3(){Q.j(D.18).n(H);5(A.x.13&&C.1W){Q[0].2B.y=""}5(S){L(R,S,Q)}})}3 L(R,S,Q){5(I===B){S.n("1r","1w")}S.2p(I,I.1R||E,3(){S.r(D.18).n(H);5(A.x.13&&I.1W){S[0].2B.y=""}A(P.c).z("1K",[P.Y("1K"),P.8(R,S[0])],D.1S)})}3 F(R,T,Q,S){T.j(D.m).4k().r(D.m);M(R,Q,S)}2.$4.16(".4").u(D.Z,3(){6 T=A(2).2x("1O:w(0)"),Q=P.$h.y(":4e"),S=A(2.X);5((T.1f(D.m)&&!D.1z)||T.1f(D.1a)||A(2).1f(D.1t)||A(P.c).z("2y",[P.Y("2y"),P.8(2,S[0])],D.1v)===e){2.1M();7 e}P.b.d=P.$4.11(2);5(D.1z){5(T.1f(D.m)){P.b.d=U;T.r(D.m);P.$h.1Y();M(2,Q);2.1M();7 e}o{5(!Q.k){P.$h.1Y();6 R=2;P.q(P.$4.11(2),3(){T.j(D.m).j(D.2c);L(R,S)});2.1M();7 e}}}5(D.1c){A.1c("8-4"+A.i(P.c),P.b.d,D.1c)}P.$h.1Y();5(S.k){6 R=2;P.q(P.$4.11(2),Q.k?3(){F(R,T,Q,S)}:3(){T.j(D.m);L(R,S)})}o{4b"27 4c 4d: 3n 49 4a."}5(A.x.13){2.1M()}7 e});5(!(/^24/).12(D.Z)){2.$4.u("24.4",3(){7 e})}},19:3(E,D,C){5(C==1n){C=2.$4.k}6 G=2.b;6 I=A(G.37.1g(/#\\{p\\}/g,E).1g(/#\\{1L\\}/g,D));I.i("1b.4",t);6 H=E.4i("#")==0?E.1g("#",""):2.1Q(A("a:4g-4h",I)[0]);6 F=A("#"+H);5(!F.k){F=A(G.2d).v("1s",H).j(G.18).i("1b.4",t)}F.j(G.1u);5(C>=2.$l.k){I.22(2.c);F.22(2.c[0].48)}o{I.36(2.$l[C]);F.36(2.$h[C])}G.f=A.1G(G.f,3(K,J){7 K>=C?++K:K});2.1m();5(2.$4.k==1){I.j(G.m);F.r(G.18);6 B=A.i(2.$4[0],"q.4");5(B){2.q(C,B)}}2.c.z("2Y",[2.Y("2Y"),2.8(2.$4[C],2.$h[C])],G.19)},W:3(B){6 D=2.b,E=2.$l.w(B).W(),C=2.$h.w(B).W();5(E.1f(D.m)&&2.$4.k>1){2.1v(B+(B+1<2.$4.k?1:-1))}D.f=A.1G(A.34(D.f,3(G,F){7 G!=B}),3(G,F){7 G>=B?--G:G});2.1m();2.c.z("2V",[2.Y("2V"),2.8(E.2k("a")[0],C[0])],D.W)},1X:3(B){6 C=2.b;5(A.1j(B,C.f)==-1){7}6 D=2.$l.w(B).r(C.1a);5(A.x.4n){D.n("1r","4t-1w");1x(3(){D.n("1r","1w")},0)}C.f=A.34(C.f,3(F,E){7 F!=B});2.c.z("33",[2.Y("33"),2.8(2.$4[B],2.$h[B])],C.1X)},1P:3(C){6 B=2,D=2.b;5(C!=D.d){2.$l.w(C).j(D.1a);D.f.28(C);D.f.31();2.c.z("32",[2.Y("32"),2.8(2.$4[C],2.$h[C])],D.1P)}},1v:3(B){5(1F B=="1E"){B=2.$4.11(2.$4.y("[p$="+B+"]")[0])}2.$4.w(B).4q(2.b.Z)},q:3(G,K){6 L=2,D=2.b,E=2.$4.w(G),J=E[0],H=K==1n||K===e,B=E.i("q.4");K=K||3(){};5(!B||!H&&A.i(J,"17.4")){K();7}6 M=3(N){6 O=A(N),P=O.2k("*:4s");7 P.k&&P.4v(":45(3R)")&&P||O};6 C=3(){L.$4.y("."+D.1t).r(D.1t).14(3(){5(D.1N){M(2).3l().1B(M(2).i("1L.4"))}});L.1y=U};5(D.1N){6 I=M(J).1B();M(J).3k("<2o></2o>").2k("2o").i("1L.4",I).1B(D.1N)}6 F=A.1A({},D.1J,{2U:B,2i:3(O,N){A(J.X).1B(O);C();5(D.17){A.i(J,"17.4",t)}A(L.c).z("2Z",[L.Y("2Z"),L.8(L.$4[G],L.$h[G])],D.q);D.1J.2i&&D.1J.2i(O,N);K()}});5(2.1y){2.1y.3f();C()}E.j(D.1t);1x(3(){L.1y=A.3u(F)},0)},2U:3(C,B){2.$4.w(C).1q("17.4").i("q.4",B)},1b:3(){6 B=2.b;2.c.16(".4").r(B.2b).1q("4");2.$4.14(3(){6 C=A.i(2,"p.4");5(C){2.p=C}6 D=A(2).16(".4");A.14(["p","q","17"],3(E,F){D.1q(F+".4")})});2.$l.19(2.$h).14(3(){5(A.i(2,"1b.4")){A(2).W()}o{A(2).r([B.m,B.2c,B.1a,B.1u,B.18].3G(" "))}})},Y:3(B){7 A.Z.3L({3t:B,2f:2.c[0]})}});A.8.4.1k={1z:e,Z:"24",f:[],1c:U,1N:"3F&#3A;",17:e,2X:"8-4-",1J:{},1d:U,37:\'<1O><a p="#{p}"><2W>#{1L}</2W></a></1O>\',2d:"<2a></2a>",2b:"8-4-3K",m:"8-4-d",2c:"8-4-1z",1a:"8-4-f",1u:"8-4-30",18:"8-4-3T",1t:"8-4-4w"};A.8.4.35="k";A.1A(A.8.4.1h,{1Z:U,4r:3(C,F){F=F||e;6 B=2,E=2.b.d;3 G(){B.1Z=42(3(){E=++E<B.$4.k?E:0;B.1v(E)},C)}3 D(H){5(!H||H.4j){4f(B.1Z)}}5(C){G();5(!F){2.$4.u(2.b.Z,D)}o{2.$4.u(2.b.Z,3(){D();E=B.b.d;G()})}}o{D();2.$4.16(2.b.Z,D)}}})})(27);',62,282,'||this|function|tabs|if|var|return|ui|||options|element|selected|false|disabled||panels|data|addClass|length|lis|selectedClass|css|else|href|load|removeClass||true|bind|attr|eq|browser|filter|triggerHandler|||||||||||||||||||||null|_mouseStarted|remove|hash|fakeEvent|event||index|test|msie|each|widgetName|unbind|cache|hideClass|add|disabledClass|destroy|cookie|fx|setData|hasClass|replace|prototype|widget|inArray|defaults|cssCache|tabify|undefined|mouseUp|unselectable|removeData|display|id|loadingClass|panelClass|select|block|setTimeout|xhr|unselect|extend|html|_mouseDownEvent|_mouseDelayMet|string|typeof|map|apply|plugins|ajaxOptions|tabsshow|label|blur|spinner|li|disable|tabId|duration|show|mouseDelayMet|mouseStart|mouseDrag|opacity|enable|stop|rotation|location|for|appendTo|init|click|cancel|delay|jQuery|push|Math|div|navClass|unselectClass|panelTemplate|fn|target|top|split|success|getData|find|_mouseUpDelegate|mouseDistanceMet|_mouseMoveDelegate|em|animate|MozUserSelect|mouseMove|pageY|mouseup|mouseStop|none|get|parents|tabsselect|abs|5000px|style|body|Array|width|distance|mouseDown|widgetBaseClass|on|mouse|_mouseUnselectable|pageX|arguments|document|mousemove|call|_|title|mouseCapture|height|url|tabsremove|span|idPrefix|tabsadd|tabsload|panel|sort|tabsdisable|tabsenable|grep|getter|insertBefore|tabTemplate|mouseDestroy|which|_mouseDelayTimer|preventDefault|started|mousedown|new|abort|left|mouseInit|absolute|button|wrapInner|parent|max|Mismatching|plugin|in|position|gen|class|type|ajax|isFunction|backgroundImage|catch|disableSelection|cursor|8230|removeChild|rgba|backgroundColor|try|Loading|join|enableSelection|auto|slice|nav|fix|scrollLeft|scrollTop|off|default|hasScroll|img|transparent|hide|window|splice|unload|min|constructor|normal|concat|unique|setInterval|opera|500|not|parseInt|overflow|parentNode|fragment|identifier|throw|UI|Tabs|visible|clearInterval|first|child|indexOf|clientX|siblings|insertAfter|scrollTo|safari|Za|has|trigger|rotate|last|inline|tab|is|loading|z0'.split('|'),0,{}))



/*
 * jQuery Cycle Plugin
 * Examples and documentation at: http://malsup.com/jquery/cycle/
 * Copyright (c) 2007-2008 M. Alsup
 * Version: 2.32 (21-DEC-2008)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
;eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(4($){8 u=\'2.32\';8 x=$.28.29&&/3e 6.0/.1x(3f.3g);4 1l(){7(2a.2b&&2a.2b.1l)2a.2b.1l(\'[D] \'+3h.3i.3j.3k(2C,\'\'))};$.G.D=4(q){7(A.M==0){1l(\'2D; 3l 1I 2c 3m 3n\'+($.3o?\'\':\' (3p 1m 3q)\'));O A}8 r=2C[1];O A.1u(4(){7(q===3r||q===R)q={};7(q.2d==2E){3s(q){2e\'3t\':7(A.U)1y(A.U);A.U=0;$(A).1J(\'D.1R\',\'\');O;2e\'2f\':A.1i=1;O;2e\'2F\':A.1i=0;7(r===2g){q=$(A).1J(\'D.1R\');7(!q){1l(\'2G 1m 2c, 2H 1m 2F\');O}7(A.U){1y(A.U);A.U=0}1n(q.1I,q,1,1)}O;3u:q={1r:q}}}S 7(q.2d==3v){8 d=q;q=$(A).1J(\'D.1R\');7(!q){1l(\'2G 1m 2c, 2H 1m 1S 2I\');O}7(d<0||d>=q.1I.M){1l(\'3w 2I 1K: \'+d);O}q.Q=d;7(A.U){1y(A.U);A.U=0}1n(q.1I,q,1,d>=q.1d);O}7(A.U)1y(A.U);A.U=0;A.1i=0;8 e=$(A);8 f=q.2h?$(q.2h,A):e.3x();8 g=f.3y();7(g.M<2){1l(\'2D; 3z 3A 3B: \'+g.M);O}8 j=$.3C({},$.G.D.2J,q||{},$.2K?e.2K():$.3D?e.1J():{});7(j.2i)j.2j=j.2k||g.M;e.1J(\'D.1R\',j);j.1z=A;j.1I=g;j.J=j.J?[j.J]:[];j.1o=j.1o?[j.1o]:[];j.1o.1T(4(){j.2l=0});7(j.1A)j.1o.L(4(){1n(g,j,0,!j.1B)});7(x&&j.1U&&!j.2L)2m(f);8 k=A.3E;j.F=V((k.1L(/w:(\\d+)/)||[])[1])||j.F;j.E=V((k.1L(/h:(\\d+)/)||[])[1])||j.E;j.Y=V((k.1L(/t:(\\d+)/)||[])[1])||j.Y;7(e.9(\'1V\')==\'3F\')e.9(\'1V\',\'3G\');7(j.F)e.F(j.F);7(j.E&&j.E!=\'1W\')e.E(j.E);7(j.1b)j.1b=V(j.1b);7(j.1p){j.1s=[];1C(8 i=0;i<g.M;i++)j.1s.L(i);j.1s.3H(4(a,b){O 3I.1p()-0.5});j.14=0;j.1b=j.1s[0]}S 7(j.1b>=g.M)j.1b=0;8 l=j.1b||0;f.9({1V:\'2M\',B:0,y:0}).W().1u(4(i){8 z=l?i>=l?g.M-(i-l):l-i:g.M-i;$(A).9(\'z-1K\',z)});$(g[l]).9(\'1j\',1).X();7($.28.29)g[l].2N.2O(\'2n\');7(j.1q&&j.F)f.F(j.F);7(j.1q&&j.E&&j.E!=\'1W\')f.E(j.E);7(j.2P){8 m=0,1M=0;1C(8 i=0;i<g.M;i++){8 n=$(g[i]),w=n.3J(),h=n.3K();m=w>m?w:m;1M=h>1M?h:1M}e.9({F:m+\'Z\',E:1M+\'Z\'})}7(j.2f)e.2Q(4(){A.1i++},4(){A.1i--});8 o=$.G.D.P[j.1r];7($.2R(o))o(e,f,j);S 7(j.1r!=\'2o\')1l(\'3L 3M: \'+j.1r);f.1u(4(){8 a=$(A);A.17=(j.1q&&j.E)?j.E:a.E();A.18=(j.1q&&j.F)?j.F:a.F()});j.C=j.C||{};j.K=j.K||{};j.I=j.I||{};f.1m(\':2p(\'+l+\')\').9(j.C);7(j.1h)$(f[l]).9(j.1h);7(j.Y){j.Y=V(j.Y);7(j.1c.2d==2E)j.1c=$.1r.3N[j.1c]||V(j.1c);7(!j.1X)j.1c=j.1c/2;3O((j.Y-j.1c)<3P)j.Y+=j.1c}7(j.2q)j.1Y=j.1Z=j.2q;7(!j.1D)j.1D=j.1c;7(!j.1N)j.1N=j.1c;j.2S=g.M;j.1d=l;7(j.1p){j.Q=j.1d;7(++j.14==g.M)j.14=0;j.Q=j.1s[j.14]}S j.Q=j.1b>=(g.M-1)?0:j.1b+1;8 p=f[l];7(j.J.M)j.J[0].20(p,[p,p,j,2g]);7(j.1o.M>1)j.1o[1].20(p,[p,p,j,2g]);7(j.1O&&!j.19)j.19=j.1O;7(j.19)$(j.19).2r(\'1O\',4(){O 1S(g,j,j.1B?-1:1)});7(j.2s)$(j.2s).2r(\'1O\',4(){O 1S(g,j,j.1B?1:-1)});7(j.1t)2T(g,j);j.3Q=4(a,b){8 c=$(a),s=c[0];7(!j.2k)j.2j++;g[b?\'1T\':\'L\'](s);7(j.1e)j.1e[b?\'1T\':\'L\'](s);j.2S=g.M;c.9(\'1V\',\'2M\');c[b?\'3R\':\'2U\'](e);7(b){j.1d++;j.Q++}7(x&&j.1U&&!j.2L)2m(c);7(j.1q&&j.F)c.F(j.F);7(j.1q&&j.E&&j.E!=\'1W\')f.E(j.E);s.17=(j.1q&&j.E)?j.E:c.E();s.18=(j.1q&&j.F)?j.F:c.F();c.9(j.C);7(j.1t)$.G.D.2t(g.M-1,s,$(j.1t),g,j);7(21 j.11==\'4\')j.11(c)};7(j.Y||j.1A)A.U=22(4(){1n(g,j,0,!j.1B)},j.1A?10:j.Y+(j.2V||0))})};4 1n(a,b,c,d){7(b.2l)O;8 p=b.1z,1v=a[b.1d],19=a[b.Q];7(p.U===0&&!c)O;7(!c&&!p.1i&&((b.2i&&(--b.2j<=0))||(b.23&&!b.1p&&b.Q<b.1d))){7(b.2u)b.2u(b);O}7(c||!p.1i){7(b.J.M)$.1u(b.J,4(i,o){o.20(19,[1v,19,b,d])});8 e=4(){7($.28.29&&b.1U)A.2N.2O(\'2n\');$.1u(b.1o,4(i,o){o.20(19,[1v,19,b,d])})};7(b.Q!=b.1d){b.2l=1;7(b.24)b.24(1v,19,b,e,d);S 7($.2R($.G.D[b.1r]))$.G.D[b.1r](1v,19,b,e);S $.G.D.2o(1v,19,b,e,c&&b.2W)}7(b.1p){b.1d=b.Q;7(++b.14==a.M)b.14=0;b.Q=b.1s[b.14]}S{8 f=(b.Q+1)==a.M;b.Q=f?0:b.Q+1;b.1d=f?a.M-1:b.Q-1}7(b.1t)$.G.D.2v(b.1t,b.1d)}7(b.Y&&!b.1A)p.U=22(4(){1n(a,b,0,!b.1B)},2X(1v,19,b,d));S 7(b.1A&&p.1i)p.U=22(4(){1n(a,b,0,!b.1B)},10)};$.G.D.2v=4(a,b){$(a).3S(\'a\').3T(\'2Y\').2n(\'a:2p(\'+b+\')\').3U(\'2Y\')};4 2X(a,b,c,d){7(c.2w){8 t=c.2w(a,b,c,d);7(t!==1P)O t}O c.Y};4 1S(a,b,c){8 p=b.1z,Y=p.U;7(Y){1y(Y);p.U=0}7(b.1p&&c<0){b.14--;7(--b.14==-2)b.14=a.M-2;S 7(b.14==-1)b.14=a.M-1;b.Q=b.1s[b.14]}S 7(b.1p){7(++b.14==a.M)b.14=0;b.Q=b.1s[b.14]}S{b.Q=b.1d+c;7(b.Q<0){7(b.23)O 1P;b.Q=a.M-1}S 7(b.Q>=a.M){7(b.23)O 1P;b.Q=0}}7(b.25&&21 b.25==\'4\')b.25(c>0,b.Q,a[b.Q]);1n(a,b,1,c>=0);O 1P};4 2T(a,b){8 c=$(b.1t);$.1u(a,4(i,o){$.G.D.2t(i,o,c,a,b)});$.G.D.2v(b.1t,b.1b)};$.G.D.2t=4(i,b,c,d,e){8 a=(21 e.2x==\'4\')?e.2x(i,b):\'<a 3V="#">\'+(i+1)+\'</a>\';7(!a)O;8 f=$(a);7(f.3W(\'3X\').M==0)f.2U(c);f.2r(e.2Z,4(){e.Q=i;8 p=e.1z,Y=p.U;7(Y){1y(Y);p.U=0}7(21 e.2y==\'4\')e.2y(e.Q,d[e.Q]);1n(d,e,1,e.1d<i);O 1P});7(e.30)f.2Q(4(){e.1z.1i++},4(){e.1z.1i--})};4 2m(b){4 26(s){8 s=V(s).3Y(16);O s.M<2?\'0\'+s:s};4 31(e){1C(;e&&e.3Z.40()!=\'41\';e=e.42){8 v=$.9(e,\'33-34\');7(v.43(\'44\')>=0){8 a=v.1L(/\\d+/g);O\'#\'+26(a[0])+26(a[1])+26(a[2])}7(v&&v!=\'45\')O v}O\'#46\'};b.1u(4(){$(A).9(\'33-34\',31(A))})};$.G.D.2o=4(a,b,c,d,e){8 f=$(a),$n=$(b);$n.9(c.C);8 g=e?1:c.1D;8 h=e?1:c.1N;8 i=e?R:c.1Y;8 j=e?R:c.1Z;8 k=4(){$n.27(c.K,g,i,d)};f.27(c.I,h,j,4(){7(c.N)f.9(c.N);7(!c.1X)k()});7(c.1X)k()};$.G.D.P={35:4(b,c,d){c.1m(\':2p(\'+d.1b+\')\').9(\'1j\',0);d.J.L(4(){$(A).X()});d.K={1j:1};d.I={1j:0};d.C={1j:0};d.N={T:\'12\'};d.11=4(a){a.W()}}};$.G.D.47=4(){O u};$.G.D.2J={1r:\'35\',Y:48,2w:R,1A:0,1c:49,1D:R,1N:R,19:R,2s:R,25:R,1t:R,2y:R,2Z:\'1O\',2x:R,J:R,1o:R,2u:R,2q:R,1Y:R,1Z:R,1Q:R,K:R,I:R,C:R,N:R,24:R,E:\'1W\',1b:0,1X:1,1p:0,1q:0,2P:1,2f:0,30:0,2i:0,2k:0,2V:0,2h:R,1U:0,23:0,2W:0}})(36);(4($){$.G.D.P.4a=4(d,e,f){d.9(\'1a\',\'1f\');f.J.L(4(a,b,c){$(A).X();c.C.B=b.1E;c.I.B=0-a.1E});f.1h={B:0};f.K={B:0};f.N={T:\'12\'}};$.G.D.P.4b=4(d,e,f){d.9(\'1a\',\'1f\');f.J.L(4(a,b,c){$(A).X();c.C.B=0-b.1E;c.I.B=a.1E});f.1h={B:0};f.K={B:0};f.N={T:\'12\'}};$.G.D.P.4c=4(d,e,f){d.9(\'1a\',\'1f\');f.J.L(4(a,b,c){$(A).X();c.C.y=b.1F;c.I.y=0-a.1F});f.1h={y:0};f.K={y:0}};$.G.D.P.4d=4(d,e,f){d.9(\'1a\',\'1f\');f.J.L(4(a,b,c){$(A).X();c.C.y=0-b.1F;c.I.y=a.1F});f.1h={y:0};f.K={y:0}};$.G.D.P.4e=4(f,g,h){f.9(\'1a\',\'1f\').F();h.J.L(4(a,b,c,d){$(A).X();8 e=a.1F,2z=b.1F;c.C=d?{y:2z}:{y:-2z};c.K.y=0;c.I.y=d?-e:e;g.1m(a).9(c.C)});h.1h={y:0};h.N={T:\'12\'}};$.G.D.P.4f=4(f,g,h){f.9(\'1a\',\'1f\');h.J.L(4(a,b,c,d){$(A).X();8 e=a.1E,2A=b.1E;c.C=d?{B:-2A}:{B:2A};c.K.B=0;c.I.B=d?e:-e;g.1m(a).9(c.C)});h.1h={B:0};h.N={T:\'12\'}};$.G.D.P.4g=4(d,e,f){f.J.L(4(a,b,c){$(a).9(\'H\',1)});f.11=4(a){a.W()};f.C={H:2};f.K={F:\'X\'};f.I={F:\'W\'}};$.G.D.P.4h=4(d,e,f){f.J.L(4(a,b,c){$(a).9(\'H\',1)});f.11=4(a){a.W()};f.C={H:2};f.K={E:\'X\'};f.I={E:\'W\'}};$.G.D.P.1Q=4(g,h,j){8 w=g.9(\'1a\',\'37\').F();h.9({y:0,B:0});j.J.L(4(){$(A).X()});j.1c=j.1c/2;j.1p=0;j.1Q=j.1Q||{y:-w,B:15};j.1e=[];1C(8 i=0;i<h.M;i++)j.1e.L(h[i]);1C(8 i=0;i<j.1b;i++)j.1e.L(j.1e.38());j.24=4(a,b,c,d,e){8 f=e?$(a):$(b);f.27(c.1Q,c.1D,c.1Y,4(){e?c.1e.L(c.1e.38()):c.1e.1T(c.1e.4i());7(e)1C(8 i=0,2B=c.1e.M;i<2B;i++)$(c.1e[i]).9(\'z-1K\',2B-i);S{8 z=$(a).9(\'z-1K\');f.9(\'z-1K\',V(z)+1)}f.27({y:0,B:0},c.1N,c.1Z,4(){$(e?A:a).W();7(d)d()})})};j.11=4(a){a.W()}};$.G.D.P.4j=4(d,e,f){f.J.L(4(a,b,c){$(A).X();c.C.B=b.17;c.K.E=b.17});f.11=4(a){a.W()};f.1h={B:0};f.C={E:0};f.K={B:0};f.I={E:0};f.N={T:\'12\'}};$.G.D.P.4k=4(d,e,f){f.J.L(4(a,b,c){$(A).X();c.K.E=b.17;c.I.B=a.17});f.11=4(a){a.W()};f.1h={B:0};f.C={B:0,E:0};f.I={E:0};f.N={T:\'12\'}};$.G.D.P.4l=4(d,e,f){f.J.L(4(a,b,c){$(A).X();c.C.y=b.18;c.K.F=b.18});f.11=4(a){a.W()};f.C={F:0};f.K={y:0};f.I={F:0};f.N={T:\'12\'}};$.G.D.P.4m=4(d,e,f){f.J.L(4(a,b,c){$(A).X();c.K.F=b.18;c.I.y=a.18});f.11=4(a){a.W()};f.C={y:0,F:0};f.K={y:0};f.I={F:0};f.N={T:\'12\'}};$.G.D.P.39=4(d,e,f){f.1h={B:0,y:0};f.N={T:\'12\'};f.J.L(4(a,b,c){$(A).X();c.C={F:0,E:0,B:b.17/2,y:b.18/2};c.N={T:\'12\'};c.K={B:0,y:0,F:b.18,E:b.17};c.I={F:0,E:0,B:a.17/2,y:a.18/2};$(a).9(\'H\',2);$(b).9(\'H\',1)});f.11=4(a){a.W()}};$.G.D.P.4n=4(d,e,f){f.J.L(4(a,b,c){c.C={F:0,E:0,1j:1,y:b.18/2,B:b.17/2,H:1};c.K={B:0,y:0,F:b.18,E:b.17}});f.I={1j:0};f.N={H:0}};$.G.D.P.4o=4(d,e,f){8 w=d.9(\'1a\',\'1f\').F();e.X();f.J.L(4(a,b,c){$(a).9(\'H\',1)});f.C={y:w,H:2};f.N={H:1};f.K={y:0};f.I={y:w}};$.G.D.P.4p=4(d,e,f){8 h=d.9(\'1a\',\'1f\').E();e.X();f.J.L(4(a,b,c){$(a).9(\'H\',1)});f.C={B:h,H:2};f.N={H:1};f.K={B:0};f.I={B:h}};$.G.D.P.4q=4(d,e,f){8 h=d.9(\'1a\',\'1f\').E();8 w=d.F();e.X();f.J.L(4(a,b,c){$(a).9(\'H\',1)});f.C={B:h,y:w,H:2};f.N={H:1};f.K={B:0,y:0};f.I={B:h,y:w}};$.G.D.P.4r=4(d,e,f){f.J.L(4(a,b,c){c.C={y:A.18/2,F:0,H:2};c.K={y:0,F:A.18};c.I={y:0};$(a).9(\'H\',1)});f.11=4(a){a.W().9(\'H\',1)}};$.G.D.P.4s=4(d,e,f){f.J.L(4(a,b,c){c.C={B:A.17/2,E:0,H:2};c.K={B:0,E:A.17};c.I={B:0};$(a).9(\'H\',1)});f.11=4(a){a.W().9(\'H\',1)}};$.G.D.P.4t=4(d,e,f){f.J.L(4(a,b,c){c.C={y:b.18/2,F:0,H:1,T:\'1G\'};c.K={y:0,F:A.18};c.I={y:a.18/2,F:0};$(a).9(\'H\',2)});f.11=4(a){a.W()};f.N={H:1,T:\'12\'}};$.G.D.P.4u=4(d,e,f){f.J.L(4(a,b,c){c.C={B:b.17/2,E:0,H:1,T:\'1G\'};c.K={B:0,E:A.17};c.I={B:a.17/2,E:0};$(a).9(\'H\',2)});f.11=4(a){a.W()};f.N={H:1,T:\'12\'}};$.G.D.P.4v=4(e,f,g){8 d=g.3a||\'y\';8 w=e.9(\'1a\',\'1f\').F();8 h=e.E();g.J.L(4(a,b,c){c.C=c.C||{};c.C.H=2;c.C.T=\'1G\';7(d==\'3b\')c.C.y=-w;S 7(d==\'3c\')c.C.B=h;S 7(d==\'3d\')c.C.B=-h;S c.C.y=w;$(a).9(\'H\',1)});7(!g.K)g.K={y:0,B:0};7(!g.I)g.I={y:0,B:0};g.N=g.N||{};g.N.H=2;g.N.T=\'12\'};$.G.D.P.4w=4(e,f,g){8 d=g.3a||\'y\';8 w=e.9(\'1a\',\'1f\').F();8 h=e.E();g.J.L(4(a,b,c){c.C.T=\'1G\';7(d==\'3b\')c.I.y=w;S 7(d==\'3c\')c.I.B=-h;S 7(d==\'3d\')c.I.B=h;S c.I.y=-w;$(a).9(\'H\',2);$(b).9(\'H\',1)});g.11=4(a){a.W()};7(!g.K)g.K={y:0,B:0};g.C=g.C||{};g.C.B=0;g.C.y=0;g.N=g.N||{};g.N.H=1;g.N.T=\'12\'};$.G.D.P.4x=4(d,e,f){8 w=d.9(\'1a\',\'37\').F();8 h=d.E();f.J.L(4(a,b,c){$(a).9(\'H\',2);c.C.T=\'1G\';7(!c.I.y&&!c.I.B)c.I={y:w*2,B:-h/2,1j:0};S c.I.1j=0});f.11=4(a){a.W()};f.C={y:0,B:0,H:1,1j:1};f.K={y:0};f.N={H:2,T:\'12\'}};$.G.D.P.4y=4(o,p,q){8 w=o.9(\'1a\',\'1f\').F();8 h=o.E();q.C=q.C||{};8 s;7(q.1k){7(/4z/.1x(q.1k))s=\'1w(1g 1g \'+h+\'Z 1g)\';S 7(/4A/.1x(q.1k))s=\'1w(1g \'+w+\'Z \'+h+\'Z \'+w+\'Z)\';S 7(/4B/.1x(q.1k))s=\'1w(1g \'+w+\'Z 1g 1g)\';S 7(/4C/.1x(q.1k))s=\'1w(\'+h+\'Z \'+w+\'Z \'+h+\'Z 1g)\';S 7(/39/.1x(q.1k)){8 t=V(h/2);8 l=V(w/2);s=\'1w(\'+t+\'Z \'+l+\'Z \'+t+\'Z \'+l+\'Z)\'}}q.C.1k=q.C.1k||s||\'1w(1g 1g 1g 1g)\';8 d=q.C.1k.1L(/(\\d+)/g);8 t=V(d[0]),r=V(d[1]),b=V(d[2]),l=V(d[3]);q.J.L(4(g,i,j){7(g==i)O;8 k=$(g).9(\'H\',2);8 m=$(i).9({H:3,T:\'1G\'});8 n=1,1H=V((j.1D/13))-1;4 f(){8 a=t?t-V(n*(t/1H)):0;8 c=l?l-V(n*(l/1H)):0;8 d=b<h?b+V(n*((h-b)/1H||1)):h;8 e=r<w?r+V(n*((w-r)/1H||1)):w;m.9({1k:\'1w(\'+a+\'Z \'+e+\'Z \'+d+\'Z \'+c+\'Z)\'});(n++<=1H)?22(f,13):k.9(\'T\',\'12\')}f()});q.N={};q.K={y:0};q.I={y:0}}})(36);',62,287,'||||function|||if|var|css|||||||||||||||||||||||||left||this|top|cssBefore|cycle|height|width|fn|zIndex|animOut|before|animIn|push|length|cssAfter|return|transitions|nextSlide|null|else|display|cycleTimeout|parseInt|hide|show|timeout|px||onAddSlide|none||randomIndex|||cycleH|cycleW|next|overflow|startingSlide|speed|currSlide|els|hidden|0px|cssFirst|cyclePause|opacity|clip|log|not|go|after|random|fit|fx|randomMap|pager|each|curr|rect|test|clearTimeout|container|continuous|rev|for|speedIn|offsetHeight|offsetWidth|block|count|elements|data|index|match|maxh|speedOut|click|false|shuffle|opts|advance|unshift|cleartype|position|auto|sync|easeIn|easeOut|apply|typeof|setTimeout|nowrap|fxFn|prevNextClick|hex|animate|browser|msie|window|console|found|constructor|case|pause|true|slideExpr|autostop|countdown|autostopCount|busy|clearTypeFix|filter|custom|eq|easing|bind|prev|createPagerAnchor|end|updateActivePagerLink|timeoutFn|pagerAnchorBuilder|pagerClick|nextW|nextH|len|arguments|terminating|String|resume|options|can|slide|defaults|metadata|cleartypeNoBg|absolute|style|removeAttribute|containerResize|hover|isFunction|slideCount|buildPager|appendTo|delay|fastOnEvent|getTimeout|activeSlide|pagerEvent|pauseOnPagerHover|getBg||background|color|fade|jQuery|visible|shift|zoom|direction|right|up|down|MSIE|navigator|userAgent|Array|prototype|join|call|zero|by|selector|isReady|DOM|ready|undefined|switch|stop|default|Number|invalid|children|get|too|few|slides|extend|meta|className|static|relative|sort|Math|outerWidth|outerHeight|unknown|transition|speeds|while|250|addSlide|prependTo|find|removeClass|addClass|href|parents|body|toString|nodeName|toLowerCase|html|parentNode|indexOf|rgb|transparent|ffffff|ver|4000|1000|scrollUp|scrollDown|scrollLeft|scrollRight|scrollHorz|scrollVert|slideX|slideY|pop|turnUp|turnDown|turnLeft|turnRight|fadeZoom|blindX|blindY|blindZ|growX|growY|curtainX|curtainY|cover|uncover|toss|wipe|l2r|r2l|t2b|b2t'.split('|'),0,{}));


/**
 * Galleria (http://monc.se/kitchen)
 *
 * Galleria is a javascript image gallery written in jQuery. 
 * It loads the images one by one from an unordered list and displays thumbnails when each image is loaded. 
 * It will create thumbnails for you if you choose so, scaled or unscaled, 
 * centered and cropped inside a fixed thumbnail box defined by CSS.
 * 
 * The core of Galleria lies in it's smart preloading behaviour, snappiness and the fresh absence 
 * of obtrusive design elements. Use it as a foundation for your custom styled image gallery.
 *
 * MAJOR CHANGES v.FROM 0.9
 * Galleria now features a useful history extension, enabling back button and bookmarking for each image.
 * The main image is no longer stored inside each list item, instead it is placed inside a container
 * onImage and onThumb functions lets you customize the behaviours of the images on the site
 *
 * Tested in Safari 3, Firefox 2, MSIE 6, MSIE 7, Opera 9
 * 
 * Version 1.0
 * Februari 21, 2008
 *
 * Copyright (c) 2008 David Hellsing (http://monc.se)
 * Licensed under the GPL licenses.
 * http://www.gnu.org/licenses/gpl.txt
 **/

;(function($){

var $$;


/**
 * 
 * @desc Convert images from a simple html <ul> into a thumbnail gallery
 * @author David Hellsing
 * @version 1.0
 *
 * @name Galleria
 * @type jQuery
 *
 * @cat plugins/Media
 * 
 * @example $('ul.gallery').galleria({options});
 * @desc Create a a gallery from an unordered list of images with thumbnails
 * @options
 *   insert:   (selector string) by default, Galleria will create a container div before your ul that holds the image.
 *             You can, however, specify a selector where the image will be placed instead (f.ex '#main_img')
 *   history:  Boolean for setting the history object in action with enabled back button, bookmarking etc.
 *   onImage:  (function) a function that gets fired when the image is displayed and brings the jQuery image object.
 *             You can use it to add click functionality and effects.
 *             f.ex onImage(image) { image.css('display','none').fadeIn(); } will fadeIn each image that is displayed
 *   onThumb:  (function) a function that gets fired when the thumbnail is displayed and brings the jQuery thumb object.
 *             Works the same as onImage except it targets the thumbnail after it's loaded.
 *
**/

$$ = $.fn.galleria = function($options) {
	
	// check for basic CSS support
	if (!$$.hasCSS()) { return false; }
	
	// init the modified history object
	$.historyInit($$.onPageLoad);
	
	// set default options
	var $defaults = {
		insert      : '.galleria_container',
		history     : true,
		clickNext   : true,
		onImage     : function(image,caption,description,thumb) {},
		onThumb     : function(thumb) {}
	};
	

	// extend the options
	var $opts = $.extend($defaults, $options);
	
	// bring the options to the galleria object
	for (var i in $opts) {
		$.galleria[i]  = $opts[i];
	}
	
	// if no insert selector, create a new division and insert it before the ul
	var _insert = ( $($opts.insert).is($opts.insert) ) ? 
		$($opts.insert) : 
		jQuery(document.createElement('div')).insertBefore(this);
		
	// create a wrapping div for the image
	var _div = $(document.createElement('div')).addClass('galleria_wrapper');
	
	// create a caption span
	var _span = $(document.createElement('span')).addClass('caption');
	
	// create a description div
	var _descdiv = $(document.createElement('div')).addClass('desc');
	
	// create a tracker div
	var _tracker = $(document.createElement('div')).addClass('tracker');
	
	// inject the wrapper in in the insert selector
		
	_insert.addClass('galleria_container').append(_div).append(_descdiv).append(_span).append(_tracker).append("<div class='clear'>&nbsp;</div>");
	
	//-------------
	
	return this.each(function(){
		
		// add the Galleria class
		$(this).addClass('galleria');
		
		// loop through list
		$(this).children('li').each(function(i) {
			
			// bring the scope
			var _container = $(this);
			                
			// build element specific options
			var _o = $.meta ? $.extend({}, $opts, _container.data()) : $opts;

			// remove the clickNext if image is only child
			_o.clickNext = $(this).is(':only-child') ? false : _o.clickNext;
			
			// try to fetch an anchor
			// var _a = $(this).find('a').is('a') ? $(this).find('a') : false;
			var _a = $(this).find('a:first').is('a') ? $(this).find('a:first') : false;
			
			// reference the original image as a variable and hide it
			var _img = $(this).children('img').css('display','none');
			
			// extract the original source
			var _src = _a ? _a.attr('href') : _img.attr('src');
			
			// find a title
			var _title = _a ? i + ";" + _a.attr('title') : i + ";" + _img.attr('title');
			
			// create loader image            
			var _loader = new Image();
			
			// check url and activate container if match
			if (_o.history && (window.location.hash && window.location.hash.replace(/\#/,'') == _src)) {
				_container.siblings('.active').removeClass('active');
				_container.addClass('active');
			}
		
			// begin loader
			$(_loader).load(function () {
				
				// try to bring the alt
				$(this).attr('alt',_img.attr('alt'));
				
				//-----------------------------------------------------------------
				// the image is loaded, let's create the thumbnail
				
				var _thumb = _a ? 
					_a.find('img').addClass('thumb noscale').css('display','none') :
					_img.clone(true).addClass('thumb').css('display','none');
				
				if (_a) { _a.replaceWith(_thumb); }
				
				if (!_thumb.hasClass('noscale')) { // scaled tumbnails!
					var w = Math.ceil( _img.width() / _img.height() * _container.height() );
					var h = Math.ceil( _img.height() / _img.width() * _container.width() );
					if (w < h) {
						_thumb.css({ height: 'auto', width: _container.width(), marginTop: -(h-_container.height())/2 });
					} else {
						_thumb.css({ width: 'auto', height: _container.height(), marginLeft: -(w-_container.width())/2 });
					}
				} else { // Center thumbnails.
					// a tiny timer fixed the width/height
					window.setTimeout(function() {
						_thumb.css({
							marginLeft: -( _thumb.width() - _container.width() )/2, 
							marginTop:  -( _thumb.height() - _container.height() )/2
						});
					}, 1);
				}
				
				// add the rel attribute
				_thumb.attr('rel',_src);
				
				// add the title attribute
				_thumb.attr('title',_title);
				
				// add the click functionality to the _thumb
				_thumb.click(function() {
					$.galleria.activate(_src);
				});
				
				// hover classes for IE6
				_thumb.hover(
					function() { $(this).addClass('hover'); },
					function() { $(this).removeClass('hover'); }
				);
				_container.hover(
					function() { _container.addClass('hover'); },
					function() { _container.removeClass('hover'); }
				);

				// prepend the thumbnail in the container
				_container.prepend(_thumb);
				
				// show the thumbnail
				_thumb.css('display','block');
				
				// call the onThumb function
				_o.onThumb(jQuery(_thumb));
				
				// check active class and activate image if match
				if (_container.hasClass('active')) {
					$.galleria.activate(_src);
					//_span.text(_title);
				}
				
				//-----------------------------------------------------------------
				
				// finally delete the original image
				_img.remove();
				
			}).error(function () {
				
				// Error handling
			    _container.html('<span class="error" style="color:red">Error loading image: '+_src+'</span>');
			
			}).attr('src', _src);
		});
	});
};

/**
 *
 * @name NextSelector
 *
 * @desc Returns the sibling sibling, or the first one
 *
**/

$$.nextSelector = function(selector) {
	return $(selector).is(':last-child') ?
		   $(selector).siblings(':first-child') :
    	   $(selector).next();
    	   
};

/**
 *
 * @name previousSelector
 *
 * @desc Returns the previous sibling, or the last one
 *
**/

$$.previousSelector = function(selector) {
	return $(selector).is(':first-child') ?
		   $(selector).siblings(':last-child') :
    	   $(selector).prev();
    	   
};

/**
 *
 * @name hasCSS
 *
 * @desc Checks for CSS support and returns a boolean value
 *
**/

$$.hasCSS = function()  {
	$('body').append(
		$(document.createElement('div')).attr('id','css_test')
		.css({ width:'1px', height:'1px', display:'none' })
	);
	var _v = ($('#css_test').width() != 1) ? false : true;
	$('#css_test').remove();
	return _v;
};

/**
 *
 * @name onPageLoad
 *
 * @desc The function that displays the image and alters the active classes
 *
 * Note: This function gets called when:
 * 1. after calling $.historyInit();
 * 2. after calling $.historyLoad();
 * 3. after pushing "Go Back" button of a browser
 *
**/

$$.onPageLoad = function(_src) {	
	
	// get the wrapper
	var _wrapper = $('.galleria_wrapper');
	
	// get the thumb
	var _thumb = $('.galleria img[rel="'+_src+'"]');
	
	// get the thumb li
	var _thumbDesc = $('.galleria img[rel="'+_src+'"] + p');
	
	if (_src) {
		
		// new hash location
		if ($.galleria.history) {
			window.location = window.location.href.replace(/\#.*/,'') + '#' + _src;
		}
		
		// alter the active classes
		_thumb.parents('li').siblings('.active').removeClass('active');
		_thumb.parents('li').addClass('active');
	
		// define a new image
		var _img   = $(new Image()).attr('src',_src).addClass('replaced');

		// empty the wrapper and insert the new image
		_wrapper.empty().append(_img);

		// insert the caption
		_wrapper.siblings('.caption').text(_thumb.attr('title'));
		
		// insert the description
		// _wrapper.siblings('.desc').text(_thumbDesc.html());
		_wrapper.siblings('.desc').html(_thumbDesc.html());
		
		// fire the onImage function to customize the loaded image's features
		$.galleria.onImage(_img,_wrapper.siblings('.caption'),_wrapper.siblings('.desc'),_wrapper.siblings('.tracker'),_thumb);
		
		// add clickable image helper
		if($.galleria.clickNext) {
			_img.css('cursor','pointer').click(function() { $.galleria.next(); })
		}

		//center image - time delay to fix FF disabled cache issue 
		var _replaced = $('.replaced');
		var _container = $('.galleria_wrapper');
		_replaced.hide()
		window.setTimeout(function() {
		    _replaced.css({
		        marginLeft: -(_replaced.width() - _container.width()) / 2,
		        marginTop: -(_replaced.height() - _container.height()) / 2
		    }).fadeIn('fast');
		}, 500);

	} else {
		
		// clean up the container if none are active
		_wrapper.siblings().andSelf().empty();
		
		// remove active classes
		$('.galleria li.active').removeClass('active');
	}

	// place the source in the galleria.current variable
	$.galleria.current = _src;
	
}

/**
 *
 * @name jQuery.galleria
 *
 * @desc The global galleria object holds four constant variables and four public methods:
 *       $.galleria.history = a boolean for setting the history object in action with named URLs
 *       $.galleria.current = is the current source that's being viewed.
 *       $.galleria.clickNext = boolean helper for adding a clickable image that leads to the next one in line
 *       $.galleria.next() = displays the next image in line, returns to first image after the last.
 *       $.galleria.prev() = displays the previous image in line, returns to last image after the first.
 *       $.galleria.activate(_src) = displays an image from _src in the galleria container.
 *       $.galleria.onImage(image,caption) = gets fired when the image is displayed.
 *
**/

$.extend({galleria : {
	current : '',
	onImage : function(){},
	activate : function(_src) { 
		if ($.galleria.history) {
			$.historyLoad(_src);
		} else {
			$$.onPageLoad(_src);
		}
	},
	next : function() {
		var _next = $($$.nextSelector($('.galleria img[rel="'+$.galleria.current+'"]').parents('li'))).find('img').attr('rel');
		$.galleria.activate(_next);
	},
	prev : function() {
		var _prev = $($$.previousSelector($('.galleria img[rel="'+$.galleria.current+'"]').parents('li'))).find('img').attr('rel');
		$.galleria.activate(_prev);
	}
}
});

})(jQuery);


/**
 *
 * Packed history extension for jQuery
 * Credits to http://www.mikage.to/
 *
**/


jQuery.extend({historyCurrentHash:undefined,historyCallback:undefined,historyInit:function(callback){jQuery.historyCallback=callback;var current_hash=location.hash;jQuery.historyCurrentHash=current_hash;if(jQuery.browser.msie){if(jQuery.historyCurrentHash==''){jQuery.historyCurrentHash='#'}$("body").prepend('<iframe id="jQuery_history" style="display: none;"></iframe>');var ihistory=$("#jQuery_history")[0];var iframe=ihistory.contentWindow.document;iframe.open();iframe.close();iframe.location.hash=current_hash}else if($.browser.safari){jQuery.historyBackStack=[];jQuery.historyBackStack.length=history.length;jQuery.historyForwardStack=[];jQuery.isFirst=true}jQuery.historyCallback(current_hash.replace(/^#/,''));setInterval(jQuery.historyCheck,100)},historyAddHistory:function(hash){jQuery.historyBackStack.push(hash);jQuery.historyForwardStack.length=0;this.isFirst=true},historyCheck:function(){if(jQuery.browser.msie){var ihistory=$("#jQuery_history")[0];var iframe=ihistory.contentDocument||ihistory.contentWindow.document;var current_hash=iframe.location.hash;if(current_hash!=jQuery.historyCurrentHash){location.hash=current_hash;jQuery.historyCurrentHash=current_hash;jQuery.historyCallback(current_hash.replace(/^#/,''))}}else if($.browser.safari){if(!jQuery.dontCheck){var historyDelta=history.length-jQuery.historyBackStack.length;if(historyDelta){jQuery.isFirst=false;if(historyDelta<0){for(var i=0;i<Math.abs(historyDelta);i++)jQuery.historyForwardStack.unshift(jQuery.historyBackStack.pop())}else{for(var i=0;i<historyDelta;i++)jQuery.historyBackStack.push(jQuery.historyForwardStack.shift())}var cachedHash=jQuery.historyBackStack[jQuery.historyBackStack.length-1];if(cachedHash!=undefined){jQuery.historyCurrentHash=location.hash;jQuery.historyCallback(cachedHash)}}else if(jQuery.historyBackStack[jQuery.historyBackStack.length-1]==undefined&&!jQuery.isFirst){if(document.URL.indexOf('#')>=0){jQuery.historyCallback(document.URL.split('#')[1])}else{var current_hash=location.hash;jQuery.historyCallback('')}jQuery.isFirst=true}}}else{var current_hash=location.hash;if(current_hash!=jQuery.historyCurrentHash){jQuery.historyCurrentHash=current_hash;jQuery.historyCallback(current_hash.replace(/^#/,''))}}},historyLoad:function(hash){var newhash;if(jQuery.browser.safari){newhash=hash}else{newhash='#'+hash;location.hash=newhash}jQuery.historyCurrentHash=newhash;if(jQuery.browser.msie){var ihistory=$("#jQuery_history")[0];var iframe=ihistory.contentWindow.document;iframe.open();iframe.close();iframe.location.hash=newhash;jQuery.historyCallback(hash)}else if(jQuery.browser.safari){jQuery.dontCheck=true;this.historyAddHistory(hash);var fn=function(){jQuery.dontCheck=false};window.setTimeout(fn,200);jQuery.historyCallback(hash);location.hash=newhash}else{jQuery.historyCallback(hash)}}});

//hotkeys
(function (jQuery){
    this.version = '(beta)(0.0.3)';
	this.all = {};
    this.special_keys = {
        27: 'esc', 9: 'tab', 32:'space', 13: 'return', 8:'backspace', 145: 'scroll', 20: 'capslock', 
        144: 'numlock', 19:'pause', 45:'insert', 36:'home', 46:'del',35:'end', 33: 'pageup', 
        34:'pagedown', 37:'left', 38:'up', 39:'right',40:'down', 112:'f1',113:'f2', 114:'f3', 
        115:'f4', 116:'f5', 117:'f6', 118:'f7', 119:'f8', 120:'f9', 121:'f10', 122:'f11', 123:'f12'};
        
    this.shift_nums = { "`":"~", "1":"!", "2":"@", "3":"#", "4":"$", "5":"%", "6":"^", "7":"&", 
        "8":"*", "9":"(", "0":")", "-":"_", "=":"+", ";":":", "'":"\"", ",":"<", 
        ".":">",  "/":"?",  "\\":"|" };
        
    this.add = function(combi, options, callback) {
        if (jQuery.isFunction(options)){
            callback = options;
            options = {};
        }
        var opt = {},
            defaults = {type: 'keydown', propagate: false, disableInInput: false, target: jQuery('html')[0], checkParent: true},
            that = this;
        opt = jQuery.extend( opt , defaults, options || {} );
        combi = combi.toLowerCase();        
        
        // inspect if keystroke matches
        var inspector = function(event) {
            event = jQuery.event.fix(event); // jQuery event normalization.
            var element = event.target;
            // @ TextNode -> nodeType == 3
            element = (element.nodeType==3) ? element.parentNode : element;
            
            if(opt['disableInInput']) { // Disable shortcut keys in Input, Textarea fields
                var target = jQuery(element);
                if( target.is("input") || target.is("textarea")){
                    return;
                }
            }
            var code = event.which,
                type = event.type,
                character = String.fromCharCode(code).toLowerCase(),
                special = that.special_keys[code],
                shift = event.shiftKey,
                ctrl = event.ctrlKey,
                alt= event.altKey,
                propagate = true, // default behaivour
                mapPoint = null;
            
            // in opera + safari, the event.target is unpredictable.
            // for example: 'keydown' might be associated with HtmlBodyElement 
            // or the element where you last clicked with your mouse.
            if (jQuery.browser.opera || jQuery.browser.safari || opt.checkParent){
                while (!that.all[element] && element.parentNode){
                    element = element.parentNode;
                }
            }
            
            var cbMap = that.all[element].events[type].callbackMap;
            if(!shift && !ctrl && !alt) { // No Modifiers
                mapPoint = cbMap[special] ||  cbMap[character]
			}
            // deals with combinaitons (alt|ctrl|shift+anything)
            else{
                var modif = '';
                if(alt) modif +='alt+';
                if(ctrl) modif+= 'ctrl+';
                if(shift) modif += 'shift+';
                // modifiers + special keys or modifiers + characters or modifiers + shift characters
                mapPoint = cbMap[modif+special] || cbMap[modif+character] || cbMap[modif+that.shift_nums[character]]
            }
            if (mapPoint){
                mapPoint.cb(event);
                if(!mapPoint.propagate) {
                    event.stopPropagation();
                    event.preventDefault();
                    return false;
                }
            }
		};        
        // first hook for this element
        if (!this.all[opt.target]){
            this.all[opt.target] = {events:{}};
        }
        if (!this.all[opt.target].events[opt.type]){
            this.all[opt.target].events[opt.type] = {callbackMap: {}}
            jQuery.event.add(opt.target, opt.type, inspector);
        }        
        this.all[opt.target].events[opt.type].callbackMap[combi] =  {cb: callback, propagate:opt.propagate};                
        return jQuery;
	};    
    this.remove = function(exp, opt) {
        opt = opt || {};
        target = opt.target || jQuery('html')[0];
        type = opt.type || 'keydown';
		exp = exp.toLowerCase();        
        delete this.all[target].events[type].callbackMap[exp]        
        return jQuery;
	};
    jQuery.hotkeys = this;
    return jQuery;    
})(jQuery);


//carousel
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(9($){$.1s.B=9(o){z 4.1b(9(){3h r(4,o)})};8 q={W:J,23:1,1X:1,u:7,15:3,17:7,1I:\'2O\',2b:\'2E\',1i:0,C:7,1h:7,1D:7,2x:7,2w:7,2v:7,2t:7,2r:7,2q:7,2o:7,1Q:\'<Y></Y>\',1P:\'<Y></Y>\',2k:\'2j\',2g:\'2j\',1L:7,1J:7};$.B=9(e,o){4.5=$.1a({},q,o||{});4.P=J;4.E=7;4.H=7;4.t=7;4.U=7;4.Q=7;4.N=!4.5.W?\'1E\':\'27\';4.F=!4.5.W?\'26\':\'25\';6(e.20==\'3p\'||e.20==\'3n\'){4.t=$(e);4.E=4.t.1p();6($.D.1e(4.E[0].D,\'B-H\')){6(!$.D.1e(4.E[0].3k.D,\'B-E\'))4.E=4.E.C(\'<Y></Y>\');4.E=4.E.1p()}10 6(!$.D.1e(4.E[0].D,\'B-E\'))4.E=4.t.C(\'<Y></Y>\').1p();8 a=e.D.3g(\' \');1n(8 i=0;i<a.O;i++){6(a[i].3c(\'B-3b\')!=-1){4.t.1y(a[i]);4.E.R(a[i]);1m}}}10{4.E=$(e);4.t=$(e).2m(\'32,2Z\')}4.H=4.t.1p();6(!4.H.O||!$.D.1e(4.H[0].D,\'B-H\'))4.H=4.t.C(\'<Y></Y>\').1p();4.Q=$(\'.B-13\',4.E);6(4.Q.u()==0&&4.5.1P!=7)4.Q=4.H.1w(4.5.1P).13();4.Q.R(4.D(\'B-13\'));4.U=$(\'.B-16\',4.E);6(4.U.u()==0&&4.5.1Q!=7)4.U=4.H.1w(4.5.1Q).13();4.U.R(4.D(\'B-16\'));4.H.R(4.D(\'B-H\'));4.t.R(4.D(\'B-t\'));4.E.R(4.D(\'B-E\'));8 b=4.5.17!=7?1k.1M(4.1j()/4.5.17):7;8 c=4.t.2m(\'1u\');8 d=4;6(c.u()>0){8 f=0,i=4.5.1X;c.1b(9(){d.1O(4,i++);f+=d.T(4,b)});4.t.y(4.N,f+\'S\');6(!o||o.u==L)4.5.u=c.u()}4.E.y(\'1x\',\'1B\');4.U.y(\'1x\',\'1B\');4.Q.y(\'1x\',\'1B\');4.2p=9(){d.16()};4.2s=9(){d.13()};$(2D).1W(\'2B\',9(){d.29()});6(4.5.1h!=7)4.5.1h(4,\'28\');4.1F()};8 r=$.B;r.1s=r.2z={B:\'0.2.2\'};r.1s.1a=r.1a=$.1a;r.1s.1a({1F:9(){4.A=7;4.G=7;4.Z=7;4.11=7;4.14=J;4.1c=7;4.M=7;4.V=J;6(4.P)z;4.t.y(4.F,4.1r(4.5.1X)+\'S\');8 p=4.1r(4.5.23);4.Z=4.11=7;4.1g(p,J)},24:9(){4.t.22();4.t.y(4.F,\'21\');4.t.y(4.N,\'21\');6(4.5.1h!=7)4.5.1h(4,\'24\');4.1F()},29:9(){6(4.M!=7&&4.V)4.t.y(4.F,r.K(4.t.y(4.F))+4.M);4.M=7;4.V=J;6(4.5.1D!=7)4.5.1D(4);6(4.5.17!=7){8 a=4;8 b=1k.1M(4.1j()/4.5.17),N=0,F=0;$(\'1u\',4.t).1b(9(i){N+=a.T(4,b);6(i+1<a.A)F=N});4.t.y(4.N,N+\'S\');4.t.y(4.F,-F+\'S\')}4.15(4.A,J)},2y:9(){4.P=1f;4.1q()},3m:9(){4.P=J;4.1q()},u:9(s){6(s!=L){4.5.u=s;6(!4.P)4.1q()}z 4.5.u},1e:9(i,a){6(a==L||!a)a=i;1n(8 j=i;j<=a;j++){8 e=4.I(j).I(0);6(!e||$.D.1e(e,\'B-19-1C\'))z J}z 1f},I:9(i){z $(\'.B-19-\'+i,4.t)},3l:9(i,s){8 e=4.I(i),1Y=0;6(e.O==0){8 c,e=4.1A(i),j=r.K(i);1o(c=4.I(--j)){6(j<=0||c.O){j<=0?4.t.2u(e):c.1V(e);1m}}}10 1Y=4.T(e);e.1y(4.D(\'B-19-1C\'));1U s==\'3j\'?e.3f(s):e.22().3d(s);8 a=4.5.17!=7?1k.1M(4.1j()/4.5.17):7;8 b=4.T(e,a)-1Y;6(i>0&&i<4.A)4.t.y(4.F,r.K(4.t.y(4.F))+b+\'S\');4.t.y(4.N,r.K(4.t.y(4.N))+b+\'S\');z e},1T:9(i){8 e=4.I(i);6(!e.O||(i>=4.A&&i<=4.G))z;8 d=4.T(e);6(i<4.A)4.t.y(4.F,r.K(4.t.y(4.F))+d+\'S\');e.1T();4.t.y(4.N,r.K(4.t.y(4.N))-d+\'S\')},16:9(){4.1z();6(4.M!=7&&!4.V)4.1S(J);10 4.15(((4.5.C==\'1R\'||4.5.C==\'G\')&&4.5.u!=7&&4.G==4.5.u)?1:4.A+4.5.15)},13:9(){4.1z();6(4.M!=7&&4.V)4.1S(1f);10 4.15(((4.5.C==\'1R\'||4.5.C==\'A\')&&4.5.u!=7&&4.A==1)?4.5.u:4.A-4.5.15)},1S:9(b){6(4.P||4.14||!4.M)z;8 a=r.K(4.t.y(4.F));!b?a-=4.M:a+=4.M;4.V=!b;4.Z=4.A;4.11=4.G;4.1g(a)},15:9(i,a){6(4.P||4.14)z;4.1g(4.1r(i),a)},1r:9(i){6(4.P||4.14)z;6(4.5.C!=\'18\')i=i<1?1:(4.5.u&&i>4.5.u?4.5.u:i);8 a=4.A>i;8 b=r.K(4.t.y(4.F));8 f=4.5.C!=\'18\'&&4.A<=1?1:4.A;8 c=a?4.I(f):4.I(4.G);8 j=a?f:f-1;8 e=7,l=0,p=J,d=0;1o(a?--j>=i:++j<i){e=4.I(j);p=!e.O;6(e.O==0){e=4.1A(j).R(4.D(\'B-19-1C\'));c[a?\'1w\':\'1V\'](e)}c=e;d=4.T(e);6(p)l+=d;6(4.A!=7&&(4.5.C==\'18\'||(j>=1&&(4.5.u==7||j<=4.5.u))))b=a?b+d:b-d}8 g=4.1j();8 h=[];8 k=0,j=i,v=0;8 c=4.I(i-1);1o(++k){e=4.I(j);p=!e.O;6(e.O==0){e=4.1A(j).R(4.D(\'B-19-1C\'));c.O==0?4.t.2u(e):c[a?\'1w\':\'1V\'](e)}c=e;8 d=4.T(e);6(d==0){3a(\'39: 38 1E/27 37 1n 36. 35 34 33 31 30 2Y. 2X...\');z 0}6(4.5.C!=\'18\'&&4.5.u!==7&&j>4.5.u)h.2W(e);10 6(p)l+=d;v+=d;6(v>=g)1m;j++}1n(8 x=0;x<h.O;x++)h[x].1T();6(l>0){4.t.y(4.N,4.T(4.t)+l+\'S\');6(a){b-=l;4.t.y(4.F,r.K(4.t.y(4.F))-l+\'S\')}}8 n=i+k-1;6(4.5.C!=\'18\'&&4.5.u&&n>4.5.u)n=4.5.u;6(j>n){k=0,j=n,v=0;1o(++k){8 e=4.I(j--);6(!e.O)1m;v+=4.T(e);6(v>=g)1m}}8 o=n-k+1;6(4.5.C!=\'18\'&&o<1)o=1;6(4.V&&a){b+=4.M;4.V=J}4.M=7;6(4.5.C!=\'18\'&&n==4.5.u&&(n-k+1)>=1){8 m=r.X(4.I(n),!4.5.W?\'1l\':\'1H\');6((v-m)>g)4.M=v-g-m}1o(i-->o)b+=4.T(4.I(i));4.Z=4.A;4.11=4.G;4.A=o;4.G=n;z b},1g:9(p,a){6(4.P||4.14)z;4.14=1f;8 b=4;8 c=9(){b.14=J;6(p==0)b.t.y(b.F,0);6(b.5.C==\'1R\'||b.5.C==\'G\'||b.5.u==7||b.G<b.5.u)b.2i();b.1q();b.1N(\'2h\')};4.1N(\'2V\');6(!4.5.1I||a==J){4.t.y(4.F,p+\'S\');c()}10{8 o=!4.5.W?{\'26\':p}:{\'25\':p};4.t.1g(o,4.5.1I,4.5.2b,c)}},2i:9(s){6(s!=L)4.5.1i=s;6(4.5.1i==0)z 4.1z();6(4.1c!=7)z;8 a=4;4.1c=2U(9(){a.16()},4.5.1i*2T)},1z:9(){6(4.1c==7)z;2S(4.1c);4.1c=7},1q:9(n,p){6(n==L||n==7){8 n=!4.P&&4.5.u!==0&&((4.5.C&&4.5.C!=\'A\')||4.5.u==7||4.G<4.5.u);6(!4.P&&(!4.5.C||4.5.C==\'A\')&&4.5.u!=7&&4.G>=4.5.u)n=4.M!=7&&!4.V}6(p==L||p==7){8 p=!4.P&&4.5.u!==0&&((4.5.C&&4.5.C!=\'G\')||4.A>1);6(!4.P&&(!4.5.C||4.5.C==\'G\')&&4.5.u!=7&&4.A==1)p=4.M!=7&&4.V}8 a=4;4.U[n?\'1W\':\'2f\'](4.5.2k,4.2p)[n?\'1y\':\'R\'](4.D(\'B-16-1v\')).1K(\'1v\',n?J:1f);4.Q[p?\'1W\':\'2f\'](4.5.2g,4.2s)[p?\'1y\':\'R\'](4.D(\'B-13-1v\')).1K(\'1v\',p?J:1f);6(4.U.O>0&&(4.U[0].1d==L||4.U[0].1d!=n)&&4.5.1L!=7){4.U.1b(9(){a.5.1L(a,4,n)});4.U[0].1d=n}6(4.Q.O>0&&(4.Q[0].1d==L||4.Q[0].1d!=p)&&4.5.1J!=7){4.Q.1b(9(){a.5.1J(a,4,p)});4.Q[0].1d=p}},1N:9(a){8 b=4.Z==7?\'28\':(4.Z<4.A?\'16\':\'13\');4.12(\'2x\',a,b);6(4.Z!=4.A){4.12(\'2w\',a,b,4.A);4.12(\'2v\',a,b,4.Z)}6(4.11!=4.G){4.12(\'2t\',a,b,4.G);4.12(\'2r\',a,b,4.11)}4.12(\'2q\',a,b,4.A,4.G,4.Z,4.11);4.12(\'2o\',a,b,4.Z,4.11,4.A,4.G)},12:9(a,b,c,d,e,f,g){6(4.5[a]==L||(1U 4.5[a]!=\'2e\'&&b!=\'2h\'))z;8 h=1U 4.5[a]==\'2e\'?4.5[a][b]:4.5[a];6(!$.2R(h))z;8 j=4;6(d===L)h(j,c,b);10 6(e===L)4.I(d).1b(9(){h(j,4,d,c,b)});10{1n(8 i=d;i<=e;i++)6(!(i>=f&&i<=g))4.I(i).1b(9(){h(j,4,i,c,b)})}},1A:9(i){z 4.1O(\'<1u></1u>\',i)},1O:9(e,i){8 a=$(e).R(4.D(\'B-19\')).R(4.D(\'B-19-\'+i));a.1K(\'2Q\',i);z a},D:9(c){z c+\' \'+c+(!4.5.W?\'-2P\':\'-W\')},T:9(e,d){8 a=e.2l!=L?e[0]:e;8 b=!4.5.W?a.1t+r.X(a,\'2d\')+r.X(a,\'1l\'):a.2c+r.X(a,\'2n\')+r.X(a,\'1H\');6(d==L||b==d)z b;8 w=!4.5.W?d-r.X(a,\'2d\')-r.X(a,\'1l\'):d-r.X(a,\'2n\')-r.X(a,\'1H\');$(a).y(4.N,w+\'S\');z 4.T(a)},1j:9(){z!4.5.W?4.H[0].1t-r.K(4.H.y(\'2N\'))-r.K(4.H.y(\'2M\')):4.H[0].2c-r.K(4.H.y(\'2L\'))-r.K(4.H.y(\'2K\'))},2J:9(i,s){6(s==L)s=4.5.u;z 1k.2I((((i-1)/s)-1k.3e((i-1)/s))*s)+1}});r.1a({2H:9(d){$.1a(q,d)},X:9(e,p){6(!e)z 0;8 a=e.2l!=L?e[0]:e;6(p==\'1l\'&&$.2G.2F){8 b={\'1x\':\'1B\',\'3i\':\'2C\',\'1E\':\'1i\'},1G,1Z;$.2a(a,b,9(){1G=a.1t});b[\'1l\']=0;$.2a(a,b,9(){1Z=a.1t});z 1Z-1G}z r.K($.y(a,p))},K:9(v){v=2A(v);z 3o(v)?0:v}})})(3q);',62,213,'||||this|options|if|null|var|function||||||||||||||||||||list|size||||css|return|first|jcarousel|wrap|className|container|lt|last|clip|get|false|intval|undefined|tail|wh|length|locked|buttonPrev|addClass|px|dimension|buttonNext|inTail|vertical|margin|div|prevFirst|else|prevLast|callback|prev|animating|scroll|next|visible|circular|item|extend|each|timer|jcarouselstate|has|true|animate|initCallback|auto|clipping|Math|marginRight|break|for|while|parent|buttons|pos|fn|offsetWidth|li|disabled|before|display|removeClass|stopAuto|create|block|placeholder|reloadCallback|width|setup|oWidth|marginBottom|animation|buttonPrevCallback|attr|buttonNextCallback|ceil|notify|format|buttonPrevHTML|buttonNextHTML|both|scrollTail|remove|typeof|after|bind|offset|old|oWidth2|nodeName|0px|empty|start|reset|top|left|height|init|reload|swap|easing|offsetHeight|marginLeft|object|unbind|buttonPrevEvent|onAfterAnimation|startAuto|click|buttonNextEvent|jquery|children|marginTop|itemVisibleOutCallback|funcNext|itemVisibleInCallback|itemLastOutCallback|funcPrev|itemLastInCallback|prepend|itemFirstOutCallback|itemFirstInCallback|itemLoadCallback|lock|prototype|parseInt|resize|none|window|swing|safari|browser|defaults|round|index|borderBottomWidth|borderTopWidth|borderRightWidth|borderLeftWidth|normal|horizontal|jcarouselindex|isFunction|clearTimeout|1000|setTimeout|onBeforeAnimation|push|Aborting|loop|ol|infinite|an|ul|cause|will|This|items|set|No|jCarousel|alert|skin|indexOf|append|floor|html|split|new|float|string|parentNode|add|unlock|OL|isNaN|UL|jQuery'.split('|'),0,{}));

//timer
jQuery.fn.extend({
	everyTime: function(interval, label, fn, times, belay) {
		return this.each(function() {
			jQuery.timer.add(this, interval, label, fn, times, belay);
		});
	},
	oneTime: function(interval, label, fn) {
		return this.each(function() {
			jQuery.timer.add(this, interval, label, fn, 1);
		});
	},
	stopTime: function(label, fn) {
		return this.each(function() {
			jQuery.timer.remove(this, label, fn);
		});
	}
});

jQuery.extend({
	timer: {
		guid: 1,
		global: {},
		regex: /^([0-9]+)\s*(.*s)?$/,
		powers: {
			// Yeah this is major overkill...
			'ms': 1,
			'cs': 10,
			'ds': 100,
			's': 1000,
			'das': 10000,
			'hs': 100000,
			'ks': 1000000
		},
		timeParse: function(value) {
			if (value == undefined || value == null)
				return null;
			var result = this.regex.exec(jQuery.trim(value.toString()));
			if (result[2]) {
				var num = parseInt(result[1], 10);
				var mult = this.powers[result[2]] || 1;
				return num * mult;
			} else {
				return value;
			}
		},
		add: function(element, interval, label, fn, times, belay) {
			var counter = 0;
			
			if (jQuery.isFunction(label)) {
				if (!times) 
					times = fn;
				fn = label;
				label = interval;
			}
			
			interval = jQuery.timer.timeParse(interval);

			if (typeof interval != 'number' || isNaN(interval) || interval <= 0)
				return;

			if (times && times.constructor != Number) {
				belay = !!times;
				times = 0;
			}
			
			times = times || 0;
			belay = belay || false;
			
			if (!element.$timers) 
				element.$timers = {};
			
			if (!element.$timers[label])
				element.$timers[label] = {};
			
			fn.$timerID = fn.$timerID || this.guid++;
			
			var handler = function() {
				if (belay && this.inProgress) 
					return;
				this.inProgress = true;
				if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
					jQuery.timer.remove(element, label, fn);
				this.inProgress = false;
			};
			
			handler.$timerID = fn.$timerID;
			
			if (!element.$timers[label][fn.$timerID]) 
				element.$timers[label][fn.$timerID] = window.setInterval(handler,interval);
			
			if ( !this.global[label] )
				this.global[label] = [];
			this.global[label].push( element );
			
		},
		remove: function(element, label, fn) {
			var timers = element.$timers, ret;
			
			if ( timers ) {
				
				if (!label) {
					for ( label in timers )
						this.remove(element, label, fn);
				} else if ( timers[label] ) {
					if ( fn ) {
						if ( fn.$timerID ) {
							window.clearInterval(timers[label][fn.$timerID]);
							delete timers[label][fn.$timerID];
						}
					} else {
						for ( var fn in timers[label] ) {
							window.clearInterval(timers[label][fn]);
							delete timers[label][fn];
						}
					}
					
					for ( ret in timers[label] ) break;
					if ( !ret ) {
						ret = null;
						delete timers[label];
					}
				}
				
				for ( ret in timers ) break;
				if ( !ret ) 
					element.$timers = null;
			}
		}
	}
});

if (jQuery.browser.msie)
	jQuery(window).one("unload", function() {
		var global = jQuery.timer.global;
		for ( var label in global ) {
			var els = global[label], i = els.length;
			while ( --i )
				jQuery.timer.remove(els[i], label);
		}
	});

	/*
	* Superfish v1.4.8 - jQuery menu widget
	* Copyright (c) 2008 Joel Birch
	*
	* Dual licensed under the MIT and GPL licenses:
	* 	http://www.opensource.org/licenses/mit-license.php
	* 	http://www.gnu.org/licenses/gpl.html
	*/

	; (function($) {
	    $.fn.superfish = function(op) {

	        var sf = $.fn.superfish,
			c = sf.c,
			$arrow = $(['<span class="', c.arrowClass, '"> &#187;</span>'].join('')),
			over = function() {
			    var $$ = $(this), menu = getMenu($$);
			    clearTimeout(menu.sfTimer);
			    $$.showSuperfishUl().siblings().hideSuperfishUl();
			},
			out = function() {
			    var $$ = $(this), menu = getMenu($$), o = sf.op;
			    clearTimeout(menu.sfTimer);
			    menu.sfTimer = setTimeout(function() {
			        o.retainPath = ($.inArray($$[0], o.$path) > -1);
			        $$.hideSuperfishUl();
			        if (o.$path.length && $$.parents(['li.', o.hoverClass].join('')).length < 1) { over.call(o.$path); }
			    }, o.delay);
			},
			getMenu = function($menu) {
			    var menu = $menu.parents(['ul.', c.menuClass, ':first'].join(''))[0];
			    sf.op = sf.o[menu.serial];
			    return menu;
			},
			addArrow = function($a) { $a.addClass(c.anchorClass).append($arrow.clone()); };

	        return this.each(function() {
	            var s = this.serial = sf.o.length;
	            var o = $.extend({}, sf.defaults, op);
	            o.$path = $('li.' + o.pathClass, this).slice(0, o.pathLevels).each(function() {
	                $(this).addClass([o.hoverClass, c.bcClass].join(' '))
					.filter('li:has(ul)').removeClass(o.pathClass);
	            });
	            sf.o[s] = sf.op = o;

	            $('li:has(ul)', this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over, out).each(function() {
	                if (o.autoArrows) addArrow($('>a:first-child', this));
	            })
			.not('.' + c.bcClass)
				.hideSuperfishUl();

	            var $a = $('a', this);
	            $a.each(function(i) {
	                var $li = $a.eq(i).parents('li');
	                $a.eq(i).focus(function() { over.call($li); }).blur(function() { out.call($li); });
	            });
	            o.onInit.call(this);

	        }).each(function() {
	            var menuClasses = [c.menuClass];
	            if (sf.op.dropShadows && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
	            $(this).addClass(menuClasses.join(' '));
	        });
	    };

	    var sf = $.fn.superfish;
	    sf.o = [];
	    sf.op = {};
	    sf.IE7fix = function() {
	        var o = sf.op;
	        if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity != undefined)
	            this.toggleClass(sf.c.shadowClass + '-off');
	    };
	    sf.c = {
	        bcClass: 'sf-breadcrumb',
	        menuClass: 'sf-js-enabled',
	        anchorClass: 'sf-with-ul',
	        arrowClass: 'sf-sub-indicator',
	        shadowClass: 'sf-shadow'
	    };
	    sf.defaults = {
	        hoverClass: 'sfHover',
	        pathClass: 'overideThisToUse',
	        pathLevels: 1,
	        delay: 800,
	        animation: { opacity: 'show' },
	        speed: 'normal',
	        autoArrows: true,
	        dropShadows: true,
	        disableHI: false, 	// true disables hoverIntent detection
	        onInit: function() { }, // callback functions
	        onBeforeShow: function() { },
	        onShow: function() { },
	        onHide: function() { }
	    };
	    $.fn.extend({
	        hideSuperfishUl: function() {
	            var o = sf.op,
				not = (o.retainPath === true) ? o.$path : '';
	            o.retainPath = false;
	            var $ul = $(['li.', o.hoverClass].join(''), this).add(this).not(not).removeClass(o.hoverClass)
					.find('>ul').hide().css('visibility', 'hidden');
	            o.onHide.call($ul);
	            return this;
	        },
	        showSuperfishUl: function() {
	            var o = sf.op,
				sh = sf.c.shadowClass + '-off',
				$ul = this.addClass(o.hoverClass)
					.find('>ul:hidden').css('visibility', 'visible');
	            sf.IE7fix.call($ul);
	            o.onBeforeShow.call($ul);
	            $ul.animate(o.animation, o.speed, function() { sf.IE7fix.call($ul); o.onShow.call($ul); });
	            return this;
	        }
	    });

	})(jQuery);
	
	
mainNav = function() {
	$("#topnav li").bind("mouseenter",function(){
                this.className += "_over over";
	}).bind("mouseleave",function(){
                this.className = this.className.replace("_over over", "");
	});
}

jQuery(document).ready(function() {

    $(".latestWidget").jcarousel({
        scroll: 3,
        visible: 3,
        buttonNextHTML: '<div class="next">Next &raquo;</div>',
        buttonPrevHTML: '<div class="prev">&laquo; Prev</div>'
    });

	$("#media_panel .mediaWidget").jcarousel({
        scroll: 3,

		buttonNextHTML: '<div class="next">Next &raquo;</div>',
		buttonPrevHTML: '<div class="prev">&laquo; Prev</div>'
	});
	
	$(".mod-relvideo312 .mediaWidget").jcarousel({
		scroll: 1,

		buttonNextHTML: '<div class="next">Next &raquo;</div>',
		buttonPrevHTML: '<div class="prev">&laquo; Prev</div>'
	});

	
	$(".mod-moreslsh312 .mediaWidget").jcarousel({
		scroll: 1,

		buttonNextHTML: '<div class="next">Next &raquo;</div>',
		buttonPrevHTML: '<div class="prev">&laquo; Prev</div>'
	});
	
	$(".mod-mediacntr332 .mccVideo").jcarousel({
		scroll: 4,
		buttonNextHTML: '<div class="next">Next &raquo;</div>',
		buttonPrevHTML: '<div class="prev">&laquo; Prev</div>'
	});
	
	$(".mod-mediacntr332 .mccSlideshow").jcarousel({
		scroll: 4,
        buttonNextHTML: '<div class="next">Next &raquo;</div>',
        buttonPrevHTML: '<div class="prev">&laquo; Prev</div>'
    });

	$('.video_rel .tabWidget > ul').tabs();
	
    $('.mod-participate498 .rightLinks > ul').tabs();

	$('span.openAdvSearch').click(function() {
		$('div.mod-advsearch').slideDown('fast');
	});

	$('div.hidelink span').click(function() {
		$('div.mod-advsearch').slideUp('fast');
	});

	$('span.openMediaSearch').click(function() {
		$('div.mod-mediaAdvSearch').slideDown('fast');
	});

	$('div.hidelink span').click(function() {
		$('div.mod-mediaAdvSearch').slideUp('fast');
	});

// home top stage
    $('.stage .stgslide').cycle({
        fx: 'fade',
		timeout: 9000,
		speed: 500,
        before: onBefore,
        pager: '.stgbtnwrpr .stgbtngrp',
        pagerAnchorBuilder: function(idx, slide) {
            idxNUM = idx + 1;
            return '<div class="stgbtnoff">' + idxNUM + '</div>';
        }
    });

	$('.stage .stgbtngrp .stgbtnoff').click(function(){
		$('.stage .stgslide').cycle('stop');
	});

	// media slideshow base	
//	$('#media_cat .categoryList').cycle({ 
//		fx: 'scrollVert', 
//		timeout: 0,
//		next: '#media_cat .next', 
//		prev: '#media_cat .previous'
//	});	
//	

	
    // set up of slide show gallery

    $('.mod-gallery954 .ssInfoPane').addClass('gallery_info');

    $('.mod-gallery954 .jcarousel-skin-gallery').addClass('gallery_show'); // adds new class name to 33 maintain degradability

    $('.mod-gallery954 ul.gallery_show').galleria({
        history: false, // controls the history object for bookmarking, back-button etc.
        clickNext: true, // helper for making the image clickable
        insert: '#main_image', // the containing selector for our main image
        onImage: function(image, caption, description, tracker, thumb) { // let's add some image effects for demonstration purposes

            // fade in the image & caption
            image.css('display', 'none').fadeIn(200);
            caption.css('display', 'none').fadeIn(200);
            description.css('display', 'none').fadeIn(200);
            tracker.css('display', 'none').fadeIn(200);

            // fetch the thumbnail container
            var _li = thumb.parents('li');

            // fade out inactive thumbnail
            _li.siblings().children('img.selected').fadeTo(100, 0.5);

            // fade in active thumbnail
            thumb.fadeTo('fast', 1).addClass('selected');

            // add a title for the clickable image
            image.attr('title', 'Next image >>');

            $('#main_image').trigger('img_change');

        },
        onThumb: function(thumb) { // thumbnail effects goes here

            // fetch the thumbnail container
            var _li = thumb.parents('li');

            // if thumbnail is active, fade all the way.
            var _fadeTo = _li.is('.active') ? '1' : '0.5';

            // fade in the thumbnail when finished loading
            thumb.css({ display: 'none', opacity: 0 })
            thumb.css({ display: 'block' }).fadeTo(500, _fadeTo);

            // hover effects
            thumb.hover(
				function() { thumb.fadeTo('fast', 1); },
				function() { _li.not('.active').children('img').fadeTo('fast', 0.5); } // don't fade out if the parent is active
			)
        }
    });

    $('.mod-gallery954').prepend("<div class='autoControl'>Pause</div>");
		var active = true;
		var gal = jQuery('.mod-gallery954');
		var ctrl = gal.find('.autoControl')

    $(function() {
        //var slideshow = $("gallerytitle");

        if (active) {
            ctrl.css("background-position", "0 0");
            gal.everyTime('10s', 'slideshow', function() {
                $.galleria.next();
            });
        } if (!active) {
            ctrl.css("background-position", "0 -23px");
        };

        ctrl.css("cursor", "pointer").click(function() {
            if (!active) {
                active = true;
                $.galleria.next();
                ctrl.css("background-position", "0 0").html("Pause");
                gal.everyTime('10s', 'slideshow', function() {
                    $.galleria.next();
                });
            } else if (active) {
                active = !active;
                ctrl.css("background-position", "0 -23px").html("Play");
                gal.stopTime('slideshow');
            }
        });

    });

	jQuery('.mod-gallery954 #gallery').jcarousel({
		scroll: 5,
		  initCallback: gallery_initCallback
	 });

	 $.hotkeys.add('left', function(){$.galleria.prev();});
	 $.hotkeys.add('right', function(){$.galleria.next();});


	$('.mod-gallery954 .main_image_wrapper').append("<a class='prevImg' href='#'>Previous Image</a>");
	$('.mod-gallery954 .main_image_wrapper').append("<a class='nextImg' href='#'>Next Image</a>");

	$('.mod-gallery954 .prevImg').click(function(){
		$.galleria.prev();
		if (active) {
			active = !active;
			ctrl.css("background-position", "0 -23px").html("Play");
			gal.stopTime('slideshow');
		}
		return false;
	});
	$('.mod-gallery954 .nextImg').click(function(){
		$.galleria.next();
		if (active) {
			active = !active;
			ctrl.css("background-position", "0 -23px").html("Play");
			gal.stopTime('slideshow');
		}
		return false;
	});
		
	$('.mod-gallery954 .galleria_wrapper, .mod-gallery954 .jcarousel-item, .mod-gallery954 .jcarousel-prev, .mod-gallery954 .jcarousel-next').click(function(){
		if (active) {
			active = !active;
			ctrl.css("background-position", "0 -23px").html("Play");
			gal.stopTime('slideshow');
		}
	});

	$('.mod-gallery954 .gallery_info').hide();

	$('.mod-gallery954 .ssInfoLink').toggle(
		function () {
		  $('.mod-gallery954 .gallery_info').slideDown('fast');
		  $(this).html("hide slideshow info");
		  return false;
		},
		function () {
		  $('.mod-gallery954 .gallery_info').slideUp('fast');
		  $(this).html("slideshow info");
		  return false;
		}
	);



    //end setup of slideshow gallery

});

$.fn.cycle.updateActivePagerLink = function(pager, currSlideIndex) {
    $(pager).find('div').removeClass('stgbtnon')
        .filter('div:eq(' + currSlideIndex + ')').addClass('stgbtnon');
};

function gallery_initCallback(carousel) {
	var listTotal = jQuery('#gallery li').length;

	jQuery('.mod-gallery954 #main_image').bind('img_change', function() {
	    var num = parseInt((jQuery('.mod-gallery954 .caption').text()).split(";", 1)[0]) - 3;
	    var location = parseInt(jQuery('.mod-gallery954 .caption').text().split(";", 2)[0]) + 1;

	    jQuery('.mod-gallery954 .caption').html(jQuery('.caption').text().split(";", 2)[1]);
	    jQuery('.mod-gallery954 .tracker').html(location + " of " + listTotal);

	    carousel.scroll(num);
	    return false;
	});
};

function onBefore() {
	$('.stghrimg').html($('.stgslideheading', this).html());
	$('.stghrtxt').html($('.stgslidecontent', this).html());
	$('.stgcredit').html($('.stgslidecredit', this).html());
}

jQuery(function($) {

	//tabs
	$('.tabWidget > ul').tabs();

});	



$(document).ready(function(){
//The following is a bunch of initializations
//for various uses of jQuery
var options = { min: -4, max: 0};
//Initialize the font sizer for the site.
/*
$jquery.FontSizer.Init(options);
//Initialize the style switcher for the site
*/
$jquery.SwitchStyle.Init();
});

$jquery = jQuery;

/*
$jquery.FontSizer = {

        level: 0,

        options : {            
                min: -4,
                max: 0
        },

        Init : function(options) {
                if(options)
		    $jquery.FontSizer.options = $jquery.extend($jquery.FontSizer.options, options);

                //Get the current level from cookies.
                var level = ($jquery.cookie('font_level') != null && parseInt($jquery.cookie('font_level'))) ? parseInt($jquery.cookie('font_level')) : -2;                      
				// alert($.cookie('font_level'));
                //Set the font size to the current leve.
                $jquery.FontSizer.SetSize(level);

        },

        IncreaseSize : function() {

                if(($jquery.FontSizer.level) + 1 <= $jquery.FontSizer.options.max) {            
                        //If we have not exceded the max level,
                        //Get the next level and the set the size to this level.
                        var next = (parseInt($jquery.FontSizer.level) + 1);
                        $jquery.FontSizer.SetSize(next);  
                }

        },

        DecreaseSize : function() {
                if(($jquery.FontSizer.level - 1) >= $jquery.FontSizer.options.min) {
                        //If we have not exceded the min level,
                        //Get the next level and the set the size to this level.
                        var next = (parseInt($jquery.FontSizer.level) - 1);
                        $jquery.FontSizer.SetSize(next);  
                }      
        },      

        SetSize: function(level) {

                //Set the current level in the member variable and the cookie.
                $jquery.FontSizer.level = level;      
                $jquery.cookie('font_level', level, {path: '/'});

                //Work out the new em value and set it.
                var level = (level / 10) + 1;
                $jquery("body").css("fontSize", level+"em");    

        },

        Reset: function() {
            
            //Reset the level back to 0
            $jquery.FontSizer.SetSize(0);
        
        }

}; 
*/

$jquery.SwitchStyle = {

	style: '',

	lookup: {textversion : 'http://www.maine.gov/portal/css/text.css',
		mobile : 'http://www.maine.gov/portal/css/handheld.css',
		normal : 'http://www.maine.gov/portal/css/temp.css'},

	Init : function() {
		var style = $jquery.cookie('switchable_style') != null ? $jquery.cookie('switchable_style') : $jquery.SwitchStyle.normal;
	        $jquery.SwitchStyle.SetStyle(style);
		var initialized = true;
		var minWidth=640
		if ($jquery.cookie('switchable_style') == null && (screen.width < minWidth || screen.width == "" || screen.width == null)){
			$jquery.SwitchStyle.SetMobile();
		}
	},

	SetText: function()
        {
                $jquery.SwitchStyle.SetStyle('textversion')
        },

	SetMobile: function()
        {
                $jquery.SwitchStyle.SetStyle('mobile')
        },


	SetStyle: function(styleName)
	{
		$jquery('link#switchable').attr("href", $jquery.SwitchStyle.lookup[styleName]);
		$jquery.cookie('switchable_style',styleName, {path: '/'});
	},
	
	Reset: function()
	{
		$jquery.SwitchStyle.SetStyle('normal')
	}
};

/*function getLanguage ( selectedLanguage )
	{
	  document.transLang.pageTools.value = selectedLanguage ;
	  document.transLang.submit() ;
	}

function getLanguage ( selectedLanguage )
	{
	  document.transLang.pageTools.value = selectedLanguage ;
	  document.transLang.submit() ;
	} */
	
$jquery.Translate = { 
	
	ToSpanish: function(){
		var current_url = window.location.href;
		if( current_url.indexOf("u=") > -1 ) {
			window.location = "http://www.google.com/translate_p?langpair=en|es&u=" + current_url.substr(current_url.indexOf("u=")+2);
		}
		else{
			window.location = "http://www.google.com/translate_p?langpair=en|es&u=" + current_url;
		}
	},
	
	ToFrench: function(){
		var current_url = window.location.href;
		if( current_url.indexOf("u=") > -1 ) {
			window.location = "http://www.google.com/translate_p?langpair=en|fr&u=" + current_url.substr(current_url.indexOf("u=")+2);
		}
		else{
			window.location = "http://www.google.com/translate_p?langpair=en|fr&u=" + current_url;
		}
	},
	
	ToEnglish: function(){
		var current_url = window.location.href;
		if( current_url.indexOf("u=") > -1 ) {
			window.location = current_url.substr(current_url.indexOf("u=")+2);
		}
		else{
			window.location = current_url;
		}
	}

		
};





/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true});
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', null);
 * @desc Delete a cookie by passing null as value.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 * If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 * If set to null or omitted, the cookie will be a session cookie and will not be retained
 * when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        var path = options.path ? '; path=' + options.path : '';
        var domain = options.domain ? '; domain=' + options.domain : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};

/*Ryan's menugod */
if(window.attachEvent)
	window.attachEvent("onload",LoadPage);
else if(window.addEventListener)
	window.addEventListener("load",LoadPage,false);
else
	onload = function() { LoadPage() };
function LoadPage(){
MENUGOD("mainNav");
MENUGOD("awt-leftside");
MENUGOD("awt-topNav-links");
MENUGOD("awt-topNav-search");
stripe ('tbstriped');
stripe ('tbstriped2');
stripe ('tbstriped3');
}
  

function array_search(recordSet,key){
var found=0;
var regx=new RegExp('^'+key,'i');
 for (i=0;i<recordSet.length;i++){
   if (regx.test(recordSet[i])) return(1);
   }
    return(0);
} 

function MENUGOD(id){

var URL=window.location.href.split("/");

if(!/\/$/.exec(window.location.href)) URL[URL.length-1] = "";
else if(URL[URL.length-1] != "") URL[URL.length] = "";

var base = URL.join("/");
	
if(!/\/$/.exec(base))
	base = base+"/";
	
var curpath = window.location.pathname;
var completepath = window.location.protocol+"//"   + window.location.host  + window.location.pathname;
var content = "";
URL=window.location.href;


if (document.getElementById && document.getElementById(id)) content = document.getElementById(id).innerHTML;
	else if (document.all && document.all[id]) content = document.all[id].innerHTML;
	else if (document.layers && document.layers[id]) content = document.layers[id];
	else return;


if(document.getElementsByTagName("base")[0]){
	basex = document.getElementsByTagName("base")[0].href;		
		if(!/\/$/.exec(basex))
			basex = basex+"/"
	}else{
	basex = base;
	}

	content = bulk_make_abs(content, basex);


	if(!content) return;
//if the url ends with /
if(/\/$/.exec(URL)){
	//try to find default
	if(content.indexOf(base+"index.html") > 0) URL = base+"index.html";
	else if(content.indexOf(base+"index.htm") > 0) URL = base+"index.htm";
	else if(content.indexOf(base+"index.shtml") > 0) URL = base+"index.shtml";
	else if(content.indexOf(base+"default.html") > 0) URL = base+"default.html";
	else if(content.indexOf(base+"default.htm") > 0) URL = base+"default.htm";
	else if(content.indexOf(base+"homepage.htm1") > 0) URL = base+"homepage.html";
	else if(content.indexOf(base+"homepage.htm") > 0) URL = base+"homepage.htm";
	else URL = base;
	
}

//index.html default with a /
if(/index\.html$/.exec(URL)){
	if(content.indexOf(base+"index.html") > 0) URL = URL;
		else URL = base;
}

//index.htm default with a /
if(/index\.htm$/.exec(URL)){
	if(content.indexOf(base+"index.htm") > 0) URL = URL;
		else URL = base;
}

//index.shtm default with a /
if(/index\.shtml$/.exec(URL)){
	if(content.indexOf(base+"index.shtml") > 0) URL = URL;
		else URL = base;
}

//default.html default with a /
if(/default\.html$/.exec(URL)){
	if(content.indexOf(base+"default.html") > 0) URL = URL;
		else URL = base;
}

//default.htm default with a /
if(/default\.htm$/.exec(URL)){
	if(content.indexOf(base+"default.htm") > 0) URL = URL;
		else URL = base;
}

//homepage.html default with a /
if(/homepage\.html$/.exec(URL)){
	if(content.indexOf(base+"homepage.html") > 0) URL = URL;
		else URL = base;
	
}


//homepage.htm default with a /
if(/homepage\.htm$/.exec(URL)){
	if(content.indexOf(base+"homepage.htm") > 0) URL = URL;
		else URL = base;
}

	origURL = URL;
	if(origURL == "")
		origURL = curpath+'"';	
		
	origURL = origURL.replace(/\//g, '\\\/');

/*********** PREPARE URL ARRAY  ************/	
	URLS = new Array();
	
	//remove of nl space  (white space)
	tempcontent = content;
	tempcontent = tempcontent.replace(/\r\n/g, '');
	tempcontent = tempcontent.replace(/\s/g, '');
	//curpath = curpath.replace(/\//g, '\\\/');
	//completepath = completepath.replace(/\//g, '\\\/');
	
	//now go through tempcontent and look for instances of </a><ul> //case sensitive for SAFARI
//</a><ul>  means there is a parent menu that needs hilights
	index = tempcontent.search(/<\/A><UL>/ig);

	cnt=1;
		//while found
	 while (index != -1) {
	  cnt++;
  if(cnt > 100)  break;
  
    curcontent = tempcontent.slice(0,index+8);
  	tempcontent = tempcontent.slice(index+8,tempcontent.length);	
	curURLS = curcontent.split(/<Ahref="/ig);
	theURL = curURLS[curURLS.length-1].slice(0,curURLS[curURLS.length-1].indexOf('"'));

if(theURL != ""){
		theURL = theURL.replace(/\//g, '\\\/');
		if(!array_search(URLS,theURL)) URLS.push(theURL);
 }
  index = tempcontent.search(/<\/A><UL>/ig);
	}


	if(!array_search(URLS,origURL))
		URLS.push(origURL);
		
		URLS.reverse();

/*********** PREPARE URL ARRAY  ************/

/************* Create Content ****************/
 var arraycnt = URLS.length-1;
 index = eval("content.search(/"+URLS[arraycnt]+"\"/ig)");
 var newcontent = "";
 cnt=1;

  while (index != -1 && arraycnt >=0) {
  cnt++;
  if(cnt > 100)  break;
URLS[arraycnt] = URLS[arraycnt].replace(/\\\//g, '\/');
	
newcontent += content.slice(0,parseInt(index)+parseInt(URLS[arraycnt].length)+1) + 'class="on" ';
content = content.slice(parseInt(index)+parseInt(URLS[arraycnt].length)+1,content.length);  	arraycnt--;
    index = eval("content.search(/"+URLS[arraycnt]+"/ig)");
	// start search after last match found 
	}
	 newcontent += content;
 newcontent = newcontent.replace(/"\s"/g, '"');	 	 
/************* Create Content ****************/

/************* Write Content ****************/

if (document.getElementById)	document.getElementById(id).innerHTML = newcontent;
	else if (document.all)	document.all[id].innerHTML = newcontent;
	else if (document.layers)
	{
		document.layers[id].document.open();
		document.layers[id].document.write(newcontent);
		document.layers[id].document.close();
	}	
/************* Write Content ****************/	
}	
	
	
	
	
function bulk_make_abs(content, base) {
 cnt=0;
// alert(content);
//regs = content.match(/href="([^"]+)"/gi);
 regs = content.match(/href=(("[^"]+)|([^>]+))/gi);
if(!regs) return;
for(x=0;x<regs.length;x++){
 cnt++;
 if(cnt > 50) break;
  input_uri = regs[x].replace(/href=/g,"");
  input_uri = input_uri.replace(/"/g,"");
	//return;
//  input_uri = regs[x].split(/href="?"/gi);
//  if(input_uri[1])  input_uri = input_uri[1];

  if(input_uri == "#") continue;

  output_uri = make_abs(input_uri, base);
  input_uri = regs[x];
  output_uri = 'href="'+output_uri+'"';
  input_uri = input_uri.replace(/\//g,"\\\/");
  output_uri = output_uri.replace(/\//g,"\\\/");
content = eval("content.replace(/"+input_uri+"/,'"+output_uri+"')");
 }
 return(content);
} 


function make_abs(rel_uri, base) { 

//if(/^http:/.exec(rel_uri) || /^https:/.exec(rel_uri) || /^ftp:/.exec(rel_uri))	 return rel_uri;
if(/^([^:]+:\/\/)/.exec(rel_uri))	 return rel_uri;

var m = /^([^:]+:\/\/[^\/]+)\//i.exec(base);
base_start = m[1];
if(/^\//.exec(rel_uri))	 return base_start + rel_uri;

base = base.replace(/{[^\/]+$}/,'');
base += rel_uri;

//base = base.replace(/{^[^:]+:\/\/[^\/]+}/,'');
temp = m[1].replace(/\//g ,'\\\/');
base = eval("base.replace(/"+temp+"/,'')");
base_array = base.split('/'); 

if (base_array.length && !base_array[0].length)   base_array.shift(); 
i = 1; 
while (i < base_array.length) { 
  if (base_array[i - 1] == ".") { 
  base_array.splice(i - 1, 1);
   if (i > 1) i--; 
  } else if (base_array[i] == ".." && base_array[i - 1]!= "..") { 
   base_array.splice(i - 1, 2);
   if (i > 1) { 
i--; 
if (i == base_array.length) base_array.push("");
   } 
  } else { 
   i++; 
  } 
 } 
 if (base_array.length && base_array[-1] == ".") 
  base_array[-1] = ""; 
  while (base_array.length && /^\.\.?$/.exec(base_array[0]) ){ 
   base_array.shift();
  } 
  return(base_start + '/' + base_array.join('/') );
}


function stripe(id) {
if (document.getElementById && document.getElementById(id)) 
	table = document.getElementById(id);
	else if (document.all && document.all[id]) table = document.all[id];
	else if (document.layers && document.layers[id]) table = document.layers[id];
	else return;
     if (!table) return;
     var trs = table.getElementsByTagName("tr");
     for (var i = 0; i < trs.length; i += 2) 
       trs[i].className += " even";
   }


//***********MAPIFY JS FOR AUTOMATICALLY MAPPING ADDRESSES***********//

//
//
//

function init() {

}

function submitForm()
	{
	  var parm = document.pageTools.pageTools2.value;
	  if( parm == "mapAdd"){
		  Mapify();
	  }
	}

function Mapify() {
   document.body.innerHTML=document.body.innerHTML.replace(
      /\b((\d+|one|two|three|four|five|six|seven|eight|nine|ten)([^\n]{1,30}?)\b(street|st|road|rd|avenue|av|ave|court|ct|circle|cir|lane|ln|boulevard|blvd|bl|place|pl|drive|dr|square|sq|trail|tr|way|plaza|parkway|pkwy|route (\d+|one|two|three|four|five|six|seven|eight|nine|ten))\b([\s\S]{3,50})\b(maine|me|vermont|vt|new hampshire|nh|massachusetts|ma|connecticut|ct)\b([\s\S]{1,20}\d{5}(-\d{4})?)?)/ig,
      function (addr) {
         url=addr.replace(/<[^>]+>/g,'');
         url=url.replace(/po box \d+/i,'');
         url=encodeURIComponent(url.replace(/\n/g,' '));
         // alert(addr);
         return addr+' <a href="http://www.maine.gov/cgi-bin/gmaps/map.pl?show=query&address='+url+'">[Map It]</a>';
         // return '<a href="http://www.maine.gov/cgi-bin/gmaps/map.pl?show=query&address='+url+'">'+addr+'</a>';
      });
}

