/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * $LastChangedDate: 2007-06-19 20:25:28 -0500 (Tue, 19 Jun 2007) $
 * $Rev: 2111 $
 *
 * Version 2.1
 */
(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&parseInt($.browser.version)<=6){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild);});}return this;};if(!$.browser.version)$.browser.version=navigator.userAgent.toLowerCase().match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)[1];})(jQuery);


/**
 * --------------------------------------------------------------------
 * jQuery-Plugin "pngFix"
 * Version: 1.1, 11.09.2007
 * by Andreas Eberhard, andreas.eberhard@gmail.com
 *                      http://jquery.andreaseberhard.de/
 *
 * Copyright (c) 2007 Andreas Eberhard
 * Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)
 */

(function($) {
jQuery.fn.pngFix = function(settings) {
	// Settings
	settings = jQuery.extend({
		blankgif: '/images/1px.gif'
	}, settings);
	var ie55 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 5.5") != -1);
	var ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);
	if (jQuery.browser.msie && (ie55 || ie6)) {
		//fix images with png-source
		jQuery(this).find("img[@src$=.png]").each(function() {
			jQuery(this).attr('width',jQuery(this).width());
			jQuery(this).attr('height',jQuery(this).height());
			var prevStyle = '';
			var strNewHTML = '';
			var imgId = (jQuery(this).attr('id')) ? 'id="' + jQuery(this).attr('id') + '" ' : '';
			var imgClass = (jQuery(this).attr('class')) ? 'class="' + jQuery(this).attr('class') + '" ' : '';
			var imgTitle = (jQuery(this).attr('title')) ? 'title="' + jQuery(this).attr('title') + '" ' : '';
			var imgAlt = (jQuery(this).attr('alt')) ? 'alt="' + jQuery(this).attr('alt') + '" ' : '';
			var imgAlign = (jQuery(this).attr('align')) ? 'float:' + jQuery(this).attr('align') + ';' : '';
			var imgHand = (jQuery(this).parent().attr('href')) ? 'cursor:hand;' : '';
			if (this.style.border) {
				prevStyle += 'border:'+this.style.border+';';
				this.style.border = '';
			}
			if (this.style.padding) {
				prevStyle += 'padding:'+this.style.padding+';';
				this.style.padding = '';
			}
			if (this.style.margin) {
				prevStyle += 'margin:'+this.style.margin+';';
				this.style.margin = '';
			}
			var imgStyle = (this.style.cssText);
			strNewHTML += '<span '+imgId+imgClass+imgTitle+imgAlt;
			strNewHTML += 'style="position:relative;white-space:pre-line;display:inline-block;background:transparent;'+imgAlign+imgHand;
			strNewHTML += 'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;';
			strNewHTML += 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + jQuery(this).attr('src') + '\', sizingMethod=\'scale\');';
			strNewHTML += imgStyle+'"></span>';
			if (prevStyle != ''){
				strNewHTML = '<span style="position:relative;display:inline-block;'+prevStyle+imgHand+'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;'+'">' + strNewHTML + '</span>';
			}

			jQuery(this).hide();
			jQuery(this).after(strNewHTML);

		});
		// fix css background pngs
		/*
		jQuery(this).find("*").each(function(){
			var bgIMG = jQuery(this).css('background-image');
			if(bgIMG.indexOf(".png")!=-1){
				var iebg = bgIMG.split('url("')[1].split('")')[0];
				jQuery(this).css('background-image', 'none');
				jQuery(this).get(0).runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + iebg + "',sizingMethod='scale')";
			}
		});	
		*/
		//fix input with png-source
		jQuery(this).find("input[@src$=.png]").each(function() {
			var bgIMG = jQuery(this).attr('src');
			jQuery(this).get(0).runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + bgIMG + '\', sizingMethod=\'scale\');';
   		jQuery(this).attr('src', settings.blankgif)
		});	
	}	
	return jQuery;
};
})(jQuery);

function accordion_resized(){
}

/*
 * jQuery UI Accordion 1.6
 * 
 * Copyright (c) 2007 Jörn Zaefferer
 *
 * http://docs.jquery.com/UI/Accordion
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id: jquery.accordion.js 4876 2008-03-08 11:49:04Z joern.zaefferer $
 *
 */

;(function($) {
	
// If the UI scope is not available, add it
$.ui = $.ui || {};

$.fn.extend({
	accordion: function(options, data) {
		var args = Array.prototype.slice.call(arguments, 1);

		return this.each(function() {
			if (typeof options == "string") {
				var accordion = $.data(this, "ui-accordion");
				accordion[options].apply(accordion, args);
			// INIT with optional options
			} else if (!$(this).is(".ui-accordion"))
				$.data(this, "ui-accordion", new $.ui.accordion(this, options));
		});
	},
	// deprecated, use accordion("activate", index) instead
	activate: function(index) {
		return this.accordion("activate", index);
	}
});

$.ui.accordion = function(container, options) {
	
	// setup configuration
	this.options = options = $.extend({}, $.ui.accordion.defaults, options);
	this.element = container;
	
	$(container).addClass("ui-accordion");
	
	if ( options.navigation ) {
		var current = $(container).find("a").filter(options.navigationFilter);
		if ( current.length ) {
			if ( current.filter(options.header).length ) {
				options.active = current;
			} else {
				options.active = current.parent().parent().prev();
				current.addClass("current");
			}
		}
	}
	options.openAlready = [];
	// calculate active if not specified, using the first header
	options.headers = $(container).find(options.header).css('cursor','pointer').each( function(idx){if($(this).hasClass(options.selectedClass)){options.openAlready.push(idx);}});
	if(options.openAlready.length ==1){options.active = options.openAlready[0]}
	
	options.active = findActive(options.headers, options.active);
		

	if ( options.fillSpace ) {
		var maxHeight = $(container).parent().height();
		options.headers.each(function() {
			maxHeight -= $(this).outerHeight();
		});
		var maxPadding = 0;
		options.headers.next().each(function() {
			maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height());
		}).height(maxHeight - maxPadding);
	} else if ( options.autoheight ) {
		var maxHeight = 0;
		options.headers.next().each(function() {
			maxHeight = Math.max(maxHeight, $(this).outerHeight());
		}).height(maxHeight);
	}
	
		options.headers
			.not(options.active || "")
			.next()
			.hide();
			
	if(options.openAlready.length >1){
		for(var i=0;i<options.openAlready.length;i++){
			var idx=options.openAlready[i];
			options.headers.each(function(id){if(id == idx){$(this).next().show();}})
		}
	}
	options.active.parent().andSelf().addClass(options.selectedClass);
	/* Kathmandu specific code  */
	if(options.alternatingHeading1 && options.alternatingHeading2){
	jQuery(options.headers).not(':first').not(':even').addClass('accordion_heading_odd');
	jQuery(options.headers).not(':first').not(':odd').addClass('accordion_heading_even');
	}
	/* end Kathmandu specific code */
	if (options.event)
		$(container).bind((options.event) + ".ui-accordion", clickHandler);	
		
};

$.ui.accordion.prototype = {
	activate: function(index) {
		// call clickHandler with custom event
		clickHandler.call(this.element, {
			target: findActive( this.options.headers, index )[0]
		});
	},
	
	enable: function() {
		this.options.disabled = false;
	},
	disable: function() {
		this.options.disabled = true;
	},
	destroy: function() {
		this.options.headers.next().css("display", "");
		if ( this.options.fillSpace || this.options.autoheight ) {
			this.options.headers.next().css("height", "");
		}
		$.removeData(this.element, "ui-accordion");
		$(this.element).removeClass("ui-accordion").unbind(".ui-accordion");
	}
}

function scopeCallback(callback, scope) {
	return function() {
		return callback.apply(scope, arguments);
	};
}

function completed(cancel) {
	// if removed while animated data can be empty
	if (!$.data(this, "ui-accordion"))
		return;
	var instance = $.data(this, "ui-accordion");
	var options = instance.options;
	options.running = cancel ? 0 : --options.running;
	if ( options.running )
		return;
	if ( options.clearStyle ) {
		options.toShow.add(options.toHide).css({
			height: "",
			overflow: ""
		});
	}
	$(this).triggerHandler("change.ui-accordion", [options.data], options.change);
}

function toggle(toShow, toHide, data, clickedActive, down) {
	var options = $.data(this, "ui-accordion").options;
	options.toShow = toShow;
	options.toHide = toHide;
	options.data = data;
	var complete = scopeCallback(completed, this);	
	// count elements to animate
	options.running = toHide.size() == 0 ? toShow.size() : toHide.size();
	
	if ( options.animated ) {
		if ( !options.alwaysOpen && clickedActive ) {
			$.ui.accordion.animations[options.animated]({
				toShow: jQuery([]),
				toHide: toHide,
				complete: complete,
				down: down,
				autoheight: options.autoheight
			});
		} else {
			$.ui.accordion.animations[options.animated]({
				toShow: toShow,
				toHide: toHide,
				complete: complete,
				down: down,
				autoheight: options.autoheight
			});
		}
	} else {
		if ( !options.alwaysOpen && clickedActive ) {
			toShow.toggle();
		} else {
			toHide.hide();
			toShow.show();
		}
		complete(true);
		accordion_resized(' ');
	}
}

function clickHandler(event) {

	var options = $.data(this, "ui-accordion").options;
	
	if (options.disabled)
		return false;
	
	// called only when using activate(false) to close all parts programmatically
	if (!event.target && !options.alwaysOpen) {		
		options.active.parent().andSelf().toggleClass(options.selectedClass);
		var toHide = options.active.next(),
			data = {
				instance: this,
				options: options,
				newHeader: jQuery([]),
				oldHeader: options.active,
				newContent: jQuery([]),
				oldContent: toHide
			},
			toShow = options.active = $([]);
			
		toggle.call(this, toShow, toHide, data );
		options.openAlready = [];
		return false;
	}
	if(options.openAlready.length >1){
		for(var cnt=0; cnt<options.openAlready.length; cnt++){
			$(options.openAlready[cnt]).removeClass(options.selectedClass);
		}
	}
	// get the click target
	var clicked = $(event.target);
	
	// due to the event delegation model, we have to check if one
	// of the parent elements is our actual header, and find that
	if ( clicked.parents(options.header).length )
		while ( !clicked.is(options.header) )
			clicked = clicked.parent();
	
	var clickedActive = (clicked[0] == options.active[0]);
	
	// if animations are still active, or the active header is the target, ignore click
	if (options.running >0 || (options.alwaysOpen && clickedActive && (options.openAlready.length < 2)))
	{
		return false;
	}
	if (!clicked.is(options.header))
	{
		return;
	}
	// switch classes
	if(!options.alwaysOpen && !clickedActive){
		options.active.parent().andSelf().toggleClass(options.selectedClass);
	}
	if ( !clickedActive ) {
		clicked.parent().andSelf().addClass(options.selectedClass);
	}

	// find elements to show and hide
	var toShow = clicked.next();
	var toHide = options.active.next();
	if(options.alwaysOpen){		
		toHide = options.headers.not(clicked).removeClass(options.selectedClass).next();		
	}
		//data = [clicked, options.active, toShow, toHide],
	var	data = {
			instance: this,
			options: options,
			newHeader: clicked,
			oldHeader: options.active,
			newContent: toShow,
			oldContent: toHide
		}
	var	down = options.headers.index( options.active[0] ) > options.headers.index( clicked[0] );
	if(clickedActive && options.alwaysOpen && options.openAlready.length>1){
		//options.active = clicked;
	}else{
	options.active = clickedActive ? $([]) : clicked;
	}
	toggle.call(this, toShow, toHide, data, clickedActive, down );
	options.openAlready =[];
	return false;
};

function findActive(headers, selector) {
	return selector != undefined
		? typeof selector == "number"
			? headers.filter(":eq(" + selector + ")")
			: headers.not(headers.not(selector))
		: selector === false
			? $([])
			: headers.filter(":eq(0)");
}

$.extend($.ui.accordion, {
	defaults: {
		selectedClass: "selected",
		alwaysOpen: true,
		animated: 'slide',
		event: "click",
		header: "a",
		autoheight: false,
		running: 0,
		navigationFilter: function() {
			return this.href.toLowerCase() == location.href.toLowerCase();
		}
	},
	animations: {
		slide: function(options, additions) {
			options = $.extend({
				easing: "swing",
				duration: 300
			}, options, additions);
			if ( !options.toHide.size() ) {
				options.toShow.animate({height: "show"}, options);
				return;
			}
			var hideHeight = options.toHide.height(),
				showHeight = options.toShow.height(),
				difference = showHeight / hideHeight;
				
			options.toShow.css({ height: 0, overflow: 'hidden' }).show(options.duration);
			options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate({height:"hide"},{
				step: function(now) {
					var current = (hideHeight - now) * difference;
					if ($.browser.msie || $.browser.opera) {
						current = Math.ceil(current);
					}
					options.toShow.height( current);
				},
				duration: options.duration,
				easing: options.easing,
				complete: function() {
					if ( !options.autoheight ) {
						options.toShow.css("height", "auto");
					}
					options.complete();
				}
			});
		if(!$.browser.msie){
				setTimeout("accordion_resized()", options.duration + 20);
			}
		},
		bounceslide: function(options) {
			this.slide(options, {
				easing: options.down ? "bounceout" : "swing",
				duration: options.down ? 1000 : 200
			});
		},
		easeslide: function(options) {
			this.slide(options, {
				easing: "easeinout",
				duration: 700
			})
		}
	}
});

})(jQuery);


;(function(){var $$;$$=jQuery.fn.flash=function(htmlOptions,pluginOptions,replace,update){var block=replace||$$.replace;pluginOptions=$$.copy($$.pluginOptions,pluginOptions);if(!$$.hasFlash(pluginOptions.version)){if(pluginOptions.expressInstall&&$$.hasFlash(6,0,65)){var expressInstallOptions={flashvars:{MMredirectURL:location,MMplayerType:'PlugIn',MMdoctitle:jQuery('title').text()}};}else if(pluginOptions.update){block=update||$$.update;}else{return this;}}htmlOptions=$$.copy($$.htmlOptions,expressInstallOptions,htmlOptions);return this.each(function(){block.call(this,$$.copy(htmlOptions));});};$$.copy=function(){var options={},flashvars={};for(var i=0;i<arguments.length;i++){var arg=arguments[i];if(arg==undefined)continue;jQuery.extend(options,arg);if(arg.flashvars==undefined)continue;jQuery.extend(flashvars,arg.flashvars);}options.flashvars=flashvars;return options;};$$.hasFlash=function(){if(/hasFlash\=true/.test(location))return true;if(/hasFlash\=false/.test(location))return false;var pv=$$.hasFlash.playerVersion().match(/\d+/g);var rv=String([arguments[0],arguments[1],arguments[2]]).match(/\d+/g)||String($$.pluginOptions.version).match(/\d+/g);for(var i=0;i<3;i++){pv[i]=parseInt(pv[i]||0);rv[i]=parseInt(rv[i]||0);if(pv[i]<rv[i])return false;if(pv[i]>rv[i])return true;}return true;};$$.hasFlash.playerVersion=function(){try{try{var axo=new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');try{axo.AllowScriptAccess='always';}catch(e){return'6,0,0';}}catch(e){}return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g,',').match(/^,?(.+),?$/)[1];}catch(e){try{if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){return(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1];}}catch(e){}}return'0,0,0';};$$.htmlOptions={flashvars:{},pluginspage:'http://www.adobe.com/go/getflashplayer',src:'#',type:'application/x-shockwave-flash'};$$.pluginOptions={expressInstall:false,update:true,version:'6.0.65'};$$.replace=function(htmlOptions){this.innerHTML='<div class="alt">'+this.innerHTML+'</div>';jQuery(this).addClass('flash-replaced').prepend($$.transform(htmlOptions));};$$.update=function(htmlOptions){var url=String(location).split('?');url.splice(1,0,'?hasFlash=true&');url=url.join('');var msg='<p>This content requires the Flash Player. <a href="http://www.adobe.com/go/getflashplayer">Download Flash Player</a>. Already have Flash Player? <a href="'+url+'">Click here.</a></p>';this.innerHTML='<span class="alt">'+this.innerHTML+'</span>';jQuery(this).addClass('flash-update').prepend(msg);};function toAttributeString(){var s='';for(var key in this)if(typeof this[key]!='function')s+=key+'="'+this[key]+'" ';return s;};function toFlashvarsString(){var s='';for(var key in this)if(typeof this[key]!='function')s+=key+'='+encodeURIComponent(this[key])+'&';return s.replace(/&$/,'');};$$.transform=function(htmlOptions){htmlOptions.toString=toAttributeString;if(htmlOptions.flashvars)htmlOptions.flashvars.toString=toFlashvarsString;return'<embed '+String(htmlOptions)+'/>';};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};});}})();

jQuery.fn.sifr=function(prefs){var p=jQuery.extend((prefs===false)?{unsifr:true}:{},arguments.callee.prefs,prefs);if(p.save){arguments.callee.prefs=jQuery.extend(p,{save:false});}if(this[0]===document){return;}if(!p.unsifr&&typeof p.before==='function'){p.before.apply(this,[p]);}this.each(function(){var t=jQuery(this);var a=t.children('.sIFR-alternate');if(a){t.html(a.html());if(p.unsifr){return;}}if(typeof p.beforeEach==='function'){p.beforeEach.apply(this,[t,p]);}var s=t.html('<span class="flash-replaced sIFR-replaced">'+(p.content||t.html()).replace(/^\s+|\s+$/g,'')+'</span>').children();a=t.append('<span class="alt sIFR-alternate">'+s.html()+'</span>').children('.sIFR-alternate');if(a.css('display')!=='none'){a.css('display','none');}var toHex=function(c){var h=function(n){if(n===0||isNaN(n)){return'00';}n=Math.round(Math.min(Math.max(0,n),255));return'0123456789ABCDEF'.charAt((n-n%16)/16)+'0123456789ABCDEF'.charAt(n%16);};c=(c)?c.replace(/rgb|\(|\)|#$/g,''):false;if(!c){return false;}if(c.indexOf(',')>-1){c=c.split(', ');return'#'+h(c[0])+h(c[1])+h(c[2]);}if(c.search('#')>-1&&c.length<=4){c=c.split('');return'#'+c[1]+c[1]+c[2]+c[2]+c[3]+c[3];}return c;};if(p.textTransform){if(p.textTransform.toLowerCase()==='uppercase'){s.html(s.html().toUpperCase());}if(p.textTransform.toLowerCase()==='lowercase'){s.html(s.html().toLowerCase());}if(p.textTransform.toLowerCase()==='capitalize'){var c=s.html().replace(/\>/g,'> ').split(' ');for(var i=0;i<c.length;i=i+1){c[i]=c[i].charAt(0).toUpperCase()+c[i].substring(1);}s.html(c.join(' ').replace(/\> /g,'>'));}}var f={flashvars:jQuery.extend({h:s.height()*(p.zoom||1),offsetLeft:p.offsetLeft||undefined,offsetTop:p.offsetTop||undefined,textAlign:p.textAlign||(/(left|center|right)/.exec(t.css('textAlign'))||['center'])[0],textColor:toHex(p.color||t.css('color'))||undefined,txt:p.content||s.html(),underline:(p.underline||(p.underline!==false&&t.css('textDecoration')==='underline'))?true:undefined,w:(p.width||s.width())*(p.zoom||1)},p.flashvars),height:p.height||s.height(),src:(p.path||'')+((p.path&&p.path.substr(p.path.length-1)!=='/')?'/':'')+(p.font||'')+((p.font&&p.font.indexOf('.swf')===-1)?'.swf':''),width:p.width||s.width(),wmode:'transparent'};f.flashvars.linkColor=toHex(p.link||t.find('a').css('color'))||f.flashvars.textColor;f.flashvars.hoverColor=toHex(p.hover)||f.flashvars.linkColor;if(p.zoom){f.flashvars.offsetTop=((p.offsetTop||0)+((s.height()-(s.height()*p.zoom))/2))*(p.zoomTop||1);f.flashvars.offsetLeft=((p.offsetLeft||0)+((s.width()-(s.width()*p.zoom))/2))*(p.zoomLeft||1);}t.flash(jQuery.extend(f,p.embedOptions),jQuery.extend({expressInstall:p.expressInstall||false,version:p.version||7,update:p.update||false},p.pluginOptions),function(f){var preHeight=t.height();var preWidth=t.width();s.html(jQuery.fn.flash.transform(f));var e=s.find(':first');e.css({verticalAlign:'text-bottom',display:'inline',width:p.width,height:p.height});var marginBottom=preHeight-t.height();var width=parseInt(e.css('width'),10)+parseInt(preWidth-t.width(),10);if(!p.height){e.css({marginBottom:marginBottom});}if(!p.width){e.css({width:width});}if(p.height&&p.verticalAlign==='middle'){e.css({marginTop:Math.floor((p.height-s.height())/2),marginBottom:Math.round((p.height-s.height())/2),height:s.height()});e.attr('height',s.height());}if(p.height&&p.verticalAlign==='bottom'){var a=t.find('.sIFR-alternate');e.css({marginTop:(p.height-s.height()),height:s.height()});e.attr('height',s.height());}if(p.css){e.css(p.css);}});if(typeof p.afterEach==='function'){p.afterEach.apply(this,[t,p]);}});if(!p.unsifr&&typeof p.after==='function'){p.after.apply(this,[p]);}};jQuery.sifr=function(prefs){jQuery().sifr(jQuery.extend({save:true},prefs));};jQuery.fn.unsifr=function(){return this.each(function(){jQuery(this).sifr(false);});};

/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);

/* stretches the top div in the navigation to keep the bottom div the same size */
(function($){   
 $.fn.stretchToFill = function(opts) {  
    var defaults = {   
    stretch_vertical:true,
    minimum_height : 630,
    match_this:'.leftcontainer',
    to_this:'.rightcontainer',
    stretch_this:'.secondary_navigation' 
    };   
    var options = $.extend(defaults, opts);  
    return this.each(function() {   
        var selfref = $(this);       
        var fillerDiv = $(options.stretch_this).append('<img src="/images/1px.gif" class="stretchme" style="display:block;width:1px;height:1px"/>') ;
        var filler = $('.stretchme',fillerDiv);
        var toMatch = $(options.to_this);
        var toStretch = $(options.match_this);        
        var match_heights = function (){
            var fillH = filler.height();
            var targH = toMatch.outerHeight();
            if(targH <  options.minimum_height){
                targH =  options.minimum_height;
            }
            var needH = targH-(toStretch.outerHeight() - fillH);
            if(needH<1){
                needH = 1;
            }
            filler.css("height",needH + "px")
        };
        toMatch.resize(function(){match_heights();}); 
        if($.browser.mozilla){
           $("img", toMatch).bind("load",function(){match_heights();});
        } 
         match_heights();
    });   
 };   
})(jQuery); 




function estar_hideSlider(){
    $('#nav_slider').css('display','none');    
}

function estar_showSlider(el){
    var slider = document.getElementById('nav_slider');
	var pt = el;
	while(!((pt.parentNode.tagName.toLowerCase() == 'ul' && pt.parentNode.className.indexOf('secondary') > -1)|| (pt.parentNode.tagName.toLowerCase() == 'ul' && pt.parentNode.className.indexOf('flyout_menu') > -1))){ 	 
		pt = pt.parentNode;
	}	
	var ptCoords = estar_getCoords(pt);
	$('#nav_slider').css({'display':'block','position':'absolute','top':ptCoords[1]+1+'px'});
		
}


function asNumber(pixValue){
	if(pixValue){
    return parseInt(pixValue.replace('px',''));
	}else{
		return 0;
	}
}

function estar_getCoords(ob){
    var curleft = curtop = depth = 0 ;
    if (ob.offsetParent) {
	    do{
	        depth ++;
	        curleft += ob.offsetLeft;
			curtop += ob.offsetTop;			
	    }while(ob = ob.offsetParent );
	}	
	return [curleft,curtop]; 
}

function estar_openChild(parent_obj,class_name){
 var children = parent_obj.getElementsByTagName('*');
 for(var i = 0; i < children.length; i++){        
        if(children[i].className == class_name && children[i].parentNode == parent_obj){
           children[i].style.display='';           
        }
    } 
}
function estar_closeChild(parent_obj,class_name){
 var children = parent_obj.getElementsByTagName('*');
 for(var i = 0; i < children.length; i++){        
        if(children[i].className == class_name && children[i].parentNode == parent_obj){
           children[i].style.display='none';           
        }
    } 
}


(function($){   
 $.fn.setFlyouts = function(opts) {  
    var defaults = {   
    	maxWidth:600,
		flyoutClassName:'flyout',
		contentClassName:'flyout_content',
		columnClassName:'flyout_column',
		blockClassName:'flyout_block',
		setColumns:true
    };   
    var o = $.extend(defaults, opts);  
    return this.each(function() {  							  	
        var selfref = $(this); 
	
		var columnBase = '<ul class="'+o.columnClassName+'" style="float:left; clear:none;"></ul>'
        var flyoutBase='<div class="'+o.flyoutClassName+'" style="z-index:999;visibility:hidden;position:absolute;width:'+o.maxWidth+'px"><div class="'+o.contentClassName+'">'+columnBase+'</div>'
		// find top level li elements
		$('li',this).filter(function(idx){return idx == 0;}).siblings().andSelf().each(function(){
			var colWidth=0;			
			var top_level_li=$(this);
			// find the second level li elements
			var blocks=$('li',top_level_li).filter(function(idx){return idx == 0;}).siblings().andSelf().addClass(o.blockClassName).remove();
			// move the end element to the start (andSelf before siblings) to restore original order
			if(blocks.length >1){
				var tmp = blocks[blocks.length-1];				
				for(var i=blocks.length; i>0; i--){
					blocks[i] = blocks[i-1];					
				}
				blocks[0] = tmp;
			}
			$('ul',top_level_li).remove();	
			var flyout = $(flyoutBase);
			var flyout_content = $('.'+o.contentClassName,flyout);
			var columns = [];
				
			
			var redistribute = function(){			
				if(columns.length > 1 && columns.length < blocks.length){
					
					var currentColumnIdx=0;
					var sourceCol=$('.'+o.blockClassName, columns[columns.length -1]);
					var remaining = sourceCol.length;
					var count = sourceCol.length;
					var endCol = columns.length -1;
					var idealH = Math.floor(columns[columns.length -1].height()/columns.length) - 20;
					var c=0;
					for(var currentBlockIdx = 0; currentColumnIdx < endCol && currentBlockIdx < count-1; currentBlockIdx++){
						var toShift = $(sourceCol[currentBlockIdx]);
						
						toShift.remove();
						
						columns[currentColumnIdx].append(toShift);						
						if(columns[currentColumnIdx].height() >= idealH){
							
							currentColumnIdx ++;
						}
						
					}
					
						for (var j=0; j<columns.length -1; j++){
							var cL = columns[j];
							var cR = columns[j+1];
							var dH = cL.outerHeight() - cR.outerHeight();
							var lastL = $('.'+o.blockClassName+':last',cL);				
							var firstR = $('.'+o.blockClassName+':first',cR);
							var firstRH = firstR.outerHeight()+asNumber(firstR.css('margin-top'))+asNumber(firstR.css('margin-bottom'))
							var lastLH = lastL.outerHeight()+asNumber(lastL.css('margin-top'))+asNumber(lastL.css('margin-bottom'))
							
							var hLWithoutLast = cL.outerHeight() - lastLH;
							var hRWithoutFirst = cR.outerHeight() - firstRH;							
							if(dH > 0 && hLWithoutLast >0 && Math.abs(hLWithoutLast - (cR.outerHeight() + lastLH)) < dH){
								cR.prepend(lastL.remove());
							}else if(dH < 0 && hRWithoutFirst > 0 && Math.abs(hRWithoutFirst - (cL.outerHeight() + firstRH))  < dH){								
								cL.append(firstR.remove());
								
							}							
						}						
				}else if(columns.length > 1){
					columns[columns.length - 1].empty();
					for(var i=0; i<columns.length; i++){
						columns[i].append(blocks[i]);
					}
					
				}
				
			}
		
			var openFlyout = function(){				
				var ie6XOffset = 0;
				if($.browser.msie && $.browser.version<7){
					ie6XOffset -= ($('.maincontainer').offset().left - 9);				
				}
				flyout.css({'display':'block','visibility':'visible','top':(top_level_li.offset().top -asNumber(flyout.css('padding-top')))+ 'px','left':top_level_li.offset().left + top_level_li.outerWidth()+ie6XOffset +'px'});	
			}
			var closeFlyout = function(){
				flyout.css({'display':'none'});
			}
			if(blocks.length >0){				
				var colWidth = 0;
				columns[0] = $('.'+o.columnClassName,flyout);
				top_level_li.append(flyout);
				blocks.each(function(i){
					var me = $(this);
					columns[0].append(me);
					var myW = me.outerWidth();
					if(myW > colWidth){
						colWidth = myW;
					}
					;
				});	
				if(o.setColumns){
					var colCount =1;
					if(colWidth>0){colCount =Math.floor(o.maxWidth/colWidth)}
							
					if(colCount > 0){
						for(var i=1; i<colCount; i++){
							columns[i]=$('<ul class="'+o.columnClassName+'" style="float:left; clear:none;"></ul>');
							flyout_content.append(columns[i]);
						}					
					}
					flyout_content.append($('<br style="clear:left; height:1px; margin-top:-1px"/>'));
					flyout_content.append($('.catalogue_image',top_level_li).remove())
					if(columns.length > 1){
						idealH = Math.floor(columns[0].height()/colCount) ;
						//alert('columns[0].innerHeight(): '+columns[0].innerHeight()+', columns.length: '+columns.length);
						columns[columns.length -1].html(columns[0].html());
						columns[0].empty();
						redistribute();
					}
					flyout.bgiframe();

					
				}else{
					columns[0].css('float','none');
					flyout.bgiframe();
				}
				var config = {    
					 sensitivity: 6, // number = sensitivity threshold (must be 1 or higher)    
					 interval: 100, // number = milliseconds for onMouseOver polling interval    
					 over: openFlyout, // function = onMouseOver callback (REQUIRED)    
					 timeout: 200, // number = milliseconds delay before onMouseOut    
					 out: closeFlyout // function = onMouseOut callback (REQUIRED)    
				};

				top_level_li.hoverIntent(config);
				flyout.css({'display':'none','visibility':'visible'});
			}
		});
    });   
 };   
})(jQuery);

/* tooltip */
(function($){   
 $.fn.tooltip = function(opts) {  
    var defaults = {  
		link_selector:'.tt_link',
		content_selector:'.tt_tip',
		vPosition:'',
		vOffset:0,
		hPosition:'',
		hOffset:0,		
		mouse_activated:false
    };   
    var o = $.extend(defaults, opts); 
	var basetxt 
	if(o.mouse_activated){
		basetxt = '<div class="tt_display"></div>';
	}else{
		basetxt = '<div class="tt_display"><p class="tt_close_holder"><img class="tt_close_button" src="/images/btn_tooltip_close.gif" alt="Close"/></p></div>';
	}
    return this.each(function() { 
		var selfref=$(this);	
       	var display=$(basetxt).append($(o.content_selector,selfref)).addClass(o.vPosition).addClass(o.hPosition).show();
		var lnk= $(o.link_selector,selfref);
		function showMe(){			
				var myTop=selfref.offset().top;		
				var myLeft=selfref.offset().left;
				if(o.vPosition == 'under'){
					myTop += selfref.outerHeight() + o.vOffset;
				}else{
					myTop -=  (display.outerHeight() + o.vOffset)
				}
				if(o.hPosition == 'right'){
					myLeft += selfref.outerWidth() + o.hOffset - display.outerWidth();
				}else{
					myLeft -= o.hOffset;
				}		
				display.css({'position':'absolute','top':myTop+'px','left':myLeft +'px'});	
			display.show();
		}
		function hideMe(){
			display.hide();
		}		
		$('body').append(display);
		
		if(o.mouse_activated){
			selfref.bind('mouseover',function(){showMe()}).css('cursor','pointer');
			selfref.bind('mouseout',function(){hideMe()});
		}else{
			selfref.bind('click',function(){showMe()}).css('cursor','pointer');
			$('.tt_close_button',display).bind('click',function(){hideMe();});
		}
		hideMe();
    });   
 };   
})(jQuery);

function ajaxwin(href,id){
	if(!id){
		id="ajaxbox";
	}
	return dhtmlwindow.open(id, "iframe", href, "|", "width=600px,height=600px,center=1,resize=1,scrolling=1")
}
function zoom(href,id)
{
	
	if(!id){
		id="ajaxbox";
	}
    return dhtmlwindow.open(id, "iframe", href, "|", "width=525px,height=570px,resize=1,scrolling=0, center=1")
}
function showdiv(href,id)
{
	if(!id){
		id="divbox";
	}
    var divwin=dhtmlwindow.open(id, "div", href, "|", "width=525px,height=570px,resize=1,scrolling=1, center=1")	       
    $("#divbox h1.flashtext").sifr({path:"/images/",font:"Din_medium",textAlign: "left" });
    $("#divbox h2.flashtext").sifr({path:"/images/",font:"DIN_regular",textAlign: "left"}); 
}


var runOnLoad = null;
$(document).ready(function(){
    $(document).pngFix();
    estar_hideSlider();
    $('.secondary li, .flyout_menu li').bind('mouseover',function(){estar_showSlider(this);});
    $('.secondary li, .flyout_menu li').bind('mouseout',function(){estar_hideSlider(this);});


    $('.flyout_menu').setFlyouts({maxWidth:380});
    $('.secondary').setFlyouts({maxWidth:170, setColumns:false});
    $('h1.flashtext, .cart_heading h1').sifr({path:'/images/',font:'Din_medium',textAlign: 'left'});
    $('h2.CrossSell_heading').sifr({path:'/images/',font:'Din_medium',textAlign: 'left'});
    $('h2.flashtext').sifr({path:'/images/',font:'DIN_regular',textAlign: 'left'});
    if(jQuery.isFunction(runOnLoad)){
        runOnLoad();
    }
    $('.flash_intro_container').css('z-index',1);
    $('.main_navigation').accordion({header:'h2', selectedClass:'current' ,openAllSelected:true});
    $('#popup_summary .reminder .tool_tip').tooltip({mouse_activated:true,vPosition:'under',hPosition:'right', hOffset:78});
    $('#popup_summary .sign_in_options .tool_tip').tooltip({mouse_activated:true,vPosition:'over',hPosition:'right',link_selector:'label',hOffset:40});
	}

)




	// Additional Scripts (S. Frater - 12/06/2009)

	// The following functions are used in the cart summary popup and the customer profile page
    // for adding/removing summit club membership product items to the shopping cart.
	function ShowAddToCartPopup(data) {
	    var cartPopup = $("#popup_summary");
	    // Stop any animations running and timeouts
	    cartPopup.stop();
	    //window.clearTimeout(cartTimeout);
	    // Set and show data, setup scrolling and fade out
	    cartPopup.html(data);
	    ScrollCartPopup();
	    cartPopup.show();
	    $(window).scroll(ScrollCartPopup);
	    $('#popup_summary .reminder .tool_tip').tooltip({ mouse_activated: true, vPosition: 'under', hPosition: 'right', hOffset: 78 });
	    $('#popup_summary .sign_in_options .tool_tip').tooltip({ mouse_activated: true, vPosition: 'over', hPosition: 'right', link_selector: 'label', hOffset: 40 });
	    //cartTimeout = window.setTimeout(function() { cartPopup.fadeOut(); $(window).unbind("scroll", ScrollCartPopup); }, 5000);
	}

	// Keeps the cart popup in view
	function ScrollCartPopup() {
	    var y;
	    if (self.pageYOffset) { y = self.pageYOffset; }
	    else if (document.documentElement && document.documentElement.scrollTop) { y = document.documentElement.scrollTop; }
	    else if (document.body) { y = document.body.scrollTop; }
	    $("#popup_summary > div").css("top", y + "px");
	}

    // Ajax call to add summit club membership item to cart 
	function AddSummitToCart() {
        var size = $("#summitszID").val();
        var colour = $("#summitclID").val();
        var prod = $("#summitpdID").val();
        var cat = $("#summitcatID").val();
        if(isNaN(cat)) {cat = 0;}
        var quantity = 1;
              
        if (quantity && size && colour && quantity > 0 && size >= 0 && colour >= 0) {
            var cartPopup = $("#popup_summary");
            cartPopup.hide();
            $.ajax({
                type: "GET",
                url: "/default.aspx",
                cache: false,
                data: { z: "c", action: "addspecify", qs: "8", pdID: prod, catID: cat, szID: size, clID: colour, qty: quantity, addpopup: "1" },
                success: ShowAddToCartPopup
            });
        }

        try { //Synchronise Page Display
           $('#addsummit').attr("checked", true);
           $('#cancel').toggle();
        } catch (e) { }
        
        return false;
    }
     
    // Ajax call to remove summit club membership item from the cart
    function RemoveSummitFromCart(itemID) {
        var pid;
        if (itemID && itemID > 0) {
            pid = itemID;
        }
        var cartPopup = $("#popup_summary");
        cartPopup.hide();
        $.ajax({
            type: "GET",
            url: "/default.aspx",
            cache: false,
            data: { z: "c", action: "removeitem", id: pid, addpopup: "1", summitItem: "1"},
            success: ShowAddToCartPopup
        });

        try { //Synchronise Page Display
            $("input[name = 'addsummit']").attr("checked", false);
            $('#cancel').toggle();
        } catch (e) { }
        
        return false;
    }
    

    function setCancelVisibility(){
      //  var iSelected = $("input[name = 'addsummit']:checked").val();
		//if (iSelected == "Yes"){ $('#cancel').show(); } 
		//else { $('#cancel').hide(); }
    }

