/* Generic pages */
var Page = {
	
	init: function() {
		Page.setupPlugins();
		Page.fixCSS();
		Page.setupRollovers();
		Header.init();
	},
	
	setupPlugins: function() {
		/* Default values on text input elements */ 
		(function($){$.fn.defaultvalues=function(options){return this.each(function(){var defaults={};var options=$.extend(defaults,options);data=$(this).val();$(this).data('valueis',data);$(this).focus(function(){if($(this).val()==$(this).data('valueis')){$(this).val('')}});$(this).blur(function(){if($(this).val()==""){$(this).val($(this).data('valueis'))}})})}})(jQuery);
		
		/* jQuery sifr */
		(function($){$.fn.sifr=function(prefs){var t=true,u=undefined,s,p;s=arguments.callee.prefs=arguments.callee.prefs||{asHex:function(x){var d=['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'];return isNaN(x)?'00':d[(x-x%16)/16]+d[x%16];},colors:{aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},toHex:function(color){var rgb;if(!color){return u;}return(rgb=color.match(/rgb\(([0-9]+),\s([0-9]+),\s([0-9]+)\)/))?'#'+this.asHex(rgb[1])+this.asHex(rgb[2])+this.asHex(rgb[3]):(rgb=this.colors[color])?'#'+this.asHex(rgb[0])+this.asHex(rgb[1])+this.asHex(rgb[2]):(color.length===4)?color.replace(/\#([0-9a-z])([0-9a-z])([0-9a-z])/,'#$1$1$2$2$3$3'):color;}};p=$.extend({},s,(prefs===false)?{unsifr:true}:prefs);if(p.save===t){arguments.callee.prefs=$.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 ele=$(this),txt,alt,fir,embedOptions;fir=ele.children('.sIFR-alternate');if(fir){ele.html(fir.html());if(p.unsifr){return;}}if(typeof p.beforeEach==='function'){p.beforeEach.apply(this,[t,p]);}fir=ele.addClass('sIFR-replaced').wrapInner('<span class="sIFR-alternate" style="position: absolute; "></span>').children('.sIFR-alternate');alt=ele.append('<span class="sIFR-jquery" style="position: absolute; ">'+$.trim(fir.text())+'</span>').children('.sIFR-jquery');txt=$.trim(fir.html()).replace(/(>)\s+|\s+(<)/g,'$1$2').replace(/(id|name)=[A-Za-z0-9]+/g,'');if(p.textTransform){p.textTransform=p.textTransform.toLowerCase();if(p.textTransform==='uppercase'){txt=txt.toUpperCase();}if(p.textTransform==='lowercase'){txt=txt.html().toLowerCase();}if(p.textTransform==='capitalize'){var cap=txt.split(/(\s|\>)/);txt='';for(var i in cap){txt+=cap[i].charAt(0).toUpperCase()+cap[i].substr(1);}}}txt=ele.attr('href')?'<a href="'+ele.attr('href')+'">'+txt+'</a>':txt;embedOptions={flashvars:$.extend({h:alt.height()*(p.zoom||1),offsetLeft:p.offsetLeft||u,offsetTop:p.offsetTop||u,textAlign:p.textAlign||ele.css('textAlign').match(/left|center|right/)||'center',textColor:p.toHex(p.color||ele.css('color'))||u,txt:p.content||txt,underline:(p.underline===t||ele.css('textDecoration')==='underline')?t:u,w:alt.width()*(p.zoom||1)},p.flashvars),height:p.height||alt.height(),src:(p.path||'').replace(/([^\/])$/,'$1/')+(p.font||ele.css('fontFamily').replace(/^\s+|\s+$|,[\S|\s]+|'|"|(,)\s+/g,'$1')).replace(/([^\.][^s][^w][^f])$/,'$1.swf'),style:'margin: 1px 0 0; position: absolute; vertical-align: text-top;',width:p.width||alt.width(),wmode:'transparent'};embedOptions.flashvars.linkColor=p.toHex(p.link||ele.find('a').css('color'))||embedOptions.flashvars.textColor;embedOptions.flashvars.hoverColor=p.toHex(p.hover)||embedOptions.flashvars.linkColor;if(p.zoom){embedOptions.flashvars.offsetTop=((p.offsetTop||0)+((alt.height()-(alt.height()*p.zoom))/2))*(p.zoomTop||1);embedOptions.flashvars.offsetLeft=((p.offsetLeft||0)+((alt.width()-(alt.width()*p.zoom))/2))*(p.zoomLeft||1);}$().flash($.extend(embedOptions,p.embedOptions),$.extend({expressInstall:p.expressInstall||false,version:p.version||7,update:p.update||false},p.pluginOptions),function(options){fir.attr('style','visibility: hidden;');alt.remove();ele.prepend($.fn.flash.transform(options));});if(typeof p.afterEach==='function'){p.afterEach.apply(this,[t,p]);}});if(!p.unsifr&&typeof p.after==='function'){p.after.apply(this,[p]);}};$.fn.unsifr=function(){return this.each(function(){$(this).sifr(false);});};$.sifr=function(prefs){$(document).sifr($.extend({save:true},prefs));};$.sifr();})(jQuery);
		
		/* jQuery flash embed */
		(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={height:240,flashvars:{},pluginspage:'http://www.adobe.com/go/getflashplayer',src:'#',type:'application/x-shockwave-flash',width:320};$$.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(){};});}})();
		
		/* hover intent */
		(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:300};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);
		
		/* truncate */
		jQuery.fn.truncate=function(max,settings){settings=jQuery.extend({chars:/\s/,trail:["...",""]},settings);var myResults={};var ie=$.browser.msie;function fixIE(o){if(ie){o.style.removeAttribute("filter")}}return this.each(function(){var $this=jQuery(this);var myStrOrig=$this.html().replace(/\r\n/gim,"");var myStr=myStrOrig;var myRegEx=/<\/?[^<>]*\/?>/gim;var myRegExArray;var myRegExHash={};var myResultsKey=$("*").index(this);while((myRegExArray=myRegEx.exec(myStr))!=null){myRegExHash[myRegExArray.index]=myRegExArray[0]}myStr=jQuery.trim(myStr.split(myRegEx).join(""));if(myStr.length>max){var c;while(max<myStr.length){c=myStr.charAt(max);if(c.match(settings.chars)){myStr=myStr.substring(0,max);break}max--}if(myStrOrig.search(myRegEx)!=-1){var endCap=0;for(eachEl in myRegExHash){myStr=[myStr.substring(0,eachEl),myRegExHash[eachEl],myStr.substring(eachEl,myStr.length)].join("");if(eachEl<myStr.length){endCap=myStr.length}}$this.html([myStr.substring(0,endCap),myStr.substring(endCap,myStr.length).replace(/<(\w+)[^>]*>.*<\/\1>/gim,"").replace(/<(br|hr|img|input)[^<>]*\/?>/gim,"")].join(""))}else{$this.html(myStr)}myResults[myResultsKey]=myStrOrig;$this.html(["<div class='truncate_less'>",$this.html(),settings.trail[0],"</div>"].join("")).find(".truncate_show",this).click(function(){if($this.find(".truncate_more").length==0){$this.append(["<div class='truncate_more' style='display: none;'>",myResults[myResultsKey],settings.trail[1],"</div>"].join("")).find(".truncate_hide").click(function(){$this.find(".truncate_more").css("background","#fff").fadeOut("normal",function(){$this.find(".truncate_less").css("background","#fff").fadeIn("normal",function(){fixIE(this);$(this).css("background","none")});fixIE(this)});return false})}$this.find(".truncate_less").fadeOut("normal",function(){$this.find(".truncate_more").fadeIn("normal",function(){fixIE(this)});fixIE(this)});jQuery(".truncate_show",$this).click(function(){$this.find(".truncate_less").css("background","#fff").fadeOut("normal",function(){$this.find(".truncate_more").css("background","#fff").fadeIn("normal",function(){fixIE(this);$(this).css("background","none")});fixIE(this)});return false});return false})}})};
		
		/* lightbox */
		(function($){$.fn.lightBox=function(settings){settings=jQuery.extend({overlayBgColor:'#000',overlayOpacity:0.8,fixedNavigation:false,imageLoading:'/images/framework/lightbox/-ico-loading.gif',imageBtnPrev:'/images/framework/lightbox/lightbox-btn-prev.gif',imageBtnNext:'/images/framework/lightbox/lightbox-btn-next.gif',imageBtnClose:'/images/framework/lightbox/lightbox-btn-close.gif',imageBlank:'/images/framework/lightbox/lightbox-blank.gif',containerBorderSize:10,containerResizeSpeed:400,txtImage:'Image',txtOf:'of',keyToClose:'c',keyToPrev:'p',keyToNext:'n',imageArray:[],activeImage:0},settings);var jQueryMatchedObj=this;function _initialize(){_start(this,jQueryMatchedObj);return false;}
		function _start(objClicked,jQueryMatchedObj){$('embed, object, select').css({'visibility':'hidden'});_set_interface();settings.imageArray.length=0;settings.activeImage=0;if(jQueryMatchedObj.length==1){settings.imageArray.push(new Array(objClicked.getAttribute('href'),objClicked.getAttribute('title')));}else{for(var i=0;i<jQueryMatchedObj.length;i++){settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title')));}}
		while(settings.imageArray[settings.activeImage][0]!=objClicked.getAttribute('href')){settings.activeImage++;}
		_set_image_to_view();}
		function _set_interface(){$('body').append('<div id="jquery-overlay"></div><div id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lightbox-container-image"><img id="lightbox-image"><div style="" id="lightbox-nav"><a href="#" id="lightbox-nav-btnPrev"></a><a href="#" id="lightbox-nav-btnNext"></a></div><div id="lightbox-loading"><a href="#" id="lightbox-loading-link"><img src="'+settings.imageLoading+'"></a></div></div></div><div id="lightbox-container-image-data-box"><div id="lightbox-container-image-data"><div id="lightbox-image-details"><span id="lightbox-image-details-caption"></span><span id="lightbox-image-details-currentNumber"></span></div><div id="lightbox-secNav"><a href="#" id="lightbox-secNav-btnClose"><img src="'+settings.imageBtnClose+'"></a></div></div></div></div>');var arrPageSizes=___getPageSize();$('#jquery-overlay').css({backgroundColor:settings.overlayBgColor,opacity:settings.overlayOpacity,width:arrPageSizes[0],height:arrPageSizes[1]}).fadeIn();var arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+(arrPageSizes[3]/10),left:arrPageScroll[0]}).show();$('#jquery-overlay,#jquery-lightbox').click(function(){_finish();});$('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function(){_finish();return false;});$(window).resize(function(){var arrPageSizes=___getPageSize();$('#jquery-overlay').css({width:arrPageSizes[0],height:arrPageSizes[1]});var arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+(arrPageSizes[3]/10),left:arrPageScroll[0]});});}
		function _set_image_to_view(){$('#lightbox-loading').show();if(settings.fixedNavigation){$('#lightbox-image,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();}else{$('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();}
		var objImagePreloader=new Image();objImagePreloader.onload=function(){$('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);_resize_container_image_box(objImagePreloader.width,objImagePreloader.height);objImagePreloader.onload=function(){};};objImagePreloader.src=settings.imageArray[settings.activeImage][0];};function _resize_container_image_box(intImageWidth,intImageHeight){var intCurrentWidth=$('#lightbox-container-image-box').width();var intCurrentHeight=$('#lightbox-container-image-box').height();var intWidth=(intImageWidth+(settings.containerBorderSize*2));var intHeight=(intImageHeight+(settings.containerBorderSize*2));var intDiffW=intCurrentWidth-intWidth;var intDiffH=intCurrentHeight-intHeight;$('#lightbox-container-image-box').animate({width:intWidth,height:intHeight},settings.containerResizeSpeed,function(){_show_image();});if((intDiffW==0)&&(intDiffH==0)){if($.browser.msie){___pause(250);}else{___pause(100);}}
		$('#lightbox-container-image-data-box').css({width:intImageWidth});$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({height:intImageHeight+(settings.containerBorderSize*2)});};function _show_image(){$('#lightbox-loading').hide();$('#lightbox-image').fadeIn(function(){_show_image_data();_set_navigation();});_preload_neighbor_images();};function _show_image_data(){$('#lightbox-container-image-data-box').slideDown('fast');$('#lightbox-image-details-caption').hide();if(settings.imageArray[settings.activeImage][1]){$('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show();}
		if(settings.imageArray.length>1){$('#lightbox-image-details-currentNumber').html(settings.txtImage+' '+(settings.activeImage+1)+' '+settings.txtOf+' '+settings.imageArray.length).show();}}
		function _set_navigation(){$('#lightbox-nav').show();$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({'background':'transparent url('+settings.imageBlank+') no-repeat'});if(settings.activeImage!=0){if(settings.fixedNavigation){$('#lightbox-nav-btnPrev').css({'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'}).unbind().bind('click',function(){settings.activeImage=settings.activeImage-1;_set_image_to_view();return false;});}else{$('#lightbox-nav-btnPrev').unbind().hover(function(){$(this).css({'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'});},function(){$(this).css({'background':'transparent url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function(){settings.activeImage=settings.activeImage-1;_set_image_to_view();return false;});}}
		if(settings.activeImage!=(settings.imageArray.length-1)){if(settings.fixedNavigation){$('#lightbox-nav-btnNext').css({'background':'url('+settings.imageBtnNext+') right 15% no-repeat'}).unbind().bind('click',function(){settings.activeImage=settings.activeImage+1;_set_image_to_view();return false;});}else{$('#lightbox-nav-btnNext').unbind().hover(function(){$(this).css({'background':'url('+settings.imageBtnNext+') right 15% no-repeat'});},function(){$(this).css({'background':'transparent url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function(){settings.activeImage=settings.activeImage+1;_set_image_to_view();return false;});}}
		_enable_keyboard_navigation();}
		function _enable_keyboard_navigation(){$(document).keydown(function(objEvent){_keyboard_action(objEvent);});}
		function _disable_keyboard_navigation(){$(document).unbind();}
		function _keyboard_action(objEvent){if(objEvent==null){keycode=event.keyCode;escapeKey=27;}else{keycode=objEvent.keyCode;escapeKey=objEvent.DOM_VK_ESCAPE;}
		key=String.fromCharCode(keycode).toLowerCase();if((key==settings.keyToClose)||(key=='x')||(keycode==escapeKey)){_finish();}
		if((key==settings.keyToPrev)||(keycode==37)){if(settings.activeImage!=0){settings.activeImage=settings.activeImage-1;_set_image_to_view();_disable_keyboard_navigation();}}
		if((key==settings.keyToNext)||(keycode==39)){if(settings.activeImage!=(settings.imageArray.length-1)){settings.activeImage=settings.activeImage+1;_set_image_to_view();_disable_keyboard_navigation();}}}
		function _preload_neighbor_images(){if((settings.imageArray.length-1)>settings.activeImage){objNext=new Image();objNext.src=settings.imageArray[settings.activeImage+1][0];}
		if(settings.activeImage>0){objPrev=new Image();objPrev.src=settings.imageArray[settings.activeImage-1][0];}}
		function _finish(){$('#jquery-lightbox').remove();$('#jquery-overlay').fadeOut(function(){$('#jquery-overlay').remove();});$('embed, object, select').css({'visibility':'visible'});}
		function ___getPageSize(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=window.innerWidth+window.scrollMaxX;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
		var windowWidth,windowHeight;if(self.innerHeight){if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;}else{windowWidth=self.innerWidth;}
		windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
		if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
		if(xScroll<windowWidth){pageWidth=xScroll;}else{pageWidth=windowWidth;}
		arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight);return arrayPageSize;};function ___getPageScroll(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
		arrayPageScroll=new Array(xScroll,yScroll);return arrayPageScroll;};function ___pause(ms){var date=new Date();curDate=null;do{var curDate=new Date();}
		while(curDate-date<ms);};return this.unbind('click').click(_initialize);};})(jQuery);
	},
	
	fixCSS: function() {
		$('#header .navigation ul li:last-child a').css({borderRight:'none'});
		$('#content .article ul.breadcrumbs li:first-child a').css({background:'none',paddingLeft:'0'});
	},
	
	setupRollovers: function() {
		
		preloadImages();
		
		$("#content .aside .tiles ul li img").hover(
			 function () { $(this).attr( 'src', newimage($(this).attr('src')) ); },
			 function () { $(this).attr( 'src', oldimage($(this).attr('src')) ); }
		);
		
		function preloadImages() {
			$(window).bind('load', function() {
				 $('.ro').each( function( key, elm ) { $('<img>').attr( 'src', newimage( $(this).attr('src') ) ); });
			});
		};
		
	 function newimage(src)
	 {
			return src.substring( 0, src.search(/(\.[a-z]+)$/) ) + '_o' + src.match(/(\.[a-z]+)$/)[0];
	 };

	 function oldimage(src)
	 {
			return src.replace(/_o\./, '.');
	 };
		
	}
	
};

/* Contact Form */
var ContactForm = {
	
	init: function() {
		$el = $('#contactmethods');
		ContactForm.setupBindings($el);
	},
	
	setupBindings: function($el) {
		// on form send, use ajax to post results to page set in the form method attribute
		$el.find('.contactform .emailform').submit( function() {
			if($('.contactform .emailform').valid()) {
				$(this).hide();
				$el.find('.contactform .loader').fadeIn('medium', function() {
					ContactForm.send($el);
				});
			}
			return false;
		});

		// bind enquiry type dropdown
		/*
		$el.find('#enquirytype').bind('change', function() {
			var enquiryDOM = $(this).val();
			if (enquiryDOM) {
				$el.find('.enquiry').slideUp();
				$el.find('.' + enquiryDOM).slideDown();
			}
		})
		*/;
		$('.contactform .emailform').validate({
					errorPlacement: function(error, element) {},
					rules: {
						existingpbxbrand: {
							required: '#replacepbxyes:checked'
						},
						siteintegrationcount: {
							required: '#sitecountmorethanone:checked'
						}
					}
		});
		
		// bind radiobutton dropdowns for replacing pbx question
		$el.find('#replacepbxyes').bind('click', function() { $el.find('.replacepbxbrand').slideDown(); });
		$el.find('#replacepbxno').bind('click', function() { $el.find('.replacepbxbrand').slideUp(); });
		
		// bind radiobutton for site count
		$el.find('#sitecountmorethanone').bind('click', function() { $el.find('.sitecountlist').slideDown(); });
		$el.find('#sitecountlessthanone').bind('click', function() { $el.find('.sitecountlist').slideUp(); });
	},
	
	send: function($el) {
		$.post($el.find('.emailform').attr('action'), {
			name: $el.find('#contactname').val()
			,firstname: $el.find('#contactfirstname').val()
			,lastname: $el.find('#contactlastname').val()
			,companyname: $el.find('#contactcompanyname').val()
			,email: $el.find('#contactemail').val()
			,phonenumber: $el.find('#contactphonenumber').val()
			,enquirytype: $el.find('#enquirytype').val()
			,message: $el.find('#contactmessage').val()
			,pbxserialnumber: $el.find('#pbxserialnumber').val()
			,implementtime: $el.find('#implementtime').val()
			,replacepbx: ( $el.find('#replacepbxyes:checked').size() ? 'Yes' : 'No' )
			,existingpbxbrand: $el.find('#existingpbxbrand').val()
			,sitecount: ( $el.find('#sitecountmorethanone:checked').size() ? 'Yes' : 'No' )
			,siteintegrationcount: $el.find('#siteintegrationcount').val()
			,extensioncountmainsite: $el.find('#extensioncountmainsite').val()
			,portphonenumber: ( $el.find('#portphonenumberyes:checked').size() ? 'Yes' : 'No' )
			,analogueisdnintegrationrequired: $el.find('#analogueisdnintegrationrequired').val()
			,howhear: $el.find('#howhear').val()
			,specialofferinterest: ( $el.find('#specialofferinterest:checked').val() ? 'Yes' : 'No' )
		}, function(data) {
			// show thankyou message
			$el.find('.contactform .loader').fadeOut('medium', function() {
				$(this).html('Thanks for your message, we will be in touch shortly.').fadeIn('medium');
			});
		});
	}
	
};

/* Generic page header */
var Header = {
	
	init: function() {
		Header.setupBindings();
	},
	
	setupBindings: function() {
		
		$('#header .search input.searchterms').defaultvalues();
		$('#header .navigation li').hoverIntent(
			function() {
				Header.showNav($(this));
			},
			function() {
				Header.hideNav($(this));
			}
		);
	},
	
	showNav: function($el) {
		$el.addClass('hover');
		$el.find('.dropdown').css({display:'block'});
	},
	
	hideNav: function($el) {
		$el.removeClass('hover');
		$el.find('.dropdown').css({display:'none'});
	}
	
};

/* Homepage hero */
var HomepageHero = {
	
	JSONPath: '/js/hero.js',
	index: 0,
	transTime: 5000,
	
	init: function () {
		// load content
		JSONData = HomepageHero.loadJSON();
		
		// update counter total
		$('.hashomepage #content .article .hero .controls p.count .total').html(JSONData.menu.heroitemlist.heroitem.length);
		
		// bind controls
		$('.hashomepage #content .article .hero .controls ul li.next').click( function() {
			HomepageHero.incrementCounter(JSONData);
			return false;
		});
		$('.hashomepage #content .article .hero .controls ul li.previous').click( function() {
			HomepageHero.incrementCounter(JSONData, -1);
			return false;
		});
		
		// hide loading message and render first frame
		$('.hashomepage #content .article .heroloader').fadeOut('medium', function() {
			$('.hashomepage #content .article .hero').show();
			HomepageHero.renderFrame(JSONData);
		});
		
		// start looping
		slideTimer = setInterval('HomepageHero.incrementCounter(JSONData)', HomepageHero.transTime);
		
		// clear loop if mouse within hero area and start if mouse leaves
		$('.hashomepage #content .article .hero').bind('mouseenter', function() {
			clearInterval(slideTimer);
		});
		$('.hashomepage #content .article .hero').bind('mouseleave', function() {
			slideTimer = setInterval('HomepageHero.incrementCounter(JSONData)', HomepageHero.transTime);
		});
	},
	
	renderFrame: function(JSONData) {
		// update copy
		/* sifr version
		$('.hashomepage #content .article .hero .copy h1').sifr({
			font: 'sifr_digital_sans.swf'
			,path: '/flash/'
			,color: '#ffffff'
			,textAlign: 'left'
			,content: JSONData.menu.heroitemlist.heroitem[HomepageHero.index].title
		});
		*/
		
		// enable for plain HTML headers
		$('.hashomepage #content .article .hero .copy h1').html(JSONData.menu.heroitemlist.heroitem[HomepageHero.index].title);
		
		$('.hashomepage #content .article .hero .copy p.description').html(JSONData.menu.heroitemlist.heroitem[HomepageHero.index].description);
		$('.hashomepage #content .article .hero .copy p.more a').attr('href', JSONData.menu.heroitemlist.heroitem[HomepageHero.index].link);
		
		// display next image
		// $('.hashomepage #content .article .hero ul.imagelist li.next').fadeIn('slow', function() {
		$('.hashomepage #content .article .hero ul.imagelist li.next').fadeIn(900, function() {
			$('.hashomepage #content .article .hero ul.imagelist li.current img').attr('src', $(this).find('img').attr('src'));
			// $(this).hide();
			// $(this).fadeOut(400);
		});
		
		// update counter
		$('.hashomepage #content .article .hero .controls p.count .current').html(HomepageHero.index + 1);
		
		// increment and preload next image
		$('.hashomepage #content .article .hero ul.imagelist li.next img').attr('src', JSONData.menu.heroitemlist.heroitem[HomepageHero.index].image);
	},
	
	incrementCounter: function(JSONData, increment) {
		// detect if increment passed then use it, otherwise default to increasing by one step
		increment = (increment) ? increment : 1;
		
		HomepageHero.index = HomepageHero.index + increment;
		
		// check bounding on the index and wrap if needed
		if(HomepageHero.index  == JSONData.menu.heroitemlist.heroitem.length) {
			HomepageHero.index = 0;
		} else if( HomepageHero.index < 0 ) {
			HomepageHero.index = JSONData.menu.heroitemlist.heroitem.length-1;
		}
		
		HomepageHero.renderFrame(JSONData);
	},
	
	loadJSON: function() {
		var apartmentData = new Object;
		$.ajax({
			async: false,
			type: 'GET',
			url: HomepageHero.JSONPath,
			dataType: 'json',
			cache: false,
			success: function(data) { 
				apartmentData =  data;
			}
		});
		return(apartmentData);
	}
};

/* Takes a definition list and creates an accordian out of it along with expandable readmore sections */
function createFeatureList(el)
{
	this.setRowHeight = 40; // accounts for headers, padding, other elements in each row that aren't calculated using the "details" div
	this.$el = $(el);
	
	this.init = function() {
		// setup bindings
		this.setupBindings();
		this.$el.find('tr.data p.introduction').truncate( 800,{
			chars: /\s/,
			trail: [ " ( <a href='#' class='truncate_show'>more</a> . . . )", "( . . . <a href='#' class='truncate_hide'>less</a> )" ]
		});
	},
	
	this.setupBindings = function() {
		var parent = this;
		this.$el.find('tr.data h3').click(
			function() {
				parent.showRow($(this).parent());
			}
		);
		
		// trigger lightbox effect on screenshots
        var lightboxes = this.$el.find('tr.data');
        for(var i = 0; i < lightboxes.length; i++) {
            this.$lb = $(lightboxes[i]);
            this.$lb.find('ul.screenshots a').lightBox();
        }
	},
	
	this.showRow = function($el) {
		this.hideAllRows($el);
		if ($el.height() <= 14) {
			theHeight = $el.find('.introduction').height() + $el.find('ul.screenshots').height() + this.setRowHeight;
			//console.log(theHeight);
			$el.animate({
				height: theHeight
			}, '500', function(){
				$(this).addClass('open');
			});
		}
		return false;
	},
	
	this.hideRow = function($el) {
		$el.animate({height:14},'500');
		return false;
	},
	
	this.hideAllRows = function($elclicked) {
		var parent = this;
		this.$el.find('.open').each( function() {
			parent.hideRow($(this));
			$(this).removeClass('open');
		});
	}
}

var HomepageFlashDemo = {
	init: function() {
		HomepageFlashDemo.setupBindings();
	},
	
	setupBindings: function() {
		$('#launchflashdemo a').bind('click', function(e) {
			HomepageFlashDemo.openDemo();
			e.preventDefault();
		});
	},
	
	openDemo: function() {
		window.open ("flashdemo.html","flashdemo","status=0,toolbar=0,location=0,menubar=0,scrollbars=0,width=650,height=455,resizable=0"); 
	}
	
}
