﻿// Common.js
/************************************************************
*** COMMON JAVASCRIPT FUNCTIONS (UNPACKED VERSION)
************************************************************/

/*

All javascript here is original commented un packed, for ease
of editing and updating etc. When new projects are created
ensure that any unused code is removed, especially any large
third party scripts at the bottom of this file.

Store this original in \Scripts\UnPacked\Common.js

Once complete and site is in live state ensure that the script
has been packed and saved as \Scripts\Packed.js to pack the
script visit http://dean.edwards.name/packer/

*/

/************************************************************
*** GENERAL FORM FUNCTIONS
************************************************************/

// cross browser function to find an element by id
function objById(id)
{ 
	if (document.getElementById) return document.getElementById(id); 
	else if (document.all) return document.all[id]; 
	else if (document.layers) return document.layers[id]; 
}

// quick search catch enter
function qsEnt(e) {
    var keyCode;
    if (window.event) keyCode = window.event.keyCode;
    else if (e) keyCode = e.which;

    if (keyCode == 13) {
        qsGo();
        return false;
    }
    else return true;
}

// run quick search
function qsGo() {
    var url = "";
    if (document.forms[0].txtSearch.value != "" && document.forms[0].txtSearch.value != "Enter your search keywords here") url += "&Text=" + document.forms[0].txtSearch.value.replace(/[\<\%\&\@\#\=\+\>\*]*/g, "").replace(/\s+/g, " ").replace(/^\s+/, "").replace(/\s+$/, "");
    //if (ddlCategory.selectedIndex > 0 || ddlManufacturer.selectedIndex > 0) {
        //if (ddlCategory.selectedIndex > 0) url += "&Category=" + ddlCategory.options[ddlCategory.selectedIndex].value;
        //if (ddlManufacturer.selectedIndex > 0) url += "&Manufacturer=" + ddlManufacturer.options[ddlManufacturer.selectedIndex].value;
        //url += "&AdvSearch=true";
    //}
    location.href = HTTPHost + "/product-list?" + url.substr(1);
}

/************************************************************
*** GENERAL FORM FUNCTIONS
************************************************************/

function focusTxt(a) { a.className = a.className + " hLgt"; }
function blurTxt(a) { a.className = a.className.replace(" hLgt", ""); }

/************************************************************
*** CHECKOUT FUNCTIONS
************************************************************/

function showCV2Help()
{
	if (objById('cv2Help').style.display == "none") objById('cv2Help').style.display = "";
	else objById('cv2Help').style.display = "none";
}

/************************************************************
*** PRODUCT LIST FUNCTIONS
************************************************************/

function ddRpp(a) { location.href=location.href.replace(/&RPP=[0-9]+/, '')+'&RPP='+a.selectedIndex; }
function ddSort(a) { location.href=location.href.replace(/&Sort=[0-9]+/, '')+'&Sort='+a.selectedIndex; }

/************************************************************
*** PRODUCT DETAIL FUNCTIONS
************************************************************/

// used for calculating total price based on hidden fields populated via ajax,
// updated to include price break calculations
function chkStkPri() {
                    
    // get hidden field data
    var objQuantity = getQtyObj();
    var quantity = objQuantity.value;
    var price = getPrice();
    var priceBreaksArrayString = getPriceBreaks();
    var stock = getStock();

    if (quantity == '') return;

    // check we have valid qty, or set to 1
    if (isNaN(quantity)) {
        objQuantity.value = quantity = 1;
    }
    
    // ensure we have a positive above zero qty
    if (quantity < 1) objQuantity.value = quantity = 1;
    
    // see if we are checking stock, if so do so now and correct if required
    if (!isNaN(stock) && stock != '') {
        if (stock == 0) {
            alert('Sorry we do not have enough stock of this product to fulfil your order.');
            objQuantity.value = quantity = 1;
        }
        else if (stock < quantity) {
            alert('Sorry we do not have enough stock of this product to fulfil your order, we have adjusted your qty to the maximum available at the last check.');
            objQuantity.value = quantity = stock;
        }
    }

    // check we have valid price
    if (isNaN(price) || price == '') {
        objById('ttl').value = 'error';
        return;
    }
    else price = parseFloat(price);

    // if we have price break data loop though and get correct price
    if (priceBreaksArrayString != '') {

        var priceBreaksArray = priceBreaksArrayString.split('|');
        
        // loop though price breaks
        for (i = 0; i < priceBreaksArray.length; i++)
        {
            // get qty and price from price break
            var quantityAndPriceArray = priceBreaksArray[i].split(',');
            
            // see if we have enough qty to use this price, quick once we hit a price break qty too high
            if (quantity >= parseInt(quantityAndPriceArray[0])) price = parseFloat(quantityAndPriceArray[1]);
            else break;
        }                  
    }

    // calculate total cost and display
    objById('ttl').innerHTML = '&pound;' + (quantity * price).toFixed(2);
}

/* Disable the context menu */
$(document).ready(function () {
    $("img").bind("contextmenu", function (e) {
        return false;
    });
});

/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.09
 */
var Cufon=(function(){var m=function(){return m.replace.apply(null,arguments)};var x=m.DOM={ready:(function(){var C=false,E={loaded:1,complete:1};var B=[],D=function(){if(C){return}C=true;for(var F;F=B.shift();F()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",D,false);window.addEventListener("pageshow",D,false)}if(!window.opera&&document.readyState){(function(){E[document.readyState]?D():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");D()}catch(F){setTimeout(arguments.callee,1)}})()}q(window,"load",D);return function(F){if(!arguments.length){D()}else{C?F():B.push(F)}}})(),root:function(){return document.documentElement||document.body}};var n=m.CSS={Size:function(C,B){this.value=parseFloat(C);this.unit=String(C).match(/[a-z%]*$/)[0]||"px";this.convert=function(D){return D/B*this.value};this.convertFrom=function(D){return D/this.value*B};this.toString=function(){return this.value+this.unit}},addClass:function(C,B){var D=C.className;C.className=D+(D&&" ")+B;return C},color:j(function(C){var B={};B.color=C.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(E,D,F){B.opacity=parseFloat(F);return"rgb("+D+")"});return B}),fontStretch:j(function(B){if(typeof B=="number"){return B}if(/%$/.test(B)){return parseFloat(B)/100}return{"ultra-condensed":0.5,"extra-condensed":0.625,condensed:0.75,"semi-condensed":0.875,"semi-expanded":1.125,expanded:1.25,"extra-expanded":1.5,"ultra-expanded":2}[B]||1}),getStyle:function(C){var B=document.defaultView;if(B&&B.getComputedStyle){return new a(B.getComputedStyle(C,null))}if(C.currentStyle){return new a(C.currentStyle)}return new a(C.style)},gradient:j(function(F){var G={id:F,type:F.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},C=F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var E=0,B=C.length,D;E<B;++E){D=C[E].split("=",2).reverse();G.stops.push([D[1]||E/(B-1),D[0]])}return G}),quotedList:j(function(E){var D=[],C=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,B;while(B=C.exec(E)){D.push(B[3]||B[1])}return D}),recognizesMedia:j(function(G){var E=document.createElement("style"),D,C,B;E.type="text/css";E.media=G;try{E.appendChild(document.createTextNode("/**/"))}catch(F){}C=g("head")[0];C.insertBefore(E,C.firstChild);D=(E.sheet||E.styleSheet);B=D&&!D.disabled;C.removeChild(E);return B}),removeClass:function(D,C){var B=RegExp("(?:^|\\s+)"+C+"(?=\\s|$)","g");D.className=D.className.replace(B,"");return D},supports:function(D,C){var B=document.createElement("span").style;if(B[D]===undefined){return false}B[D]=C;return B[D]===C},textAlign:function(E,D,B,C){if(D.get("textAlign")=="right"){if(B>0){E=" "+E}}else{if(B<C-1){E+=" "}}return E},textShadow:j(function(F){if(F=="none"){return null}var E=[],G={},B,C=0;var D=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;while(B=D.exec(F)){if(B[0]==","){E.push(G);G={};C=0}else{if(B[1]){G.color=B[1]}else{G[["offX","offY","blur"][C++]]=B[2]}}}E.push(G);return E}),textTransform:(function(){var B={uppercase:function(C){return C.toUpperCase()},lowercase:function(C){return C.toLowerCase()},capitalize:function(C){return C.replace(/\b./g,function(D){return D.toUpperCase()})}};return function(E,D){var C=B[D.get("textTransform")];return C?C(E):E}})(),whiteSpace:(function(){var D={inline:1,"inline-block":1,"run-in":1};var C=/^\s+/,B=/\s+$/;return function(H,F,G,E){if(E){if(E.nodeName.toLowerCase()=="br"){H=H.replace(C,"")}}if(D[F.get("display")]){return H}if(!G.previousSibling){H=H.replace(C,"")}if(!G.nextSibling){H=H.replace(B,"")}return H}})()};n.ready=(function(){var B=!n.recognizesMedia("all"),E=false;var D=[],H=function(){B=true;for(var K;K=D.shift();K()){}};var I=g("link"),J=g("style");function C(K){return K.disabled||G(K.sheet,K.media||"screen")}function G(M,P){if(!n.recognizesMedia(P||"all")){return true}if(!M||M.disabled){return false}try{var Q=M.cssRules,O;if(Q){search:for(var L=0,K=Q.length;O=Q[L],L<K;++L){switch(O.type){case 2:break;case 3:if(!G(O.styleSheet,O.media.mediaText)){return false}break;default:break search}}}}catch(N){}return true}function F(){if(document.createStyleSheet){return true}var L,K;for(K=0;L=I[K];++K){if(L.rel.toLowerCase()=="stylesheet"&&!C(L)){return false}}for(K=0;L=J[K];++K){if(!C(L)){return false}}return true}x.ready(function(){if(!E){E=n.getStyle(document.body).isUsable()}if(B||(E&&F())){H()}else{setTimeout(arguments.callee,10)}});return function(K){if(B){K()}else{D.push(K)}}})();function s(D){var C=this.face=D.face,B={"\u0020":1,"\u00a0":1,"\u3000":1};this.glyphs=D.glyphs;this.w=D.w;this.baseSize=parseInt(C["units-per-em"],10);this.family=C["font-family"].toLowerCase();this.weight=C["font-weight"];this.style=C["font-style"]||"normal";this.viewBox=(function(){var F=C.bbox.split(/\s+/);var E={minX:parseInt(F[0],10),minY:parseInt(F[1],10),maxX:parseInt(F[2],10),maxY:parseInt(F[3],10)};E.width=E.maxX-E.minX;E.height=E.maxY-E.minY;E.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")};return E})();this.ascent=-parseInt(C.ascent,10);this.descent=-parseInt(C.descent,10);this.height=-this.ascent+this.descent;this.spacing=function(L,N,E){var O=this.glyphs,M,K,G,P=[],F=0,J=-1,I=-1,H;while(H=L[++J]){M=O[H]||this.missingGlyph;if(!M){continue}if(K){F-=G=K[H]||0;P[I]-=G}F+=P[++I]=~~(M.w||this.w)+N+(B[H]?E:0);K=M.k}P.total=F;return P}}function f(){var C={},B={oblique:"italic",italic:"oblique"};this.add=function(D){(C[D.style]||(C[D.style]={}))[D.weight]=D};this.get=function(H,I){var G=C[H]||C[B[H]]||C.normal||C.italic||C.oblique;if(!G){return null}I={normal:400,bold:700}[I]||parseInt(I,10);if(G[I]){return G[I]}var E={1:1,99:0}[I%100],K=[],F,D;if(E===undefined){E=I>400}if(I==500){I=400}for(var J in G){if(!k(G,J)){continue}J=parseInt(J,10);if(!F||J<F){F=J}if(!D||J>D){D=J}K.push(J)}if(I<F){I=F}if(I>D){I=D}K.sort(function(M,L){return(E?(M>=I&&L>=I)?M<L:M>L:(M<=I&&L<=I)?M>L:M<L)?-1:1});return G[K[0]]}}function r(){function D(F,G){if(F.contains){return F.contains(G)}return F.compareDocumentPosition(G)&16}function B(G){var F=G.relatedTarget;if(!F||D(this,F)){return}C(this,G.type=="mouseover")}function E(F){C(this,F.type=="mouseenter")}function C(F,G){setTimeout(function(){var H=d.get(F).options;m.replace(F,G?h(H,H.hover):H,true)},10)}this.attach=function(F){if(F.onmouseenter===undefined){q(F,"mouseover",B);q(F,"mouseout",B)}else{q(F,"mouseenter",E);q(F,"mouseleave",E)}}}function u(){var C=[],D={};function B(H){var E=[],G;for(var F=0;G=H[F];++F){E[F]=C[D[G]]}return E}this.add=function(F,E){D[F]=C.push(E)-1};this.repeat=function(){var E=arguments.length?B(arguments):C,F;for(var G=0;F=E[G++];){m.replace(F[0],F[1],true)}}}function A(){var D={},B=0;function C(E){return E.cufid||(E.cufid=++B)}this.get=function(E){var F=C(E);return D[F]||(D[F]={})}}function a(B){var D={},C={};this.extend=function(E){for(var F in E){if(k(E,F)){D[F]=E[F]}}return this};this.get=function(E){return D[E]!=undefined?D[E]:B[E]};this.getSize=function(F,E){return C[F]||(C[F]=new n.Size(this.get(F),E))};this.isUsable=function(){return !!B}}function q(C,B,D){if(C.addEventListener){C.addEventListener(B,D,false)}else{if(C.attachEvent){C.attachEvent("on"+B,function(){return D.call(C,window.event)})}}}function v(C,B){var D=d.get(C);if(D.options){return C}if(B.hover&&B.hoverables[C.nodeName.toLowerCase()]){b.attach(C)}D.options=B;return C}function j(B){var C={};return function(D){if(!k(C,D)){C[D]=B.apply(null,arguments)}return C[D]}}function c(F,E){var B=n.quotedList(E.get("fontFamily").toLowerCase()),D;for(var C=0;D=B[C];++C){if(i[D]){return i[D].get(E.get("fontStyle"),E.get("fontWeight"))}}return null}function g(B){return document.getElementsByTagName(B)}function k(C,B){return C.hasOwnProperty(B)}function h(){var C={},B,F;for(var E=0,D=arguments.length;B=arguments[E],E<D;++E){for(F in B){if(k(B,F)){C[F]=B[F]}}}return C}function o(E,M,C,N,F,D){var K=document.createDocumentFragment(),H;if(M===""){return K}var L=N.separate;var I=M.split(p[L]),B=(L=="words");if(B&&t){if(/^\s/.test(M)){I.unshift("")}if(/\s$/.test(M)){I.push("")}}for(var J=0,G=I.length;J<G;++J){H=z[N.engine](E,B?n.textAlign(I[J],C,J,G):I[J],C,N,F,D,J<G-1);if(H){K.appendChild(H)}}return K}function l(D,M){var C=D.nodeName.toLowerCase();if(M.ignore[C]){return}var E=!M.textless[C];var B=n.getStyle(v(D,M)).extend(M);var F=c(D,B),G,K,I,H,L,J;if(!F){return}for(G=D.firstChild;G;G=I){K=G.nodeType;I=G.nextSibling;if(E&&K==3){if(H){H.appendData(G.data);D.removeChild(G)}else{H=G}if(I){continue}}if(H){D.replaceChild(o(F,n.whiteSpace(H.data,B,H,J),B,M,G,D),H);H=null}if(K==1){if(G.firstChild){if(G.nodeName.toLowerCase()=="cufon"){z[M.engine](F,null,B,M,G,D)}else{arguments.callee(G,M)}}J=G}}}var t=" ".split(/\s+/).length==0;var d=new A();var b=new r();var y=new u();var e=false;var z={},i={},w={autoDetect:false,engine:null,forceHitArea:false,hover:false,hoverables:{a:true},ignore:{applet:1,canvas:1,col:1,colgroup:1,head:1,iframe:1,map:1,optgroup:1,option:1,script:1,select:1,style:1,textarea:1,title:1,pre:1},printable:true,selector:(window.Sizzle||(window.jQuery&&function(B){return jQuery(B)})||(window.dojo&&dojo.query)||(window.Ext&&Ext.query)||(window.YAHOO&&YAHOO.util&&YAHOO.util.Selector&&YAHOO.util.Selector.query)||(window.$$&&function(B){return $$(B)})||(window.$&&function(B){return $(B)})||(document.querySelectorAll&&function(B){return document.querySelectorAll(B)})||g),separate:"words",textless:{dl:1,html:1,ol:1,table:1,tbody:1,thead:1,tfoot:1,tr:1,ul:1},textShadow:"none"};var p={words:/\s/.test("\u00a0")?/[^\S\u00a0]+/:/\s+/,characters:"",none:/^/};m.now=function(){x.ready();return m};m.refresh=function(){y.repeat.apply(y,arguments);return m};m.registerEngine=function(C,B){if(!B){return m}z[C]=B;return m.set("engine",C)};m.registerFont=function(D){if(!D){return m}var B=new s(D),C=B.family;if(!i[C]){i[C]=new f()}i[C].add(B);return m.set("fontFamily",'"'+C+'"')};m.replace=function(D,C,B){C=h(w,C);if(!C.engine){return m}if(!e){n.addClass(x.root(),"cufon-active cufon-loading");n.ready(function(){n.addClass(n.removeClass(x.root(),"cufon-loading"),"cufon-ready")});e=true}if(C.hover){C.forceHitArea=true}if(C.autoDetect){delete C.fontFamily}if(typeof C.textShadow=="string"){C.textShadow=n.textShadow(C.textShadow)}if(typeof C.color=="string"&&/^-/.test(C.color)){C.textGradient=n.gradient(C.color)}else{delete C.textGradient}if(!B){y.add(D,arguments)}if(D.nodeType||typeof D=="string"){D=[D]}n.ready(function(){for(var F=0,E=D.length;F<E;++F){var G=D[F];if(typeof G=="string"){m.replace(C.selector(G),C,true)}else{l(G,C)}}});return m};m.set=function(B,C){w[B]=C;return m};return m})();Cufon.registerEngine("canvas",(function(){var b=document.createElement("canvas");if(!b||!b.getContext||!b.getContext.apply){return}b=null;var a=Cufon.CSS.supports("display","inline-block");var e=!a&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));var f=document.createElement("style");f.type="text/css";f.appendChild(document.createTextNode(("cufon{text-indent:0;}@media screen,projection{cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;"+(e?"":"font-size:1px;line-height:1px;")+"}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}"+(a?"cufon canvas{position:relative;}":"cufon canvas{position:absolute;}")+"}@media print{cufon{padding:0;}cufon canvas{display:none;}}").replace(/;/g,"!important;")));document.getElementsByTagName("head")[0].appendChild(f);function d(p,h){var n=0,m=0;var g=[],o=/([mrvxe])([^a-z]*)/g,k;generate:for(var j=0;k=o.exec(p);++j){var l=k[2].split(",");switch(k[1]){case"v":g[j]={m:"bezierCurveTo",a:[n+~~l[0],m+~~l[1],n+~~l[2],m+~~l[3],n+=~~l[4],m+=~~l[5]]};break;case"r":g[j]={m:"lineTo",a:[n+=~~l[0],m+=~~l[1]]};break;case"m":g[j]={m:"moveTo",a:[n=~~l[0],m=~~l[1]]};break;case"x":g[j]={m:"closePath"};break;case"e":break generate}h[g[j].m].apply(h,g[j].a)}return g}function c(m,k){for(var j=0,h=m.length;j<h;++j){var g=m[j];k[g.m].apply(k,g.a)}}return function(V,w,P,t,C,W){var k=(w===null);if(k){w=C.getAttribute("alt")}var A=V.viewBox;var m=P.getSize("fontSize",V.baseSize);var B=0,O=0,N=0,u=0;var z=t.textShadow,L=[];if(z){for(var U=z.length;U--;){var F=z[U];var K=m.convertFrom(parseFloat(F.offX));var I=m.convertFrom(parseFloat(F.offY));L[U]=[K,I];if(I<B){B=I}if(K>O){O=K}if(I>N){N=I}if(K<u){u=K}}}var Z=Cufon.CSS.textTransform(w,P).split("");var E=V.spacing(Z,~~m.convertFrom(parseFloat(P.get("letterSpacing"))||0),~~m.convertFrom(parseFloat(P.get("wordSpacing"))||0));if(!E.length){return null}var h=E.total;O+=A.width-E[E.length-1];u+=A.minX;var s,n;if(k){s=C;n=C.firstChild}else{s=document.createElement("cufon");s.className="cufon cufon-canvas";s.setAttribute("alt",w);n=document.createElement("canvas");s.appendChild(n);if(t.printable){var S=document.createElement("cufontext");S.appendChild(document.createTextNode(w));s.appendChild(S)}}var aa=s.style;var H=n.style;var j=m.convert(A.height);var Y=Math.ceil(j);var M=Y/j;var G=M*Cufon.CSS.fontStretch(P.get("fontStretch"));var J=h*G;var Q=Math.ceil(m.convert(J+O-u));var o=Math.ceil(m.convert(A.height-B+N));n.width=Q;n.height=o;H.width=Q+"px";H.height=o+"px";B+=A.minY;H.top=Math.round(m.convert(B-V.ascent))+"px";H.left=Math.round(m.convert(u))+"px";var r=Math.max(Math.ceil(m.convert(J)),0)+"px";if(a){aa.width=r;aa.height=m.convert(V.height)+"px"}else{aa.paddingLeft=r;aa.paddingBottom=(m.convert(V.height)-1)+"px"}var X=n.getContext("2d"),D=j/A.height;X.scale(D,D*M);X.translate(-u,-B);X.save();function T(){var x=V.glyphs,ab,l=-1,g=-1,y;X.scale(G,1);while(y=Z[++l]){var ab=x[Z[l]]||V.missingGlyph;if(!ab){continue}if(ab.d){X.beginPath();if(ab.code){c(ab.code,X)}else{ab.code=d("m"+ab.d,X)}X.fill()}X.translate(E[++g],0)}X.restore()}if(z){for(var U=z.length;U--;){var F=z[U];X.save();X.fillStyle=F.color;X.translate.apply(X,L[U]);T()}}var q=t.textGradient;if(q){var v=q.stops,p=X.createLinearGradient(0,A.minY,0,A.maxY);for(var U=0,R=v.length;U<R;++U){p.addColorStop.apply(p,v[U])}X.fillStyle=p}else{X.fillStyle=P.get("color")}T();return s}})());Cufon.registerEngine("vml",(function(){var e=document.namespaces;if(!e){return}e.add("cvml","urn:schemas-microsoft-com:vml");e=null;var b=document.createElement("cvml:shape");b.style.behavior="url(#default#VML)";if(!b.coordsize){return}b=null;var h=(document.documentMode||0)<8;document.write(('<style type="text/css">cufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h?"middle":"text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}</style>").replace(/;/g,"!important;"));function c(i,j){return a(i,/(?:em|ex|%)$|^[a-z-]+$/i.test(j)?"1em":j)}function a(l,m){if(m==="0"){return 0}if(/px$/i.test(m)){return parseFloat(m)}var k=l.style.left,j=l.runtimeStyle.left;l.runtimeStyle.left=l.currentStyle.left;l.style.left=m.replace("%","em");var i=l.style.pixelLeft;l.style.left=k;l.runtimeStyle.left=j;return i}function f(l,k,j,n){var i="computed"+n,m=k[i];if(isNaN(m)){m=k.get(n);k[i]=m=(m=="normal")?0:~~j.convertFrom(a(l,m))}return m}var g={};function d(p){var q=p.id;if(!g[q]){var n=p.stops,o=document.createElement("cvml:fill"),i=[];o.type="gradient";o.angle=180;o.focus="0";o.method="sigma";o.color=n[0][1];for(var m=1,l=n.length-1;m<l;++m){i.push(n[m][0]*100+"% "+n[m][1])}o.colors=i.join(",");o.color2=n[l][1];g[q]=o}return g[q]}return function(ac,G,Y,C,K,ad,W){var n=(G===null);if(n){G=K.alt}var I=ac.viewBox;var p=Y.computedFontSize||(Y.computedFontSize=new Cufon.CSS.Size(c(ad,Y.get("fontSize"))+"px",ac.baseSize));var y,q;if(n){y=K;q=K.firstChild}else{y=document.createElement("cufon");y.className="cufon cufon-vml";y.alt=G;q=document.createElement("cufoncanvas");y.appendChild(q);if(C.printable){var Z=document.createElement("cufontext");Z.appendChild(document.createTextNode(G));y.appendChild(Z)}if(!W){y.appendChild(document.createElement("cvml:shape"))}}var ai=y.style;var R=q.style;var l=p.convert(I.height),af=Math.ceil(l);var V=af/l;var P=V*Cufon.CSS.fontStretch(Y.get("fontStretch"));var U=I.minX,T=I.minY;R.height=af;R.top=Math.round(p.convert(T-ac.ascent));R.left=Math.round(p.convert(U));ai.height=p.convert(ac.height)+"px";var F=Y.get("color");var ag=Cufon.CSS.textTransform(G,Y).split("");var L=ac.spacing(ag,f(ad,Y,p,"letterSpacing"),f(ad,Y,p,"wordSpacing"));if(!L.length){return null}var k=L.total;var x=-U+k+(I.width-L[L.length-1]);var ah=p.convert(x*P),X=Math.round(ah);var O=x+","+I.height,m;var J="r"+O+"ns";var u=C.textGradient&&d(C.textGradient);var o=ac.glyphs,S=0;var H=C.textShadow;var ab=-1,aa=0,w;while(w=ag[++ab]){var D=o[ag[ab]]||ac.missingGlyph,v;if(!D){continue}if(n){v=q.childNodes[aa];while(v.firstChild){v.removeChild(v.firstChild)}}else{v=document.createElement("cvml:shape");q.appendChild(v)}v.stroked="f";v.coordsize=O;v.coordorigin=m=(U-S)+","+T;v.path=(D.d?"m"+D.d+"xe":"")+"m"+m+J;v.fillcolor=F;if(u){v.appendChild(u.cloneNode(false))}var ae=v.style;ae.width=X;ae.height=af;if(H){var s=H[0],r=H[1];var B=Cufon.CSS.color(s.color),z;var N=document.createElement("cvml:shadow");N.on="t";N.color=B.color;N.offset=s.offX+","+s.offY;if(r){z=Cufon.CSS.color(r.color);N.type="double";N.color2=z.color;N.offset2=r.offX+","+r.offY}N.opacity=B.opacity||(z&&z.opacity)||1;v.appendChild(N)}S+=L[aa++]}var M=v.nextSibling,t,A;if(C.forceHitArea){if(!M){M=document.createElement("cvml:rect");M.stroked="f";M.className="cufon-vml-cover";t=document.createElement("cvml:fill");t.opacity=0;M.appendChild(t);q.appendChild(M)}A=M.style;A.width=X;A.height=af}else{if(M){q.removeChild(M)}}ai.width=Math.max(Math.ceil(p.convert(k*P)),0);if(h){var Q=Y.computedYAdjust;if(Q===undefined){var E=Y.get("lineHeight");if(E=="normal"){E="1em"}else{if(!isNaN(E)){E+="em"}}Y.computedYAdjust=Q=0.5*(a(ad,E)-parseFloat(ai.height))}if(Q){ai.marginTop=Math.ceil(Q)+"px";ai.marginBottom=Q+"px"}}return y}})());

/*!
* The following copyright notice may not be removed under any circumstances.
* 
* Copyright:
* Copyright 1990-1993 Bitstream Inc.  All rights reserved.
*/
Cufon.registerFont({ "w": 240, "face": { "font-family": "Aachen BT", "font-weight": 700, "font-stretch": "condensed", "units-per-em": "360", "panose-1": "2 4 9 6 3 7 6 5 2 4", "ascent": "288", "descent": "-72", "x-height": "3", "bbox": "-14 -290 348.042 85", "underline-thickness": "47.4609", "underline-position": "-17.2266", "unicode-range": "U+0020-U+00A3" }, "glyphs": { " ": { "w": 119 }, "!": { "d": "68,3v-19,0,-35,-17,-35,-36v0,-19,16,-36,35,-36v19,0,36,16,36,36v0,20,-16,36,-36,36xm68,-273v36,0,50,21,43,57r-25,132r-36,0r-26,-152v1,-26,15,-37,44,-37", "w": 137 }, "\"": { "d": "121,-253r0,99r-45,0r0,-99r45,0xm57,-253r0,99r-45,0r0,-99r45,0", "w": 133 }, "#": { "d": "166,-147r-42,0r-13,38r42,0xm165,-258r-23,64r40,0r23,-64r51,0r-23,64r45,0r-18,47r-44,0r-13,38r45,0r-18,47r-44,0r-23,65r-51,0r23,-65r-40,0r-23,65r-51,0r23,-65r-45,0r18,-47r44,0r13,-38r-45,0r17,-47r45,0r23,-64r51,0", "w": 276 }, "$": { "d": "90,-1v-28,-5,-51,-12,-67,-26r0,-71r81,0v0,21,-3,44,17,43v13,0,17,-10,17,-23v1,-33,-94,-39,-105,-63v-9,-10,-13,-26,-13,-46v0,-52,22,-74,70,-80r0,-20r63,0r0,22v25,6,45,13,63,25r0,64r-79,0v1,-18,0,-36,-16,-37v-12,0,-17,7,-17,19v0,29,98,37,105,60v9,11,14,29,14,53v-1,50,-25,72,-70,80r0,23r-63,0r0,-23" }, "%": { "d": "240,-99v-17,6,-4,41,-8,60v1,7,1,12,8,12v20,0,6,-41,10,-60v0,-8,-2,-12,-10,-12xm240,2v-56,3,-57,-32,-55,-84v1,-37,15,-44,55,-46v57,-3,60,31,57,84v-1,37,-17,44,-57,46xm66,-240v-19,2,-5,41,-9,60v0,9,2,11,9,12v18,-4,5,-41,9,-60v-1,-8,-1,-13,-9,-12xm66,-139v-58,3,-58,-33,-56,-85v1,-37,16,-44,56,-46v57,-3,57,33,55,85v-1,37,-15,44,-55,46xm257,-270r-154,270r-54,0r155,-270r53,0", "w": 306 }, "&": { "d": "99,-87v-1,23,8,29,31,28v-2,-18,4,-43,-2,-57v-23,0,-29,6,-29,29xm99,-192v0,21,8,28,31,26r0,-14r80,0r0,14r13,0r0,50r-13,0r0,116v-90,-4,-197,25,-197,-76v0,-35,10,-58,34,-67v-21,-8,-31,-26,-32,-54v-3,-95,135,-86,195,-50r0,52r-80,0v1,-13,-5,-21,-16,-21v-11,0,-15,11,-15,24", "w": 232 }, "'": { "d": "57,-253r0,99r-45,0r0,-99r45,0", "w": 69 }, "(": { "d": "98,59v-61,-60,-102,-163,-58,-263v13,-29,32,-58,58,-86r43,28v-53,79,-54,214,0,293", "w": 148 }, ")": { "d": "8,31v53,-78,53,-215,0,-293r43,-28v60,61,103,162,58,263v-13,29,-32,58,-58,86", "w": 148 }, "*": { "d": "59,-130r0,-45r-40,22r-14,-27r38,-22r-38,-22r14,-26r40,21r0,-44r32,0r0,44r39,-21r15,26r-39,22r39,22r-15,27r-39,-22r0,45r-32,0", "w": 150 }, "+": { "d": "175,-215r0,84r80,0r0,48r-80,0r0,83r-50,0r0,-83r-80,0r0,-48r80,0r0,-84r50,0", "w": 299 }, ",": { "d": "60,-68v37,0,44,47,25,75v-8,11,-20,25,-35,39r-15,-14v8,-11,16,-21,21,-34v-18,-3,-32,-12,-32,-31v0,-19,17,-36,36,-35", "w": 119 }, "-": { "d": "16,-69r0,-65r106,0r0,65r-106,0", "w": 137, "k": { "Y": 26, "X": 13, "W": 6, "V": 6, "T": 13} }, ".": { "d": "60,3v-19,0,-36,-16,-36,-35v0,-19,16,-36,36,-36v20,0,36,17,36,36v0,19,-17,35,-36,35", "w": 119 }, "\/": { "d": "45,33r-59,0r77,-301r60,0", "w": 116 }, "0": { "d": "120,-53v14,0,17,-10,16,-26r0,-111v1,-17,-2,-26,-16,-26v-14,0,-17,9,-17,26r0,111v0,17,3,26,17,26xm120,4v-74,0,-99,-21,-100,-96r0,-84v1,-75,25,-97,100,-97v75,0,99,22,100,97r0,84v-1,75,-25,96,-100,96" }, "1": { "d": "68,-47v9,-4,9,-12,10,-25r0,-125v0,-14,-2,-21,-10,-25r0,-47r94,0r0,197v1,15,0,19,9,25r0,47r-103,0r0,-47" }, "2": { "d": "100,-57v25,0,39,0,38,-26r78,0r0,83r-196,0v1,-39,-5,-90,12,-112v10,-28,105,-47,106,-82v0,-12,-6,-22,-17,-22v-19,0,-17,23,-17,44r-79,0r0,-73v56,-40,208,-47,196,57v6,76,-73,76,-116,113v-4,5,-5,10,-5,18" }, "3": { "d": "220,-79v9,103,-144,97,-198,56r0,-74r80,0v1,20,-5,45,16,44v14,0,17,-13,17,-28v0,-34,-26,-32,-58,-31r0,-52v30,-1,60,6,57,-28v-1,-13,-5,-23,-18,-23v-16,0,-14,20,-14,37r-80,0r0,-65v51,-42,201,-48,195,47v-2,31,-12,47,-36,55v26,9,36,28,39,62" }, "4": { "d": "127,-120r0,-69r-45,69r45,0xm205,-66v0,11,3,16,11,19r0,47r-104,0r0,-47v10,-2,13,-8,13,-19r-109,0r0,-64r93,-139r96,0r0,149r18,0r0,54r-18,0" }, "5": { "d": "138,-107v3,-23,-24,-31,-31,-13r-80,0r0,-149r189,0r0,73r-79,0v0,-16,-13,-18,-30,-17r0,36v66,-20,121,5,115,86v-5,68,-26,95,-96,95v-42,-1,-73,-12,-99,-31r0,-74r80,0v0,22,-4,48,16,48v21,-1,12,-32,15,-54" }, "6": { "d": "120,-121v-19,-1,-17,22,-17,42v0,17,3,25,17,26v19,1,16,-22,16,-42v1,-16,-2,-26,-16,-26xm120,4v-74,0,-99,-21,-100,-96r0,-84v1,-72,24,-95,94,-97v42,0,73,11,99,29r0,59r-77,0v1,-18,0,-31,-16,-31v-22,-1,-16,28,-17,50v62,-20,121,4,117,78v-4,71,-27,92,-100,92" }, "7": { "d": "128,-212v-34,-5,-31,22,-31,53r-69,0r0,-110r192,0r0,49r-81,220r-88,0" }, "8": { "d": "17,-78v0,-34,12,-52,37,-62v-23,-10,-33,-23,-33,-55v0,-59,36,-78,99,-78v64,0,97,18,98,78v0,32,-9,45,-32,55v25,10,37,28,37,62v0,60,-38,82,-103,82v-65,0,-102,-22,-103,-82xm120,-114v-17,0,-18,16,-17,35v0,17,3,25,17,26v17,1,16,-16,16,-35v0,-16,-2,-26,-16,-26xm120,-163v14,0,16,-9,16,-27v0,-17,-2,-26,-16,-26v-14,0,-17,9,-17,26v0,17,3,27,17,27" }, "9": { "d": "120,-144v20,1,15,-25,16,-45v1,-17,-2,-27,-16,-27v-20,-1,-17,25,-17,45v0,17,3,26,17,27xm120,-273v76,0,100,22,100,97r0,83v-1,71,-24,97,-95,98v-40,0,-75,-11,-99,-27r0,-58r77,0v-1,17,3,28,17,28v22,1,15,-28,16,-49v-59,26,-122,-6,-116,-81v6,-68,28,-91,100,-91" }, ":": { "d": "60,3v-19,0,-36,-16,-36,-35v0,-19,16,-36,36,-36v20,0,36,17,36,36v0,19,-17,35,-36,35xm60,-104v-19,0,-36,-16,-36,-35v0,-19,16,-36,36,-36v20,0,36,17,36,36v0,19,-17,35,-36,35", "w": 119 }, ";": { "d": "60,-68v37,0,44,47,25,75v-8,11,-20,25,-35,39r-15,-14v8,-11,16,-21,21,-34v-18,-3,-32,-12,-32,-31v0,-19,17,-36,36,-35xm60,-104v-19,0,-36,-16,-36,-35v0,-19,16,-36,36,-36v20,0,36,17,36,36v0,19,-17,35,-36,35", "w": 119 }, "<": { "d": "253,-165r-140,58r140,57r0,53r-207,-86r0,-49r207,-86r0,53", "w": 299 }, "=": { "d": "255,-90r0,48r-210,0r0,-48r210,0xm255,-173r0,48r-210,0r0,-48r210,0", "w": 299 }, ">": { "d": "253,-132r0,49r-207,86r0,-53r141,-57r-141,-58r0,-53", "w": 299 }, "?": { "d": "99,3v-20,0,-36,-15,-36,-35v0,-20,16,-36,36,-36v20,0,35,16,35,36v0,19,-16,35,-35,35xm15,-245v52,-41,193,-48,193,51v0,59,-43,61,-71,90v-2,4,-3,10,-3,19r-77,0v-3,-41,8,-63,37,-80v20,-12,31,-13,31,-33v0,-11,-7,-17,-17,-18v-17,0,-17,20,-16,39r-77,0r0,-68", "w": 223 }, "@": { "d": "179,-180v19,0,32,8,39,20r9,-15r42,0r-28,116v1,6,2,8,8,9v33,0,60,-46,59,-84v-2,-58,-49,-93,-112,-92v-87,2,-138,52,-143,134v-8,115,158,141,232,80r21,28v-34,25,-72,42,-127,42v-97,0,-167,-52,-167,-149v0,-109,75,-169,183,-173v85,-2,155,50,153,130v-2,66,-37,117,-104,117v-24,0,-39,-5,-41,-26v-26,44,-112,32,-112,-35v0,-54,37,-102,88,-102xm141,-77v0,27,27,34,43,16v16,-18,39,-82,-1,-85v-26,-2,-42,38,-42,69", "w": 360 }, "A": { "d": "97,-117r28,0r-15,-95xm91,-69v-3,11,1,21,11,22r0,47r-93,0v-2,-29,1,-49,12,-69r36,-199r118,0r46,213v13,9,7,35,8,55r-105,0r0,-47v7,-2,11,-13,8,-22r-41,0", "w": 235, "k": { "y": 6, "t": 6, "f": 6, "Y": 8, "X": -7, "W": 6, "V": 6, "T": 13, "O": 6} }, "B": { "d": "142,-188v1,-21,-13,-27,-35,-25r0,49v21,1,35,-5,35,-24xm143,-85v0,-23,-12,-30,-36,-29r0,58v21,4,36,-7,36,-29xm229,-77v6,104,-121,72,-214,77r0,-47v9,-5,9,-10,10,-25r0,-124v-1,-15,-1,-20,-10,-25r0,-47v88,6,215,-27,210,70v-2,32,-16,52,-43,57v31,6,45,28,47,64", "w": 239, "k": { "G": -7, "-": -13} }, "C": { "d": "110,-273v42,0,77,12,103,30r0,74r-80,0v-1,-20,4,-48,-16,-47v-15,1,-16,9,-16,26r0,112v0,17,1,25,16,26v24,0,14,-37,16,-60r80,0r0,89v-24,19,-55,29,-100,28v-72,-1,-96,-24,-96,-95r0,-87v2,-70,24,-96,93,-96", "w": 227, "k": { "S": -7, "A": 6, "-": -8} }, "D": { "d": "221,-94v-1,78,-25,94,-106,94r-102,0r0,-47v9,-6,10,-10,10,-25r0,-124v-1,-14,-1,-19,-10,-25r0,-47r102,0v81,2,105,16,106,94r0,80xm138,-184v2,-25,-10,-25,-32,-25r0,151v24,1,32,-3,32,-28r0,-98", "w": 238, "k": { "Y": 6, "V": 6, "A": 6, "-": -13} }, "E": { "d": "108,-58v25,6,34,-12,31,-40r77,0r0,98r-201,0r0,-47v9,-4,9,-12,10,-25r0,-124v-1,-13,-1,-21,-10,-25r0,-47r201,0r0,89r-77,0v2,-25,-5,-34,-31,-32r0,48r53,0r0,51r-53,0r0,54", "w": 230 }, "F": { "d": "137,-174v1,-25,-1,-39,-28,-36r0,51r52,0r0,52r-52,0v2,22,-7,56,13,60r0,47r-107,0r0,-47v9,-5,9,-10,10,-25r0,-124v-1,-15,-1,-20,-10,-25r0,-47r195,0r0,94r-73,0", "w": 215, "k": { "o": 23, "e": 23, "a": 21, "T": -7, "A": 15, ";": 13, ":": 13, ".": 41, "-": 33, ",": 41} }, "G": { "d": "110,-273v42,0,77,12,103,30r0,68r-80,0v-1,-19,3,-41,-16,-41v-15,1,-16,9,-16,26r0,112v0,17,1,25,16,26v20,0,15,-26,16,-46r-14,0r0,-54r94,0r0,129v-24,19,-55,29,-100,28v-72,-1,-96,-24,-96,-95r0,-87v2,-70,24,-96,93,-96", "w": 230, "k": { "Y": 8, "W": 6, "T": 6, "-": -7} }, "H": { "d": "132,-47v16,-8,7,-44,9,-66r-32,0v2,22,-7,59,9,66r0,47r-103,0r0,-47v9,-5,9,-10,10,-25r0,-124v-1,-15,-1,-20,-10,-25r0,-47r103,0r0,47v-15,6,-7,37,-9,57r32,0v-1,-20,5,-50,-9,-57r0,-47r102,0r0,47v-9,5,-9,10,-10,25r0,124v1,15,1,20,10,25r0,47r-102,0r0,-47", "w": 249 }, "I": { "d": "27,-196v0,-12,-2,-21,-10,-25r0,-47r103,0r0,47v-9,5,-9,10,-10,25r0,124v1,15,1,20,10,25r0,47r-103,0r0,-47v7,-5,10,-13,10,-25r0,-124", "w": 136 }, "J": { "d": "122,-97v9,85,-37,110,-114,96r0,-47v30,-3,30,-12,30,-49r0,-103v1,-13,-3,-18,-11,-21r0,-47r105,0r0,47v-7,5,-11,9,-10,22r0,102", "w": 146, "k": { "A": 13} }, "K": { "d": "118,-221v-16,7,-6,45,-9,67v15,-33,36,-60,30,-114r94,0v-1,22,5,47,-10,58r-43,64v20,32,34,70,58,99r0,47r-99,0v5,-53,-16,-83,-30,-120v2,24,-7,64,9,73r0,47r-103,0r0,-47v9,-5,9,-10,10,-25r0,-124v-1,-15,-1,-20,-10,-25r0,-47r103,0r0,47", "w": 245, "k": { "y": 10, "u": 6, "a": -7, "U": -7, "T": 6, "O": 10, "C": 10, "-": 13} }, "L": { "d": "109,-58v39,7,24,-41,27,-72r73,0r0,130r-194,0r0,-47v9,-5,9,-10,10,-25r0,-124v-1,-15,-1,-20,-10,-25r0,-47r107,0r0,47v-12,4,-13,12,-13,29r0,134", "w": 220, "k": { "y": 6, "Y": 16, "W": 11, "V": 16, "U": 6, "T": 23} }, "M": { "d": "185,-47v8,-4,8,-11,9,-25r0,-87r-36,159r-33,0r-38,-159r0,87v1,14,0,21,9,25r0,47r-81,0r0,-47v9,-5,9,-10,10,-25r0,-124v-1,-15,-1,-20,-10,-25r0,-47r110,0r25,115r24,-115r108,0r0,47v-8,5,-10,10,-10,25r0,124v0,15,2,20,10,25r0,47r-97,0r0,-47", "w": 297 }, "N": { "d": "232,-221v-9,5,-9,10,-10,25r0,196r-82,0r-51,-127v3,26,-9,71,10,80r0,47r-86,0r0,-47v8,-4,11,-12,10,-25r0,-124v0,-13,-2,-21,-10,-25r0,-47r92,0r51,136v-3,-30,10,-78,-12,-89r0,-47r88,0r0,47", "w": 241 }, "O": { "d": "117,-52v14,0,17,-10,17,-26r0,-112v0,-16,-3,-26,-17,-26v-13,0,-16,10,-16,26r0,112v0,17,3,26,16,26xm117,5v-75,0,-99,-21,-100,-95r0,-87v1,-74,26,-96,100,-96v74,0,99,22,100,96r0,87v-1,74,-25,95,-100,95", "w": 234, "k": { "Y": 6, "X": 6, "V": 6, "A": 6, ".": 21, "-": -13, ",": 21} }, "P": { "d": "140,-159v0,-31,5,-59,-33,-53r0,79v24,1,34,-3,33,-26xm223,-168v2,79,-35,95,-116,92v0,17,1,26,14,29r0,47r-106,0r0,-47v9,-5,9,-10,10,-25r0,-124v-1,-15,-1,-20,-10,-25r0,-47r115,0v74,3,92,22,93,100", "w": 233, "k": { "s": 11, "o": 18, "e": 6, "a": 13, "A": 13, ";": -7, ":": -7, ".": 66, ",": 66} }, "Q": { "d": "192,40v-25,-9,-44,-22,-63,-35v-80,1,-112,-16,-112,-95r0,-87v1,-74,26,-96,100,-96v74,0,100,22,100,96v0,54,9,124,-16,154v6,6,12,10,18,15xm117,-52v14,0,17,-10,17,-26r0,-112v0,-16,-3,-26,-17,-26v-13,0,-16,10,-16,26r0,112v0,17,3,26,16,26", "w": 234, "k": { "-": -13} }, "R": { "d": "142,-185v0,-22,-9,-28,-34,-27r0,55v24,1,35,-4,34,-28xm142,0v-15,-25,17,-115,-34,-104v2,21,-6,52,10,57r0,47r-103,0r0,-47v9,-5,9,-10,10,-25r0,-124v-1,-15,-1,-20,-10,-25r0,-47v90,5,217,-26,211,73v-2,34,-13,53,-39,61v28,7,33,19,34,56v0,17,4,28,10,31r0,47r-89,0", "w": 241, "k": { "o": -7, "e": -7, "a": -7, "V": 6} }, "S": { "d": "119,5v-42,0,-77,-10,-100,-28r0,-74r81,0v0,21,-4,46,17,44v11,0,17,-11,17,-23v1,-34,-95,-40,-106,-65v-9,-11,-13,-26,-13,-47v0,-106,141,-99,196,-55r0,66r-78,0v0,-18,0,-38,-17,-38v-12,0,-17,6,-17,18v0,30,98,39,106,63v9,12,13,29,13,54v-1,60,-34,85,-99,85", "w": 229, "k": { "S": -7} }, "T": { "d": "83,-213v-28,0,-12,43,-16,67r-59,0r0,-122r231,0r0,122r-59,0v-4,-24,11,-66,-17,-67r0,141v1,16,4,20,15,25r0,47r-109,0r0,-47v11,-5,14,-9,14,-25r0,-141", "w": 246, "k": { "s": 13, "o": 15, "e": 15, "c": 15, "a": 15, "A": 13, ";": 13, ":": 13, ".": 26, "-": 26, ",": 26} }, "U": { "d": "121,-52v14,0,17,-10,17,-26r0,-118v-1,-15,-1,-20,-10,-25r0,-47r96,0r0,47v-9,5,-9,10,-10,25r0,94v5,79,-26,107,-97,107v-66,0,-94,-29,-94,-103r0,-98v1,-14,-2,-21,-11,-25r0,-47r102,0r0,47v-9,6,-8,10,-9,25r0,118v0,17,3,26,16,26", "w": 236, "k": { "Z": 10, "J": 10} }, "V": { "d": "137,-196v0,-13,2,-24,-9,-25r0,-47r91,0v1,27,0,47,-10,65r-37,203r-113,0r-45,-213v-12,-10,-6,-35,-7,-55r103,0r0,47v-10,3,-8,17,-6,28r18,117", "w": 225, "k": { "u": 10, "o": 13, "i": 10, "e": 11, "a": 20, "O": 6, "A": 15, ";": 16, ":": 16, ".": 33, "-": 20, ",": 33} }, "W": { "d": "229,-192v1,-14,2,-24,-8,-29r0,-47r90,0v-1,19,5,46,-7,55r-40,213r-83,0r-21,-139r-22,139r-82,0r-37,-193v-2,-11,-6,-21,-12,-28r0,-47r102,0r0,47v-8,5,-9,12,-7,23r10,88r24,-158r58,0r28,158", "w": 316, "k": { "y": 8, "u": 15, "o": 11, "i": 6, "e": 10, "a": 18, "A": 6, ";": 11, ":": 11, ".": 43, "-": 6, ",": 43} }, "X": { "d": "160,-137r59,90r0,47r-100,0v3,-33,-3,-58,-17,-79v-10,21,-17,45,-14,79r-83,0r0,-47v23,-27,40,-63,61,-93v-20,-26,-35,-57,-57,-81r0,-47r94,0v-3,30,3,50,15,70v10,-19,18,-39,15,-70r84,0v0,23,5,50,-12,59", "w": 222, "k": { "O": 6, "C": 6, "A": -7, "-": 13} }, "Y": { "d": "52,-47v17,-7,11,-35,12,-58v-22,-38,-37,-82,-63,-116r0,-47r94,0v0,36,0,70,16,92v13,-23,19,-53,16,-92r84,0v-2,17,6,44,-6,52r-58,111v1,22,-6,52,12,58r0,47r-107,0r0,-47", "w": 211, "k": { "u": 16, "o": 28, "i": 6, "e": 24, "a": 28, "O": 6, "C": 6, "A": 15, ";": 24, ":": 24, ".": 46, "-": 33, ",": 46} }, "Z": { "d": "113,-58v39,5,47,-15,44,-54r61,0r0,112r-205,0r0,-48r104,-163v-37,-5,-46,10,-42,49r-60,0r0,-106r201,0r0,48", "w": 227 }, "[": { "d": "32,36r0,-304r110,0r0,24r-40,0r0,257r40,0r0,23r-110,0", "w": 148 }, "\\": { "d": "72,33r-78,-301r59,0r78,301r-59,0", "w": 116 }, "]": { "d": "116,36r-109,0r0,-23r39,0r0,-257r-39,0r0,-24r109,0r0,304", "w": 148 }, "^": { "d": "210,-257r77,99r-53,0r-54,-54r-54,54r-54,0r78,-99r60,0", "w": 360 }, "_": { "d": "180,35r0,50r-180,0r0,-50r180,0", "w": 180 }, "`": { "d": "36,-284r51,0r34,65r-27,0", "w": 180 }, "a": { "d": "87,-60v-2,19,23,15,30,6r0,-31v-19,9,-28,8,-30,25xm189,-128v2,28,-8,71,10,84r0,44r-79,0r-2,-17v-28,35,-113,23,-105,-36v-3,-31,42,-56,104,-75v0,-15,-1,-27,-14,-27v-13,0,-14,12,-14,27r-68,0r0,-46v45,-35,180,-48,168,46", "w": 211 }, "b": { "d": "125,-73v-2,-33,8,-89,-29,-70r0,93v18,6,30,0,29,-23xm112,3v-37,0,-68,-11,-90,-27r0,-178v0,-13,-1,-18,-9,-22r0,-44r83,0r0,80v46,-25,102,-6,102,59v0,80,1,132,-86,132", "w": 213 }, "c": { "d": "16,-128v-12,-95,122,-80,169,-47r0,53r-68,0v0,-17,1,-33,-14,-33v-27,7,-14,60,-14,90v0,16,1,22,14,23v18,1,13,-23,14,-41r68,0r0,61v-21,18,-49,25,-87,25v-58,0,-81,-16,-82,-71r0,-60", "w": 198 }, "d": { "d": "89,-120v3,28,-12,80,28,67r0,-90v-16,-9,-31,-3,-28,23xm16,-125v-6,-75,50,-84,101,-62v-1,-16,2,-33,-9,-36r0,-45r82,0r0,203v1,12,2,17,10,21r0,44r-80,0r0,-13v-13,9,-30,15,-50,15v-65,0,-49,-67,-54,-127", "w": 212 }, "e": { "d": "103,-155v-14,0,-14,15,-14,31r28,0v0,-17,0,-30,-14,-31xm103,-200v79,-4,92,39,87,117r-101,0v1,18,-4,41,14,41v14,0,14,-12,14,-28r73,0r0,48v-19,18,-53,25,-91,25v-58,0,-83,-15,-83,-71r0,-60v1,-59,25,-69,87,-72", "w": 205 }, "f": { "d": "104,-72v1,16,-1,25,10,28r0,44r-92,0r0,-44v19,-18,5,-74,9,-108r-9,0r0,-45r9,0v-10,-67,45,-85,101,-69r0,43v-18,-4,-30,6,-28,26r23,0r0,45r-23,0r0,80", "w": 138, "k": { ";": -20, ":": -20, ".": 13, "-": 6, ",": 13} }, "g": { "d": "89,-120v0,32,-6,79,28,62r0,-86v-18,-5,-28,2,-28,24xm16,-133v-7,-72,65,-79,104,-50r0,-14r80,0r0,45v-9,4,-10,10,-10,21r0,117v18,105,-108,101,-170,68r0,-47v22,1,49,-2,69,1v0,13,3,19,14,20v18,0,13,-23,14,-42v-13,7,-30,11,-48,12v-65,4,-47,-70,-53,-131", "w": 214 }, "h": { "d": "126,-77v0,-29,12,-80,-28,-67v3,33,-8,82,9,100r0,44r-92,0r0,-44v7,-4,10,-12,9,-25r0,-133v-1,-13,-1,-16,-9,-21r0,-45r83,0r0,83v39,-26,112,-18,101,50v3,29,-9,78,9,91r0,44r-78,0v-4,-25,-4,-38,-4,-77", "w": 220 }, "i": { "d": "25,-69v-4,-27,10,-72,-10,-83r0,-45r84,0r0,127v1,14,1,20,8,26r0,44r-92,0r0,-44v7,-3,11,-11,10,-25xm20,-239v0,-39,78,-40,78,0v0,19,-19,32,-39,31v-20,0,-39,-12,-39,-31", "w": 121 }, "j": { "d": "20,-239v0,-39,78,-40,78,0v0,19,-19,32,-39,31v-20,0,-39,-12,-39,-31xm25,-131v-1,-12,0,-18,-10,-21r0,-45r84,0r0,189v8,70,-36,95,-96,78r0,-44v25,-2,22,-13,22,-47r0,-110", "w": 121 }, "k": { "d": "15,-44v7,-3,11,-11,10,-25r0,-133v-1,-13,-1,-17,-10,-21r0,-45r84,0r0,142v15,-17,29,-34,24,-71r81,0r0,45v-18,9,-27,27,-40,41v15,22,22,53,44,67r0,44r-62,0v-19,-26,-32,-64,-47,-95v1,19,-3,44,8,51r0,44r-92,0r0,-44", "w": 211 }, "l": { "d": "15,-44v7,-3,11,-11,10,-25r0,-133v-1,-13,-1,-17,-10,-21r0,-45r84,0r0,198v1,14,1,20,8,26r0,44r-92,0r0,-44", "w": 121 }, "m": { "d": "95,-183v21,-19,81,-25,95,4v14,-13,34,-19,57,-20v65,-5,53,68,54,129v0,16,1,21,9,26r0,44r-79,0v-6,-29,-4,-79,-4,-120v0,-22,-9,-31,-28,-24v3,32,-9,84,9,100r0,44r-78,0v-6,-29,-4,-79,-4,-120v0,-22,-10,-31,-28,-24v3,33,-8,82,9,100r0,44r-92,0r0,-44v17,-12,9,-59,9,-87v0,-12,0,-18,-9,-21r0,-45r80,0r0,14", "w": 322 }, "n": { "d": "126,-77v0,-29,12,-80,-28,-67v3,33,-8,82,9,100r0,44r-92,0r0,-44v17,-12,9,-59,9,-87v0,-12,0,-18,-9,-21r0,-45r80,0r0,14v12,-9,30,-16,50,-16v66,0,53,68,54,129v1,15,0,22,9,26r0,44r-78,0v-4,-25,-4,-38,-4,-77", "w": 220 }, "o": { "d": "103,-200v62,0,87,13,87,72r0,60v-1,59,-25,71,-87,71v-62,0,-87,-12,-87,-71r0,-60v1,-59,25,-72,87,-72xm103,-42v13,0,14,-8,14,-23r0,-66v0,-16,-2,-22,-14,-24v-27,7,-14,60,-14,90v0,16,1,23,14,23", "w": 206 }, "p": { "d": "125,-77v-2,-29,11,-79,-28,-67r0,91v18,7,30,1,28,-24xm198,-72v6,75,-50,86,-101,63v0,16,-2,32,10,35r0,44r-93,0r0,-44v7,-4,10,-12,9,-25r0,-132v-1,-13,0,-17,-9,-21r0,-45r80,0r0,14v13,-9,29,-16,50,-16v65,0,49,67,54,127", "w": 214 }, "q": { "d": "89,-120v1,32,-8,84,28,67r0,-91v-18,-5,-29,2,-28,24xm16,-133v-7,-72,64,-79,104,-50r0,-14r71,0r0,198v-1,13,2,21,9,25r0,44r-92,0r0,-44v10,-4,9,-20,9,-35v-14,7,-28,11,-46,11v-68,6,-49,-72,-55,-135", "w": 213 }, "r": { "d": "134,-133v-37,-5,-37,27,-36,63v1,13,0,22,9,26r0,44r-92,0r0,-44v17,-12,9,-59,9,-87v0,-12,0,-18,-9,-21r0,-45r78,0r0,16v9,-13,22,-23,41,-18r0,66", "w": 143, "k": { "y": -13, "x": -7, "w": -13, "v": -13, ".": 33, ",": 33} }, "s": { "d": "185,-62v0,85,-126,74,-170,40r0,-52r70,0v0,16,-1,31,14,31v8,0,16,-6,15,-15v3,-22,-80,-30,-89,-44v-29,-46,2,-105,67,-98v36,4,67,10,89,26r0,46r-68,0v8,-28,-26,-38,-30,-14v1,22,82,27,88,42v9,8,14,21,14,38", "w": 196 }, "t": { "d": "97,-152v6,38,-18,111,24,108r0,43v-53,11,-98,3,-98,-61r0,-90r-9,0r0,-45r9,0r0,-37r74,-21r0,58r24,0r0,45r-24,0", "w": 135 }, "u": { "d": "123,-53v-3,-32,8,-80,-8,-99r0,-45r82,0r0,132v0,12,2,17,9,21r0,44r-80,0r0,-13v-13,9,-30,15,-50,15v-65,0,-53,-68,-54,-129v-1,-15,0,-21,-9,-25r0,-45r78,0v6,30,4,78,4,120v0,22,9,31,28,24", "w": 220 }, "v": { "d": "118,-134v2,-7,2,-18,-5,-19r0,-44r79,0v1,26,1,45,-11,62r-40,135r-86,0r-44,-146v-12,-8,-6,-33,-7,-51r91,0v3,25,-4,44,-5,63r14,71", "w": 195, "k": { ".": 23, ",": 23} }, "w": { "d": "204,-83v0,-22,18,-54,2,-69r0,-45r79,0v-1,19,5,46,-8,53v-17,45,-27,97,-41,144r-71,0r-20,-89r-21,89r-70,0r-36,-132v-3,-9,-6,-16,-13,-20r0,-45r92,0r0,45v-17,13,4,48,3,69r28,-114r47,0", "w": 291, "k": { ".": 23, ",": 23} }, "x": { "d": "10,0r0,-44v23,-12,34,-38,52,-56v-17,-17,-28,-39,-49,-52r0,-45r82,0v0,21,1,39,12,50v11,-11,16,-26,14,-50r70,0r0,45v-20,12,-31,35,-47,51v17,19,31,40,49,57r0,44r-84,0v2,-25,-1,-45,-14,-57v-10,13,-15,30,-13,57r-72,0", "w": 201 }, "y": { "d": "140,11v-9,49,-47,73,-102,57r0,-42v16,0,25,-7,29,-19v-21,-52,-35,-112,-60,-160r0,-44r91,0r0,44v-6,2,-9,10,-6,17r16,69v3,-27,15,-56,12,-82v-10,-8,-4,-32,-6,-48r80,0v1,27,0,47,-12,64", "w": 200, "k": { ".": 28, ",": 28} }, "z": { "d": "99,-46v26,2,40,0,35,-30r54,0r0,76r-176,0r0,-47r86,-105v-24,-1,-37,1,-33,29r-51,0r0,-74r171,0r0,45", "w": 195 }, "{": { "d": "68,-204v0,-59,36,-55,91,-56r0,50v-43,-9,-32,34,-33,70v-1,32,-11,41,-38,47v45,1,38,44,38,89v0,25,8,28,33,27r0,50v-54,-1,-91,3,-91,-56v0,-43,8,-96,-43,-85r0,-50v51,8,43,-41,43,-86", "w": 180 }, "|": { "d": "115,-275r0,360r-49,0r0,-360r49,0", "w": 180 }, "}": { "d": "21,-260v55,0,92,-1,92,56v0,43,-10,94,42,86r0,50v-48,-10,-44,40,-42,85v3,57,-37,56,-92,56r0,-50v72,15,-4,-118,72,-116v-43,-2,-39,-43,-38,-89v1,-24,-9,-29,-34,-28r0,-50", "w": 180 }, "~": { "d": "204,-122v28,0,45,-11,65,-26r0,53v-20,13,-39,22,-65,23v-38,1,-67,-24,-105,-22v-29,1,-47,11,-68,27r0,-52v24,-14,41,-24,72,-25v34,-1,72,22,101,22", "w": 299 }, "\u00a3": { "d": "113,-58v25,1,34,-6,32,-32r77,0r0,90r-202,0r0,-47v15,-7,12,-34,12,-57r-12,0r0,-52r12,0v-7,-77,18,-118,88,-117v41,1,73,13,102,30r0,72r-77,0v-1,-20,5,-45,-15,-45v-25,0,-15,36,-17,60r53,0r0,52r-53,0r0,46" }, "\u00a0": { "w": 119}} });

/*
 * 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
 *
 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
 */
;(function($){$.fn.superfish=function(d){var e=$.fn.superfish,c=e.c,$arrow=$(''),over=function(){var a=$(this),menu=getMenu(a);clearTimeout(menu.sfTimer);a.showSuperfishUl().siblings().hideSuperfishUl()},out=function(){var a=$(this),menu=getMenu(a),o=e.op;clearTimeout(menu.sfTimer);menu.sfTimer=setTimeout(function(){o.retainPath=($.inArray(a[0],o.$path)>-1);a.hideSuperfishUl();if(o.$path.length&&a.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path)}},o.delay)},getMenu=function(a){var b=a.parents(['ul.',c.menuClass,':first'].join(''))[0];e.op=e.o[b.serial];return b},addArrow=function(a){a.addClass(c.anchorClass).append($arrow.clone())};return this.each(function(){var s=this.serial=e.o.length;var o=$.extend({},e.defaults,d);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)});e.o[s]=e.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 b=$('a',this);b.each(function(i){var a=b.eq(i).parents('li');b.eq(i).focus(function(){over.call(a)}).blur(function(){out.call(a)})});o.onInit.call(this)}).each(function(){var a=[c.menuClass];if(e.op.dropShadows&&!($.browser.msie&&$.browser.version<7))a.push(c.shadowClass);$(this).addClass(a.join(' '))})};var f=$.fn.superfish;f.o=[];f.op={};f.IE7fix=function(){var o=f.op;if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined)this.toggleClass(f.c.shadowClass+'-off')};f.c={bcClass:'sf-breadcrumb',menuClass:'sf-js-enabled',anchorClass:'sf-with-ul',arrowClass:'sf-sub-indicator',shadowClass:'sf-shadow'};f.defaults={hoverClass:'sfHover',pathClass:'overideThisToUse',pathLevels:1,delay:800,animation:{opacity:'show'},speed:'normal',autoArrows:true,dropShadows:true,disableHI:false,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){}};$.fn.extend({hideSuperfishUl:function(){var o=f.op,not=(o.retainPath===true)?o.$path:'';o.retainPath=false;var a=$(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass).find('>ul').hide().css('visibility','hidden');o.onHide.call(a);return this},showSuperfishUl:function(){var o=f.op,sh=f.c.shadowClass+'-off',$ul=this.addClass(o.hoverClass).find('>ul:hidden').css('visibility','visible');f.IE7fix.call($ul);o.onBeforeShow.call($ul);$ul.animate(o.animation,o.speed,function(){f.IE7fix.call($ul);o.onShow.call($ul)});return this}})})(jQuery);

/**
* 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);

/* Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
* Licensed under the MIT License (LICENSE.txt).
*
* Version 2.1.2
*/
(function(a) { a.fn.bgiframe = (a.browser.msie && /msie 6\.0/i.test(navigator.userAgent) ? function(d) { d = a.extend({ top: "auto", left: "auto", width: "auto", height: "auto", opacity: true, src: "javascript:false;" }, d); var c = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="' + d.src + '"style="display:block;position:absolute;z-index:-1;' + (d.opacity !== false ? "filter:Alpha(Opacity='0');" : "") + "top:" + (d.top == "auto" ? "expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+'px')" : b(d.top)) + ";left:" + (d.left == "auto" ? "expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+'px')" : b(d.left)) + ";width:" + (d.width == "auto" ? "expression(this.parentNode.offsetWidth+'px')" : b(d.width)) + ";height:" + (d.height == "auto" ? "expression(this.parentNode.offsetHeight+'px')" : b(d.height)) + ';"/>'; return this.each(function() { if (a(this).children("iframe.bgiframe").length === 0) { this.insertBefore(document.createElement(c), this.firstChild) } }) } : function() { return this }); a.fn.bgIframe = a.fn.bgiframe; function b(c) { return c && c.constructor === Number ? c + "px" : c } })(jQuery);

/*!
 * jCarousel - Riding carousels with jQuery
 *   http://sorgalla.com/jcarousel/
 *
 * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * Built on top of the jQuery library
 *   http://jquery.com
 *
 * Inspired by the "Carousel Component" by Bill Scott
 *   http://billwscott.com/carousel/
 */
(function($) { $.fn.jcarousel = function(o) { if (typeof o == 'string') { var instance = $(this).data('jcarousel'), args = Array.prototype.slice.call(arguments, 1); return instance[o].apply(instance, args) } else return this.each(function() { $(this).data('jcarousel', new $jc(this, o)) }) }; var defaults = { vertical: false, start: 1, offset: 1, size: null, scroll: 3, visible: null, animation: 'normal', easing: 'swing', auto: 0, wrap: null, initCallback: null, reloadCallback: null, itemLoadCallback: null, itemFirstInCallback: null, itemFirstOutCallback: null, itemLastInCallback: null, itemLastOutCallback: null, itemVisibleInCallback: null, itemVisibleOutCallback: null, buttonNextHTML: '<div></div>', buttonPrevHTML: '<div></div>', buttonNextEvent: 'click', buttonPrevEvent: 'click', buttonNextCallback: null, buttonPrevCallback: null }; $.jcarousel = function(e, o) { this.options = $.extend({}, defaults, o || {}); this.locked = false; this.container = null; this.clip = null; this.list = null; this.buttonNext = null; this.buttonPrev = null; this.wh = !this.options.vertical ? 'width' : 'height'; this.lt = !this.options.vertical ? 'left' : 'top'; var skin = '', split = e.className.split(' '); for (var i = 0; i < split.length; i++) { if (split[i].indexOf('jcarousel-skin') != -1) { $(e).removeClass(split[i]); skin = split[i]; break } } if (e.nodeName == 'UL' || e.nodeName == 'OL') { this.list = $(e); this.container = this.list.parent(); if (this.container.hasClass('jcarousel-clip')) { if (!this.container.parent().hasClass('jcarousel-container')) this.container = this.container.wrap('<div></div>'); this.container = this.container.parent() } else if (!this.container.hasClass('jcarousel-container')) this.container = this.list.wrap('<div></div>').parent() } else { this.container = $(e); this.list = this.container.find('ul,ol').eq(0) } if (skin != '' && this.container.parent()[0].className.indexOf('jcarousel-skin') == -1) this.container.wrap('<div class=" ' + skin + '"></div>'); this.clip = this.list.parent(); if (!this.clip.length || !this.clip.hasClass('jcarousel-clip')) this.clip = this.list.wrap('<div></div>').parent(); this.buttonNext = $('.jcarousel-next', this.container); if (this.buttonNext.size() == 0 && this.options.buttonNextHTML != null) this.buttonNext = this.clip.after(this.options.buttonNextHTML).next(); this.buttonNext.addClass(this.className('jcarousel-next')); this.buttonPrev = $('.jcarousel-prev', this.container); if (this.buttonPrev.size() == 0 && this.options.buttonPrevHTML != null) this.buttonPrev = this.clip.after(this.options.buttonPrevHTML).next(); this.buttonPrev.addClass(this.className('jcarousel-prev')); this.clip.addClass(this.className('jcarousel-clip')).css({ overflow: 'hidden', position: 'relative' }); this.list.addClass(this.className('jcarousel-list')).css({ overflow: 'hidden', position: 'relative', top: 0, left: 0, margin: 0, padding: 0 }); this.container.addClass(this.className('jcarousel-container')).css({ position: 'relative' }); var di = this.options.visible != null ? Math.ceil(this.clipping() / this.options.visible) : null; var li = this.list.children('li'); var self = this; if (li.size() > 0) { var wh = 0, i = this.options.offset; li.each(function() { self.format(this, i++, li.size()); wh += self.dimension(this, di) }); this.list.css(this.wh, wh + 'px'); if (!o || o.size === undefined) this.options.size = li.size() } this.container.css('display', 'block'); this.buttonNext.css('display', 'block'); this.buttonPrev.css('display', 'block'); this.funcNext = function() { self.next() }; this.funcPrev = function() { self.prev() }; this.funcResize = function() { self.reload() }; if (this.options.initCallback != null) this.options.initCallback(this, 'init'); if ($.browser.safari) { this.buttons(false, false); $(window).bind('load.jcarousel', function() { self.setup() }) } else this.setup() }; var $jc = $.jcarousel; $jc.fn = $jc.prototype = { jcarousel: '0.2.4' }; $jc.fn.extend = $jc.extend = $.extend; $jc.fn.extend({ setup: function() { this.first = null; this.last = null; this.prevFirst = null; this.prevLast = null; this.animating = false; this.timer = null; this.tail = null; this.inTail = false; if (this.locked) return; this.list.css(this.lt, this.pos(this.options.offset) + 'px'); var p = this.pos(this.options.start); this.prevFirst = this.prevLast = null; this.animate(p, false); $(window).unbind('resize.jcarousel', this.funcResize).bind('resize.jcarousel', this.funcResize) }, reset: function() { this.list.empty(); this.list.css(this.lt, '0px'); this.list.css(this.wh, '10px'); if (this.options.initCallback != null) this.options.initCallback(this, 'reset'); this.setup() }, reload: function() { if (this.tail != null && this.inTail) this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + this.tail); this.tail = null; this.inTail = false; if (this.options.reloadCallback != null) this.options.reloadCallback(this); if (this.options.visible != null) { var self = this; var di = Math.ceil(this.clipping() / this.options.visible), wh = 0, lt = 0; $('li', this.list).each(function(i) { wh += self.dimension(this, di); if (i + 1 < self.first) lt = wh }); this.list.css(this.wh, wh + 'px'); this.list.css(this.lt, -lt + 'px') } this.scroll(this.first, false) }, lock: function() { this.locked = true; this.buttons() }, unlock: function() { this.locked = false; this.buttons() }, size: function(s) { if (s != undefined) { this.options.size = s; if (!this.locked) this.buttons() } return this.options.size }, has: function(i, i2) { if (i2 == undefined || !i2) i2 = i; if (this.options.size !== null && i2 > this.options.size) i2 = this.options.size; for (var j = i; j <= i2; j++) { var e = this.get(j); if (!e.length || e.hasClass('jcarousel-item-placeholder')) return false } return true }, get: function(i) { return $('.jcarousel-item-' + i, this.list) }, add: function(i, s) { var e = this.get(i), old = 0, add = 0; if (e.length == 0) { var c, e = this.create(i), j = $jc.intval(i); while (c = this.get(--j)) { if (j <= 0 || c.length) { j <= 0 ? this.list.prepend(e) : c.after(e); break } } } else old = this.dimension(e); e.removeClass(this.className('jcarousel-item-placeholder')); typeof s == 'string' ? e.html(s) : e.empty().append(s); var di = this.options.visible != null ? Math.ceil(this.clipping() / this.options.visible) : null; var wh = this.dimension(e, di) - old; if (i > 0 && i < this.first) this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - wh + 'px'); this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) + wh + 'px'); return e }, remove: function(i) { var e = this.get(i); if (!e.length || (i >= this.first && i <= this.last)) return; var d = this.dimension(e); if (i < this.first) this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + d + 'px'); e.remove(); this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) - d + 'px') }, next: function() { this.stopAuto(); if (this.tail != null && !this.inTail) this.scrollTail(false); else this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'last') && this.options.size != null && this.last == this.options.size) ? 1 : this.first + this.options.scroll) }, prev: function() { this.stopAuto(); if (this.tail != null && this.inTail) this.scrollTail(true); else this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'first') && this.options.size != null && this.first == 1) ? this.options.size : this.first - this.options.scroll) }, scrollTail: function(b) { if (this.locked || this.animating || !this.tail) return; var pos = $jc.intval(this.list.css(this.lt)); !b ? pos -= this.tail : pos += this.tail; this.inTail = !b; this.prevFirst = this.first; this.prevLast = this.last; this.animate(pos) }, scroll: function(i, a) { if (this.locked || this.animating) return; this.animate(this.pos(i), a) }, pos: function(i) { var pos = $jc.intval(this.list.css(this.lt)); if (this.locked || this.animating) return pos; if (this.options.wrap != 'circular') i = i < 1 ? 1 : (this.options.size && i > this.options.size ? this.options.size : i); var back = this.first > i; var f = this.options.wrap != 'circular' && this.first <= 1 ? 1 : this.first; var c = back ? this.get(f) : this.get(this.last); var j = back ? f : f - 1; var e = null, l = 0, p = false, d = 0, g; while (back ? --j >= i : ++j < i) { e = this.get(j); p = !e.length; if (e.length == 0) { e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); c[back ? 'before' : 'after'](e); if (this.first != null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { g = this.get(this.index(j)); if (g.length) this.add(j, g.children().clone(true)) } } c = e; d = this.dimension(e); if (p) l += d; if (this.first != null && (this.options.wrap == 'circular' || (j >= 1 && (this.options.size == null || j <= this.options.size)))) pos = back ? pos + d : pos - d } var clipping = this.clipping(); var cache = []; var visible = 0, j = i, v = 0; var c = this.get(i - 1); while (++visible) { e = this.get(j); p = !e.length; if (e.length == 0) { e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); c.length == 0 ? this.list.prepend(e) : c[back ? 'before' : 'after'](e); if (this.first != null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { g = this.get(this.index(j)); if (g.length) this.add(j, g.find('>*').clone(true)) } } c = e; var d = this.dimension(e); if (d == 0) { alert('jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...'); return 0 } if (this.options.wrap != 'circular' && this.options.size !== null && j > this.options.size) cache.push(e); else if (p) l += d; v += d; if (v >= clipping) break; j++ } for (var x = 0; x < cache.length; x++) cache[x].remove(); if (l > 0) { this.list.css(this.wh, this.dimension(this.list) + l + 'px'); if (back) { pos -= l; this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - l + 'px') } } var last = i + visible - 1; if (this.options.wrap != 'circular' && this.options.size && last > this.options.size) last = this.options.size; if (j > last) { visible = 0, j = last, v = 0; while (++visible) { var e = this.get(j--); if (!e.length) break; v += this.dimension(e); if (v >= clipping) break } } var first = last - visible + 1; if (this.options.wrap != 'circular' && first < 1) first = 1; if (this.inTail && back) { pos += this.tail; this.inTail = false } this.tail = null; if (this.options.wrap != 'circular' && last == this.options.size && (last - visible + 1) >= 1) { var m = $jc.margin(this.get(last), !this.options.vertical ? 'marginRight' : 'marginBottom'); if ((v - m) > clipping) this.tail = v - clipping - m } while (i-- > first) pos += this.dimension(this.get(i)); this.prevFirst = this.first; this.prevLast = this.last; this.first = first; this.last = last; return pos }, animate: function(p, a) { if (this.locked || this.animating) return; this.animating = true; var self = this; var scrolled = function() { self.animating = false; if (p == 0) self.list.css(self.lt, 0); if (self.options.wrap == 'circular' || self.options.wrap == 'both' || self.options.wrap == 'last' || self.options.size == null || self.last < self.options.size) self.startAuto(); self.buttons(); self.notify('onAfterAnimation') }; this.notify('onBeforeAnimation'); if (!this.options.animation || a == false) { this.list.css(this.lt, p + 'px'); scrolled() } else { var o = !this.options.vertical ? { 'left': p} : { 'top': p }; this.list.animate(o, this.options.animation, this.options.easing, scrolled) } }, startAuto: function(s) { if (s != undefined) this.options.auto = s; if (this.options.auto == 0) return this.stopAuto(); if (this.timer != null) return; var self = this; this.timer = setTimeout(function() { self.next() }, this.options.auto * 1000) }, stopAuto: function() { if (this.timer == null) return; clearTimeout(this.timer); this.timer = null }, buttons: function(n, p) { if (n == undefined || n == null) { var n = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'first') || this.options.size == null || this.last < this.options.size); if (!this.locked && (!this.options.wrap || this.options.wrap == 'first') && this.options.size != null && this.last >= this.options.size) n = this.tail != null && !this.inTail } if (p == undefined || p == null) { var p = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'last') || this.first > 1); if (!this.locked && (!this.options.wrap || this.options.wrap == 'last') && this.options.size != null && this.first == 1) p = this.tail != null && this.inTail } var self = this; this.buttonNext[n ? 'bind' : 'unbind'](this.options.buttonNextEvent + '.jcarousel', this.funcNext)[n ? 'removeClass' : 'addClass'](this.className('jcarousel-next-disabled')).attr('disabled', n ? false : true); this.buttonPrev[p ? 'bind' : 'unbind'](this.options.buttonPrevEvent + '.jcarousel', this.funcPrev)[p ? 'removeClass' : 'addClass'](this.className('jcarousel-prev-disabled')).attr('disabled', p ? false : true); if (this.buttonNext.length > 0 && (this.buttonNext[0].jcarouselstate == undefined || this.buttonNext[0].jcarouselstate != n) && this.options.buttonNextCallback != null) { this.buttonNext.each(function() { self.options.buttonNextCallback(self, this, n) }); this.buttonNext[0].jcarouselstate = n } if (this.buttonPrev.length > 0 && (this.buttonPrev[0].jcarouselstate == undefined || this.buttonPrev[0].jcarouselstate != p) && this.options.buttonPrevCallback != null) { this.buttonPrev.each(function() { self.options.buttonPrevCallback(self, this, p) }); this.buttonPrev[0].jcarouselstate = p } }, notify: function(evt) { var state = this.prevFirst == null ? 'init' : (this.prevFirst < this.first ? 'next' : 'prev'); this.callback('itemLoadCallback', evt, state); if (this.prevFirst !== this.first) { this.callback('itemFirstInCallback', evt, state, this.first); this.callback('itemFirstOutCallback', evt, state, this.prevFirst) } if (this.prevLast !== this.last) { this.callback('itemLastInCallback', evt, state, this.last); this.callback('itemLastOutCallback', evt, state, this.prevLast) } this.callback('itemVisibleInCallback', evt, state, this.first, this.last, this.prevFirst, this.prevLast); this.callback('itemVisibleOutCallback', evt, state, this.prevFirst, this.prevLast, this.first, this.last) }, callback: function(cb, evt, state, i1, i2, i3, i4) { if (this.options[cb] == undefined || (typeof this.options[cb] != 'object' && evt != 'onAfterAnimation')) return; var callback = typeof this.options[cb] == 'object' ? this.options[cb][evt] : this.options[cb]; if (!$.isFunction(callback)) return; var self = this; if (i1 === undefined) callback(self, state, evt); else if (i2 === undefined) this.get(i1).each(function() { callback(self, this, i1, state, evt) }); else { for (var i = i1; i <= i2; i++) if (i !== null && !(i >= i3 && i <= i4)) this.get(i).each(function() { callback(self, this, i, state, evt) }) } }, create: function(i) { return this.format('<li></li>', i) }, format: function(e, i, t) { var $e = $(e).addClass(this.className('jcarousel-item')).addClass(this.className('jcarousel-item-' + i)).css({ 'float': 'left', 'list-style': 'none' }); if (i == t) $e.addClass('last'); $e.attr('jcarouselindex', i); return $e }, className: function(c) { return c + ' ' + c + (!this.options.vertical ? '-horizontal' : '-vertical') }, dimension: function(e, d) { var el = e.jquery != undefined ? e[0] : e; var old = !this.options.vertical ? el.offsetWidth + $jc.margin(el, 'marginLeft') + $jc.margin(el, 'marginRight') : el.offsetHeight + $jc.margin(el, 'marginTop') + $jc.margin(el, 'marginBottom'); if (d == undefined || old == d) return old; var w = !this.options.vertical ? d - $jc.margin(el, 'marginLeft') - $jc.margin(el, 'marginRight') : d - $jc.margin(el, 'marginTop') - $jc.margin(el, 'marginBottom'); $(el).css(this.wh, w + 'px'); return this.dimension(el) }, clipping: function() { return !this.options.vertical ? this.clip[0].offsetWidth - $jc.intval(this.clip.css('borderLeftWidth')) - $jc.intval(this.clip.css('borderRightWidth')) : this.clip[0].offsetHeight - $jc.intval(this.clip.css('borderTopWidth')) - $jc.intval(this.clip.css('borderBottomWidth')) }, index: function(i, s) { if (s == undefined) s = this.options.size; return Math.round((((i - 1) / s) - Math.floor((i - 1) / s)) * s) + 1 } }); $jc.extend({ defaults: function(d) { return $.extend(defaults, d || {}) }, margin: function(e, p) { if (!e) return 0; var el = e.jquery != undefined ? e[0] : e; if (p == 'marginRight' && $.browser.safari) { var old = { 'display': 'block', 'float': 'none', 'width': 'auto' }, oWidth, oWidth2; $.swap(el, old, function() { oWidth = el.offsetWidth }); old['marginRight'] = 0; $.swap(el, old, function() { oWidth2 = el.offsetWidth }); return oWidth2 - oWidth } return $jc.intval($.css(el, p)) }, intval: function(v) { v = parseInt(v); return isNaN(v) ? 0 : v } }) })(jQuery);
