 

/*!
 * jQuery JavaScript Library v1.4.2
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Sat Feb 13 22:33:48 2010 -0500
 */
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);

/*
 * Shadowbox.js, version 3.0.3
 * http://shadowbox-js.com/
 *
 * Copyright 2007-2010, Michael J. I. Jackson
 * Date: 2010-04-06 17:10:37 +0000
 */
(function(T,p){var g={version:"3.0.3"};var Y=navigator.userAgent.toLowerCase();if(Y.indexOf("windows")>-1||Y.indexOf("win32")>-1){g.isWindows=true}else{if(Y.indexOf("macintosh")>-1||Y.indexOf("mac os x")>-1){g.isMac=true}else{if(Y.indexOf("linux")>-1){g.isLinux=true}}}g.isIE=Y.indexOf("msie")>-1;g.isIE6=Y.indexOf("msie 6")>-1;g.isIE7=Y.indexOf("msie 7")>-1;g.isGecko=Y.indexOf("gecko")>-1&&Y.indexOf("safari")==-1;g.isWebKit=Y.indexOf("applewebkit/")>-1;var e=/#(.+)$/,M=/^(light|shadow)box\[(.*?)\]/i,o=/\s*([a-z_]*?)\s*=\s*(.+)\s*/,ar=/[0-9a-z]+$/i,ap=/(.+\/)shadowbox\.js/i;var w=false,m=false,V={},ai=0,O,aa;g.current=-1;g.dimensions=null;g.ease=function(K){return 1+Math.pow(K-1,3)};g.errorInfo={fla:{name:"Flash",url:"http://www.adobe.com/products/flashplayer/"},qt:{name:"QuickTime",url:"http://www.apple.com/quicktime/download/"},wmp:{name:"Windows Media Player",url:"http://www.microsoft.com/windows/windowsmedia/"},f4m:{name:"Flip4Mac",url:"http://www.flip4mac.com/wmv_download.htm"}};g.gallery=[];g.onReady=aj;g.path=null;g.player=null;g.playerId="sb-player";g.options={animate:true,animateFade:true,autoplayMovies:true,continuous:false,enableKeys:true,flashParams:{bgcolor:"#000000",allowfullscreen:true},flashVars:{},flashVersion:"9.0.115",handleOversize:"resize",handleUnsupported:"link",onChange:aj,onClose:aj,onFinish:aj,onOpen:aj,showMovieControls:true,skipSetup:false,slideshowDelay:0,viewportPadding:20};g.getCurrent=function(){return g.current>-1?g.gallery[g.current]:null};g.hasNext=function(){return g.gallery.length>1&&(g.current!=g.gallery.length-1||g.options.continuous)};g.isOpen=function(){return w};g.isPaused=function(){return aa=="pause"};g.applyOptions=function(K){V=ao({},g.options);ao(g.options,K)};g.revertOptions=function(){ao(g.options,V)};g.init=function(au,ax){if(m){return}m=true;if(g.skin.options){ao(g.options,g.skin.options)}if(au){ao(g.options,au)}if(!g.path){var aw,S=document.getElementsByTagName("script");for(var av=0,K=S.length;av<K;++av){aw=ap.exec(S[av].src);if(aw){g.path=aw[1];break}}}if(ax){g.onReady=ax}aq()};g.open=function(S){if(w){return}var K=g.makeGallery(S);g.gallery=K[0];g.current=K[1];S=g.getCurrent();if(S==null){return}g.applyOptions(S.options||{});f();if(g.gallery.length){S=g.getCurrent();if(g.options.onOpen(S)===false){return}w=true;g.skin.onOpen(S,U)}};g.close=function(){if(!w){return}w=false;if(g.player){g.player.remove();g.player=null}if(typeof aa=="number"){clearTimeout(aa);aa=null}ai=0;af(false);g.options.onClose(g.getCurrent());g.skin.onClose();g.revertOptions()};g.play=function(){if(!g.hasNext()){return}if(!ai){ai=g.options.slideshowDelay*1000}if(ai){O=X();aa=setTimeout(function(){ai=O=0;g.next()},ai);if(g.skin.onPlay){g.skin.onPlay()}}};g.pause=function(){if(typeof aa!="number"){return}ai=Math.max(0,ai-(X()-O));if(ai){clearTimeout(aa);aa="pause";if(g.skin.onPause){g.skin.onPause()}}};g.change=function(K){if(!(K in g.gallery)){if(g.options.continuous){K=(K<0?g.gallery.length+K:0);if(!(K in g.gallery)){return}}else{return}}g.current=K;if(typeof aa=="number"){clearTimeout(aa);aa=null;ai=O=0}g.options.onChange(g.getCurrent());U(true)};g.next=function(){g.change(g.current+1)};g.previous=function(){g.change(g.current-1)};g.setDimensions=function(aG,ax,aE,aF,aw,K,aC,az){var aB=aG,av=ax;var aA=2*aC+aw;if(aG+aA>aE){aG=aE-aA}var au=2*aC+K;if(ax+au>aF){ax=aF-au}var S=(aB-aG)/aB,aD=(av-ax)/av,ay=(S>0||aD>0);if(az&&ay){if(S>aD){ax=Math.round((av/aB)*aG)}else{if(aD>S){aG=Math.round((aB/av)*ax)}}}g.dimensions={height:aG+aw,width:ax+K,innerHeight:aG,innerWidth:ax,top:Math.floor((aE-(aG+aA))/2+aC),left:Math.floor((aF-(ax+au))/2+aC),oversized:ay};return g.dimensions};g.makeGallery=function(aw){var K=[],av=-1;if(typeof aw=="string"){aw=[aw]}if(typeof aw.length=="number"){ac(aw,function(ay,az){if(az.content){K[ay]=az}else{K[ay]={content:az}}});av=0}else{if(aw.tagName){var S=g.getCache(aw);aw=S?S:g.makeObject(aw)}if(aw.gallery){K=[];var ax;for(var au in g.cache){ax=g.cache[au];if(ax.gallery&&ax.gallery==aw.gallery){if(av==-1&&ax.content==aw.content){av=K.length}K.push(ax)}}if(av==-1){K.unshift(aw);av=0}}else{K=[aw];av=0}}ac(K,function(ay,az){K[ay]=ao({},az)});return[K,av]};g.makeObject=function(av,au){var aw={content:av.href,title:av.getAttribute("title")||"",link:av};if(au){au=ao({},au);ac(["player","title","height","width","gallery"],function(ax,ay){if(typeof au[ay]!="undefined"){aw[ay]=au[ay];delete au[ay]}});aw.options=au}else{aw.options={}}if(!aw.player){aw.player=g.getPlayer(aw.content)}var K=av.getAttribute("rel");if(K){var S=K.match(M);if(S){aw.gallery=escape(S[2])}ac(K.split(";"),function(ax,ay){S=ay.match(o);if(S){aw[S[1]]=S[2]}})}return aw};g.getPlayer=function(au){if(au.indexOf("#")>-1&&au.indexOf(document.location.href)==0){return"inline"}var av=au.indexOf("?");if(av>-1){au=au.substring(0,av)}var S,K=au.match(ar);if(K){S=K[0].toLowerCase()}if(S){if(g.img&&g.img.ext.indexOf(S)>-1){return"img"}if(g.swf&&g.swf.ext.indexOf(S)>-1){return"swf"}if(g.flv&&g.flv.ext.indexOf(S)>-1){return"flv"}if(g.qt&&g.qt.ext.indexOf(S)>-1){if(g.wmp&&g.wmp.ext.indexOf(S)>-1){return"qtwmp"}else{return"qt"}}if(g.wmp&&g.wmp.ext.indexOf(S)>-1){return"wmp"}}return"iframe"};function f(){var av=g.errorInfo,aw=g.plugins,ay,az,aC,au,aB,S,aA,K;for(var ax=0;ax<g.gallery.length;++ax){ay=g.gallery[ax];az=false;aC=null;switch(ay.player){case"flv":case"swf":if(!aw.fla){aC="fla"}break;case"qt":if(!aw.qt){aC="qt"}break;case"wmp":if(g.isMac){if(aw.qt&&aw.f4m){ay.player="qt"}else{aC="qtf4m"}}else{if(!aw.wmp){aC="wmp"}}break;case"qtwmp":if(aw.qt){ay.player="qt"}else{if(aw.wmp){ay.player="wmp"}else{aC="qtwmp"}}break}if(aC){if(g.options.handleUnsupported=="link"){switch(aC){case"qtf4m":aB="shared";S=[av.qt.url,av.qt.name,av.f4m.url,av.f4m.name];break;case"qtwmp":aB="either";S=[av.qt.url,av.qt.name,av.wmp.url,av.wmp.name];break;default:aB="single";S=[av[aC].url,av[aC].name]}ay.player="html";ay.content='<div class="sb-message">'+s(g.lang.errors[aB],S)+"</div>"}else{az=true}}else{if(ay.player=="inline"){au=e.exec(ay.content);if(au){aA=ag(au[1]);if(aA){ay.content=aA.innerHTML}else{az=true}}else{az=true}}else{if(ay.player=="swf"||ay.player=="flv"){K=(ay.options&&ay.options.flashVersion)||g.options.flashVersion;if(g.flash&&!g.flash.hasFlashPlayerVersion(K)){ay.width=310;ay.height=177}}}}if(az){g.gallery.splice(ax,1);if(ax<g.current){--g.current}else{if(ax==g.current){g.current=ax>0?ax-1:ax}}--ax}}}function af(K){if(!g.options.enableKeys){return}(K?j:a)(document,"keydown",W)}function W(au){if(au.metaKey||au.shiftKey||au.altKey||au.ctrlKey){return}var S=l(au),K;switch(S){case 81:case 88:case 27:K=g.close;break;case 37:K=g.previous;break;case 39:K=g.next;break;case 32:K=typeof aa=="number"?g.pause:g.play;break}if(K){G(au);K()}}function U(ay){af(false);var ax=g.getCurrent();var au=(ax.player=="inline"?"html":ax.player);if(typeof g[au]!="function"){throw"unknown player "+au}if(ay){g.player.remove();g.revertOptions();g.applyOptions(ax.options||{})}g.player=new g[au](ax,g.playerId);if(g.gallery.length>1){var av=g.gallery[g.current+1]||g.gallery[0];if(av.player=="img"){var S=new Image();S.src=av.content}var aw=g.gallery[g.current-1]||g.gallery[g.gallery.length-1];if(aw.player=="img"){var K=new Image();K.src=aw.content}}g.skin.onLoad(ay,r)}function r(){if(!w){return}if(typeof g.player.ready!="undefined"){var K=setInterval(function(){if(w){if(g.player.ready){clearInterval(K);K=null;g.skin.onReady(J)}}else{clearInterval(K);K=null}},10)}else{g.skin.onReady(J)}}function J(){if(!w){return}g.player.append(g.skin.body,g.dimensions);g.skin.onShow(q)}function q(){if(!w){return}if(g.player.onLoad){g.player.onLoad()}g.options.onFinish(g.getCurrent());if(!g.isPaused()){g.play()}af(true)}if(!Array.prototype.indexOf){Array.prototype.indexOf=function(S,au){var K=this.length>>>0;au=au||0;if(au<0){au+=K}for(;au<K;++au){if(au in this&&this[au]===S){return au}}return -1}}function X(){return(new Date).getTime()}function ao(K,au){for(var S in au){K[S]=au[S]}return K}function ac(av,aw){var S=0,K=av.length;for(var au=av[0];S<K&&aw.call(au,S,au)!==false;au=av[++S]){}}function s(S,K){return S.replace(/\{(\w+?)\}/g,function(au,av){return K[av]})}function aj(){}function ag(K){return document.getElementById(K)}function z(K){K.parentNode.removeChild(K)}var ak=true,L=true;function an(){var K=document.body,S=document.createElement("div");ak=typeof S.style.opacity==="string";S.style.position="fixed";S.style.margin=0;S.style.top="20px";K.appendChild(S,K.firstChild);L=S.offsetTop==20;K.removeChild(S)}g.getStyle=(function(){var K=/opacity=([^)]*)/,S=document.defaultView&&document.defaultView.getComputedStyle;return function(ax,aw){var av;if(!ak&&aw=="opacity"&&ax.currentStyle){av=K.test(ax.currentStyle.filter||"")?(parseFloat(RegExp.$1)/100)+"":"";return av===""?"1":av}if(S){var au=S(ax,null);if(au){av=au[aw]}if(aw=="opacity"&&av==""){av="1"}}else{av=ax.currentStyle[aw]}return av}})();g.appendHTML=function(au,S){if(au.insertAdjacentHTML){au.insertAdjacentHTML("BeforeEnd",S)}else{if(au.lastChild){var K=au.ownerDocument.createRange();K.setStartAfter(au.lastChild);var av=K.createContextualFragment(S);au.appendChild(av)}else{au.innerHTML=S}}};g.getWindowSize=function(K){if(document.compatMode==="CSS1Compat"){return document.documentElement["client"+K]}return document.body["client"+K]};g.setOpacity=function(au,K){var S=au.style;if(ak){S.opacity=(K==1?"":K)}else{S.zoom=1;if(K==1){if(typeof S.filter=="string"&&(/alpha/i).test(S.filter)){S.filter=S.filter.replace(/\s*[\w\.]*alpha\([^\)]*\);?/gi,"")}}else{S.filter=(S.filter||"").replace(/\s*[\w\.]*alpha\([^\)]*\)/gi,"")+" alpha(opacity="+(K*100)+")"}}};g.clearOpacity=function(K){g.setOpacity(K,1)};function C(S){var K=S.target?S.target:S.srcElement;return K.nodeType==3?K.parentNode:K}function Q(S){var K=S.pageX||(S.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft)),au=S.pageY||(S.clientY+(document.documentElement.scrollTop||document.body.scrollTop));return[K,au]}function G(K){K.preventDefault()}function l(K){return K.which?K.which:K.keyCode}function j(av,au,S){if(av.addEventListener){av.addEventListener(au,S,false)}else{if(av.nodeType===3||av.nodeType===8){return}if(av.setInterval&&(av!==T&&!av.frameElement)){av=T}if(!S.__guid){S.__guid=j.guid++}if(!av.events){av.events={}}var K=av.events[au];if(!K){K=av.events[au]={};if(av["on"+au]){K[0]=av["on"+au]}}K[S.__guid]=S;av["on"+au]=j.handleEvent}}j.guid=1;j.handleEvent=function(av){var K=true;av=av||j.fixEvent(((this.ownerDocument||this.document||this).parentWindow||T).event);var S=this.events[av.type];for(var au in S){this.__handleEvent=S[au];if(this.__handleEvent(av)===false){K=false}}return K};j.preventDefault=function(){this.returnValue=false};j.stopPropagation=function(){this.cancelBubble=true};j.fixEvent=function(K){K.preventDefault=j.preventDefault;K.stopPropagation=j.stopPropagation;return K};function a(au,S,K){if(au.removeEventListener){au.removeEventListener(S,K,false)}else{if(au.events&&au.events[S]){delete au.events[S][K.__guid]}}}var D=false,N;if(document.addEventListener){N=function(){document.removeEventListener("DOMContentLoaded",N,false);g.load()}}else{if(document.attachEvent){N=function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",N);g.load()}}}}function i(){if(D){return}try{document.documentElement.doScroll("left")}catch(K){setTimeout(i,1);return}g.load()}function aq(){if(document.readyState==="complete"){return g.load()}if(document.addEventListener){document.addEventListener("DOMContentLoaded",N,false);T.addEventListener("load",g.load,false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",N);T.attachEvent("onload",g.load);var K=false;try{K=T.frameElement===null}catch(S){}if(document.documentElement.doScroll&&K){i()}}}}g.load=function(){if(D){return}if(!document.body){return setTimeout(g.load,13)}D=true;an();g.onReady();if(!g.options.skipSetup){g.setup()}g.skin.init()};g.plugins={};if(navigator.plugins&&navigator.plugins.length){var am=[];ac(navigator.plugins,function(K,S){am.push(S.name)});am=am.join(",");var d=am.indexOf("Flip4Mac")>-1;g.plugins={fla:am.indexOf("Shockwave Flash")>-1,qt:am.indexOf("QuickTime")>-1,wmp:!d&&am.indexOf("Windows Media")>-1,f4m:d}}else{var B=function(K){var S;try{S=new ActiveXObject(K)}catch(au){}return !!S};g.plugins={fla:B("ShockwaveFlash.ShockwaveFlash"),qt:B("QuickTime.QuickTime"),wmp:B("wmplayer.ocx"),f4m:false}}var c=/^(light|shadow)box/i,Z="shadowboxCacheKey",h=1;g.cache={};g.select=function(S){var au=[];if(!S){var K;ac(document.getElementsByTagName("a"),function(ax,ay){K=ay.getAttribute("rel");if(K&&c.test(K)){au.push(ay)}})}else{var aw=S.length;if(aw){if(typeof S=="string"){if(g.find){au=g.find(S)}}else{if(aw==2&&typeof S[0]=="string"&&S[1].nodeType){if(g.find){au=g.find(S[0],S[1])}}else{for(var av=0;av<aw;++av){au[av]=S[av]}}}}else{au.push(S)}}return au};g.setup=function(K,S){ac(g.select(K),function(au,av){g.addCache(av,S)})};g.teardown=function(K){ac(g.select(K),function(S,au){g.removeCache(au)})};g.addCache=function(au,K){var S=au[Z];if(S==p){S=h++;au[Z]=S;j(au,"click",b)}g.cache[S]=g.makeObject(au,K)};g.removeCache=function(K){a(K,"click",b);delete g.cache[K[Z]];K[Z]=null};g.getCache=function(S){var K=S[Z];return(K in g.cache&&g.cache[K])};g.clearCache=function(){for(var K in g.cache){g.removeCache(g.cache[K].link)}g.cache={}};function b(K){g.open(this);if(g.gallery.length){G(K)}}
/*
 * Sizzle CSS Selector Engine - v1.0
 *  Copyright 2009, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 *
 * Modified for inclusion in Shadowbox.js
 */
g.find=(function(){var aD=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,aE=0,aG=Object.prototype.toString,ay=false,ax=true;[0,0].sort(function(){ax=false;return 0});var au=function(aP,aK,aS,aT){aS=aS||[];var aV=aK=aK||document;if(aK.nodeType!==1&&aK.nodeType!==9){return[]}if(!aP||typeof aP!=="string"){return aS}var aQ=[],aM,aX,a0,aL,aO=true,aN=av(aK),aU=aP;while((aD.exec(""),aM=aD.exec(aU))!==null){aU=aM[3];aQ.push(aM[1]);if(aM[2]){aL=aM[3];break}}if(aQ.length>1&&az.exec(aP)){if(aQ.length===2&&aA.relative[aQ[0]]){aX=aH(aQ[0]+aQ[1],aK)}else{aX=aA.relative[aQ[0]]?[aK]:au(aQ.shift(),aK);while(aQ.length){aP=aQ.shift();if(aA.relative[aP]){aP+=aQ.shift()}aX=aH(aP,aX)}}}else{if(!aT&&aQ.length>1&&aK.nodeType===9&&!aN&&aA.match.ID.test(aQ[0])&&!aA.match.ID.test(aQ[aQ.length-1])){var aW=au.find(aQ.shift(),aK,aN);aK=aW.expr?au.filter(aW.expr,aW.set)[0]:aW.set[0]}if(aK){var aW=aT?{expr:aQ.pop(),set:aC(aT)}:au.find(aQ.pop(),aQ.length===1&&(aQ[0]==="~"||aQ[0]==="+")&&aK.parentNode?aK.parentNode:aK,aN);aX=aW.expr?au.filter(aW.expr,aW.set):aW.set;if(aQ.length>0){a0=aC(aX)}else{aO=false}while(aQ.length){var aZ=aQ.pop(),aY=aZ;if(!aA.relative[aZ]){aZ=""}else{aY=aQ.pop()}if(aY==null){aY=aK}aA.relative[aZ](a0,aY,aN)}}else{a0=aQ=[]}}if(!a0){a0=aX}if(!a0){throw"Syntax error, unrecognized expression: "+(aZ||aP)}if(aG.call(a0)==="[object Array]"){if(!aO){aS.push.apply(aS,a0)}else{if(aK&&aK.nodeType===1){for(var aR=0;a0[aR]!=null;aR++){if(a0[aR]&&(a0[aR]===true||a0[aR].nodeType===1&&aB(aK,a0[aR]))){aS.push(aX[aR])}}}else{for(var aR=0;a0[aR]!=null;aR++){if(a0[aR]&&a0[aR].nodeType===1){aS.push(aX[aR])}}}}}else{aC(a0,aS)}if(aL){au(aL,aV,aS,aT);au.uniqueSort(aS)}return aS};au.uniqueSort=function(aL){if(aF){ay=ax;aL.sort(aF);if(ay){for(var aK=1;aK<aL.length;aK++){if(aL[aK]===aL[aK-1]){aL.splice(aK--,1)}}}}return aL};au.matches=function(aK,aL){return au(aK,null,null,aL)};au.find=function(aR,aK,aS){var aQ,aO;if(!aR){return[]}for(var aN=0,aM=aA.order.length;aN<aM;aN++){var aP=aA.order[aN],aO;if((aO=aA.leftMatch[aP].exec(aR))){var aL=aO[1];aO.splice(1,1);if(aL.substr(aL.length-1)!=="\\"){aO[1]=(aO[1]||"").replace(/\\/g,"");aQ=aA.find[aP](aO,aK,aS);if(aQ!=null){aR=aR.replace(aA.match[aP],"");break}}}}if(!aQ){aQ=aK.getElementsByTagName("*")}return{set:aQ,expr:aR}};au.filter=function(aU,aT,aX,aN){var aM=aU,aZ=[],aR=aT,aP,aK,aQ=aT&&aT[0]&&av(aT[0]);while(aU&&aT.length){for(var aS in aA.filter){if((aP=aA.match[aS].exec(aU))!=null){var aL=aA.filter[aS],aY,aW;aK=false;if(aR===aZ){aZ=[]}if(aA.preFilter[aS]){aP=aA.preFilter[aS](aP,aR,aX,aZ,aN,aQ);if(!aP){aK=aY=true}else{if(aP===true){continue}}}if(aP){for(var aO=0;(aW=aR[aO])!=null;aO++){if(aW){aY=aL(aW,aP,aO,aR);var aV=aN^!!aY;if(aX&&aY!=null){if(aV){aK=true}else{aR[aO]=false}}else{if(aV){aZ.push(aW);aK=true}}}}}if(aY!==p){if(!aX){aR=aZ}aU=aU.replace(aA.match[aS],"");if(!aK){return[]}break}}}if(aU===aM){if(aK==null){throw"Syntax error, unrecognized expression: "+aU}else{break}}aM=aU}return aR};var aA=au.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(aK){return aK.getAttribute("href")}},relative:{"+":function(aQ,aL){var aN=typeof aL==="string",aP=aN&&!/\W/.test(aL),aR=aN&&!aP;if(aP){aL=aL.toLowerCase()}for(var aM=0,aK=aQ.length,aO;aM<aK;aM++){if((aO=aQ[aM])){while((aO=aO.previousSibling)&&aO.nodeType!==1){}aQ[aM]=aR||aO&&aO.nodeName.toLowerCase()===aL?aO||false:aO===aL}}if(aR){au.filter(aL,aQ,true)}},">":function(aQ,aL){var aO=typeof aL==="string";if(aO&&!/\W/.test(aL)){aL=aL.toLowerCase();for(var aM=0,aK=aQ.length;aM<aK;aM++){var aP=aQ[aM];if(aP){var aN=aP.parentNode;aQ[aM]=aN.nodeName.toLowerCase()===aL?aN:false}}}else{for(var aM=0,aK=aQ.length;aM<aK;aM++){var aP=aQ[aM];if(aP){aQ[aM]=aO?aP.parentNode:aP.parentNode===aL}}if(aO){au.filter(aL,aQ,true)}}},"":function(aN,aL,aP){var aM=aE++,aK=aI;if(typeof aL==="string"&&!/\W/.test(aL)){var aO=aL=aL.toLowerCase();aK=K}aK("parentNode",aL,aM,aN,aO,aP)},"~":function(aN,aL,aP){var aM=aE++,aK=aI;if(typeof aL==="string"&&!/\W/.test(aL)){var aO=aL=aL.toLowerCase();aK=K}aK("previousSibling",aL,aM,aN,aO,aP)}},find:{ID:function(aL,aM,aN){if(typeof aM.getElementById!=="undefined"&&!aN){var aK=aM.getElementById(aL[1]);return aK?[aK]:[]}},NAME:function(aM,aP){if(typeof aP.getElementsByName!=="undefined"){var aL=[],aO=aP.getElementsByName(aM[1]);for(var aN=0,aK=aO.length;aN<aK;aN++){if(aO[aN].getAttribute("name")===aM[1]){aL.push(aO[aN])}}return aL.length===0?null:aL}},TAG:function(aK,aL){return aL.getElementsByTagName(aK[1])}},preFilter:{CLASS:function(aN,aL,aM,aK,aQ,aR){aN=" "+aN[1].replace(/\\/g,"")+" ";if(aR){return aN}for(var aO=0,aP;(aP=aL[aO])!=null;aO++){if(aP){if(aQ^(aP.className&&(" "+aP.className+" ").replace(/[\t\n]/g," ").indexOf(aN)>=0)){if(!aM){aK.push(aP)}}else{if(aM){aL[aO]=false}}}}return false},ID:function(aK){return aK[1].replace(/\\/g,"")},TAG:function(aL,aK){return aL[1].toLowerCase()},CHILD:function(aK){if(aK[1]==="nth"){var aL=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(aK[2]==="even"&&"2n"||aK[2]==="odd"&&"2n+1"||!/\D/.test(aK[2])&&"0n+"+aK[2]||aK[2]);aK[2]=(aL[1]+(aL[2]||1))-0;aK[3]=aL[3]-0}aK[0]=aE++;return aK},ATTR:function(aO,aL,aM,aK,aP,aQ){var aN=aO[1].replace(/\\/g,"");if(!aQ&&aA.attrMap[aN]){aO[1]=aA.attrMap[aN]}if(aO[2]==="~="){aO[4]=" "+aO[4]+" "}return aO},PSEUDO:function(aO,aL,aM,aK,aP){if(aO[1]==="not"){if((aD.exec(aO[3])||"").length>1||/^\w/.test(aO[3])){aO[3]=au(aO[3],null,null,aL)}else{var aN=au.filter(aO[3],aL,aM,true^aP);if(!aM){aK.push.apply(aK,aN)}return false}}else{if(aA.match.POS.test(aO[0])||aA.match.CHILD.test(aO[0])){return true}}return aO},POS:function(aK){aK.unshift(true);return aK}},filters:{enabled:function(aK){return aK.disabled===false&&aK.type!=="hidden"},disabled:function(aK){return aK.disabled===true},checked:function(aK){return aK.checked===true},selected:function(aK){aK.parentNode.selectedIndex;return aK.selected===true},parent:function(aK){return !!aK.firstChild},empty:function(aK){return !aK.firstChild},has:function(aM,aL,aK){return !!au(aK[3],aM).length},header:function(aK){return/h\d/i.test(aK.nodeName)},text:function(aK){return"text"===aK.type},radio:function(aK){return"radio"===aK.type},checkbox:function(aK){return"checkbox"===aK.type},file:function(aK){return"file"===aK.type},password:function(aK){return"password"===aK.type},submit:function(aK){return"submit"===aK.type},image:function(aK){return"image"===aK.type},reset:function(aK){return"reset"===aK.type},button:function(aK){return"button"===aK.type||aK.nodeName.toLowerCase()==="button"},input:function(aK){return/input|select|textarea|button/i.test(aK.nodeName)}},setFilters:{first:function(aL,aK){return aK===0},last:function(aM,aL,aK,aN){return aL===aN.length-1},even:function(aL,aK){return aK%2===0},odd:function(aL,aK){return aK%2===1},lt:function(aM,aL,aK){return aL<aK[3]-0},gt:function(aM,aL,aK){return aL>aK[3]-0},nth:function(aM,aL,aK){return aK[3]-0===aL},eq:function(aM,aL,aK){return aK[3]-0===aL}},filter:{PSEUDO:function(aQ,aM,aN,aR){var aL=aM[1],aO=aA.filters[aL];if(aO){return aO(aQ,aN,aM,aR)}else{if(aL==="contains"){return(aQ.textContent||aQ.innerText||S([aQ])||"").indexOf(aM[3])>=0}else{if(aL==="not"){var aP=aM[3];for(var aN=0,aK=aP.length;aN<aK;aN++){if(aP[aN]===aQ){return false}}return true}else{throw"Syntax error, unrecognized expression: "+aL}}}},CHILD:function(aK,aN){var aQ=aN[1],aL=aK;switch(aQ){case"only":case"first":while((aL=aL.previousSibling)){if(aL.nodeType===1){return false}}if(aQ==="first"){return true}aL=aK;case"last":while((aL=aL.nextSibling)){if(aL.nodeType===1){return false}}return true;case"nth":var aM=aN[2],aT=aN[3];if(aM===1&&aT===0){return true}var aP=aN[0],aS=aK.parentNode;if(aS&&(aS.sizcache!==aP||!aK.nodeIndex)){var aO=0;for(aL=aS.firstChild;aL;aL=aL.nextSibling){if(aL.nodeType===1){aL.nodeIndex=++aO}}aS.sizcache=aP}var aR=aK.nodeIndex-aT;if(aM===0){return aR===0}else{return(aR%aM===0&&aR/aM>=0)}}},ID:function(aL,aK){return aL.nodeType===1&&aL.getAttribute("id")===aK},TAG:function(aL,aK){return(aK==="*"&&aL.nodeType===1)||aL.nodeName.toLowerCase()===aK},CLASS:function(aL,aK){return(" "+(aL.className||aL.getAttribute("class"))+" ").indexOf(aK)>-1},ATTR:function(aP,aN){var aM=aN[1],aK=aA.attrHandle[aM]?aA.attrHandle[aM](aP):aP[aM]!=null?aP[aM]:aP.getAttribute(aM),aQ=aK+"",aO=aN[2],aL=aN[4];return aK==null?aO==="!=":aO==="="?aQ===aL:aO==="*="?aQ.indexOf(aL)>=0:aO==="~="?(" "+aQ+" ").indexOf(aL)>=0:!aL?aQ&&aK!==false:aO==="!="?aQ!==aL:aO==="^="?aQ.indexOf(aL)===0:aO==="$="?aQ.substr(aQ.length-aL.length)===aL:aO==="|="?aQ===aL||aQ.substr(0,aL.length+1)===aL+"-":false},POS:function(aO,aL,aM,aP){var aK=aL[2],aN=aA.setFilters[aK];if(aN){return aN(aO,aM,aL,aP)}}}};var az=aA.match.POS;for(var aw in aA.match){aA.match[aw]=new RegExp(aA.match[aw].source+/(?![^\[]*\])(?![^\(]*\))/.source);aA.leftMatch[aw]=new RegExp(/(^(?:.|\r|\n)*?)/.source+aA.match[aw].source)}var aC=function(aL,aK){aL=Array.prototype.slice.call(aL,0);if(aK){aK.push.apply(aK,aL);return aK}return aL};try{Array.prototype.slice.call(document.documentElement.childNodes,0)}catch(aJ){aC=function(aO,aN){var aL=aN||[];if(aG.call(aO)==="[object Array]"){Array.prototype.push.apply(aL,aO)}else{if(typeof aO.length==="number"){for(var aM=0,aK=aO.length;aM<aK;aM++){aL.push(aO[aM])}}else{for(var aM=0;aO[aM];aM++){aL.push(aO[aM])}}}return aL}}var aF;if(document.documentElement.compareDocumentPosition){aF=function(aL,aK){if(!aL.compareDocumentPosition||!aK.compareDocumentPosition){if(aL==aK){ay=true}return aL.compareDocumentPosition?-1:1}var aM=aL.compareDocumentPosition(aK)&4?-1:aL===aK?0:1;if(aM===0){ay=true}return aM}}else{if("sourceIndex" in document.documentElement){aF=function(aL,aK){if(!aL.sourceIndex||!aK.sourceIndex){if(aL==aK){ay=true}return aL.sourceIndex?-1:1}var aM=aL.sourceIndex-aK.sourceIndex;if(aM===0){ay=true}return aM}}else{if(document.createRange){aF=function(aN,aL){if(!aN.ownerDocument||!aL.ownerDocument){if(aN==aL){ay=true}return aN.ownerDocument?-1:1}var aM=aN.ownerDocument.createRange(),aK=aL.ownerDocument.createRange();aM.setStart(aN,0);aM.setEnd(aN,0);aK.setStart(aL,0);aK.setEnd(aL,0);var aO=aM.compareBoundaryPoints(Range.START_TO_END,aK);if(aO===0){ay=true}return aO}}}}function S(aK){var aL="",aN;for(var aM=0;aK[aM];aM++){aN=aK[aM];if(aN.nodeType===3||aN.nodeType===4){aL+=aN.nodeValue}else{if(aN.nodeType!==8){aL+=S(aN.childNodes)}}}return aL}(function(){var aL=document.createElement("div"),aM="script"+(new Date).getTime();aL.innerHTML="<a name='"+aM+"'/>";var aK=document.documentElement;aK.insertBefore(aL,aK.firstChild);if(document.getElementById(aM)){aA.find.ID=function(aO,aP,aQ){if(typeof aP.getElementById!=="undefined"&&!aQ){var aN=aP.getElementById(aO[1]);return aN?aN.id===aO[1]||typeof aN.getAttributeNode!=="undefined"&&aN.getAttributeNode("id").nodeValue===aO[1]?[aN]:p:[]}};aA.filter.ID=function(aP,aN){var aO=typeof aP.getAttributeNode!=="undefined"&&aP.getAttributeNode("id");return aP.nodeType===1&&aO&&aO.nodeValue===aN}}aK.removeChild(aL);aK=aL=null})();(function(){var aK=document.createElement("div");aK.appendChild(document.createComment(""));if(aK.getElementsByTagName("*").length>0){aA.find.TAG=function(aL,aP){var aO=aP.getElementsByTagName(aL[1]);if(aL[1]==="*"){var aN=[];for(var aM=0;aO[aM];aM++){if(aO[aM].nodeType===1){aN.push(aO[aM])}}aO=aN}return aO}}aK.innerHTML="<a href='#'></a>";if(aK.firstChild&&typeof aK.firstChild.getAttribute!=="undefined"&&aK.firstChild.getAttribute("href")!=="#"){aA.attrHandle.href=function(aL){return aL.getAttribute("href",2)}}aK=null})();if(document.querySelectorAll){(function(){var aK=au,aM=document.createElement("div");aM.innerHTML="<p class='TEST'></p>";if(aM.querySelectorAll&&aM.querySelectorAll(".TEST").length===0){return}au=function(aQ,aP,aN,aO){aP=aP||document;if(!aO&&aP.nodeType===9&&!av(aP)){try{return aC(aP.querySelectorAll(aQ),aN)}catch(aR){}}return aK(aQ,aP,aN,aO)};for(var aL in aK){au[aL]=aK[aL]}aM=null})()}(function(){var aK=document.createElement("div");aK.innerHTML="<div class='test e'></div><div class='test'></div>";if(!aK.getElementsByClassName||aK.getElementsByClassName("e").length===0){return}aK.lastChild.className="e";if(aK.getElementsByClassName("e").length===1){return}aA.order.splice(1,0,"CLASS");aA.find.CLASS=function(aL,aM,aN){if(typeof aM.getElementsByClassName!=="undefined"&&!aN){return aM.getElementsByClassName(aL[1])}};aK=null})();function K(aL,aQ,aP,aT,aR,aS){for(var aN=0,aM=aT.length;aN<aM;aN++){var aK=aT[aN];if(aK){aK=aK[aL];var aO=false;while(aK){if(aK.sizcache===aP){aO=aT[aK.sizset];break}if(aK.nodeType===1&&!aS){aK.sizcache=aP;aK.sizset=aN}if(aK.nodeName.toLowerCase()===aQ){aO=aK;break}aK=aK[aL]}aT[aN]=aO}}}function aI(aL,aQ,aP,aT,aR,aS){for(var aN=0,aM=aT.length;aN<aM;aN++){var aK=aT[aN];if(aK){aK=aK[aL];var aO=false;while(aK){if(aK.sizcache===aP){aO=aT[aK.sizset];break}if(aK.nodeType===1){if(!aS){aK.sizcache=aP;aK.sizset=aN}if(typeof aQ!=="string"){if(aK===aQ){aO=true;break}}else{if(au.filter(aQ,[aK]).length>0){aO=aK;break}}}aK=aK[aL]}aT[aN]=aO}}}var aB=document.compareDocumentPosition?function(aL,aK){return aL.compareDocumentPosition(aK)&16}:function(aL,aK){return aL!==aK&&(aL.contains?aL.contains(aK):true)};var av=function(aK){var aL=(aK?aK.ownerDocument||aK:0).documentElement;return aL?aL.nodeName!=="HTML":false};var aH=function(aK,aR){var aN=[],aO="",aP,aM=aR.nodeType?[aR]:aR;while((aP=aA.match.PSEUDO.exec(aK))){aO+=aP[0];aK=aK.replace(aA.match.PSEUDO,"")}aK=aA.relative[aK]?aK+"*":aK;for(var aQ=0,aL=aM.length;aQ<aL;aQ++){au(aK,aM[aQ],aN)}return au.filter(aO,aN)};return au})();g.lang={code:"en",of:"of",loading:"loading",cancel:"Cancel",next:"Next",previous:"Previous",play:"Play",pause:"Pause",close:"Close",errors:{single:'You must install the <a href="{0}">{1}</a> browser plugin to view this content.',shared:'You must install both the <a href="{0}">{1}</a> and <a href="{2}">{3}</a> browser plugins to view this content.',either:'You must install either the <a href="{0}">{1}</a> or the <a href="{2}">{3}</a> browser plugin to view this content.'}};g.iframe=function(S,au){this.obj=S;this.id=au;var K=ag("sb-overlay");this.height=S.height?parseInt(S.height,10):K.offsetHeight;this.width=S.width?parseInt(S.width,10):K.offsetWidth};g.iframe.prototype={append:function(K,au){var S='<iframe id="'+this.id+'" name="'+this.id+'" height="100%" width="100%" frameborder="0" marginwidth="0" marginheight="0" style="visibility:hidden" onload="this.style.visibility=\'visible\'" scrolling="auto"';if(g.isIE){S+=' allowtransparency="true"';if(g.isIE6){S+=" src=\"javascript:false;document.write('');\""}}S+="></iframe>";K.innerHTML=S},remove:function(){var K=ag(this.id);if(K){z(K);if(g.isGecko){delete T.frames[this.id]}}},onLoad:function(){var K=g.isIE?ag(this.id).contentWindow:T.frames[this.id];K.location.href=this.obj.content}};var al=false,A=[],H=["sb-nav-close","sb-nav-next","sb-nav-play","sb-nav-pause","sb-nav-previous"],F,ah,v,P=true;function ae(au,aE,aB,az,aF){var K=(aE=="opacity"),aA=K?g.setOpacity:function(aG,aH){aG.style[aE]=""+aH+"px"};if(az==0||(!K&&!g.options.animate)||(K&&!g.options.animateFade)){aA(au,aB);if(aF){aF()}return}var aC=parseFloat(g.getStyle(au,aE))||0;var aD=aB-aC;if(aD==0){if(aF){aF()}return}az*=1000;var av=X(),ay=g.ease,ax=av+az,aw;var S=setInterval(function(){aw=X();if(aw>=ax){clearInterval(S);S=null;aA(au,aB);if(aF){aF()}}else{aA(au,aC+ay((aw-av)/az)*aD)}},10)}function I(){F.style.height=g.getWindowSize("Height")+"px";F.style.width=g.getWindowSize("Width")+"px"}function ad(){F.style.top=document.documentElement.scrollTop+"px";F.style.left=document.documentElement.scrollLeft+"px"}function y(K){if(K){ac(A,function(S,au){au[0].style.visibility=au[1]||""})}else{A=[];ac(g.options.troubleElements,function(au,S){ac(document.getElementsByTagName(S),function(av,aw){A.push([aw,aw.style.visibility]);aw.style.visibility="hidden"})})}}function x(au,K){var S=ag("sb-nav-"+au);if(S){S.style.display=K?"":"none"}}function n(K,ax){var aw=ag("sb-loading"),au=g.getCurrent().player,av=(au=="img"||au=="html");if(K){g.setOpacity(aw,0);aw.style.display="block";var S=function(){g.clearOpacity(aw);if(ax){ax()}};if(av){ae(aw,"opacity",1,g.options.fadeDuration,S)}else{S()}}else{var S=function(){aw.style.display="none";g.clearOpacity(aw);if(ax){ax()}};if(av){ae(aw,"opacity",0,g.options.fadeDuration,S)}else{S()}}}function at(aC){var ax=g.getCurrent();ag("sb-title-inner").innerHTML=ax.title||"";var aD,az,S,aE,aA;if(g.options.displayNav){aD=true;var aB=g.gallery.length;if(aB>1){if(g.options.continuous){az=aA=true}else{az=(aB-1)>g.current;aA=g.current>0}}if(g.options.slideshowDelay>0&&g.hasNext()){aE=!g.isPaused();S=!aE}}else{aD=az=S=aE=aA=false}x("close",aD);x("next",az);x("play",S);x("pause",aE);x("previous",aA);var K="";if(g.options.displayCounter&&g.gallery.length>1){var aB=g.gallery.length;if(g.options.counterType=="skip"){var aw=0,av=aB,au=parseInt(g.options.counterLimit)||0;if(au<aB&&au>2){var ay=Math.floor(au/2);aw=g.current-ay;if(aw<0){aw+=aB}av=g.current+(au-ay);if(av>aB){av-=aB}}while(aw!=av){if(aw==aB){aw=0}K+='<a onclick="Shadowbox.change('+aw+');"';if(aw==g.current){K+=' class="sb-counter-current"'}K+=">"+(++aw)+"</a>"}}else{K=[g.current+1,g.lang.of,aB].join(" ")}}ag("sb-counter").innerHTML=K;aC()}function u(av){var K=ag("sb-title-inner"),au=ag("sb-info-inner"),S=0.35;K.style.visibility=au.style.visibility="";if(K.innerHTML!=""){ae(K,"marginTop",0,S)}ae(au,"marginTop",0,S,av)}function ab(au,aA){var ay=ag("sb-title"),K=ag("sb-info"),av=ay.offsetHeight,aw=K.offsetHeight,ax=ag("sb-title-inner"),az=ag("sb-info-inner"),S=(au?0.35:0);ae(ax,"marginTop",av,S);ae(az,"marginTop",aw*-1,S,function(){ax.style.visibility=az.style.visibility="hidden";aA()})}function E(K,av,S,ax){var aw=ag("sb-wrapper-inner"),au=(S?g.options.resizeDuration:0);ae(v,"top",av,au);ae(aw,"height",K,au,ax)}function t(K,av,S,aw){var au=(S?g.options.resizeDuration:0);ae(v,"left",av,au);ae(v,"width",K,au,aw)}function R(aA,au){var aw=ag("sb-body-inner"),aA=parseInt(aA),au=parseInt(au),S=v.offsetHeight-aw.offsetHeight,K=v.offsetWidth-aw.offsetWidth,ay=ah.offsetHeight,az=ah.offsetWidth,ax=parseInt(g.options.viewportPadding)||20,av=(g.player&&g.options.handleOversize!="drag");return g.setDimensions(aA,au,ay,az,S,K,ax,av)}var k={};k.markup='<div id="sb-container"><div id="sb-overlay"></div><div id="sb-wrapper"><div id="sb-title"><div id="sb-title-inner"></div></div><div id="sb-wrapper-inner"><div id="sb-body"><div id="sb-body-inner"></div><div id="sb-loading"><div id="sb-loading-inner"><span>{loading}</span></div></div></div></div><div id="sb-info"><div id="sb-info-inner"><div id="sb-counter"></div><div id="sb-nav"><a id="sb-nav-close" title="{close}" onclick="Shadowbox.close()"></a><a id="sb-nav-next" title="{next}" onclick="Shadowbox.next()"></a><a id="sb-nav-play" title="{play}" onclick="Shadowbox.play()"></a><a id="sb-nav-pause" title="{pause}" onclick="Shadowbox.pause()"></a><a id="sb-nav-previous" title="{previous}" onclick="Shadowbox.previous()"></a></div></div></div></div></div>';k.options={animSequence:"sync",counterLimit:10,counterType:"default",displayCounter:true,displayNav:true,fadeDuration:0.35,initialHeight:160,initialWidth:320,modal:false,overlayColor:"#000",overlayOpacity:0.5,resizeDuration:0.35,showOverlay:true,troubleElements:["select","object","embed","canvas"]};k.init=function(){g.appendHTML(document.body,s(k.markup,g.lang));k.body=ag("sb-body-inner");F=ag("sb-container");ah=ag("sb-overlay");v=ag("sb-wrapper");if(!L){F.style.position="absolute"}if(!ak){var au,K,S=/url\("(.*\.png)"\)/;ac(H,function(aw,ax){au=ag(ax);if(au){K=g.getStyle(au,"backgroundImage").match(S);if(K){au.style.backgroundImage="none";au.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,src="+K[1]+",sizingMethod=scale);"}}})}var av;j(T,"resize",function(){if(av){clearTimeout(av);av=null}if(w){av=setTimeout(k.onWindowResize,10)}})};k.onOpen=function(K,au){P=false;F.style.display="block";I();var S=R(g.options.initialHeight,g.options.initialWidth);E(S.innerHeight,S.top);t(S.width,S.left);if(g.options.showOverlay){ah.style.backgroundColor=g.options.overlayColor;g.setOpacity(ah,0);if(!g.options.modal){j(ah,"click",g.close)}al=true}if(!L){ad();j(T,"scroll",ad)}y();F.style.visibility="visible";if(al){ae(ah,"opacity",g.options.overlayOpacity,g.options.fadeDuration,au)}else{au()}};k.onLoad=function(S,K){n(true);while(k.body.firstChild){z(k.body.firstChild)}ab(S,function(){if(!w){return}if(!S){v.style.visibility="visible"}at(K)})};k.onReady=function(av){if(!w){return}var S=g.player,au=R(S.height,S.width);var K=function(){u(av)};switch(g.options.animSequence){case"hw":E(au.innerHeight,au.top,true,function(){t(au.width,au.left,true,K)});break;case"wh":t(au.width,au.left,true,function(){E(au.innerHeight,au.top,true,K)});break;default:t(au.width,au.left,true);E(au.innerHeight,au.top,true,K)}};k.onShow=function(K){n(false,K);P=true};k.onClose=function(){if(!L){a(T,"scroll",ad)}a(ah,"click",g.close);v.style.visibility="hidden";var K=function(){F.style.visibility="hidden";F.style.display="none";y(true)};if(al){ae(ah,"opacity",0,g.options.fadeDuration,K)}else{K()}};k.onPlay=function(){x("play",false);x("pause",true)};k.onPause=function(){x("pause",false);x("play",true)};k.onWindowResize=function(){if(!P){return}I();var K=g.player,S=R(K.height,K.width);t(S.width,S.left);E(S.innerHeight,S.top);if(K.onWindowResize){K.onWindowResize()}};g.skin=k;T.Shadowbox=g})(window);
var options = {
	 animate: false,
	 autoDimensions: true,
	 displayCounter: false,
	 language: 'da',
	 handleOversize: 'drag',
	 players: ['html'],
	 viewportPadding: false
}
Shadowbox.init(options); 

if(typeof OpenAjax!=="undefined"&&typeof OpenAjax.hub.registerLibrary!=="undefined"){OpenAjax.hub.registerLibrary("jsf","www.sun.com","2.0",null)}if(!((jsf&&jsf.specversion&&jsf.specversion>=20000)&&(jsf.implversion&&jsf.implversion>=3))){var jsf={};jsf.ajax=function(){var eventListeners=[];var errorListeners=[];var isIE=function isIE(){if(typeof isIECache!=="undefined"){return isIECache}isIECache=document.all&&window.ActiveXObject&&navigator.userAgent.toLowerCase().indexOf("msie")>-1&&navigator.userAgent.toLowerCase().indexOf("opera")==-1;return isIECache};var isIECache;var isAutoExec=function isAutoExec(){try{if(typeof isAutoExecCache!=="undefined"){return isAutoExecCache}var autoExecTestString="<script>var mojarra = mojarra || {};mojarra.autoExecTest = true;<\/script>";var tempElement=document.createElement("span");tempElement.innerHTML=autoExecTestString;var body=document.getElementsByTagName("body")[0];var tempNode=body.appendChild(tempElement);if(mojarra&&mojarra.autoExecTest){isAutoExecCache=true;delete mojarra.autoExecTest}else{isAutoExecCache=false}deleteNode(tempNode);return isAutoExecCache}catch(ex){if(typeof isAutoExecCache==="undefined"){isAutoExecCache=false}return isAutoExecCache}};var isAutoExecCache;var getTransport=function getTransport(){var methods=[function(){return new XMLHttpRequest()},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")}];var returnVal;for(var i=0,len=methods.length;i<len;i++){try{returnVal=methods[i]()}catch(e){continue}return returnVal}throw new Error("Could not create an XHR object.")};var $=function $(){var results=[],element;for(var i=0;i<arguments.length;i++){element=arguments[i];if(typeof element=="string"){element=document.getElementById(element)}results.push(element)}return results.length>1?results:results[0]};var getForm=function getForm(element){if(element){var form=$(element);while(form){if(form.nodeName&&(form.nodeName.toLowerCase()=="form")){return form}if(form.form){return form.form}if(form.parentNode){form=form.parentNode}else{form=null}}return document.forms[0]}return null};var isInArray=function isInArray(array,value){for(var i=0;i<array.length;i++){if(array[i]===value){return true}}return false};var globalEval=function globalEval(src){if(window.execScript){window.execScript(src);return}var fn=function(){window.eval.call(window,src)};fn()};var stripScripts=function stripScripts(str){var findscripts=/<script[^>]*>([\S\s]*?)<\/script>/igm;var findscript=/<script([^>]*)>([\S\s]*?)<\/script>/im;var stripStart=/^\s*(<!--)*\s*(\/\/)*\s*(\/\*)*\s*(<!\[CDATA\[)*/;var findsrc=/src="([\S]*?)"/im;var initialnodes=[];var scripts=[];initialnodes=str.match(findscripts);while(!!initialnodes&&initialnodes.length>0){var scriptStr=[];scriptStr=initialnodes.shift().match(findscript);var src=[];src=scriptStr[1].match(findsrc);var script;if(!!src&&src[1]){var url=src[1];if(/\/javax.faces.resource\/jsf.js\?ln=javax\.faces/.test(url)){script=false}else{script=loadScript(url)}}else{if(!!scriptStr&&scriptStr[2]){script=scriptStr[2].replace(stripStart,"")}else{script=false}}if(!!script){scripts.push(script)}}return scripts};var loadScript=function loadScript(url){var xhr=getTransport();if(xhr===null){return""}xhr.open("GET",url,false);xhr.setRequestHeader("Content-Type","application/x-javascript");xhr.send(null);if(xhr.readyState==4&&xhr.status==200){return xhr.responseText}return""};var runScripts=function runScripts(scripts){if(!scripts||scripts.length===0){return}var head=document.getElementsByTagName("head")[0]||document.documentElement;while(scripts.length){var scriptNode=document.createElement("script");scriptNode.type="text/javascript";scriptNode.text=scripts.shift();head.appendChild(scriptNode);head.removeChild(scriptNode)}};var elementReplaceStr=function elementReplaceStr(element,tempTagName,src){var temp=document.createElement(tempTagName);if(element.id){temp.id=element.id}if(element.nodeName.toLowerCase()==="head"){throw new Error("Attempted to replace a head element - this is not allowed.")}else{var scripts=[];if(isAutoExec()){temp.innerHTML=src}else{scripts=stripScripts(src);src=src.replace(/<script[^>]*>([\S\s]*?)<\/script>/igm,"");temp.innerHTML=src}}replaceNode(temp,element);runScripts(scripts)};var getText=function getText(oNode,deep){var Node={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12};var s="";var nodes=oNode.childNodes;for(var i=0;i<nodes.length;i++){var node=nodes[i];var nodeType=node.nodeType;if(nodeType==Node.TEXT_NODE||nodeType==Node.CDATA_SECTION_NODE){s+=node.data}else{if(deep===true&&(nodeType==Node.ELEMENT_NODE||nodeType==Node.DOCUMENT_NODE||nodeType==Node.DOCUMENT_FRAGMENT_NODE)){s+=getText(node,true)}}}return s};var PARSED_OK="Document contains no parsing errors";var PARSED_EMPTY="Document is empty";var PARSED_UNKNOWN_ERROR="Not well-formed or other error";var getParseErrorText;if(isIE()){getParseErrorText=function(oDoc){var parseErrorText=PARSED_OK;if(oDoc&&oDoc.parseError&&oDoc.parseError.errorCode&&oDoc.parseError.errorCode!==0){parseErrorText="XML Parsing Error: "+oDoc.parseError.reason+"\nLocation: "+oDoc.parseError.url+"\nLine Number "+oDoc.parseError.line+", Column "+oDoc.parseError.linepos+":\n"+oDoc.parseError.srcText+"\n";for(var i=0;i<oDoc.parseError.linepos;i++){parseErrorText+="-"}parseErrorText+="^\n"}else{if(oDoc.documentElement===null){parseErrorText=PARSED_EMPTY}}return parseErrorText}}else{getParseErrorText=function(oDoc){var parseErrorText=PARSED_OK;if((!oDoc)||(!oDoc.documentElement)){parseErrorText=PARSED_EMPTY}else{if(oDoc.documentElement.tagName=="parsererror"){parseErrorText=oDoc.documentElement.firstChild.data;parseErrorText+="\n"+oDoc.documentElement.firstChild.nextSibling.firstChild.data}else{if(oDoc.getElementsByTagName("parsererror").length>0){var parsererror=oDoc.getElementsByTagName("parsererror")[0];parseErrorText=getText(parsererror,true)+"\n"}else{if(oDoc.parseError&&oDoc.parseError.errorCode!==0){parseErrorText=PARSED_UNKNOWN_ERROR}}}}return parseErrorText}}if((typeof(document.importNode)=="undefined")&&isIE()){try{document.importNode=function(oNode,bChildren){var tmp;if(oNode.nodeName=="#text"){return document.createTextNode(oNode.data)}else{if(oNode.nodeName=="tbody"||oNode.nodeName=="tr"){tmp=document.createElement("table")}else{if(oNode.nodeName=="td"){tmp=document.createElement("tr")}else{if(oNode.nodeName=="option"){tmp=document.createElement("select")}else{tmp=document.createElement("div")}}}if(bChildren){tmp.innerHTML=oNode.xml?oNode.xml:oNode.outerHTML}else{tmp.innerHTML=oNode.xml?oNode.cloneNode(false).xml:oNode.cloneNode(false).outerHTML}return tmp.getElementsByTagName("*")[0]}}}catch(e){}}var Node={ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12};var clearEvents=function clearEvents(node){if(!node){return}if(node.nodeType==Node.TEXT_NODE||node.nodeType==Node.COMMENT_NODE){return}var events=["abort","blur","change","error","focus","load","reset","resize","scroll","select","submit","unload","keydown","keypress","keyup","click","mousedown","mousemove","mouseout","mouseover","mouseup","dblclick"];try{for(var e in events){if(events.hasOwnProperty(e)){node[e]=null}}}catch(ex){}};var deleteNode=function deleteNode(node){if(!node){return}if(!node.parentNode){return}if(!isIE()){node.parentNode.removeChild(node);return}if(node.nodeName.toLowerCase()==="body"){deleteChildren(node);try{node.outerHTML=""}catch(ex){}return}var temp=node.ownerDocument.createElement("div");var parent=node.parentNode;temp.appendChild(parent.removeChild(node));try{temp.outerHTML=""}catch(ex){}};var deleteChildren=function deleteChildren(node){if(!node){return}for(var x=node.childNodes.length-1;x>=0;x--){var childNode=node.childNodes[x];deleteNode(childNode)}};var copyChildNodes=function copyChildNodes(nodeFrom,nodeTo){if((!nodeFrom)||(!nodeTo)){throw"Both source and destination nodes must be provided"}deleteChildren(nodeTo);var nodes=nodeFrom.childNodes;if(nodeFrom.ownerDocument==nodeTo.ownerDocument){while(nodeFrom.firstChild){nodeTo.appendChild(nodeFrom.firstChild)}}else{var ownerDoc=nodeTo.nodeType==Node.DOCUMENT_NODE?nodeTo:nodeTo.ownerDocument;var i;if(typeof(ownerDoc.importNode)!="undefined"){for(i=0;i<nodes.length;i++){nodeTo.appendChild(ownerDoc.importNode(nodes[i],true))}}else{for(i=0;i<nodes.length;i++){nodeTo.appendChild(nodes[i].cloneNode(true))}}}};var replaceNode=function replaceNode(newNode,node){if(isIE()){node.parentNode.insertBefore(newNode,node);deleteNode(node)}else{node.parentNode.replaceChild(newNode,node)}};var cloneAttributes=function cloneAttributes(target,source){var coreElementAttributes=["className","title","lang","xml:lang"];var inputElementAttributes=["name","value","checked","disabled","readOnly","size","maxLength","src","alt","useMap","isMap","tabIndex","accessKey","accept","type"];var listenerNames=["onclick","ondblclick","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onkeydown","onkeypress","onkeyup","onhelp","onblur","onfocus","onchange","onload","onunload","onabort","onreset","onselect","onsubmit"];var iIndex,iLength;var attributeName;var newValue,oldValue;for(iIndex=0,iLength=coreElementAttributes.length;iIndex<iLength;iIndex++){attributeName=coreElementAttributes[iIndex];newValue=source[attributeName];oldValue=target[attributeName];if(oldValue!=newValue){target[attributeName]=newValue}}if(target.nodeName.toLowerCase()==="input"){for(iIndex=0,iLength=inputElementAttributes.length;iIndex<iLength;iIndex++){attributeName=inputElementAttributes[iIndex];newValue=source[attributeName];oldValue=target[attributeName];if(oldValue!=newValue){target[attributeName]=newValue}}}var newStyle=source.getAttribute("style");var oldStyle=target.getAttribute("style");if(newStyle!=oldStyle){if(isIE()){target.style.setAttribute("cssText",newStyle,0)}else{target.setAttribute("style",newStyle)}}for(var lIndex=0,lLength=listenerNames.length;lIndex<lLength;lIndex++){var name=listenerNames[lIndex];target[name]=source[name]?source[name]:null;if(source[name]){source[name]=null}}if(!isIE()&&source.dir!=target.dir){target.dir=source.dir?source.dir:null}};var elementReplace=function elementReplace(newElement,origElement){copyChildNodes(newElement,origElement);origElement.innerHTML=origElement.innerHTML;try{cloneAttributes(origElement,newElement)}catch(ex){if(jsf.getProjectStage()=="Development"){throw new Error("Error updating attributes")}}deleteNode(newElement)};var getBodyElement=function getBodyElement(docStr){var doc;var body;if(typeof DOMParser!=="undefined"){doc=(new DOMParser()).parseFromString(docStr,"text/xml")}else{if(typeof ActiveXObject!=="undefined"){doc=new ActiveXObject("MSXML2.DOMDocument");doc.loadXML(docStr)}else{throw new Error("You don't seem to be running a supported browser")}}if(getParseErrorText(doc)!==PARSED_OK){throw new Error(getParseErrorText(doc))}body=doc.getElementsByTagName("body")[0];if(!body){throw new Error("Can't find body tag in returned document.")}return body};var doUpdate=function doUpdate(element,context){var id,content,markup,state;var stateForm;var scripts=[];id=element.getAttribute("id");if(id==="javax.faces.ViewState"){state=element.firstChild;stateForm=document.getElementById(context.formid);if(!stateForm||!stateForm.elements){return}var field=stateForm.elements["javax.faces.ViewState"];if(typeof field=="undefined"){field=document.createElement("input");field.type="hidden";field.name="javax.faces.ViewState";stateForm.appendChild(field)}field.value=state.nodeValue;if(typeof context.render!=="undefined"&&context.render!==null){var temp=context.render.split(" ");for(var i=0;i<temp.length;i++){if(temp.hasOwnProperty(i)){var f=document.forms[temp[i]];if(typeof f!=="undefined"&&f!==null&&f.id!==context.formid){field=f.elements["javax.faces.ViewState"];if(typeof field==="undefined"){field=document.createElement("input");field.type="hidden";field.name="javax.faces.ViewState";f.appendChild(field)}field.value=state.nodeValue}}}}return}markup="";for(var j=0;j<element.childNodes.length;j++){content=element.childNodes[j];markup+=content.nodeValue}var src=markup;if(id==="javax.faces.ViewRoot"||id==="javax.faces.ViewBody"){var bodyStartEx=new RegExp("< *body[^>]*>","gi");var bodyEndEx=new RegExp("< */ *body[^>]*>","gi");var newsrc;var docBody=document.getElementsByTagName("body")[0];var bodyStart=bodyStartEx.exec(src);if(bodyStart!==null){try{scripts=stripScripts(src);newsrc=src.replace(/<script[^>]*>([\S\s]*?)<\/script>/igm,"");elementReplace(getBodyElement(newsrc),docBody);runScripts(scripts)}catch(e){var srcBody,bodyEnd;bodyEnd=bodyEndEx.exec(src);if(bodyEnd!==null){srcBody=src.substring(bodyStartEx.lastIndex,bodyEnd.index)}else{srcBody=src.substring(bodyStartEx.lastIndex)}elementReplaceStr(docBody,"body",srcBody)}}else{elementReplaceStr(docBody,"body",src)}}else{if(id==="javax.faces.ViewHead"){throw new Error("javax.faces.ViewHead not supported - browsers cannot reliably replace the head's contents")}else{var d=$(id);if(!d){throw new Error("During update: "+id+" not found")}var parent=d.parentNode;var html=src.replace(/^\s+/g,"").replace(/\s+$/g,"");var parserElement=document.createElement("div");var tag=d.nodeName.toLowerCase();var tableElements=["td","th","tr","tbody","thead","tfoot"];var isInTable=false;for(var tei=0,tel=tableElements.length;tei<tel;tei++){if(tableElements[tei]==tag){isInTable=true;break}}if(isInTable){if(isAutoExec()){parserElement.innerHTML="<table>"+html+"</table>"}else{scripts=stripScripts(html);html=html.replace(/<script[^>]*>([\S\s]*?)<\/script>/igm,"");parserElement.innerHTML="<table>"+html+"</table>"}var newElement=parserElement.firstChild;while((null!==newElement)&&(id!==newElement.id)){newElement=newElement.firstChild}parent.replaceChild(newElement,d);runScripts(scripts)}else{if(d.nodeName.toLowerCase()==="input"){parserElement=document.createElement("div");parserElement.innerHTML=html;newElement=parserElement.firstChild;cloneAttributes(d,newElement);deleteNode(parserElement)}else{if(html.length>0){if(isAutoExec()){parserElement.innerHTML=html}else{scripts=stripScripts(html);html=html.replace(/<script[^>]*>([\S\s]*?)<\/script>/igm,"");parserElement.innerHTML=html}replaceNode(parserElement.firstChild,d);deleteNode(parserElement);runScripts(scripts)}}}}}};var doDelete=function doDelete(element){var id=element.getAttribute("id");var target=$(id);deleteNode(target)};var doInsert=function doInsert(element){var tablePattern=new RegExp("<\\s*(td|th|tr|tbody|thead|tfoot)","i");var scripts=[];var target=$(element.firstChild.getAttribute("id"));var parent=target.parentNode;var html=element.firstChild.firstChild.nodeValue;var isInTable=tablePattern.test(html);if(!isAutoExec()){scripts=stripScripts(html);html=html.replace(/<script[^>]*>([\S\s]*?)<\/script>/igm,"")}var tempElement=document.createElement("div");var newElement=null;if(isInTable){tempElement.innerHTML="<table>"+html+"</table>";newElement=tempElement.firstChild;while((null!==newElement)&&(""==newElement.id)){newElement=newElement.firstChild}}else{tempElement.innerHTML=html;newElement=tempElement.firstChild}if(element.firstChild.nodeName==="after"){target=target.nextSibling}if(!!tempElement.innerHTML){parent.insertBefore(newElement,target)}runScripts(scripts);deleteNode(tempElement)};var doAttributes=function doAttributes(element){var id=element.getAttribute("id");var target=$(id);if(!target){throw new Error("The specified id: "+id+" was not found in the page.")}var nodes=element.childNodes;for(var i=0;i<nodes.length;i++){var name=nodes[i].getAttribute("name");var value=nodes[i].getAttribute("value");if(!isIE()){target.setAttribute(name,value)}else{if(name==="class"){name="className";target.setAttribute(name,value,0)}else{if(name==="for"){name="htmlFor";target.setAttribute(name,value,0)}else{if(name==="style"){target.style.setAttribute("cssText",value,0)}else{if(name.substring(0,2)==="on"){var fn=function(value){return function(){window.execScript(value)}}(value);target.setAttribute(name,fn,0)}else{if(name==="dir"){if(jsf.getProjectStage()=="Development"){throw new Error("Cannot set 'dir' attribute in IE")}}else{target.setAttribute(name,value,0)}}}}}}}};var doEval=function doEval(element){var evalText=element.firstChild.nodeValue;globalEval(evalText)};var Queue=new function Queue(){var queue=[];var queueSpace=0;this.getSize=function getSize(){return queue.length-queueSpace};this.isEmpty=function isEmpty(){return(queue.length===0)};this.enqueue=function enqueue(element){queue.push(element)};this.dequeue=function dequeue(){var element=undefined;if(queue.length){element=queue[queueSpace];if(++queueSpace*2>=queue.length){queue=queue.slice(queueSpace);queueSpace=0}}try{return element}finally{element=null}};this.getOldestElement=function getOldestElement(){var element=undefined;if(queue.length){element=queue[queueSpace]}try{return element}finally{element=null}}}();var AjaxEngine=function AjaxEngine(){var req={};req.url=null;req.context={};req.context.sourceid=null;req.context.onerror=null;req.context.onevent=null;req.context.formid=null;req.xmlReq=null;req.async=true;req.parameters={};req.queryString=null;req.method=null;req.status=null;req.fromQueue=false;req.que=Queue;req.xmlReq=getTransport();if(req.xmlReq===null){return null}function noop(){}req.xmlReq.onreadystatechange=function(){if(req.xmlReq.readyState===4){req.onComplete();req.xmlReq.onreadystatechange=noop;req.xmlReq=null}};req.onComplete=function onComplete(){if(req.xmlReq.status&&(req.xmlReq.status>=200&&req.xmlReq.status<300)){sendEvent(req.xmlReq,req.context,"complete");jsf.ajax.response(req.xmlReq,req.context)}else{sendEvent(req.xmlReq,req.context,"complete");sendError(req.xmlReq,req.context,"httpError")}var nextReq=req.que.getOldestElement();if(nextReq===null||typeof nextReq==="undefined"){return}while((typeof nextReq.xmlReq!=="undefined"&&nextReq.xmlReq!==null)&&nextReq.xmlReq.readyState===4){req.que.dequeue();nextReq=req.que.getOldestElement();if(nextReq===null||typeof nextReq==="undefined"){break}}if(nextReq===null||typeof nextReq==="undefined"){return}if((typeof nextReq.xmlReq!=="undefined"&&nextReq.xmlReq!==null)&&nextReq.xmlReq.readyState===0){nextReq.fromQueue=true;nextReq.sendRequest()}};req.setupArguments=function(args){for(var i in args){if(args.hasOwnProperty(i)){if(typeof req[i]==="undefined"){req.parameters[i]=args[i]}else{req[i]=args[i]}}}};req.sendRequest=function(){if(req.xmlReq!==null){if(!req.que.isEmpty()){if(!req.fromQueue){req.que.enqueue(req);return}}if(!req.fromQueue){req.que.enqueue(req)}if(req.generateUniqueUrl&&req.method=="GET"){req.parameters.AjaxRequestUniqueId=new Date().getTime()+""+req.requestIndex}var content=null;for(var i in req.parameters){if(req.parameters.hasOwnProperty(i)){if(req.queryString.length>0){req.queryString+="&"}req.queryString+=encodeURIComponent(i)+"="+encodeURIComponent(req.parameters[i])}}if(req.method==="GET"){if(req.queryString.length>0){req.url+=((req.url.indexOf("?")>-1)?"&":"?")+req.queryString}}req.xmlReq.open(req.method,req.url,req.async);if(req.method==="POST"){if(typeof req.xmlReq.setRequestHeader!=="undefined"){req.xmlReq.setRequestHeader("Faces-Request","partial/ajax");req.xmlReq.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=UTF-8")}content=req.queryString}if(!req.async){req.xmlReq.onreadystatechange=null}sendEvent(req.xmlReq,req.context,"begin");req.xmlReq.send(content);if(!req.async){req.onComplete()}}};return req};var sendError=function sendError(request,context,status,description,serverErrorName,serverErrorMessage){var sent=false;var data={};data.type="error";data.status=status;data.source=context.sourceid;data.responseCode=request.status;data.responseXML=request.responseXML;data.responseText=request.responseText;if(typeof data.source==="string"){data.source=document.getElementById(data.source)}if(description){data.description=description}else{if(status=="httpError"){if(data.responseCode===0){data.description="The Http Transport returned a 0 status code.  This is usually the result of mixing ajax and full requests.  This is usually undesired, for both performance and data integrity reasons."}else{data.description="There was an error communicating with the server, status: "+data.responseCode}}else{if(status=="serverError"){data.description=serverErrorMessage}else{if(status=="emptyResponse"){data.description="An empty response was received from the server.  Check server error logs."}else{if(status=="malformedXML"){if(getParseErrorText(data.responseXML)!==PARSED_OK){data.description=getParseErrorText(data.responseXML)}else{data.description="An invalid XML response was received from the server."}}}}}}if(status=="serverError"){data.errorName=serverErrorName;data.errorMessage=serverErrorMessage}if(context.onerror){context.onerror.call(null,data);sent=true}for(var i in errorListeners){if(errorListeners.hasOwnProperty(i)){errorListeners[i].call(null,data);sent=true}}if(!sent&&jsf.getProjectStage()==="Development"){if(status=="serverError"){alert("serverError: "+serverErrorName+" "+serverErrorMessage)}else{alert(status+": "+data.description)}}};var sendEvent=function sendEvent(request,context,status){var data={};data.type="event";data.status=status;data.source=context.sourceid;if(typeof data.source==="string"){data.source=document.getElementById(data.source)}if(status!=="begin"){data.responseCode=request.status;data.responseXML=request.responseXML;data.responseText=request.responseText}if(context.onevent){context.onevent.call(null,data)}for(var i in eventListeners){if(eventListeners.hasOwnProperty(i)){eventListeners[i].call(null,data)}}};return{addOnError:function addOnError(callback){if(typeof callback==="function"){errorListeners[errorListeners.length]=callback}else{throw new Error("jsf.ajax.addOnError:  Added a callback that was not a function.")}},addOnEvent:function addOnEvent(callback){if(typeof callback==="function"){eventListeners[eventListeners.length]=callback}else{throw new Error("jsf.ajax.addOnEvent: Added a callback that was not a function")}},request:function request(source,event,options){var element,form;var all,none;if(typeof source==="undefined"||source===null){throw new Error("jsf.ajax.request: source not set")}if(typeof source==="string"){element=document.getElementById(source)}else{if(typeof source==="object"){element=source}else{throw new Error("jsf.request: source must be object or string")}}if(!element.name){element.name=element.id}if(typeof(options)==="undefined"||options===null){options={}}var onerror=false;if(options.onerror&&typeof options.onerror==="function"){onerror=options.onerror}else{if(options.onerror&&typeof options.onerror!=="function"){throw new Error("jsf.ajax.request: Added an onerror callback that was not a function")}}var onevent=false;if(options.onevent&&typeof options.onevent==="function"){onevent=options.onevent}else{if(options.onevent&&typeof options.onevent!=="function"){throw new Error("jsf.ajax.request: Added an onevent callback that was not a function")}}form=getForm(element);if(!form){throw new Error("jsf.ajax.request: Method must be called within a form")}var viewState=jsf.getViewState(form);var args={};args["javax.faces.source"]=element.id;if(event&&!!event.type){args["javax.faces.partial.event"]=event.type}if(options.execute){none=options.execute.search(/@none/);if(none<0){all=options.execute.search(/@all/);if(all<0){options.execute=options.execute.replace("@this",element.id);options.execute=options.execute.replace("@form",form.id);var temp=options.execute.split(" ");if(!isInArray(temp,element.name)){options.execute=element.name+" "+options.execute}}else{options.execute="@all"}args["javax.faces.partial.execute"]=options.execute}}else{options.execute=element.name+" "+element.id;args["javax.faces.partial.execute"]=options.execute}if(options.render){none=options.render.search(/@none/);if(none<0){all=options.render.search(/@all/);if(all<0){options.render=options.render.replace("@this",element.id);options.render=options.render.replace("@form",form.id)}else{options.render="@all"}args["javax.faces.partial.render"]=options.render}}delete options.execute;delete options.render;delete options.onerror;delete options.onevent;for(var property in options){if(options.hasOwnProperty(property)){args[property]=options[property]}}args["javax.faces.partial.ajax"]="true";args.method="POST";var encodedUrlField=form.elements["javax.faces.encodedURL"];if(typeof encodedUrlField=="undefined"){args.url=form.action}else{args.url=encodedUrlField.value}var ajaxEngine=new AjaxEngine();ajaxEngine.setupArguments(args);ajaxEngine.queryString=viewState;ajaxEngine.context.onevent=onevent;ajaxEngine.context.onerror=onerror;ajaxEngine.context.sourceid=element.id;ajaxEngine.context.formid=form.id;ajaxEngine.context.render=args["javax.faces.partial.render"];ajaxEngine.sendRequest();element=null;form=null},response:function response(request,context){if(!request){throw new Error("jsf.ajax.response: Request parameter is unset")}if(typeof context.sourceid==="string"){context.sourceid=document.getElementById(context.sourceid)}var xml=request.responseXML;if(xml===null){sendError(request,context,"emptyResponse");return}if(getParseErrorText(xml)!==PARSED_OK){sendError(request,context,"malformedXML");return}var responseType=xml.getElementsByTagName("partial-response")[0].firstChild;if(responseType.nodeName==="error"){var errorName=responseType.firstChild.firstChild.nodeValue;var errorMessage=responseType.firstChild.nextSibling.firstChild.nodeValue;sendError(request,context,"serverError",null,errorName,errorMessage);sendEvent(request,context,"success");return}if(responseType.nodeName==="redirect"){window.location=responseType.getAttribute("url");return}if(responseType.nodeName!=="changes"){sendError(request,context,"malformedXML","Top level node must be one of: changes, redirect, error, received: "+responseType.nodeName+" instead.");return}var changes=responseType.childNodes;try{for(var i=0;i<changes.length;i++){switch(changes[i].nodeName){case"update":doUpdate(changes[i],context);break;case"delete":doDelete(changes[i]);break;case"insert":doInsert(changes[i]);break;case"attributes":doAttributes(changes[i]);break;case"eval":doEval(changes[i]);break;case"extension":break;default:sendError(request,context,"malformedXML","Changes allowed are: update, delete, insert, attributes, eval, extension.  Received "+changes[i].nodeName+" instead.");return}}}catch(ex){sendError(request,context,"malformedXML",ex.message);return}sendEvent(request,context,"success")}}}();jsf.getProjectStage=function(){if(typeof mojarra!=="undefined"&&typeof mojarra.projectStageCache!=="undefined"){return mojarra.projectStageCache}var a=document.getElementsByTagName("script");var b;var e=0;var d;var c;while(e<a.length){if(typeof a[e].src==="string"&&a[e].src.match("/javax.faces.resource/jsf.js?.*ln=javax.faces")){b=a[e].src;break}e++}if(typeof b=="string"){c=b.match("stage=(.*)");if(c){d=c[1]}}if(typeof d==="undefined"||!d){d="Production"}mojarra=mojarra||{};mojarra.projectStageCache=d;return mojarra.projectStageCache};jsf.getViewState=function(g){if(!g){throw new Error("jsf.getViewState:  form must be set")}var e=g.elements;var a=e.length;var b=[];var h=function(j,k){var i="";if(b.length>0){i="&"}i+=encodeURIComponent(j)+"="+encodeURIComponent(k);b.push(i)};for(var d=0;d<a;d++){var f=e[d];if(!f.disabled){switch(f.type){case"text":case"password":case"hidden":case"textarea":h(f.name,f.value);break;case"select-one":if(f.selectedIndex>=0){h(f.name,f.options[f.selectedIndex].value)}break;case"select-multiple":for(var c=0;c<f.options.length;c++){if(f.options[c].selected){h(f.name,f.options[c].value)}}break;case"checkbox":case"radio":if(f.checked){h(f.name,f.value||"on")}break}}}return b.join("")};jsf.util={};jsf.util.chain=function(g,d){if(arguments.length<3){return true}var a=(typeof g==="object")?g:null;for(var b=2;b<arguments.length;b++){var e=new Function("event",arguments[b]);var c=e.call(a,d);if(c===false){return false}}return true};jsf.specversion=20000;jsf.implversion=3}if(typeof OpenAjax!=="undefined"&&typeof OpenAjax.hub.registerLibrary!=="undefined"){OpenAjax.hub.registerLibrary("mojarra","www.sun.com","1.0",null)}var mojarra=mojarra||{};mojarra.dpf=function dpf(c){var b=c.adp;if(b!==null){for(var a=0;a<b.length;a++){c.removeChild(b[a])}}};mojarra.apf=function apf(e,c){var d=new Array();e.adp=d;var b=0;for(var a in c){if(c.hasOwnProperty(a)){var g=document.createElement("input");g.type="hidden";g.name=a;g.value=c[a];e.appendChild(g);d[b++]=g}}};mojarra.jsfcljs=function jsfcljs(c,b,a){mojarra.apf(c,b);var d=c.target;if(a){c.target=a}c.submit();c.target=d;mojarra.dpf(c)};mojarra.jsfcbk=function jsfcbk(b,a,c){return b.call(a,c)};mojarra.ab=function ab(c,d,g,a,b,f){if(!f){f={}}if(g){f["javax.faces.behavior.event"]=g}if(a){f.execute=a}if(b){f.render=b}jsf.ajax.request(c,d,f)};
var Drupal = Drupal || { 'settings': {}, 'behaviors': {}, 'themes': {}, 'locale': {} };

Drupal.settings = {
	'format_number' : {
		'decimal_point' : ',',
		'thousands_sep' : '.'
	}
}

/**
 * Set the variable that indicates if JavaScript behaviors should be applied
 */
Drupal.jsEnabled = document.getElementsByTagName && document.createElement && document.createTextNode && document.documentElement && document.getElementById;

/**
 * Attach all registered behaviors to a page element.
 *
 * Behaviors are event-triggered actions that attach to page elements, enhancing
 * default non-Javascript UIs. Behaviors are registered in the Drupal.behaviors
 * object as follows:
 * @code
 *    Drupal.behaviors.behaviorName = function () {
 *      ...
 *    };
 * @endcode
 *
 * Drupal.attachBehaviors is added below to the jQuery ready event and so
 * runs on initial page load. Developers implementing AHAH/AJAX in their
 * solutions should also call this function after new page content has been
 * loaded, feeding in an element to be processed, in order to attach all
 * behaviors to the new content.
 *
 * Behaviors should use a class in the form behaviorName-processed to ensure
 * the behavior is attached only once to a given element. (Doing so enables
 * the reprocessing of given elements, which may be needed on occasion despite
 * the ability to limit behavior attachment to a particular element.)
 *
 * @param context
 *   An element to attach behaviors to. If none is given, the document element
 *   is used.
 */
Drupal.attachBehaviors = function(context) {
  context = context || document;
  if (Drupal.jsEnabled) {
    // Execute all of them.
    jQuery.each(Drupal.behaviors, function() {
      this(context);
    });
  }
};

/**
 * Encode special characters in a plain-text string for display as HTML.
 */
Drupal.checkPlain = function(str) {
  str = String(str);
  var replace = { '&': '&amp;', '"': '&quot;', '<': '&lt;', '>': '&gt;' };
  for (var character in replace) {
    var regex = new RegExp(character, 'g');
    str = str.replace(regex, replace[character]);
  }
  return str;
};

/**
 * Translate strings to the page language or a given language.
 *
 * See the documentation of the server-side t() function for further details.
 *
 * @param str
 *   A string containing the English string to translate.
 * @param args
 *   An object of replacements pairs to make after translation. Incidences
 *   of any key in this array are replaced with the corresponding value.
 *   Based on the first character of the key, the value is escaped and/or themed:
 *    - !variable: inserted as is
 *    - @variable: escape plain text to HTML (Drupal.checkPlain)
 *    - %variable: escape text and theme as a placeholder for user-submitted
 *      content (checkPlain + Drupal.theme('placeholder'))
 * @return
 *   The translated string.
 */
Drupal.t = function(str, args) {
  // Fetch the localized version of the string.
  if (Drupal.locale.strings && Drupal.locale.strings[str]) {
    str = Drupal.locale.strings[str];
  }

  if (args) {
    // Transform arguments before inserting them
    for (var key in args) {
      switch (key.charAt(0)) {
        // Escaped only
        case '@':
          args[key] = Drupal.checkPlain(args[key]);
        break;
        // Pass-through
        case '!':
          break;
        // Escaped and placeholder
        case '%':
        default:
          args[key] = Drupal.theme('placeholder', args[key]);
          break;
      }
      str = str.replace(key, args[key]);
    }
  }
  return str;
};

/**
 * Format a string containing a count of items.
 *
 * This function ensures that the string is pluralized correctly. Since Drupal.t() is
 * called by this function, make sure not to pass already-localized strings to it.
 *
 * See the documentation of the server-side format_plural() function for further details.
 *
 * @param count
 *   The item count to display.
 * @param singular
 *   The string for the singular case. Please make sure it is clear this is
 *   singular, to ease translation (e.g. use "1 new comment" instead of "1 new").
 *   Do not use @count in the singular string.
 * @param plural
 *   The string for the plural case. Please make sure it is clear this is plural,
 *   to ease translation. Use @count in place of the item count, as in "@count
 *   new comments".
 * @param args
 *   An object of replacements pairs to make after translation. Incidences
 *   of any key in this array are replaced with the corresponding value.
 *   Based on the first character of the key, the value is escaped and/or themed:
 *    - !variable: inserted as is
 *    - @variable: escape plain text to HTML (Drupal.checkPlain)
 *    - %variable: escape text and theme as a placeholder for user-submitted
 *      content (checkPlain + Drupal.theme('placeholder'))
 *   Note that you do not need to include @count in this array.
 *   This replacement is done automatically for the plural case.
 * @return
 *   A translated string.
 */
Drupal.formatPlural = function(count, singular, plural, args) {
  var args = args || {};
  args['@count'] = count;
  // Determine the index of the plural form.
  var index = Drupal.locale.pluralFormula ? Drupal.locale.pluralFormula(args['@count']) : ((args['@count'] == 1) ? 0 : 1);

  if (index == 0) {
    return Drupal.t(singular, args);
  }
  else if (index == 1) {
    return Drupal.t(plural, args);
  }
  else {
    args['@count['+ index +']'] = args['@count'];
    delete args['@count'];
    return Drupal.t(plural.replace('@count', '@count['+ index +']'));
  }
};

/**
 * Generate the themed representation of a Drupal object.
 *
 * All requests for themed output must go through this function. It examines
 * the request and routes it to the appropriate theme function. If the current
 * theme does not provide an override function, the generic theme function is
 * called.
 *
 * For example, to retrieve the HTML that is output by theme_placeholder(text),
 * call Drupal.theme('placeholder', text).
 *
 * @param func
 *   The name of the theme function to call.
 * @param ...
 *   Additional arguments to pass along to the theme function.
 * @return
 *   Any data the theme function returns. This could be a plain HTML string,
 *   but also a complex object.
 */
Drupal.theme = function(func) {
  for (var i = 1, args = []; i < arguments.length; i++) {
    args.push(arguments[i]);
  }

  return (Drupal.theme[func] || Drupal.theme.prototype[func]).apply(this, args);
};

/**
 * Parse a JSON response.
 *
 * The result is either the JSON object, or an object with 'status' 0 and 'data' an error message.
 */
Drupal.parseJson = function (data) {
  if ((data.substring(0, 1) != '{') && (data.substring(0, 1) != '[')) {
    return { status: 0, data: data.length ? data : Drupal.t('Unspecified error') };
  }
  return eval('(' + data + ');');
};

/**
 * Freeze the current body height (as minimum height). Used to prevent
 * unnecessary upwards scrolling when doing DOM manipulations.
 */
Drupal.freezeHeight = function () {
  Drupal.unfreezeHeight();
  var div = document.createElement('div');
  $(div).css({
    position: 'absolute',
    top: '0px',
    left: '0px',
    width: '1px',
    height: $('body').css('height')
  }).attr('id', 'freeze-height');
  $('body').append(div);
};

/**
 * Unfreeze the body height
 */
Drupal.unfreezeHeight = function () {
  $('#freeze-height').remove();
};

/**
 * Wrapper around encodeURIComponent() which avoids Apache quirks (equivalent of
 * drupal_urlencode() in PHP). This function should only be used on paths, not
 * on query string arguments.
 */
Drupal.encodeURIComponent = function (item, uri) {
  uri = uri || location.href;
  item = encodeURIComponent(item).replace(/%2F/g, '/');
  return (uri.indexOf('?q=') != -1) ? item : item.replace(/%26/g, '%2526').replace(/%23/g, '%2523').replace(/\/\//g, '/%252F');
};

/**
 * Get the text selection in a textarea.
 */
Drupal.getSelection = function (element) {
  if (typeof(element.selectionStart) != 'number' && document.selection) {
    // The current selection
    var range1 = document.selection.createRange();
    var range2 = range1.duplicate();
    // Select all text.
    range2.moveToElementText(element);
    // Now move 'dummy' end point to end point of original range.
    range2.setEndPoint('EndToEnd', range1);
    // Now we can calculate start and end points.
    var start = range2.text.length - range1.text.length;
    var end = start + range1.text.length;
    return { 'start': start, 'end': end };
  }
  return { 'start': element.selectionStart, 'end': element.selectionEnd };
};

/**
 * Build an error message from ahah response.
 */
Drupal.ahahError = function(xmlhttp, uri) {
  if (xmlhttp.status == 200) {
    if (jQuery.trim($(xmlhttp.responseText).text())) {
      var message = Drupal.t("An error occurred. \n@uri\n@text", {'@uri': uri, '@text': xmlhttp.responseText });
    }
    else {
      var message = Drupal.t("An error occurred. \n@uri\n(no information available).", {'@uri': uri, '@text': xmlhttp.responseText });
    }
  }
  else {
    var message = Drupal.t("An HTTP error @status occurred. \n@uri", {'@uri': uri, '@status': xmlhttp.status });
  }
  return message;
}

// Global Killswitch on the <html> element
if (Drupal.jsEnabled) {
  // Global Killswitch on the <html> element
  $(document.documentElement).addClass('js');
  // 'js enabled' cookie
  document.cookie = 'has_js=1; path=/';
  // Attach all behaviors.
  $(document).ready(function() {
    Drupal.attachBehaviors(this);
  });
}

/**
 * The default themes.
 */
Drupal.theme.prototype = {

  /**
   * Formats text for emphasized display in a placeholder inside a sentence.
   *
   * @param str
   *   The text to format (plain-text).
   * @return
   *   The formatted text (html).
   */
  placeholder: function(str) {
    return '<em>' + Drupal.checkPlain(str) + '</em>';
  }
};
;
Drupal.locale = { 'pluralFormula': function($n) { return Number(($n!=1)); }, 'strings': { "Unspecified error": "Uspecificeret fejl", "The changes to these blocks will not be saved until the \x3cem\x3eSave blocks\x3c/em\x3e button is clicked.": "Ã†ndringerne bliver ikke gemt fÃ¸r du trykker pÃ¥ knappen \x3cem\x3eGem blokke\x3c/em\x3e.", "Your server has been successfully tested to support this feature.": "Din server understÃ¸tter denne funktionalitet.", "Your system configuration does not currently support this feature. The \x3ca href=\"http://drupal.org/node/15365\"\x3ehandbook page on Clean URLs\x3c/a\x3e has additional troubleshooting information.": "Din system-konfiguration understÃ¸tter ikke denne funktionalitet. \x3ca href=\"http://drupal.org/node/15365\"\x3eHÃ¥ndbogens side om rene URLer\x3c/a\x3e har yderligere hjÃ¦lp til fejlfinding.", "Testing clean URLs...": "Tester rene URLerâ€¦", "Cancel": "Annuller", "Anonymous": "Anonym", "Published": "Udgivet", "Not published": "Ikke udgivet", "Edit": "Rediger", "Promoted to front page": "Forfremmet til forside", "Create new revision": "Opret ny version", "Upload": "OverfÃ¸r", "Only files with the following extensions are allowed: %files-allowed.": "Kun filer af fÃ¸lgende typer er tilladt: %files-allowed.", "An error occurred. \n@uri\n@text": "Der opstod en fejl. \n@uri\n@text", "An error occurred. \n@uri\n(no information available).": "Der opstod en fejl. \n@uri\n(ingen information tilgÃ¦ngelig).", "An HTTP error @status occurred. \n@uri": "Der opstod en HTTP-fejl @status. \n@uri", "Drag to re-order": "TrÃ¦k for at (om)sortere", "Changes made in this table will not be saved until the form is submitted.": "Ã†ndringer i tabellen bliver ikke gemt, fÃ¸r du indsender formularen.", "Select all rows in this table": "VÃ¦lg alle rÃ¦kker i tabellen", "Deselect all rows in this table": "FravÃ¦lg alle rÃ¦kker i tabellen", "Split summary at cursor": "Del sammendrag ved markør", "Join summary": "Saml sammendrag", "Continue": "Fortsæt", "None": "Ingen", "Automatic alias": "Automatisk alias" } };;

(function ($) {

/**
 * Create our own namespace in the global Drupal object.
 */
Drupal.numericElement = Drupal.numericElement || {};

/**
 * Attach Drupal behavior to numeric input elements.
 */
Drupal.behaviors.numericElement = function(context) {
  Drupal.numericElement.attach(context);
};

/**
 * Format a number with (site default or user defined) thousands separator
 * and decimal point.
 *
 * Formatting options are expected to be at Drupal.settings.format_number.
 *
 * @param float number
 *   The number being formatted.
 * @param int decimals
 *   Number of decimal digits. Use -1 for any number of decimals.
 * @param boolean truncate
 *   TRUE to trucate the decimal part (default). FALSE to round the result.
 * @return string
 *   The formatted number.
 */
Drupal.formatNumber = function(number, decimals, truncate) {
  if (typeof(number) != 'number') {
    number = 0;
  }
  if (typeof(decimals) != 'number') {
    decimals = 0;
  }
  if (typeof(truncate) == 'undefined') {
    truncate = true;
  }

  // Round the number to the specified number of decimals if requested to.
  // Otherwise, the decimal part will be trucated.
  if (decimals > 0 && !truncate) {
    number = Math.round(number * Math.pow(10, decimals)) / Math.pow(10, decimals);
  }

  // Obtain the sign and separate integer/decimal parts.
  var minus_sign = (number < 0 ? '-' : '');
  var number_parts = (Math.abs(number) + '').split('.');

  // Get the integer part of the number.
  var integer_part = (number_parts[0].length > 0 ? number_parts[0] : '0');

  // Insert thousands separator when necessary.
  /*
  if (Drupal.settings.format_number.thousands_sep.length > 0) {
    // Reverse the interger part into an array.
    var digits = integer_part.split('').reverse();
    integer_part = '';
    // Add thousands separator every 3 digits.
    for (var i = 0; i < digits.length; i++) {
      integer_part += ((i % 3) == 0 && i > 0 ? Drupal.settings.format_number.thousands_sep : '') + digits[i];
    }
    // Reverse back the integer part.
    integer_part = integer_part.split('').reverse().join('');
  }
  */
  number = minus_sign + integer_part;

  // Build the decimal part of the number.
  if (decimals > 0) {
    var decimal_part = (number_parts.length <= 1 ? '0' : number_parts[1]);
    if (decimal_part.length > decimals) {
      decimal_part = decimal_part.substr(0, decimals);
    }
    else if (decimal_part.length < decimals) {
      while (decimal_part.length < decimals) { decimal_part += '0'; }
    }
    number += Drupal.settings.format_number.decimal_point + decimal_part;
  }

  // When no decimals have been specified, we allow any. This is used for
  // min/max fields in CCK field settings.
  else if (decimals < 0 && number_parts.length > 1) {
    number += Drupal.settings.format_number.decimal_point + number_parts[1];
  }

  return number;
};

/**
 * Parse a number with (site default or user defined) thousands separator
 * and decimal point.
 *
 * Formatting options are expected to be at Drupal.settings.format_number.
 *
 * @param string number
 *   A number formatted with localized thousands separator and decimal point.
 * @param boolean required
 *   FALSE to return '' when input is empty string. Otherwise, result is always
 *   returned as a valid number. Default is TRUE.
 * @return number
 *   A valid number.
 */
Drupal.parseNumber = function(number, required) {
  if (typeof(number) != 'string') {
    return (typeof(number) == 'number' ? number : 0);
  }
  if (required == undefined) {
    required = true;
  }

  // Get rid of leading/trailing whitespaces.
  if ((number = number.replace(/^\s+|\s+$/g, '')) == '') {
    return (required ? 0 : '');
  }

  // Extract sign and temporarily remove it from input.
  var is_negative = (number[0] == '-');
  if (is_negative) {
    number = number.substr(1);
  }

  // Remove thousands separators, if any.
  
  if (Drupal.settings.format_number.thousands_sep.length > 0) {
    var thsep = Drupal.settings.format_number.thousands_sep;
    if (thsep == '\u00A0') {
      thsep += ' ';
    }
    number = number.replace(new RegExp('[' + thsep + ']', 'g'), '');
  }
  

  // Translate decimal point, if necessary.
  
  if (Drupal.settings.format_number.decimal_point != '.') {
    number = number.replace(new RegExp('[' + Drupal.settings.format_number.decimal_point + ']', 'g'), '.');
  }
  
  
  // Truncate from first non-numeric character (at this point only 0-9 and
  // just one dot are allowed).
  // This should also restore back the sign (if necessary) and convert the
  // string into a pure javascript number (integer or float).
  return number.replace(/^([0-9]*\.?[0-9]+)?.*$/, '$1') * (is_negative ? -1 : 1);
};

/**
 * Attach Drupal behavior to numeric input elements.
 *
 * Numeric elements are processed during the following events:
 * - on page load     : All numeric elements are formatted with site/user defined options.
 * - on element focus : Thousands separator are removed, if any.
 * - on element blur  : Numeric elements are formatted again with site/user defined options.
 * - on form submit   : Thousands separator are removed to prevent from triggering
 *                      maxlength error during Forms API validation.
 */
Drupal.numericElement.attach = function(context) {
  $('input.form-numeric:not(.form-numeric-processed)', context).addClass('form-numeric-processed').each(function() {
    var $element = $(this);

    // Number of decimal places for this element.
    var decimals = $element.attr('decimals');
    decimals = (decimals == undefined ? -1 : Math.max(-1, parseInt(decimals)));

    // The element is properly formatted on page load.
    Drupal.numericElement.formatElement($element, decimals);

    // Bind element events.
    $element.bind('focus', function() {
      Drupal.numericElement.clearThousandsSep($element);
    }).bind('blur', function() {
      Drupal.numericElement.formatElement($element, decimals);
    });

    // Bind submit event callback to the form.
    $element.parents('form:not(.form-numeric-processed)').addClass('form-numeric-processed').each(function() {
      // Clear thousands separators before submitting. This is not strictly
      // necessary because input is always validated on the server, but it
      // prevents from getting "field cannot be longer than max" errors issued
      // by Forms API.
      $(this).bind('submit', function() {
        $('input.form-numeric', this).each(function() {
          Drupal.numericElement.clearThousandsSep($(this));
        });
      });
    });
  });
};

/**
 * Clear thousands separators from the given input element.
 *
 * @param $element
 *   The input element.
 */
Drupal.numericElement.clearThousandsSep = function($element) {
  var number = $element.val();
  /*
  if (number.length > 0 && Drupal.settings.format_number.thousands_sep.length > 0) {
    var thsep = Drupal.settings.format_number.thousands_sep;
    if (thsep == '\u00A0') {
      thsep += ' ';
    }
    number = number.replace(new RegExp('['+ thsep +']', 'g'), '');
    $element.val(number);
  }
  */
};

/**
 * Format the number in the given element with site/user defined options.
 *
 * @param $element
 *   The input element.
 * @param decimals
 *   Number of decimal digits.
 */
Drupal.numericElement.formatElement = function($element, decimals) {
  var number = $element.val();
  if (number.length > 0) {
    number = Drupal.parseNumber(number, false);
    if (typeof(number) == 'number') {
      number = Drupal.formatNumber(number, decimals);
    }
    $element.val(number);
  }
};

})(jQuery);;
/*
 * jQuery JavaScript Library v1.3.2
 * http://jquery.com/
 *
 * Copyright (c) 2009 John Resig
 * Dual licensed under the MIT and GPL licenses.
 * http://docs.jquery.com/License
 *
 * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
 * Revision: 6246
 */
(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
/*
 * Sizzle CSS Selector Engine - v0.9.3
 *  Copyright 2009, The Dojo Foundation
 *  Released under the MIT, BSD, and GPL Licenses.
 *  More information: http://sizzlejs.com/
 */
(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML='   <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();;
// $Id: drupal.js,v 1.41.2.4 2009/07/21 08:59:10 goba Exp $


/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', null);
 * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
 *       used when the cookie was set.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
 *                             when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
 *                        require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie !== '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};;
// $Id$

var JyskeBank = JyskeBank || {};
JyskeBank.currencyCalculator = JyskeBank.currencyCalculator || {};
JyskeBank.currencyCalculator.basket = JyskeBank.currencyCalculator.basket || {};
JyskeBank.currencyCalculator.embed = JyskeBank.currencyCalculator.embed || {};
JyskeBank.currencyCalculator.tip = JyskeBank.currencyCalculator.tip || {};
JyskeBank.currencyCalculator.rate = JyskeBank.currencyCalculator.rate || {};
JyskeBank.currencyCalculator.rateList = JyskeBank.currencyCalculator.rateList || {};
JyskeBank.currencyCalculator.suggest = JyskeBank.currencyCalculator.suggest || {};
JyskeBank.currencyCalculator.utils = JyskeBank.currencyCalculator.utils || {};

/**
 * Initialize the currency calculator.
 */
JyskeBank.currencyCalculator.ready = function() {
  JyskeBank.currencyCalculator.basket.init();
  JyskeBank.currencyCalculator.rateList.init();
  //JyskeBank.currencyCalculator.embed.init();
  JyskeBank.currencyCalculator.tip.init();
  JyskeBank.currencyCalculator.rate.init();
  JyskeBank.currencyCalculator.suggest.init();
  JyskeBank.currencyCalculator.utils.updateForm();
  $('#currency-calculator-add').html('Bestil valuta <span>hos din Jyske Bank</span>');
};

//start 


//slut
/*
_______________________________
FIX BROWSER SUPPORT */

/* Crome and FireFox support for document.activeElement */
if ($.browser.safari && document.addEventListener) {
  function fixupActiveElement(e) {
    if (e.type == "keyup") {
      document.activeElement = null;
      return;
    }
    if (!e.target || !$(e.target).is(":input")) {
      return;
    }
    var oldActiveElement = document.activeElement;
    document.activeElement = e.target;
    if (e.type == "focus" && oldActiveElement && oldActiveElement != document.activeElement ) {
      // retrigger blur with document.activeElement set to the right thing
      $(oldActiveElement).trigger("blur");
    }
  }
  // this is the order in which events will fire if we shift focus using a tab
  document.addEventListener('keydown', fixupActiveElement, true);
  document.addEventListener('focus', fixupActiveElement, true);
  document.addEventListener('keyup', fixupActiveElement, true);
}
;

/*
 * jQuery validation plug-in 1.7
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
 * http://docs.jquery.com/Plugins/Validation
 *
 * Copyright (c) 2006 - 2008 JÃ¶rn Zaefferer
 *
 * $Id: jquery.validate.js 6403 2009-06-17 14:27:16Z joern.zaefferer $
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

//TODO theregexp changed from /$?\{(\d+)\}/g to /$\{(\d+)\}/g, why isnt' the former working??

(function($){$.extend($.fn,{validate:function(options){if(!this.length){options&&options.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing");return;}var validator=$.data(this[0],'validator');if(validator){return validator;}validator=new $.validator(options,this[0]);$.data(this[0],'validator',validator);if(validator.settings.onsubmit){this.find("input, button").filter(".cancel").click(function(){validator.cancelSubmit=true;});if(validator.settings.submitHandler){this.find("input, button").filter(":submit").click(function(){validator.submitButton=this;});}this.submit(function(event){if(validator.settings.debug)event.preventDefault();function handle(){if(validator.settings.submitHandler){if(validator.submitButton){var hidden=$("<input type='hidden'/>").attr("name",validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm);}validator.settings.submitHandler.call(validator,validator.currentForm);if(validator.submitButton){hidden.remove();}return false;}return true;}if(validator.cancelSubmit){validator.cancelSubmit=false;return handle();}if(validator.form()){if(validator.pendingRequest){validator.formSubmitted=true;return false;}return handle();}else{validator.focusInvalid();return false;}});}return validator;},valid:function(){if($(this[0]).is('form')){return this.validate().form();}else{var valid=true;var validator=$(this[0].form).validate();this.each(function(){valid&=validator.element(this);});return valid;}},removeAttrs:function(attributes){var result={},$element=this;$.each(attributes.split(/\s/),function(index,value){result[value]=$element.attr(value);$element.removeAttr(value);});return result;},rules:function(command,argument){var element=this[0];if(command){var settings=$.data(element.form,'validator').settings;var staticRules=settings.rules;var existingRules=$.validator.staticRules(element);switch(command){case"add":$.extend(existingRules,$.validator.normalizeRule(argument));staticRules[element.name]=existingRules;if(argument.messages)settings.messages[element.name]=$.extend(settings.messages[element.name],argument.messages);break;case"remove":if(!argument){delete staticRules[element.name];return existingRules;}var filtered={};$.each(argument.split(/\s/),function(index,method){filtered[method]=existingRules[method];delete existingRules[method];});return filtered;}}var data=$.validator.normalizeRules($.extend({},$.validator.metadataRules(element),$.validator.classRules(element),$.validator.attributeRules(element),$.validator.staticRules(element)),element);if(data.required){var param=data.required;delete data.required;data=$.extend({required:param},data);}return data;}});$.extend($.expr[":"],{blank:function(a){return!$.trim(""+a.value);},filled:function(a){return!!$.trim(""+a.value);},unchecked:function(a){return!a.checked;}});$.validator=function(options,form){this.settings=$.extend(true,{},$.validator.defaults,options);this.currentForm=form;this.init();};$.validator.format=function(source,params){if(arguments.length==1)return function(){var args=$.makeArray(arguments);args.unshift(source);return $.validator.format.apply(this,args);};if(arguments.length>2&&params.constructor!=Array){params=$.makeArray(arguments).slice(1);}if(params.constructor!=Array){params=[params];}$.each(params,function(i,n){source=source.replace(new RegExp("\\{"+i+"\\}","g"),n);});return source;};$.extend($.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusInvalid:true,errorContainer:$([]),errorLabelContainer:$([]),onsubmit:true,ignore:[],ignoreTitle:false,onfocusin:function(element){this.lastActive=element;if(this.settings.focusCleanup&&!this.blockFocusCleanup){this.settings.unhighlight&&this.settings.unhighlight.call(this,element,this.settings.errorClass,this.settings.validClass);this.errorsFor(element).hide();}},onfocusout:function(element){if(!this.checkable(element)&&(element.name in this.submitted||!this.optional(element))){this.element(element);}},onkeyup:function(element){if(element.name in this.submitted||element==this.lastElement){this.element(element);}},onclick:function(element){if(element.name in this.submitted)this.element(element);else if(element.parentNode.name in this.submitted)this.element(element.parentNode);},highlight:function(element,errorClass,validClass){$(element).addClass(errorClass).removeClass(validClass);},unhighlight:function(element,errorClass,validClass){$(element).removeClass(errorClass).addClass(validClass);}},setDefaults:function(settings){$.extend($.validator.defaults,settings);},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxlength:$.validator.format("Please enter no more than {0} characters."),minlength:$.validator.format("Please enter at least {0} characters."),rangelength:$.validator.format("Please enter a value between {0} and {1} characters long."),range:$.validator.format("Please enter a value between {0} and {1}."),max:$.validator.format("Please enter a value less than or equal to {0}."),min:$.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){this.labelContainer=$(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&this.labelContainer||$(this.currentForm);this.containers=$(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var groups=(this.groups={});$.each(this.settings.groups,function(key,value){$.each(value.split(/\s/),function(index,name){groups[name]=key;});});var rules=this.settings.rules;$.each(rules,function(key,value){rules[key]=$.validator.normalizeRule(value);});function delegate(event){var validator=$.data(this[0].form,"validator"),eventType="on"+event.type.replace(/^validate/,"");validator.settings[eventType]&&validator.settings[eventType].call(validator,this[0]);}$(this.currentForm).validateDelegate(":text, :password, :file, select, textarea","focusin focusout keyup",delegate).validateDelegate(":radio, :checkbox, select, option","click",delegate);if(this.settings.invalidHandler)$(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler);},form:function(){this.checkForm();$.extend(this.submitted,this.errorMap);this.invalid=$.extend({},this.errorMap);if(!this.valid())$(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid();},checkForm:function(){this.prepareForm();for(var i=0,elements=(this.currentElements=this.elements());elements[i];i++){this.check(elements[i]);}return this.valid();},element:function(element){element=this.clean(element);this.lastElement=element;this.prepareElement(element);this.currentElements=$(element);var result=this.check(element);if(result){delete this.invalid[element.name];}else{this.invalid[element.name]=true;}if(!this.numberOfInvalids()){this.toHide=this.toHide.add(this.containers);}this.showErrors();return result;},showErrors:function(errors){if(errors){$.extend(this.errorMap,errors);this.errorList=[];for(var name in errors){this.errorList.push({message:errors[name],element:this.findByName(name)[0]});}this.successList=$.grep(this.successList,function(element){return!(element.name in errors);});}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors();},resetForm:function(){if($.fn.resetForm)$(this.currentForm).resetForm();this.submitted={};this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass);},numberOfInvalids:function(){return this.objectLength(this.invalid);},objectLength:function(obj){var count=0;for(var i in obj)count++;return count;},hideErrors:function(){this.addWrapper(this.toHide).hide();},valid:function(){return this.size()==0;},size:function(){return this.errorList.length;},focusInvalid:function(){if(this.settings.focusInvalid){try{$(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin");}catch(e){}}},findLastActive:function(){var lastActive=this.lastActive;return lastActive&&$.grep(this.errorList,function(n){return n.element.name==lastActive.name;}).length==1&&lastActive;},elements:function(){var validator=this,rulesCache={};return $([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){!this.name&&validator.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in rulesCache||!validator.objectLength($(this).rules()))return false;rulesCache[this.name]=true;return true;});},clean:function(selector){return $(selector)[0];},errors:function(){return $(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext);},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=$([]);this.toHide=$([]);this.currentElements=$([]);},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers);},prepareElement:function(element){this.reset();this.toHide=this.errorsFor(element);},check:function(element){element=this.clean(element);if(this.checkable(element)){element=this.findByName(element.name)[0];}var rules=$(element).rules();var dependencyMismatch=false;for(method in rules){var rule={method:method,parameters:rules[method]};try{var result=$.validator.methods[method].call(this,element.value.replace(/\r/g,""),element,rule.parameters);if(result=="dependency-mismatch"){dependencyMismatch=true;continue;}dependencyMismatch=false;if(result=="pending"){this.toHide=this.toHide.not(this.errorsFor(element));return;}if(!result){this.formatAndAdd(element,rule);return false;}}catch(e){this.settings.debug&&window.console&&console.log("exception occured when checking element "+element.id
+", check the '"+rule.method+"' method",e);throw e;}}if(dependencyMismatch)return;if(this.objectLength(rules))this.successList.push(element);return true;},customMetaMessage:function(element,method){if(!$.metadata)return;var meta=this.settings.meta?$(element).metadata()[this.settings.meta]:$(element).metadata();return meta&&meta.messages&&meta.messages[method];},customMessage:function(name,method){var m=this.settings.messages[name];return m&&(m.constructor==String?m:m[method]);},findDefined:function(){for(var i=0;i<arguments.length;i++){if(arguments[i]!==undefined)return arguments[i];}return undefined;},defaultMessage:function(element,method){return this.findDefined(this.customMessage(element.name,method),this.customMetaMessage(element,method),!this.settings.ignoreTitle&&element.title||undefined,$.validator.messages[method],"<strong>Warning: No message defined for "+element.name+"</strong>");},formatAndAdd:function(element,rule){var message=this.defaultMessage(element,rule.method),theregex=/$\{(\d+)\}/g;if(typeof message=="function"){message=message.call(this,rule.parameters,element);}else if(theregex.test(message)){message=jQuery.format(message.replace(theregex,'{$1}'),rule.parameters);}this.errorList.push({message:message,element:element});this.errorMap[element.name]=message;this.submitted[element.name]=message;},addWrapper:function(toToggle){if(this.settings.wrapper)toToggle=toToggle.add(toToggle.parent(this.settings.wrapper));return toToggle;},defaultShowErrors:function(){for(var i=0;this.errorList[i];i++){var error=this.errorList[i];this.settings.highlight&&this.settings.highlight.call(this,error.element,this.settings.errorClass,this.settings.validClass);this.showLabel(error.element,error.message);}if(this.errorList.length){this.toShow=this.toShow.add(this.containers);}if(this.settings.success){for(var i=0;this.successList[i];i++){this.showLabel(this.successList[i]);}}if(this.settings.unhighlight){for(var i=0,elements=this.validElements();elements[i];i++){this.settings.unhighlight.call(this,elements[i],this.settings.errorClass,this.settings.validClass);}}this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show();},validElements:function(){return this.currentElements.not(this.invalidElements());},invalidElements:function(){return $(this.errorList).map(function(){return this.element;});},showLabel:function(element,message){var label=this.errorsFor(element);if(label.length){label.removeClass().addClass(this.settings.errorClass);label.attr("generated")&&label.html(message);}else{label=$("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(element),generated:true}).addClass(this.settings.errorClass).html(message||"");if(this.settings.wrapper){label=label.hide().show().wrap("<"+this.settings.wrapper+"/>").parent();}if(!this.labelContainer.append(label).length)this.settings.errorPlacement?this.settings.errorPlacement(label,$(element)):label.insertAfter(element);}if(!message&&this.settings.success){label.text("");typeof this.settings.success=="string"?label.addClass(this.settings.success):this.settings.success(label);}this.toShow=this.toShow.add(label);},errorsFor:function(element){var name=this.idOrName(element);return this.errors().filter(function(){return $(this).attr('for')==name;});},idOrName:function(element){return this.groups[element.name]||(this.checkable(element)?element.name:element.id||element.name);},checkable:function(element){return/radio|checkbox/i.test(element.type);},findByName:function(name){var form=this.currentForm;return $(document.getElementsByName(name)).map(function(index,element){return element.form==form&&element.name==name&&element||null;});},getLength:function(value,element){switch(element.nodeName.toLowerCase()){case'select':return $("option:selected",element).length;case'input':if(this.checkable(element))return this.findByName(element.name).filter(':checked').length;}return value.length;},depend:function(param,element){return this.dependTypes[typeof param]?this.dependTypes[typeof param](param,element):true;},dependTypes:{"boolean":function(param,element){return param;},"string":function(param,element){return!!$(param,element.form).length;},"function":function(param,element){return param(element);}},optional:function(element){return!$.validator.methods.required.call(this,$.trim(element.value),element)&&"dependency-mismatch";},startRequest:function(element){if(!this.pending[element.name]){this.pendingRequest++;this.pending[element.name]=true;}},stopRequest:function(element,valid){this.pendingRequest--;if(this.pendingRequest<0)this.pendingRequest=0;delete this.pending[element.name];if(valid&&this.pendingRequest==0&&this.formSubmitted&&this.form()){$(this.currentForm).submit();this.formSubmitted=false;}else if(!valid&&this.pendingRequest==0&&this.formSubmitted){$(this.currentForm).triggerHandler("invalid-form",[this]);this.formSubmitted=false;}},previousValue:function(element){return $.data(element,"previousValue")||$.data(element,"previousValue",{old:null,valid:true,message:this.defaultMessage(element,"remote")});}},classRuleSettings:{required:{required:true},email:{email:true},url:{url:true},date:{date:true},dateISO:{dateISO:true},dateDE:{dateDE:true},number:{number:true},numberDE:{numberDE:true},digits:{digits:true},creditcard:{creditcard:true}},addClassRules:function(className,rules){className.constructor==String?this.classRuleSettings[className]=rules:$.extend(this.classRuleSettings,className);},classRules:function(element){var rules={};var classes=$(element).attr('class');classes&&$.each(classes.split(' '),function(){if(this in $.validator.classRuleSettings){$.extend(rules,$.validator.classRuleSettings[this]);}});return rules;},attributeRules:function(element){var rules={};var $element=$(element);for(method in $.validator.methods){var value=$element.attr(method);if(value){rules[method]=value;}}if(rules.maxlength&&/-1|2147483647|524288/.test(rules.maxlength)){delete rules.maxlength;}return rules;},metadataRules:function(element){if(!$.metadata)return{};var meta=$.data(element.form,'validator').settings.meta;return meta?$(element).metadata()[meta]:$(element).metadata();},staticRules:function(element){var rules={};var validator=$.data(element.form,'validator');if(validator.settings.rules){rules=$.validator.normalizeRule(validator.settings.rules[element.name])||{};}return rules;},normalizeRules:function(rules,element){$.each(rules,function(prop,val){if(val===false){delete rules[prop];return;}if(val.param||val.depends){var keepRule=true;switch(typeof val.depends){case"string":keepRule=!!$(val.depends,element.form).length;break;case"function":keepRule=val.depends.call(element,element);break;}if(keepRule){rules[prop]=val.param!==undefined?val.param:true;}else{delete rules[prop];}}});$.each(rules,function(rule,parameter){rules[rule]=$.isFunction(parameter)?parameter(element):parameter;});$.each(['minlength','maxlength','min','max'],function(){if(rules[this]){rules[this]=Number(rules[this]);}});$.each(['rangelength','range'],function(){if(rules[this]){rules[this]=[Number(rules[this][0]),Number(rules[this][1])];}});if($.validator.autoCreateRanges){if(rules.min&&rules.max){rules.range=[rules.min,rules.max];delete rules.min;delete rules.max;}if(rules.minlength&&rules.maxlength){rules.rangelength=[rules.minlength,rules.maxlength];delete rules.minlength;delete rules.maxlength;}}if(rules.messages){delete rules.messages;}return rules;},normalizeRule:function(data){if(typeof data=="string"){var transformed={};$.each(data.split(/\s/),function(){transformed[this]=true;});data=transformed;}return data;},addMethod:function(name,method,message){$.validator.methods[name]=method;$.validator.messages[name]=message!=undefined?message:$.validator.messages[name];if(method.length<3){$.validator.addClassRules(name,$.validator.normalizeRule(name));}},methods:{required:function(value,element,param){if(!this.depend(param,element))return"dependency-mismatch";switch(element.nodeName.toLowerCase()){case'select':var val=$(element).val();return val&&val.length>0;case'input':if(this.checkable(element))return this.getLength(value,element)>0;default:return $.trim(value).length>0;}},remote:function(value,element,param){if(this.optional(element))return"dependency-mismatch";var previous=this.previousValue(element);if(!this.settings.messages[element.name])this.settings.messages[element.name]={};previous.originalMessage=this.settings.messages[element.name].remote;this.settings.messages[element.name].remote=previous.message;param=typeof param=="string"&&{url:param}||param;if(previous.old!==value){previous.old=value;var validator=this;this.startRequest(element);var data={};data[element.name]=value;$.ajax($.extend(true,{url:param,mode:"abort",port:"validate"+element.name,dataType:"json",data:data,success:function(response){validator.settings.messages[element.name].remote=previous.originalMessage;var valid=response===true;if(valid){var submitted=validator.formSubmitted;validator.prepareElement(element);validator.formSubmitted=submitted;validator.successList.push(element);validator.showErrors();}else{var errors={};var message=(previous.message=response||validator.defaultMessage(element,"remote"));errors[element.name]=$.isFunction(message)?message(value):message;validator.showErrors(errors);}previous.valid=valid;validator.stopRequest(element,valid);}},param));return"pending";}else if(this.pending[element.name]){return"pending";}return previous.valid;},minlength:function(value,element,param){return this.optional(element)||this.getLength($.trim(value),element)>=param;},maxlength:function(value,element,param){return this.optional(element)||this.getLength($.trim(value),element)<=param;},rangelength:function(value,element,param){var length=this.getLength($.trim(value),element);return this.optional(element)||(length>=param[0]&&length<=param[1]);},min:function(value,element,param){return this.optional(element)||value>=param;},max:function(value,element,param){return this.optional(element)||value<=param;},range:function(value,element,param){return this.optional(element)||(value>=param[0]&&value<=param[1]);},email:function(value,element){return this.optional(element)||/^((([a-z]|\d|[!#$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);},url:function(value,element){return this.optional(element)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);},date:function(value,element){return this.optional(element)||!/Invalid|NaN/.test(new Date(value));},dateISO:function(value,element){return this.optional(element)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value);},number:function(value,element){return this.optional(element)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);},digits:function(value,element){return this.optional(element)||/^\d+$/.test(value);},creditcard:function(value,element){if(this.optional(element))return"dependency-mismatch";if(/[^0-9-]+/.test(value))return false;var nCheck=0,nDigit=0,bEven=false;value=value.replace(/\D/g,"");for(var n=value.length-1;n>=0;n--){var cDigit=value.charAt(n);var nDigit=parseInt(cDigit,10);if(bEven){if((nDigit*=2)>9)nDigit-=9;}nCheck+=nDigit;bEven=!bEven;}return(nCheck%10)==0;},accept:function(value,element,param){param=typeof param=="string"?param.replace(/,/g,'|'):"png|jpe?g|gif";return this.optional(element)||value.match(new RegExp(".("+param+")$","i"));},equalTo:function(value,element,param){var target=$(param).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){$(element).valid();});return value==target.val();}}});$.format=$.validator.format;})(jQuery);;(function($){var ajax=$.ajax;var pendingRequests={};$.ajax=function(settings){settings=$.extend(settings,$.extend({},$.ajaxSettings,settings));var port=settings.port;if(settings.mode=="abort"){if(pendingRequests[port]){pendingRequests[port].abort();}return(pendingRequests[port]=ajax.apply(this,arguments));}return ajax.apply(this,arguments);};})(jQuery);;(function($){if(!jQuery.event.special.focusin&&!jQuery.event.special.focusout&&document.addEventListener){$.each({focus:'focusin',blur:'focusout'},function(original,fix){$.event.special[fix]={setup:function(){this.addEventListener(original,handler,true);},teardown:function(){this.removeEventListener(original,handler,true);},handler:function(e){arguments[0]=$.event.fix(e);arguments[0].type=fix;return $.event.handle.apply(this,arguments);}};function handler(e){e=$.event.fix(e);e.type=fix;return $.event.handle.call(this,e);}});};$.extend($.fn,{validateDelegate:function(delegate,type,handler){return this.bind(type,function(event){var target=$(event.target);if(target.is(delegate)){return handler.apply(target,arguments);}});}});})(jQuery);;

/*
 * Metadata - jQuery plugin for parsing metadata from elements
 *
 * Copyright (c) 2006 John Resig, Yehuda Katz, Jï¿½Ã¶rn Zaefferer, Paul McLanahan
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id: jquery.metadata.js 4187 2007-12-16 17:15:27Z joern.zaefferer $
 *
 */

/**
 * Sets the type of metadata to use. Metadata is encoded in JSON, and each property
 * in the JSON will become a property of the element itself.
 *
 * There are three supported types of metadata storage:
 *
 *   attr:  Inside an attribute. The name parameter indicates *which* attribute.
 *          
 *   class: Inside the class attribute, wrapped in curly braces: { }
 *   
 *   elem:  Inside a child element (e.g. a script tag). The
 *          name parameter indicates *which* element.
 *          
 * The metadata for an element is loaded the first time the element is accessed via jQuery.
 *
 * As a result, you can define the metadata type, use $(expr) to load the metadata into the elements
 * matched by expr, then redefine the metadata type and run another $(expr) for other elements.
 * 
 * @name $.metadata.setType
 *
 * @example <p id="one" class="some_class {item_id: 1, item_label: 'Label'}">This is a p</p>
 * @before $.metadata.setType("class")
 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
 * @desc Reads metadata from the class attribute
 * 
 * @example <p id="one" class="some_class" data="{item_id: 1, item_label: 'Label'}">This is a p</p>
 * @before $.metadata.setType("attr", "data")
 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
 * @desc Reads metadata from a "data" attribute
 * 
 * @example <p id="one" class="some_class"><script>{item_id: 1, item_label: 'Label'}</script>This is a p</p>
 * @before $.metadata.setType("elem", "script")
 * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
 * @desc Reads metadata from a nested script element
 * 
 * @param String type The encoding type
 * @param String name The name of the attribute to be used to get metadata (optional)
 * @cat Plugins/Metadata
 * @descr Sets the type of encoding to be used when loading metadata for the first time
 * @type undefined
 * @see metadata()
 */

(function($) {

$.extend({
	metadata : {
		defaults : {
			type: 'class',
			name: 'metadata',
			cre: /({.*})/,
			single: 'metadata'
		},
		setType: function( type, name ){
			this.defaults.type = type;
			this.defaults.name = name;
		},
		get: function( elem, opts ){
			var settings = $.extend({},this.defaults,opts);
			// check for empty string in single property
			if ( !settings.single.length ) settings.single = 'metadata';
			
			var data = $.data(elem, settings.single);
			// returned cached data if it already exists
			if ( data ) return data;
			
			data = "{}";
			
			if ( settings.type == "class" ) {
				var m = settings.cre.exec( elem.className );
				if ( m )
					data = m[1];
			} else if ( settings.type == "elem" ) {
				if( !elem.getElementsByTagName )
					return undefined;
				var e = elem.getElementsByTagName(settings.name);
				if ( e.length )
					data = $.trim(e[0].innerHTML);
			} else if ( elem.getAttribute != undefined ) {
				var attr = elem.getAttribute( settings.name );
				if ( attr )
					data = attr;
			}
			
			if ( data.indexOf( '{' ) <0 )
			data = "{" + data + "}";
			
			data = eval("(" + data + ")");
			
			$.data( elem, settings.single, data );
			return data;
		}
	}
});

/**
 * Returns the metadata object for the first member of the jQuery object.
 *
 * @name metadata
 * @descr Returns element's metadata object
 * @param Object opts An object contianing settings to override the defaults
 * @type jQuery
 * @cat Plugins/Metadata
 */
$.fn.metadata = function( opts ){
	return $.metadata.get( this[0], opts );
};

})(jQuery);;
var JyskeBank = JyskeBank || {};

JyskeBank.validationPatterns = {
  accountnumber: /^\d{6}\-?\d{1}$/,
  checkdigit: /^\d{3}$/,
  cpr: /^\d{6}[ \-]?\d{4}$/,
  email: /^((([a-z]|\d|[!#$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/,
  integer: /^-?\d+$/,
  registrationnumber: /^\d{4}$/,
  zip: /^\d{4}$/
};

JyskeBank.validation = {
  validator: null,
  
  ready: function() {
    this.addCustomMethods();
  },
  
  behaviors: function(context) {
    var $forms = $(context).find('form:not(.validation-processed)');
    if ($forms.length) {
      
      // Set default options.
      // For available methods see: http://docs.jquery.com/Plugins/Validation/validate#toptions
      $.validator.messages.required = 'Dette felt er påkrævet';
      $.validator.setDefaults({ 
        errorElement: 'li',
        errorLabelContainer: '#error-container',
        ignore: ':hidden',
        messages: {
          required: 'Dette felt er påkrævet',
          cpr: {
            required:'Angiv venligst dit CPR-nummer',
            cpr:'Angiv venligst et gyldigt CPR-nummer'
          },
          email: {
            required: 'Angiv venligst din e-mail adresse',
            email: 'Angiv venligst en gyldig e-mail adresse'
          },
          phone: {
            required:'Angiv venligst dit telefonnummer',
            phone:'Angiv venligst et gyldigt telefonnummer'
          },
          zip: {
            required:'Angiv venligst dit postnummer',
            zip:'Angiv venligst et gyldigt postnummer'
          }
        }
      });
      
      if ($forms.length == 1) {
        if (!$forms.hasClass('no-error-container')) {
          // Make sure the error container excits.
          if (!$('#error-container').length) {
            $('#admin').find('div.inner').prepend('<ul id="error-container" />');
          }
          JyskeBank.validation.validator = $forms.addClass('validation-processed').validate();
        }
        else {
          JyskeBank.validation.validator = $forms.addClass('validation-processed').validate({
            errorElement: 'span'
          });
        }
      }
      else {
        $forms.each(function(i) {
          if (!$(this).hasClass('no-error-container')) {
            if ($('#error-container').length && i === 0) {
              var id = 'error-container';
            }
            else {
              var id = 'error-container-'+ i;
              $(this).before('<ul id="' + id + '" class="error-container" />');
            }
            $(this).addClass('validation-processed').validate({
              errorLabelContainer: '#' + id
            });
          }
          else {
            $(this).addClass('validation-processed').validate({
              errorElement: 'span'
            });
          }
        });
      }
    }
  },

  addCustomMethods: function() {
    // Custom validation method for cpr number validation.
    $.validator.addMethod('cpr', function(value, element) {
      return this.optional(element) || JyskeBank.validationPatterns.cpr.test(value);
    }, 'Angiv venligst et gyldigt CPR-nummer');
    
    // Custom validation method for email validation.
    $.validator.addMethod('email', function(value, element) {
      return this.optional(element) || JyskeBank.validationPatterns.email.test(value);
    }, 'Angiv venligst en gyldig e-mail adresse');
    
    // Custom validation method for phone validation.
    $.validator.addMethod('phone', function(value, element) {
      return this.optional(element) || value.length;
    }, 'Angiv venligst et gyldigt telefonnummer');
    
    // Custom validation method for zip code validation.
    $.validator.addMethod('zip', function(value, element) {
      return this.optional(element) || JyskeBank.validationPatterns.zip.test(value);
    }, 'Angiv venligst et gyldigt postnummer');

  }
};
;
function jbOpenDialog(cmd) {
  var boxcontent = '<p>Der er tale om et overslag, ikke en pr&aelig;cis beregning.<br /></p>';
  boxcontent += '<p>Overslaget er kun korrekt, hvis de angivne bel&oslash;b svarer n&oslash;jagtig til de gennemsnitlige saldi p&aring; dine konti i l&oslash;bet af et &aring;r.<br /></p>';
  boxcontent += '<p>L&aring;n ydes kun p&aring; baggrund af en individuel kreditvurdering. Renten fasts&aelig;ttes individuelt og er variabel, og overslaget tager derfor ikke h&oslash;jde for, at Jyske Bank m&aring;ske kan tilbyde dig andre satser end dit nuv&aelig;rende pengeinstitut eller de satser, der indg&aring;r i beregningen. Henvend dig i Jyske Bank og h&oslash;r n&aelig;rmere om dine muligheder.<br /></p>';
  boxcontent += '<p>Beregningen af &Aring;OP er baseret p&aring; en l&oslash;betid p&aring; 5 &aring;r. Der er medregnet etableringsomkostninger p&aring; 600 kr. + 1% af l&aring;net. Omkostningen tr&aelig;kkes fra l&aring;nebel&oslash;bet, inden pengene udbetales. I beregningen er det forudsat, at banken ikke stiller krav om sikkerhed.</p>';

  Shadowbox.open({
    content: boxcontent,
    player: 'html',
    title: 'Om beregningen',
    height: 300,
    width: 600
  });
  return false;
}

var JyskeBank = JyskeBank || {};

JyskeBank.newCustomer = {
  ready: function() {
    JyskeBank.newCustomer.placeholder();
    
    if ($('#departments-map').length) {
      JyskeBank.newCustomer.departments();
    }
  },
  
  load: function() {
    $('.box-green-top li.alternate a').bind('click', this.secondaryTab);
    $('.box-green-top li:not(.alternate) a').bind('click', this.primaryTab);
    $('#node-252 .box-green-top li.alternate a, #node-257 .box-green-top li.alternate a').click();
  },
  
  placeholder: function() {
    var supported = !!('placeholder' in document.createElement('input'));
    if (!supported) {
      $('#new-customer-contactbox-form input.form-text, #new-customer-orderbox-form input.form-text').each(function() {
        var $this = $(this);
        var text = $this.attr('placeholder');
        if (text) {
          $('<div/>').insertAfter(this).addClass('placeholder').attr('id', this.id + '-placeholder').text(text).hide().bind('click', function() {
            $this.trigger('focus');
          });
        }
      }).focus(function() {
        $(this).siblings('div.placeholder').hide();
      })
      .blur(function() {
        if ($.trim($(this).val()) === '') {
          $(this).siblings('div.placeholder').show();
        }
      }).trigger('blur');
    }
  },
  
  primaryTab: function() {
    $('.box-green-top, .box-green').removeClass('secondary');
    $('#edit-current-tab').val('primary');
    $('#node-259 #block-new_customer-0').hide();
    $('#node-259 #block-new_customer-1').show();
    return false;
  },
  
  secondaryTab: function() {
    $('.box-green-top, .box-green').addClass('secondary');
    $('#edit-current-tab').val('secondary');
    $('#node-259 #block-new_customer-1').hide();
    $('#node-259 #block-new_customer-0').show();
    return false;
  },
  
  departments: function() {
    var query = Drupal.settings.newCustomer.query;
    if (query) {
      query = query.toLowerCase();
    }
    var isZip = Drupal.settings.newCustomer.isZip;
    var file = Drupal.settings.basePath + Drupal.settings.newCustomer.path + '/departments.json';
    $.getJSON(file, function(data) {
      // Parse JSON and markers array.
      var markers = [];
      var hits = '';
      var departmentMatches = '';
      var departmentsNearby = '';
      $.each(data.departments, function(i, item) {
        var marker = {
          html: '<a href="' + item.url + '"><strong>Jyske Bank - ' + item.name + '</strong></a><br/>' + item.street + '<br/>' + item.zipcode + ' ' + item.city,
          latitude: item.gLatLng[0],
          longitude: item.gLatLng[1]
        };
        
        // Zip code search.
        if (query && isZip) {
          if (item.zipcode === query) {
            markers.push(marker);
            departmentMatches += JyskeBank.newCustomer.formatDepartment(item);
          }
          else if (Number(item.zipcode) > Number(query) - 300 && Number(item.zipcode) < Number(query) + 300) {
            markers.push(marker);
            departmentsNearby += JyskeBank.newCustomer.formatDepartment(item);
          }
        }
        // City search.
        else if (query && !isZip) {
          if (item.city.toLowerCase().indexOf(query) != -1) {
            markers.push(marker);
            departmentMatches += JyskeBank.newCustomer.formatDepartment(item);
          }
        }
        // No search.
        else {
          markers.push(marker);
        }
      });
      
      // Build map.
      var settings = {
        address: 'Kalundborg, Danmark',
        zoom: 7,
        markers: markers,
        controls: ['GLargeMapControl3D'],
        scrollwheel: true,
        maptype: G_NORMAL_MAP,
        html_prepend: '<div class="gmap_marker">',
        html_append: '</div>',
        icon: {
          image: Drupal.settings.basePath + Drupal.settings.newCustomer.path + '/images/gmap-pin.png',
          shadow: false,
          shadowsize: false,
          iconsize: [12, 20],
          iconanchor: [4, 19],
          infowindowanchor: [8, 2]
        }
      };
      
      if (query) {
        $('#departments').addClass('results');
        
        // Update back link.
        $('#departments').find('a.back')
          .attr('href', Drupal.settings.basePath + 'privat/nykunde/find-afdeling')
          .text(Drupal.t('Se alle @count afdelinger på stort kort', {'@count': data.departments.length}));
        
        // If there are hits.
        if (markers.length) {
          if (isZip) {
            settings.address = query + ', Danmark';
            settings.zoom = 11;
          }
          else {
            var latitude = 0;
            var longitude = 0;
            
            // Only one hit, use lat/lon.
            if (markers.length === 1) {
              latitude: markers[0].latitude;
              longitude = markers[0].longitude;
              settings.zoom = 12;
            }
            // More than one hit, find average lat/lon.
            else {
              var minLatitude = markers[0].latitude;
              var maxLatitude = markers[0].latitude;
              var minLongitude = markers[0].longitude;
              var maxLongitude = markers[0].longitude;
              $.each(markers, function(i, item) {
                latitude += item.latitude;
                longitude += item.longitude;
                minLatitude = Math.min(minLatitude, item.latitude);
                maxLatitude = Math.max(maxLatitude, item.latitude);
                minLongitude = Math.min(minLongitude, item.longitude);
                maxLongitude = Math.max(maxLongitude, item.longitude);
              });
              var spanLatitude = maxLatitude - minLatitude;
              var spanLongitude = maxLongitude - minLongitude;
              var maxSpan = Math.max(1, Math.max(spanLatitude, spanLongitude));
              settings.zoom += Math.round(3 / maxSpan);
              latitude /= markers.length;
              longitude /= markers.length;
            }
            settings.address = '';
            settings.latitude = latitude;
            settings.longitude = longitude;
          }
          
          if (departmentMatches) {
            $('#departments-list').append('<div id="departments-matches"><h2>Resultater for \'' + query + '\'</h2><ul>' + departmentMatches + '</ul></div>');
          }
          if (departmentsNearby) {
            $('#departments-list').append('<div id="departments-nearby"><h2>Afdelinger i nærheden af \'' + query + '\'</h2><ul>' + departmentsNearby + '</ul></div>');
          }
        }
        // No hits.
        else {
          $('#departments-list').append('<h2>' + Drupal.t('Der findes desværre ingen afdelinger der svarer til dine søgekriterier.') + '</h2>');
        }
      }
      $('#departments-map').gMap(settings);
    });
  },
  
  formatDepartment: function(item) {
    var html = '';
    html += '<li>';
    html += '<strong>' + item.name + '</strong>';
    html += '<div>' + item.street + '</div>';
    html += '<div>' + item.zipcode +' ' + item.city + '</div>';
    html += '<a href="' + item.url +'">Mere information</a>';
    html += '</li>';
    return html;
  }
};
;
// $Id$

var JyskeBank = JyskeBank || {};

JyskeBank.jyskeBankTv = {
  load: function() {
    /*
    $('div.jyskebanktv').find('li').each(function() {
      var href = $(this).find('h3 a').attr('href');
      if (href) {
        $(this).addClass('clickable').click(function() {
          document.location.url = href;
        });
      }
    });
    */
  }
};
;
/*
 * 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 (c) Underware, 2002. All rights reserved.
 * 
 * Trademark:
 * Sauna is a trademark of Underware.
 * 
 * Description:
 * Copyright (c) Underware, 2002. All rights reserved.
 * 
 * Manufacturer:
 * Underware
 * 
 * Designer:
 * http://www.underware.nl
 * 
 * Vendor URL:
 * http://www.underware.nl
 * 
 * License information:
 * http://www.underware.nl
 */
Cufon.registerFont((function(f){var b=_cufon_bridge_={p:[{"d":"144,-200r-82,200v-1,9,-19,7,-21,0r80,-196v4,-12,16,-12,23,-4","k":{"*":-25,"\/":29,"!":-14,".":22,",":22,"\u00c5":14,"Y":-14,"X":-11,"W":-14,"V":-14,"U":-11,"T":-22,"R":-11,"P":-11,"N":-11,"M":-11,"L":-11,"K":-11,"J":-11,"I":-11,"H":-11,"F":-11,"E":-11,"D":-11,"B":-11,"A":14}},{"d":"95,-145v21,0,42,3,46,15r0,192v-8,3,-29,4,-23,-14r1,-76v-1,19,-23,30,-45,29v-40,0,-62,-25,-61,-68v2,-50,31,-78,82,-78xm36,-71v-10,58,58,69,82,35r0,-87v-41,-12,-86,6,-82,52","w":164,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"153,-30v12,16,28,18,49,11v13,15,-6,23,-27,23v-20,0,-28,-7,-37,-19v-32,24,-125,31,-120,-31v2,-28,18,-49,46,-53v-37,-28,-26,-89,34,-89v23,0,39,6,30,23v-34,-19,-91,8,-57,45r70,77v12,-16,19,-40,12,-64v10,-10,22,1,22,17v0,25,-10,45,-22,60xm40,-50v-3,47,63,41,87,22r-55,-60v-18,3,-31,18,-32,38","w":200,"k":{"Y":14,"T":14}},{"d":"48,-201v25,0,36,16,36,42v0,25,-14,43,-39,43v-23,0,-36,-15,-36,-38v-1,-26,14,-48,39,-47xm46,-131v15,0,19,-11,20,-27v0,-15,-4,-28,-19,-28v-15,0,-19,12,-19,29v1,16,3,26,18,26xm33,3v-5,10,-21,9,-23,-2r130,-190v8,-12,22,-15,28,-3xm135,-77v25,0,36,16,36,41v0,26,-14,44,-39,44v-23,0,-36,-15,-36,-39v0,-26,13,-46,39,-46xm133,-7v15,1,19,-12,19,-28v0,-15,-3,-27,-18,-27v-16,0,-20,13,-20,29v0,16,5,25,19,26"},{"d":"24,-10v-4,-9,0,-19,13,-19v21,0,36,13,35,32v-1,22,-14,39,-36,41v-5,0,-8,-3,-8,-9v11,-5,22,-15,22,-27v1,-14,-13,-18,-26,-18xm45,-118v11,0,15,6,15,15v0,10,-5,16,-17,16v-11,0,-17,-5,-17,-15v1,-10,8,-16,19,-16","w":86,"k":{"Y":14,"W":14,"V":14,"J":-14}},{"d":"24,-14v7,-68,-17,-168,11,-196r11,2r0,131v28,-21,50,-48,82,-65v7,0,11,6,8,11r-58,50r51,65v7,0,18,-2,18,6v0,13,-32,15,-39,6r-47,-64r-15,12r0,55v-10,4,-24,4,-22,-13","w":151,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"127,-119v-2,10,-25,12,-26,0r-31,-71r-46,79v-20,1,-15,-15,-6,-28v15,-23,27,-51,44,-71v6,-4,19,-1,24,2","w":136},{"d":"26,-166v-8,-8,-3,-20,12,-20r120,0v8,25,-6,31,-18,55r-64,130v-4,9,-24,7,-26,-2r86,-163r-110,0"},{"d":"108,-67v2,-16,58,-15,61,-3r0,51v-8,16,-40,22,-73,21v-57,0,-81,-28,-81,-85v0,-66,34,-103,101,-104v26,-1,65,5,46,29v-56,-25,-131,-2,-122,70v-8,65,50,84,105,65r0,-36r-36,-2v-1,-2,-1,-4,-1,-6","w":191},{"d":"46,-203v11,0,14,6,14,14v0,8,-5,14,-15,14v-10,0,-16,-5,-16,-14v0,-8,8,-14,17,-14xm6,-130v0,-18,49,-15,49,-3r0,132v-10,4,-23,3,-23,-13r1,-111v-9,-1,-27,4,-27,-5","w":83},{"d":"54,-202v42,2,78,15,81,55v4,55,-84,20,-74,88v-13,4,-21,-3,-21,-19v-2,-49,67,-25,74,-66v-4,-34,-47,-41,-84,-36v-12,-14,2,-23,24,-22xm59,-30v11,0,16,5,16,15v0,10,-4,16,-17,15v-11,0,-17,-3,-17,-14v1,-10,7,-16,18,-16","w":148,"k":{".":36}},{"d":"34,-208v-1,-10,14,-12,21,-8r-1,278v1,9,-13,9,-19,6","w":89},{"d":"117,-139v16,-7,23,10,9,20r-40,47r39,56v6,1,17,-4,15,6v3,11,-22,14,-33,9v-13,-16,-24,-36,-36,-53r-42,54v-19,6,-22,-14,-8,-24r39,-46r-37,-54v-8,0,-19,3,-19,-7v0,-7,8,-10,24,-10v12,0,12,1,17,9r30,45","w":145,"k":{"T":11}},{"d":"51,-47v-9,39,36,34,55,22v5,2,7,5,7,10v-2,16,-26,17,-48,17v-56,3,-32,-70,-37,-124v-8,-2,-24,5,-24,-8v0,-7,8,-10,25,-10v-2,-20,-4,-50,23,-39r-1,39r52,0v9,18,-12,20,-32,18r-20,0r0,75","w":118,"k":{"Y":11,"W":7,"V":7}},{"d":"13,-66v2,-53,36,-86,92,-77v5,-11,11,-36,27,-22r-12,27v21,11,31,31,31,62v0,53,-35,84,-88,76v-4,11,-12,33,-25,19r10,-23v-22,-10,-35,-30,-35,-62xm98,-127v-62,-19,-80,77,-43,106xm70,-16v60,15,75,-72,42,-104","w":164,"k":{"W":11,"V":11,"T":11}},{"d":"109,-186v11,-5,25,0,25,15r0,116v11,3,35,-7,36,6v1,15,-21,12,-36,12v0,20,5,49,-23,38r0,-38r-98,0v-5,-4,-5,-18,1,-23xm111,-164r-78,109r78,0r0,-109"},{"d":"92,-187v47,1,69,29,68,80v-1,68,-18,108,-80,109v-28,0,-62,-8,-54,-34v2,-2,4,-4,7,-5v14,21,73,30,90,3v9,-15,13,-34,15,-60v-19,49,-119,38,-119,-26v0,-43,29,-68,73,-67xm42,-126v0,55,74,55,96,24v-2,-37,-10,-68,-49,-68v-30,0,-47,16,-47,44"},{"d":"90,-131v2,-25,-14,-73,23,-61v-2,16,-1,36,-1,54v0,11,-14,10,-22,7xm31,-131v2,-25,-14,-73,23,-61v-2,16,-1,36,-1,54v0,11,-14,10,-22,7","w":142,"k":{"\/":54,".":36,",":36,"\u00c6":36,"\u00c5":25,"A":25}},{"d":"30,-203v-2,-18,13,-22,26,-17r-3,154v-12,2,-21,2,-21,-14xm44,-30v11,0,15,6,15,15v0,10,-4,16,-17,15v-11,0,-17,-4,-17,-14v1,-10,8,-16,19,-16","w":84,"k":{"\\":-14}},{"d":"50,-112v3,-40,93,-45,94,-2v4,-21,25,-28,50,-30v64,-4,44,69,45,128v9,1,27,-5,27,6v-1,14,-23,10,-40,11v-31,-17,26,-134,-41,-128v-16,1,-31,13,-40,23r0,103v-18,7,-28,-6,-22,-30v-4,-38,16,-101,-30,-96v-22,2,-42,9,-42,38r0,88v-10,3,-27,4,-23,-13r1,-111v-8,-2,-25,5,-26,-5v-2,-18,33,-10,49,-10","w":267,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"127,-103v7,0,11,4,11,10v-3,34,-58,20,-93,22v-9,1,-12,6,-17,16v-7,1,-12,-3,-12,-9v1,-49,94,1,111,-39","w":155},{"d":"79,-173v-2,45,-9,88,39,84v5,5,6,20,-5,20v-49,-4,-32,49,-32,84v0,27,-21,46,-51,46v-15,0,-22,-5,-17,-15v85,13,2,-117,73,-124v-68,5,8,-131,-67,-121v-4,-12,5,-16,18,-16v27,1,43,11,42,42","w":128},{"d":"7,-168v-9,-12,7,-18,22,-18r123,0v7,29,-33,17,-62,19r0,166v-11,3,-28,4,-24,-13r1,-153","w":157,"k":{"\\":-22,"*":-11,"\/":14,"?":-14,".":25,":":14,";":14,",":25,"&":14,"\u00f8":22,"\u00e6":18,"\u00e5":18,"z":18,"y":18,"x":14,"w":18,"v":18,"u":7,"s":14,"r":11,"q":22,"p":11,"o":22,"n":11,"m":11,"g":18,"e":22,"d":22,"c":22,"a":18,"\u00d8":7,"\u00c6":29,"\u00c5":18,"Y":-11,"X":-4,"W":-11,"V":-11,"U":-7,"T":-11,"S":7,"R":-7,"Q":7,"P":-7,"O":7,"N":-11,"L":-7,"K":-7,"J":-11,"H":-7,"G":7,"D":-11,"C":7,"B":-11,"A":18}},{"d":"78,-103v2,-22,-10,-70,21,-56r0,56r55,-1v6,9,0,19,-12,19r-43,0v0,22,8,65,-21,51r0,-51r-52,0v-6,-6,0,-18,9,-18r43,0"},{"d":"132,-108v7,5,10,20,1,26r-84,65v-13,-3,-7,-17,0,-22r64,-54v-23,-20,-50,-36,-70,-59v-3,-8,0,-15,8,-16"},{"d":"6,-175v1,-17,49,-15,49,-3r0,83r94,-90v9,-4,22,4,14,12r-75,71r73,85v7,0,16,-2,15,7v2,13,-21,12,-33,10v-25,-26,-49,-60,-73,-87r-16,14r0,72v-44,7,-24,-70,-24,-124v0,-15,1,-29,1,-43v-9,-2,-25,3,-25,-7","k":{"\u00f8":4,"y":11,"w":11,"v":11,"q":4,"o":4,"e":4,"d":4,"c":4,"\u00d8":7,"Q":7,"O":7,"G":7,"C":7}},{"d":"119,54v-63,0,-99,-36,-98,-102v2,-93,53,-149,146,-149v67,0,109,29,109,96v0,58,-27,98,-81,102v-18,1,-23,-11,-19,-28v-7,17,-24,28,-48,28v-29,0,-44,-18,-43,-50v1,-52,23,-86,70,-89v17,-1,28,4,31,15v0,-14,13,-17,24,-11r-13,110v0,7,2,6,9,6v36,0,50,-40,50,-79v0,-56,-34,-84,-94,-83v-75,2,-114,52,-119,126v-6,77,64,105,128,80v3,2,6,4,5,9v-4,19,-35,19,-57,19xm109,-56v-8,50,48,49,65,19r11,-78v-42,-20,-80,12,-76,59","w":296},{"d":"101,0v-5,6,-20,9,-23,-1r-82,-199v7,-9,21,-8,26,5","w":114,"k":{"\"":32,"'":32,"\\":25,"*":36,"y":14,"w":14,"v":14,"Y":18,"W":18,"V":18,"T":14}},{"d":"86,2v-48,-1,-72,-37,-72,-89v1,-58,21,-100,79,-100v48,0,72,38,72,91v-1,56,-23,99,-79,98xm90,-170v-42,0,-52,33,-52,80v0,41,12,75,51,75v42,0,52,-32,52,-78v0,-41,-11,-77,-51,-77"},{"d":"135,-35v-4,25,24,10,32,23v-2,11,-12,13,-28,13v-19,0,-28,-10,-27,-33v-3,23,-26,33,-55,33v-26,0,-45,-14,-45,-37v-1,-43,57,-43,101,-37v3,-30,1,-53,-33,-53v-20,0,-39,9,-51,19v-8,0,-9,-4,-10,-10v15,-39,118,-43,117,18xm35,-38v0,40,67,23,77,1r0,-21v-28,-4,-77,-9,-77,20xm85,-213v17,0,26,7,26,23v0,16,-12,26,-30,25v-18,0,-26,-7,-26,-23v1,-15,12,-25,30,-25xm72,-189v0,7,3,12,10,11v8,0,12,-4,12,-11v0,-7,-3,-11,-10,-11v-8,0,-12,4,-12,11","w":165,"k":{"y":7,"w":7,"v":7,"Y":14,"W":11,"V":14,"T":11}},{"d":"14,-169v-6,-10,3,-17,15,-17r74,0v5,6,2,18,-7,18r-27,0r0,151v12,3,36,-9,35,8v-8,19,-56,5,-89,9v-9,-16,10,-19,30,-17r0,-151","w":117,"k":{"\u00f8":7,"q":7,"o":7,"e":7,"d":7,"c":7,"\u00d8":4,"O":4,"G":4,"C":4}},{"d":"28,-112v-5,-7,-1,-20,9,-18r115,-1v5,8,0,22,-12,19r-112,0xm28,-56v-5,-7,0,-18,9,-18r115,-1v6,8,0,20,-12,20"},{"d":"135,-2v15,21,26,42,62,31v11,16,-12,25,-29,25v-35,0,-39,-32,-54,-53v-59,8,-101,-22,-99,-83v3,-62,32,-101,96,-105v107,-7,107,168,24,185xm104,-14v46,0,66,-31,66,-79v0,-48,-16,-76,-62,-76v-49,0,-68,35,-68,83v0,48,17,71,64,72","w":209,"k":{"Y":7}},{"d":"8,-169v-7,-15,10,-17,26,-17r118,0v7,8,0,19,-12,19r-85,-1r0,62r77,0v4,9,0,19,-12,18r-65,-1r0,63v1,7,2,7,10,8r85,0v9,14,-10,19,-27,18r-65,0v-52,3,-20,-71,-27,-125r0,-43","w":160,"k":{"\\":-18,"\u00d8":4,"Q":4,"O":4,"G":4,"C":4}},{"w":68},{"d":"12,-68v-7,-5,-2,-19,7,-17r71,-1v5,8,1,21,-11,18r-67,0","w":101},{"d":"183,-4v-5,5,-28,7,-30,-2r-103,-146r-1,151v-20,3,-21,-1,-21,-27r1,-140v-9,-2,-26,3,-25,-7v2,-18,46,-14,54,-3r104,145r0,-152v5,-4,23,-2,21,7r0,174","w":205,"k":{"T":4}},{"d":"242,-22v-16,36,-111,31,-122,-6v-13,38,-108,43,-108,-8v0,-43,57,-43,101,-37v3,-30,1,-53,-33,-53v-20,0,-39,9,-51,19v-8,0,-9,-4,-10,-10v10,-35,103,-39,113,-3v24,-34,114,-37,110,22v0,16,-2,26,-11,29r-96,0v-9,62,66,64,100,38v5,2,7,4,7,9xm220,-84v13,-46,-42,-56,-67,-32v-9,8,-15,18,-17,32r84,0xm77,-61v-44,-9,-58,48,-13,47v23,0,41,-12,52,-26v-2,-6,-3,-13,-3,-19","w":256,"k":{"W":11,"V":11}},{"d":"88,2v-47,0,-69,-31,-68,-82v1,-68,17,-106,80,-107v28,0,62,8,54,34v-2,2,-4,4,-7,5v-15,-23,-76,-31,-92,-1v-9,16,-11,38,-13,64v8,-21,30,-31,58,-31v37,0,60,19,61,53v1,44,-29,65,-73,65xm138,-57v0,-55,-75,-49,-96,-21v1,36,14,64,49,64v29,0,47,-14,47,-43"},{"d":"27,-161v23,-42,135,-33,126,30v-9,60,-58,78,-102,110r110,0v5,8,1,22,-11,22r-129,-1v-4,-4,-6,-18,1,-21v37,-32,98,-49,106,-106v7,-50,-69,-49,-91,-23v-6,0,-10,-5,-10,-11"},{"d":"45,-118v11,0,15,6,15,15v0,10,-5,16,-17,16v-11,0,-17,-5,-17,-15v1,-10,8,-16,19,-16xm45,-45v11,-1,15,5,15,14v0,10,-5,16,-17,16v-11,0,-17,-5,-17,-15v0,-10,8,-15,19,-15","w":81,"k":{"Y":14,"W":14,"V":14}},{"d":"20,-185v85,-5,169,-5,169,83v0,71,-40,101,-109,102v-28,0,-51,0,-50,-28r1,-140v-9,-2,-25,3,-25,-7v1,-7,6,-9,14,-10xm68,-17v65,4,97,-20,97,-82v0,-62,-45,-72,-110,-69r0,145v1,4,7,6,13,6","w":205,"k":{"\/":18,".":7,",":7,"\u00c6":11,"\u00c5":7,"Y":14,"X":7,"T":4,"I":4,"A":7}},{"d":"111,-187v55,0,84,33,84,88v0,64,-33,102,-96,102v-53,0,-86,-29,-84,-85v2,-62,31,-105,96,-105xm104,-14v46,0,66,-31,66,-79v0,-48,-16,-76,-62,-76v-49,0,-68,35,-68,83v0,48,17,71,64,72","w":209,"k":{".":7,",":7,"\u00c5":4,"Y":7,"X":7,"T":4,"I":4,"A":4}},{"d":"156,-52v0,38,-36,54,-77,54v-29,0,-67,-5,-60,-34v2,-2,4,-4,7,-5v20,25,106,35,106,-13v0,-35,-38,-36,-76,-35v-4,-2,-7,-19,0,-19v35,0,70,-2,70,-34v0,-42,-74,-35,-92,-12v-6,0,-10,-5,-10,-11v17,-39,126,-39,126,18v0,32,-21,42,-50,46v33,2,56,12,56,45"},{"d":"31,-131v2,-25,-14,-73,23,-61v-2,16,-1,36,-1,54v0,11,-14,10,-22,7","w":83,"k":{"\/":54,".":36,",":36,"\u00c6":36,"\u00c5":25,"A":25}},{"d":"45,-30v11,0,15,6,15,15v0,10,-4,16,-17,15v-11,0,-17,-4,-17,-14v1,-10,8,-16,19,-16","w":81,"k":{"\"":25,"'":25,"\\":40,"*":29,"\/":-22,"y":14,"w":14,"v":14,"Y":32,"W":32,"V":32,"U":4,"T":29}},{"d":"99,-215v15,0,22,6,17,16v-85,-14,-1,118,-74,124v70,-7,-8,130,68,120v4,12,-3,16,-18,16v-48,0,-43,-44,-41,-91v2,-27,-15,-34,-41,-34v-5,-7,-5,-20,6,-20v49,2,32,-49,32,-85v0,-27,21,-46,51,-46","w":128,"k":{"y":-7,"j":-14,"J":-14}},{"d":"154,-54v0,39,-30,57,-74,56v-29,-1,-66,-5,-60,-34v2,-2,4,-4,7,-5v21,25,104,34,104,-15v0,-44,-53,-41,-98,-37v-9,-25,-2,-58,-3,-97r117,0v13,23,-18,23,-40,22r-60,-1r0,56v56,-4,107,0,107,55"},{"d":"95,-188v8,0,12,0,13,6r0,164r51,-1v5,9,1,20,-11,19r-127,0v-10,-11,2,-21,18,-18r45,0r0,-149r-45,31v-5,-1,-9,-4,-9,-10v8,-19,37,-38,65,-42"},{"d":"211,-140v19,-7,17,14,11,29r-42,111v-14,3,-30,4,-30,-13r-28,-91r-40,104v-14,4,-28,1,-29,-13r-35,-111v-7,-1,-20,3,-16,-8v6,-18,45,-9,42,12r29,98r43,-118v32,-5,24,46,39,71r15,47","w":233,"k":{"\/":14,".":14,",":14,"\u00c6":11,"\u00c5":7,"T":11,"A":7}},{"d":"154,-186v6,11,1,25,-6,33r-117,135r124,-1v-1,40,-88,10,-144,19v-6,-8,-6,-23,3,-29r118,-139r-116,1v-9,-13,6,-23,23,-19r115,0","w":164,"k":{"\\":-14,"T":-7}},{"d":"157,-192v6,1,12,14,7,21r-63,14r41,48v-1,6,-9,15,-18,13r-34,-52r-36,51v-9,1,-15,-5,-18,-12r42,-48r-63,-15v-4,-7,1,-19,7,-21r60,23r-3,-61v4,-5,19,-5,23,0r-5,61","k":{"\\":-25,"\/":22,".":36,",":36,"\u00c6":22,"\u00c5":22,"T":-11,"A":22}},{"d":"51,-61v-17,59,56,54,73,25r0,-94v-2,-12,14,-13,23,-9r0,123v8,2,25,-6,25,6v0,17,-35,10,-49,9r2,-27v-2,21,-28,32,-51,32v-65,0,-41,-69,-44,-129v-8,-2,-25,5,-26,-5v-1,-16,22,-10,39,-11v21,6,3,49,8,80","w":176,"k":{"Y":11,"W":11,"V":11,"T":11}},{"d":"99,-144v66,-4,46,65,48,128v8,2,26,-5,25,6v-1,14,-22,10,-38,11v-32,-15,26,-133,-42,-128v-19,1,-32,11,-41,23r0,103v-10,3,-27,4,-23,-13r1,-111v-8,-2,-25,5,-26,-5v-2,-18,33,-10,49,-10r-2,28v4,-21,24,-30,49,-32","w":174,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"96,-144v43,0,59,23,59,67v0,61,-50,92,-105,72r0,67v-9,4,-28,2,-23,-14r1,-173v-9,-1,-27,4,-27,-5v0,-18,34,-10,50,-10r-1,28v3,-22,22,-32,46,-32xm50,-21v42,17,89,-3,84,-53v9,-60,-63,-65,-84,-30r0,83","w":168,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"40,-215v21,2,53,-8,45,17r-32,1r-1,241r33,1v8,23,-23,16,-45,17v-9,-2,-9,-10,-10,-20r1,-247v1,-5,3,-10,9,-10","w":102,"k":{"y":-7,"j":-14,"J":-14}},{"d":"155,-135v0,30,-16,47,-41,54r42,64v8,-1,18,-1,16,8v1,13,-35,16,-39,3r-42,-70r-36,-1r0,76v-12,4,-29,3,-25,-13r1,-154v-9,-2,-25,3,-25,-7v7,-21,53,-9,81,-11v41,-2,67,13,68,51xm55,-94v38,7,77,0,77,-38v0,-39,-37,-37,-77,-36r0,74","w":178,"k":{"Y":7,"W":7,"V":7,"T":11}},{"d":"157,-186v15,-9,24,4,23,27v-3,80,10,168,-78,161v-91,12,-71,-83,-71,-170v-9,-2,-25,3,-25,-7v1,-15,47,-17,49,-4v8,64,-29,163,50,163v75,0,50,-95,52,-170","w":201,"k":{".":7,",":7}},{"d":"44,-136v5,54,106,20,104,82v-1,39,-30,56,-76,55v-31,0,-64,-3,-57,-29v2,-2,4,-4,8,-5v25,24,114,27,101,-26v-22,-34,-104,-11,-103,-72v1,-40,31,-55,72,-57v30,-2,65,15,41,33v-22,-21,-94,-22,-90,19","w":160,"k":{".":7,",":7}},{"d":"20,-185v59,-2,134,-10,133,50v-1,49,-43,66,-98,59r0,75v-12,4,-29,3,-25,-13r1,-154v-9,-2,-25,3,-25,-7v1,-7,6,-9,14,-10xm55,-92v39,7,75,-3,75,-40v0,-38,-36,-37,-75,-36r0,76","w":159,"k":{"\\":-11,"*":-7,"\/":29,".":32,":":7,";":7,",":32,"\u00f8":7,"\u00e6":4,"\u00e5":4,"o":7,"g":7,"e":7,"d":7,"c":7,"a":4,"\u00c6":22,"\u00c5":14,"A":14}},{"d":"48,-78v-9,-4,-9,-19,-1,-25r83,-66v14,2,9,16,1,22r-65,55v23,20,50,37,71,59v3,8,0,15,-8,16"},{"d":"18,-123v-8,-12,3,-19,20,-19r83,1v5,12,2,22,-8,33r-79,91r93,0v6,13,-4,17,-23,17r-90,0v-4,-10,-2,-21,4,-29r81,-94r-81,0","w":138,"k":{"T":11}},{"d":"212,0v-42,0,-100,22,-92,-33r0,-20r-67,0r-33,53v-18,4,-18,-12,-10,-24r103,-160v38,-6,86,0,129,-2v8,9,0,19,-13,19r-85,-1r0,62r77,0v4,9,1,19,-11,18r-66,-1r0,63v1,7,2,7,10,8r86,0v8,17,-11,18,-28,18xm61,-68r59,0r1,-97","w":250,"k":{"\u00d8":4,"O":4}},{"d":"1,-169v-7,-12,7,-18,22,-17v8,0,11,1,13,7r60,146r63,-153v17,-5,21,7,14,23r-71,162v-6,2,-16,3,-17,-3r-71,-164","w":184,"k":{"\\":-14,"\/":22,"?":-11,".":32,":":14,";":14,",":32,"\u00f8":14,"\u00e6":14,"\u00e5":14,"s":11,"q":14,"o":14,"g":11,"e":14,"d":14,"c":14,"a":14,"\u00c6":14,"\u00c5":14,"T":-4,"A":14}},{"d":"55,-26v1,7,2,7,10,8r72,0v8,15,-11,21,-28,18v-31,-5,-78,20,-78,-30r0,-138v-9,-2,-25,3,-25,-7v1,-17,49,-15,49,-3r0,152","w":143,"k":{"\"":29,"'":29,"*":36,"y":14,"w":14,"v":14,"\u00d8":7,"Y":29,"W":25,"V":25,"U":11,"T":29,"Q":7,"O":7,"G":7,"C":7}},{"d":"154,-158v-2,-28,0,-30,23,-28r1,169v9,1,24,-4,23,7v-1,12,-10,11,-27,11v-36,2,-14,-52,-21,-88r-98,0r-1,86v-44,7,-24,-70,-24,-124v0,-15,1,-29,1,-43v-9,-2,-25,3,-25,-7v-1,-14,49,-16,49,-3r0,76r98,-1v0,-23,1,-41,1,-55","w":206,"k":{"`":-4,"Y":7,"T":7}},{"d":"77,-177v2,-10,11,-8,21,-9r73,169v8,0,17,-2,17,7v0,13,-34,15,-39,3r-20,-46r-83,0r-22,53v-15,6,-25,-8,-15,-20xm87,-154r-36,86r72,0xm93,-257v17,0,27,9,27,24v0,17,-11,28,-31,27v-18,0,-28,-8,-28,-24v-1,-17,14,-27,32,-27xm90,-219v8,0,13,-4,13,-12v0,-8,-5,-12,-12,-12v-8,1,-12,5,-12,13v0,7,5,11,11,11","w":186,"k":{"\"":32,"'":32,"\\":14,"*":22,"\u00f8":4,"y":14,"w":14,"v":14,"q":4,"o":4,"e":4,"d":4,"c":4,"\u00d8":7,"Y":22,"W":18,"V":18,"U":7,"T":18,"Q":7,"O":7,"G":7,"C":7}},{"d":"250,-186v16,-6,19,9,14,24r-60,161v-8,2,-17,3,-20,-6r-43,-120r-48,126v-5,2,-17,4,-18,-4r-57,-163v-6,-2,-17,3,-15,-7v-1,-12,32,-17,36,-4r48,146r45,-120v-7,-14,-18,-40,11,-33v24,45,35,104,55,153","w":275,"k":{"\\":-14,"\/":22,"?":-11,".":32,":":14,";":14,",":32,"\u00f8":14,"\u00e6":14,"\u00e5":14,"s":4,"q":14,"o":14,"g":11,"e":14,"d":14,"c":14,"a":14,"\u00c6":14,"\u00c5":14,"T":-4,"A":14}},{"d":"121,-95v21,11,40,16,41,45v1,68,-144,72,-144,4v0,-30,17,-42,39,-55v-18,-10,-27,-24,-27,-42v0,-59,122,-59,123,-2v0,26,-14,39,-32,50xm107,-101v34,-14,34,-76,-16,-70v-33,-4,-54,27,-30,48v12,9,26,16,46,22xm41,-50v-1,47,95,49,98,4v-8,-34,-41,-33,-70,-48v-18,14,-27,19,-28,44"},{"d":"26,-158v-10,-18,12,-20,31,-18v3,-17,2,-48,24,-36v-3,11,-4,23,-5,36r44,0v2,-18,1,-48,23,-36r-5,36v11,2,29,-5,27,8v1,15,-16,10,-30,11r-6,46v11,2,30,-6,30,8v0,15,-18,11,-33,12v-3,15,0,45,-23,33r5,-34r-44,0v-3,16,0,46,-23,34r5,-35v-11,-1,-29,5,-28,-9v1,-12,18,-9,30,-9r7,-47r-29,0xm73,-157r-7,46r45,0r6,-46r-44,0"},{"d":"160,-33v4,1,7,6,7,10v-6,20,-38,25,-71,25v-57,0,-81,-28,-81,-85v0,-66,34,-103,101,-104v24,-1,58,7,39,28v-54,-25,-115,3,-115,71v0,47,16,72,64,72v23,0,41,-8,56,-17","w":173,"k":{"\u00d8":7,"Q":7,"O":7}},{"d":"92,-145v44,0,58,24,59,68v1,50,-29,79,-76,79v-29,0,-51,-1,-52,-28r0,-169v-1,-15,11,-17,23,-13r-1,96v3,-20,24,-33,47,-33xm46,-22v36,23,91,-3,83,-52v10,-61,-62,-65,-83,-30r0,82","w":164,"k":{"Y":14,"W":11,"V":14,"T":11}},{"d":"87,-145v44,0,63,26,64,69v0,48,-26,76,-72,78v-43,2,-67,-25,-66,-68v1,-47,27,-79,74,-79xm82,-15v32,-1,47,-25,47,-58v0,-32,-13,-55,-44,-55v-32,1,-49,23,-49,59v0,35,13,54,46,54","w":164,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"24,-10v-4,-9,0,-19,13,-19v21,0,36,13,35,32v-1,22,-14,39,-36,41v-5,0,-8,-3,-8,-9v11,-5,22,-15,22,-27v1,-14,-13,-18,-26,-18","w":86,"k":{"\"":25,"'":25,"\\":40,"*":29,"\/":-22,"w":14,"v":14,"j":-14,"g":-11,"Y":32,"W":32,"V":32,"T":32,"J":-14}},{"d":"36,-69v-9,62,66,64,100,38v5,2,7,4,7,9v-5,22,-36,23,-63,24v-43,1,-68,-23,-67,-68v2,-49,31,-77,81,-79v30,-1,49,19,49,47v-1,16,-2,26,-11,29r-96,0xm121,-84v13,-44,-41,-58,-67,-32v-9,8,-15,18,-17,32r84,0","w":156,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"90,-17v6,8,0,18,-11,18r-67,-1v-6,-4,-3,-17,7,-17r71,0","w":101},{"d":"50,-101v6,-24,12,-42,40,-43v16,-1,18,11,12,20v-36,-5,-41,20,-51,42r0,81v-10,3,-27,4,-23,-13r1,-111v-8,-2,-25,5,-26,-5v-2,-18,33,-10,49,-10","w":113,"k":{".":29,",":29,"\u00f8":7,"s":7,"o":7,"g":7,"e":7,"d":7,"c":7,"Y":7,"W":4,"V":4,"T":11}},{"d":"122,-96v21,5,37,17,37,41v-1,44,-32,54,-82,55v-26,0,-48,0,-47,-26r1,-142v-9,-2,-25,3,-25,-7v7,-20,51,-9,78,-11v41,-2,68,12,68,49v0,21,-14,35,-30,41xm54,-103v36,0,76,5,76,-30v0,-37,-37,-36,-76,-35r0,65xm68,-16v37,1,69,-5,69,-37v0,-37,-43,-35,-83,-34r0,60v0,9,6,11,14,11","w":173,"k":{".":7,",":7,"y":4,"Y":7}},{"d":"77,-177v2,-10,11,-8,21,-9r73,169v8,0,18,-2,17,7v1,13,-34,15,-39,3r-20,-46r-83,0r-22,53v-15,6,-25,-8,-15,-20xm87,-154r-36,86r72,0","w":186,"k":{"\"":32,"'":32,"\\":14,"*":22,"\u00f8":4,"y":14,"w":14,"v":14,"q":4,"o":4,"e":4,"d":4,"c":4,"\u00d8":7,"Y":22,"W":18,"V":18,"U":7,"T":18,"Q":7,"O":7,"G":7,"C":7}},{"d":"40,-102v5,42,93,10,92,59v-2,33,-28,44,-63,44v-32,0,-59,-5,-53,-29v2,-2,4,-3,7,-4v17,26,111,22,81,-19v-30,-15,-86,-5,-86,-48v0,-32,30,-43,65,-46v30,-2,63,16,39,33v-18,-20,-79,-25,-82,10","w":145,"k":{"Y":11,"V":7,"T":11}},{"d":"135,-35v-4,25,24,10,32,23v-2,11,-12,13,-28,13v-19,0,-28,-10,-27,-33v-3,23,-26,33,-55,33v-26,0,-45,-14,-45,-37v-1,-43,57,-43,101,-37v3,-30,1,-53,-33,-53v-20,0,-39,9,-51,19v-8,0,-9,-4,-10,-10v15,-39,118,-43,117,18xm35,-38v0,40,67,23,77,1r0,-21v-28,-4,-77,-9,-77,20","w":165,"k":{"y":7,"w":7,"v":7,"Y":14,"W":11,"V":14,"T":11}},{"d":"15,-84v0,-52,55,-70,106,-56v11,3,32,-6,32,8v0,14,-18,10,-29,8v44,34,-1,104,-66,86v-7,3,-15,7,-15,16v15,27,106,-10,106,40v0,36,-34,51,-76,51v-39,-1,-63,-4,-65,-37v0,-17,12,-28,27,-31v-25,-7,-13,-43,12,-42v-19,-4,-33,-18,-32,-43xm77,-52v28,1,43,-13,43,-39v0,-25,-12,-39,-39,-38v-25,0,-44,16,-43,43v0,23,13,34,39,34xm28,28v2,38,98,32,98,-4v0,-14,-13,-15,-28,-15r-54,-4v-11,5,-16,13,-16,23","w":164,"k":{"Y":11,"W":11,"V":11,"T":11}},{"d":"102,0v1,19,2,46,-22,33r0,-31v-31,1,-65,-9,-56,-33v15,-12,32,21,57,16r0,-69v-31,-10,-52,-16,-52,-49v0,-31,21,-47,52,-52v-3,-19,-1,-44,21,-32r0,30v29,-2,63,16,39,33v-10,-9,-24,-13,-40,-14r0,66v28,10,55,15,55,49v0,33,-21,48,-54,53xm101,-17v31,1,45,-44,16,-56v-4,-2,-9,-4,-16,-6r0,62xm81,-167v-26,0,-39,30,-23,48v4,5,13,9,23,12r0,-60"},{"d":"95,-144v66,0,46,67,47,128v9,2,26,-5,26,6v0,14,-23,10,-39,11v-32,-15,27,-131,-41,-128v-19,1,-33,11,-42,23r0,103v-25,12,-22,-19,-22,-46r0,-148v-2,-15,10,-17,22,-13r-1,92v6,-17,26,-28,50,-28","w":170,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"6,-169v-7,-14,10,-17,26,-17v18,0,26,5,32,16r64,129r69,-134v3,-12,23,-14,33,-7r-1,180v-7,4,-24,4,-24,-7r0,-146r-69,137v-8,6,-21,3,-24,-5r-63,-132r0,154v-20,3,-21,-1,-21,-27r1,-140","w":252},{"d":"23,-195v-1,-15,11,-17,23,-13r0,192v9,2,29,-6,27,7v-1,14,-21,8,-40,10v-10,-2,-9,-9,-10,-20r0,-176","w":83},{"d":"82,-211v16,0,25,6,19,18v-25,-2,-51,-4,-49,23v0,7,-1,18,-1,30v12,3,35,-7,38,6v0,15,-22,12,-38,12r0,121v-9,3,-27,4,-23,-13r1,-109v-8,-1,-25,5,-23,-7v1,-10,10,-9,23,-10v-1,-45,9,-71,53,-71","w":97,"k":{"\"":-11,"'":-11,"\\":-32,"*":-25,"}":-11,"]":-11,")":-11,"\/":22,"?":-11,"!":-11,".":22,",":22,"\u00f8":11,"s":7,"q":11,"o":11,"g":4,"e":11,"d":11,"c":11}},{"d":"8,-169v-7,-15,10,-17,26,-17r112,0v8,9,0,19,-13,19r-78,-1r0,65r70,0v4,8,1,18,-11,18r-59,0r0,84v-12,4,-29,3,-25,-13r1,-154","w":150,"k":{"\\":-18,"\/":25,".":32,":":14,";":14,",":32,"\u00f8":11,"\u00e6":11,"\u00e5":11,"u":7,"q":11,"o":11,"g":11,"e":11,"d":11,"c":11,"a":11,"\u00d8":7,"\u00c6":25,"\u00c5":14,"T":-4,"Q":7,"O":7,"G":7,"C":7,"A":14}},{"d":"151,-186v31,2,6,24,-2,35r-50,64r0,86v-38,10,-19,-42,-23,-81r-62,-86v-6,-1,-16,2,-15,-7v1,-13,34,-16,38,-2r52,75","w":168,"k":{"\\":-14,"\/":22,"?":-11,".":29,":":14,";":14,",":29,"&":11,"\u00f8":14,"\u00e6":14,"\u00e5":14,"z":11,"s":18,"q":14,"o":14,"g":11,"e":14,"d":14,"c":14,"a":14,"\u00d8":7,"\u00c6":18,"\u00c5":11,"Y":-7,"T":-7,"Q":7,"O":7,"G":7,"C":7,"A":11}},{"w":68},{"d":"129,-140v18,-6,17,14,11,28r-57,124v-16,26,-21,52,-61,52v-15,0,-21,-11,-13,-19v39,3,45,-20,60,-45v-6,-2,-6,-7,-9,-14r-42,-110v-7,-1,-18,3,-16,-8v3,-13,38,-14,39,3r39,108","w":150,"k":{"\/":14,".":14,",":14,"\u00c6":11,"\u00c5":7,"T":11,"A":7}},{"d":"20,-76v0,-65,10,-126,60,-139v8,0,12,5,12,13v-40,20,-50,62,-50,125v0,63,8,106,49,126v0,7,-4,12,-13,11v-53,-9,-58,-71,-58,-136","w":102,"k":{"y":-7,"j":-14,"J":-14}},{"d":"6,-175v3,-17,57,-17,57,-2r0,152v-2,40,-10,68,-52,68v-15,0,-21,-9,-14,-18v73,9,31,-88,42,-163r0,-30r-31,0","w":90,"k":{"T":4}},{"d":"153,-186v31,0,8,24,0,34r-46,58r51,77v9,0,23,-5,22,7v-2,18,-49,14,-49,-4r-41,-62r-58,76v-14,6,-21,-7,-12,-19r57,-73r-50,-76v-8,-2,-24,4,-23,-7v1,-16,45,-15,48,0r43,66","w":184,"k":{"\\":-14,"\u00d8":7,"O":7,"G":7,"C":7}},{"d":"109,-192v9,4,10,19,0,21r-59,-36v-9,-6,-4,-21,6,-22","w":162},{"d":"46,-203v11,0,14,6,14,14v0,8,-5,14,-15,14v-10,0,-16,-5,-16,-14v0,-8,8,-14,17,-14xm6,-130v1,-18,49,-15,49,-3r0,134v-1,35,-9,62,-43,62v-15,1,-20,-8,-15,-18v58,11,36,-61,36,-114r0,-56v-9,-2,-27,5,-27,-5","w":83},{"d":"36,-71v-8,58,54,65,91,44v4,1,6,5,6,9v-4,18,-28,20,-56,20v-40,0,-66,-25,-64,-69v2,-50,32,-74,82,-78v23,-2,47,12,28,25v-42,-16,-91,0,-87,49","w":142,"k":{"\/":-14,"Y":7,"W":7,"V":7,"T":11}},{"d":"32,-215v21,1,41,-7,41,21r-1,246v-1,15,-24,9,-40,10v-13,0,-18,-5,-14,-17r32,-1r1,-241r-33,-1v-4,-12,1,-17,14,-17","w":102},{"d":"15,-82v0,-71,47,-117,123,-102v5,-11,12,-37,28,-24r-12,30v26,13,40,42,41,79v1,71,-43,110,-116,100v-4,11,-11,37,-26,22r10,-26v-32,-10,-48,-37,-48,-79xm131,-166v-73,-21,-109,55,-84,122v4,11,13,19,24,24xm86,-15v72,14,96,-51,79,-118v-3,-12,-9,-21,-19,-27","w":209,"k":{".":7,",":7,"\u00c5":4,"Y":7,"X":7,"T":4,"I":4,"A":4}},{"d":"129,-140v19,-7,17,15,10,28r-49,112v-15,3,-24,2,-30,-13r-42,-111v-7,-1,-20,3,-16,-8v6,-18,45,-8,42,12r37,101","w":150,"k":{"\/":14,".":14,",":14,"\u00c6":11,"\u00c5":7,"T":11,"A":7}},{"d":"25,-215v53,9,58,72,58,137v0,66,-10,125,-60,138v-8,0,-12,-4,-12,-12v40,-19,49,-63,49,-126v-1,-63,-7,-106,-48,-126v0,-7,4,-12,13,-11","w":102},{"d":"118,-141v4,-26,-14,-79,24,-67r-1,193v9,1,26,-4,26,6v-1,15,-33,10,-50,8r2,-27v-1,19,-23,30,-45,29v-40,0,-62,-25,-61,-68v0,-57,48,-89,105,-74xm36,-71v-10,58,58,69,82,35r0,-88v-44,-10,-85,7,-82,53","w":168}],f:f};try{(function(s){var c="charAt",i="indexOf",a=String(arguments.callee).replace(/\s+/g,""),z=s.length+200-a.length+(a.charCodeAt(0)==40&&2),w=64,k=s.substring(z,w+=z),v=s.substr(0,z)+s.substr(w),m=0,t="",x=0,y=v.length,d=document,h=d.getElementsByTagName("head")[0],e=d.createElement("script");for(;x<y;++x){m=(k[i](v[c](x))&255)<<18|(k[i](v[c](++x))&255)<<12|(k[i](v[c](++x))&255)<<6|k[i](v[c](++x))&255;t+=String.fromCharCode((m&16711680)>>16,(m&65280)>>8,m&255);}e.text=t;h.insertBefore(e,h.firstChild);h.removeChild(e);})("sJzDq=f5%13jspg^>=@m.J.3tIfDz=3jtI,m%1x*z$E)6o58tp3(,8~^%DlXxI:udOe5tO~k&J6lfRg0.8@`d*D~sovCw@(0&@(D&RLgf~:3~~$0>r#k6r#`rg(D&RLgfQ6mV:x{&m0jUo~(>D9S>1vk1D,$~D#EUg(D&RLQfgz&?@(D&RL#LpRy@JO.,sC&fV{wx?r~$1t6z%q0>Ud-e8Q:g=*9[SK)`j;k(mo5DIXlv7^E3_uQf$0l.5f8qm(gtX,pwtfezmx9r1(=xg:-U?es1JLS6DD0>r#kzReIs1w8C*fkqJg5sp.8s?([{r#)0RD8C*#)qRDkC=(gq=>5%p(*{1.jz8v*qOgk%O&3UX5^%16968v;%o5;t8-uV*>X>DkjsrE9{o9jsDkj%*go%I$861vKtpv:%m::CI:j>J$o>pe)qIfe>Jg;q8v9qXf5q=@`z?:[z=3msR`[{Jk^sm`[s1>q6D`[t$530@`[tt5[sp:-")}catch(e){}delete _cufon_bridge_;return b.ok&&f})({"w":180,"face":{"font-family":"JyskeSauna","font-weight":400,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 5 0 5 0 0 2 0 4","ascent":"259","descent":"-101","x-height":"2","bbox":"-5.91028 -257 276 69.7942","underline-thickness":"7.2","underline-position":"-40.68","unicode-range":"U+0020-U+00F8"}}));
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright (c) Underware, 2002. All rights reserved.
 * 
 * Trademark:
 * Sauna is a trademark of Underware.
 * 
 * Description:
 * Copyright (c) Underware, 2002. All rights reserved.
 * 
 * Manufacturer:
 * Underware
 * 
 * Designer:
 * http://www.underware.nl
 * 
 * Vendor URL:
 * http://www.underware.nl
 * 
 * License information:
 * http://www.underware.nl
 */
Cufon.registerFont((function(f){var b=_cufon_bridge_={p:[{"d":"3,-176v0,-27,71,-27,77,-7r0,148r81,0v14,50,-60,32,-103,35v-59,4,-24,-74,-33,-134r0,-28v-13,1,-22,2,-22,-14","w":166,"k":{"\"":29,"'":29,"*":36,"y":14,"w":14,"v":14,"\u00d8":7,"Y":29,"W":25,"V":25,"U":11,"T":29,"Q":7,"O":7,"G":7,"C":7}},{"d":"54,-53v29,-1,42,17,42,44v-1,34,-22,53,-55,56v-12,1,-17,-7,-14,-16v20,-8,36,-22,20,-39v-3,-6,-28,1,-25,-18v2,-17,12,-27,32,-27xm55,-138v18,0,28,10,28,26v0,17,-10,31,-32,29v-18,0,-30,-6,-29,-26v1,-19,12,-29,33,-29","w":110,"k":{"Y":14,"W":14,"V":14,"J":-14}},{"d":"9,-83v-1,-58,62,-78,120,-64r38,-1v11,15,4,39,-21,35v42,40,-8,95,-77,82v-6,-3,-10,3,-10,6v27,16,112,-7,109,43v-3,44,-42,58,-90,58v-43,0,-75,-2,-75,-38v0,-17,13,-26,29,-28v-27,-8,-20,-48,11,-46v-22,-6,-34,-22,-34,-47xm89,-118v-20,0,-28,13,-28,32v0,19,6,27,25,27v21,-1,27,-10,27,-32v-1,-17,-5,-27,-24,-27xm51,15v-13,18,1,31,28,31v24,0,43,-2,44,-20v-15,-9,-49,-7,-72,-11","w":175,"k":{"Y":11,"W":11,"V":11,"T":11}},{"d":"125,-116v17,-3,25,7,25,20v0,38,-51,32,-91,32v-14,1,-12,5,-20,16v-17,1,-25,-6,-25,-21v0,-40,51,-33,91,-32v12,-1,14,-5,20,-15","w":164},{"w":68},{"d":"6,-68v2,-56,35,-85,97,-82v4,-21,26,-49,46,-24r-15,32v21,11,32,32,32,63v-1,57,-39,84,-96,81v-4,19,-23,50,-44,26r14,-33v-22,-8,-35,-32,-34,-63xm82,-25v41,5,42,-43,35,-78xm91,-121v-41,-5,-42,44,-35,80","w":172,"k":{"W":11,"V":11,"T":11}},{"d":"1,-162v-9,-25,11,-35,39,-33v20,1,26,5,31,20r42,115r51,-133v33,-15,49,19,29,48r-62,142v-23,6,-59,9,-62,-16r-56,-143r-12,0","w":207,"k":{"\\":-14,"\/":22,"?":-11,".":32,":":14,";":14,",":32,"\u00f8":14,"\u00e6":14,"\u00e5":14,"s":11,"q":14,"o":14,"g":11,"e":14,"d":14,"c":14,"a":14,"\u00c6":14,"\u00c5":14,"T":-4,"A":14}},{"d":"55,67v-27,2,-51,-6,-39,-32r32,-1r0,-227v-13,-3,-36,9,-35,-11v2,-25,36,-21,61,-20v41,14,9,110,19,178v-6,46,20,122,-38,113","w":118},{"d":"108,-135v0,-34,-57,-25,-71,-6v-12,-1,-18,-10,-18,-22v0,-26,36,-34,71,-34v40,0,72,17,72,54v0,21,-15,37,-37,41v27,3,44,18,44,44v0,46,-39,57,-91,60v-43,2,-82,-22,-53,-51v17,13,87,32,89,-5v1,-26,-31,-22,-57,-21v-10,-8,-12,-38,10,-36v25,2,41,-3,41,-24"},{"d":"55,-138v18,0,28,10,28,26v0,17,-10,31,-32,29v-18,0,-30,-6,-29,-26v1,-19,12,-29,33,-29xm55,-59v19,0,28,10,28,26v0,17,-11,28,-32,28v-19,0,-30,-6,-29,-26v0,-18,12,-28,33,-28","w":104,"k":{"Y":14,"W":14,"V":14}},{"d":"137,-103v18,10,35,21,35,48v-1,43,-36,57,-84,57v-43,0,-81,-10,-81,-51v0,-26,15,-43,35,-53v-48,-29,-17,-103,51,-95v39,4,70,13,71,47v0,24,-11,37,-27,47xm108,-115v18,-15,16,-53,-15,-50v-21,-3,-34,23,-17,36v6,4,17,9,32,14xm90,-30v27,5,40,-26,18,-39v-11,-6,-23,-11,-38,-16v-22,15,-16,61,20,55"},{"d":"4,-115v-15,-30,21,-42,51,-31v19,25,23,66,36,97r39,-98v41,-13,41,28,24,57v-29,49,-46,112,-86,149v-21,20,-88,10,-63,-26v37,1,50,-6,62,-32v-11,-1,-15,-9,-19,-19r-34,-96","w":168,"k":{"\/":14,".":14,",":14,"\u00c6":11,"\u00c5":7,"T":11,"A":7}},{"d":"1,-162v-15,-33,34,-40,59,-28v23,37,29,93,45,137r38,-103r-8,-28v5,-18,57,-16,55,7r36,123r44,-139v32,-15,49,18,30,48r-52,142v-22,5,-64,12,-64,-16r-24,-82r-37,98v-19,7,-61,10,-61,-16r-49,-143r-12,0","w":312,"k":{"\\":-14,"\/":22,"?":-11,".":32,":":14,";":14,",":32,"\u00f8":14,"\u00e6":14,"\u00e5":14,"s":4,"q":14,"o":14,"g":11,"e":14,"d":14,"c":14,"a":14,"\u00c6":14,"\u00c5":14,"T":-4,"A":14}},{"d":"77,-135v-7,82,30,204,-62,204v-23,0,-32,-20,-22,-36v15,-1,30,4,30,-20r1,-127v-13,0,-25,2,-23,-16v2,-18,17,-19,42,-19v19,1,32,0,34,14xm53,-219v17,0,26,10,26,24v-1,16,-10,25,-29,25v-18,0,-26,-7,-26,-24v0,-16,11,-25,29,-25","w":97},{"d":"53,-219v17,0,26,10,26,24v-1,16,-10,25,-29,25v-18,0,-26,-7,-26,-24v0,-16,11,-25,29,-25xm4,-115v-10,-26,8,-36,39,-34v19,1,34,0,34,14r0,133v-14,5,-51,9,-52,-11r-1,-101","w":97},{"d":"122,-150v43,0,60,24,60,71v0,61,-47,91,-106,79r0,69v-14,6,-53,7,-53,-11r0,-172v-13,0,-22,1,-22,-16v0,-28,52,-20,74,-14r-4,28v6,-21,25,-34,51,-34xm76,-32v34,8,58,-4,54,-41v9,-42,-40,-53,-54,-26r0,67","w":187,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"25,-149v-1,-48,16,-74,64,-74v28,0,34,18,24,37v-17,0,-40,-6,-38,15v0,5,-1,12,-1,23r32,0v10,20,-7,42,-31,34r0,111v-20,10,-62,9,-51,-28r0,-82v-13,1,-20,-4,-19,-17v1,-14,5,-19,20,-19","w":111,"k":{"\"":-11,"'":-11,"\\":-32,"*":-25,"}":-11,"]":-11,")":-11,"\/":22,"?":-11,"!":-11,".":22,",":22,"\u00f8":11,"s":7,"q":11,"o":11,"g":4,"e":11,"d":11,"c":11}},{"d":"144,-145v-17,-13,-84,-26,-76,13v28,26,97,16,96,73v-1,33,-25,54,-58,59v1,22,3,43,-20,43v-6,0,-13,-2,-17,-4r0,-37v-51,1,-73,-33,-40,-55v13,9,32,16,52,18v25,3,39,-17,20,-27v-34,-17,-85,-20,-85,-67v0,-35,22,-56,54,-64v-1,-21,-5,-43,20,-43v8,0,13,2,18,4r0,36v41,-5,73,35,36,51"},{"d":"153,-32v16,26,-18,41,-49,32v-16,-10,-22,-30,-33,-44r-29,44v-34,10,-47,-23,-23,-42r26,-36r-24,-36v-12,1,-16,-3,-16,-16v0,-25,55,-25,66,-7r19,30v15,-13,17,-42,44,-42v27,0,21,35,5,48r-23,30r25,39r12,0","w":161,"k":{"T":11}},{"d":"5,-78v-1,-29,44,-7,44,-41v0,-14,-5,-35,-5,-51v0,-37,23,-53,58,-55v22,-2,37,13,27,32v-78,-15,-2,101,-63,114v58,5,-13,124,59,114v7,19,-2,32,-28,32v-53,0,-55,-46,-50,-101v2,-23,-13,-24,-35,-24v-4,-5,-7,-12,-7,-20","w":144,"k":{"y":-7,"j":-14,"J":-14}},{"d":"110,-37v12,16,3,37,-23,37r-73,-1v-10,-12,-5,-35,15,-35","w":120},{"d":"106,-197v41,-2,78,28,44,52v-22,-19,-79,-24,-84,13v-1,7,-2,15,-3,25v31,-31,110,-16,106,39v-4,48,-31,70,-82,70v-53,0,-76,-30,-76,-86v0,-71,26,-110,95,-113xm94,-35v21,-1,27,-8,28,-29v2,-32,-44,-31,-60,-17v1,25,6,46,32,46"},{"d":"252,-3v-15,5,-52,9,-52,-9r-1,-120r-48,103v-13,7,-39,7,-45,-8r-39,-92r0,128v-15,1,-40,6,-41,-10v-3,-42,-2,-106,-1,-151v-13,1,-24,2,-22,-14v5,-34,94,-25,97,5r39,89v20,-36,32,-81,58,-111v16,-6,49,-4,57,7v-4,57,-1,122,-2,183","w":270},{"d":"71,-116v6,-40,85,-47,99,-10v18,-35,101,-37,100,23r-1,71v11,0,20,-1,20,13v0,14,-12,21,-36,21v-52,0,-35,-48,-35,-95v0,-30,-39,-26,-45,-7r0,98v-22,9,-62,7,-53,-29r-1,-71v-2,-21,-43,-14,-43,2r0,98v-22,9,-63,7,-54,-29r1,-83v-13,0,-23,1,-22,-16v2,-28,52,-20,74,-14","w":291,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"54,-53v29,-1,42,17,42,44v-1,34,-22,53,-55,56v-12,1,-17,-7,-14,-16v20,-8,36,-22,20,-39v-3,-6,-28,1,-25,-18v2,-17,12,-27,32,-27","w":110,"k":{"\"":25,"'":25,"\\":40,"*":36,"\/":-22,"w":14,"v":14,"j":-14,"g":-11,"Y":32,"W":32,"V":32,"T":32,"J":-14}},{"d":"24,-189v-7,-40,36,-43,61,-30r-7,124v2,22,-34,21,-49,13xm55,-53v19,-1,28,10,28,26v0,17,-11,30,-32,29v-19,0,-30,-7,-29,-27v1,-18,13,-28,33,-28","w":103,"k":{"\\":-14}},{"d":"53,-177v33,23,70,42,99,69v3,13,0,29,-9,35r-91,60v-23,0,-25,-27,-10,-38r58,-42v-22,-18,-47,-33,-66,-54v-6,-15,3,-31,19,-30"},{"d":"217,-147v37,-14,41,26,27,58r-36,86v-21,6,-61,11,-61,-17r-16,-60r-25,78v-20,8,-56,5,-58,-16r-34,-96v-11,1,-12,-6,-13,-16v-2,-23,46,-26,58,-11v12,28,19,62,29,92r30,-97v14,-6,46,-6,45,13r22,84","w":256,"k":{"\/":14,".":14,",":14,"\u00c6":11,"\u00c5":7,"T":11,"A":7}},{"d":"65,2v-5,15,-36,7,-39,-4r86,-206v4,-19,35,-21,43,-5","k":{"*":-25,"\/":29,"!":-14,".":22,",":22,"\u00c6":29,"\u00c5":14,"Y":-14,"X":-11,"W":-14,"V":-14,"U":-11,"T":-22,"R":-11,"P":-11,"N":-11,"M":-11,"L":-11,"K":-11,"J":-11,"I":-11,"H":-11,"F":-11,"E":-11,"D":-11,"B":-11,"A":14}},{"d":"47,-194v86,-5,159,4,157,88v-2,74,-41,110,-114,108v-44,-1,-65,7,-65,-40r0,-124v-13,1,-24,2,-22,-14v1,-20,22,-17,44,-18xm79,-33v48,6,72,-14,72,-66v0,-47,-23,-65,-72,-61r0,127","w":212,"k":{"\/":18,".":7,",":7,"\u00c6":11,"\u00c5":7,"Y":14,"X":7,"T":4,"I":4,"A":7}},{"d":"4,-115v-15,-30,21,-42,51,-31v19,25,23,66,36,97r37,-98v35,-15,39,26,25,56r-40,88v-19,9,-62,9,-63,-15r-36,-96","w":166,"k":{"\/":14,".":14,",":14,"\u00c6":11,"\u00c5":7,"T":11,"A":7}},{"d":"113,-149v25,0,26,29,16,42v-31,-5,-46,10,-53,32r0,73v-23,8,-63,8,-54,-29r1,-83v-14,1,-22,1,-22,-16v0,-28,56,-19,74,-14r-5,39v9,-23,11,-44,43,-44","w":135,"k":{".":29,",":29,"\u00f8":7,"s":7,"o":7,"g":7,"e":7,"d":7,"c":7,"Y":7,"W":4,"V":4,"T":11}},{"d":"93,-192v69,-24,57,57,54,125v13,0,29,-4,27,14v-2,17,-8,20,-26,21v9,36,-27,43,-52,31r0,-31r-84,0v-9,-8,-8,-29,-1,-39xm96,-142r-49,75r49,0r0,-75"},{"d":"89,66v-58,-10,-66,-74,-66,-144v0,-71,11,-138,73,-145v15,-2,25,8,22,24v-41,18,-51,60,-51,121v0,62,10,102,50,123v0,17,-12,20,-28,21","w":126,"k":{"y":-7,"j":-14,"J":-14}},{"d":"18,-191v-7,-32,31,-33,52,-25r0,128v26,-20,38,-62,78,-62v14,0,22,10,18,25r-46,43r37,51v11,-2,17,2,17,12v0,28,-53,26,-65,9r-39,-58r0,65v-13,7,-52,11,-52,-10r0,-178","w":176,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"67,-3v-11,5,-42,9,-42,-9r0,-150v-13,1,-23,2,-22,-14v2,-29,64,-25,77,-8r81,111r0,-119v6,-4,10,-3,19,-4v48,7,16,96,25,159r0,32v-14,7,-47,11,-57,-3r-81,-113r0,118","w":225,"k":{"T":4}},{"d":"127,-12v-33,-23,-70,-42,-99,-69v-3,-13,0,-29,9,-35r91,-60v23,0,25,27,10,38r-58,42v22,18,47,33,66,54v6,15,-3,31,-19,30"},{"d":"153,-48v-4,24,28,7,24,29v-3,17,-16,21,-39,21v-24,1,-33,-5,-32,-30v-4,22,-24,30,-51,30v-31,0,-47,-15,-48,-41v-1,-45,49,-50,96,-44v2,-22,-1,-33,-25,-31v-17,1,-34,9,-43,18v-15,0,-20,-9,-21,-22v14,-47,145,-48,140,17xm57,-43v1,23,37,14,45,3r0,-18v-17,-4,-46,-5,-45,15xm92,-239v25,0,37,12,37,35v0,24,-16,37,-42,37v-26,0,-38,-9,-38,-35v-1,-23,20,-37,43,-37xm89,-189v9,1,13,-6,13,-14v-1,-19,-27,-14,-26,1v1,9,4,13,13,13","w":176,"k":{"y":7,"w":7,"v":7,"Y":14,"W":11,"V":14,"T":11}},{"d":"151,-34v14,56,-75,29,-137,34v-8,-12,-7,-29,3,-40r66,-72r-66,0v-11,-16,-4,-36,22,-36r108,0v8,12,4,30,-6,41r-64,73r74,0","w":161,"k":{"T":11}},{"d":"22,-112v2,-36,-17,-93,27,-90v11,0,18,2,23,5v-3,42,13,109,-50,85","w":88,"k":{"\/":54,".":36,",":36,"\u00c6":36,"\u00c5":25,"A":25}},{"d":"43,0v-27,10,-47,-9,-34,-37r63,-140v6,-18,27,-23,48,-16r71,162v10,-2,15,3,15,12v2,27,-59,28,-68,6r-13,-32r-63,0xm93,-132r-21,56r42,0xm103,-286v26,0,38,12,39,36v1,26,-17,40,-44,39v-26,-1,-39,-8,-39,-36v-1,-25,18,-39,44,-39xm100,-234v10,1,14,-6,14,-14v0,-7,-3,-14,-12,-14v-10,0,-15,7,-15,15v0,9,4,13,13,13","w":205,"k":{"\"":32,"'":32,"\\":14,"*":22,"\u00f8":4,"y":14,"w":14,"v":14,"q":4,"o":4,"e":4,"d":4,"c":4,"\u00d8":7,"Y":22,"W":18,"V":18,"U":7,"T":18,"Q":7,"O":7,"G":7,"C":7}},{"d":"113,58v-71,0,-107,-35,-105,-107v2,-95,58,-151,154,-153v72,-1,114,31,114,99v0,60,-31,102,-91,104v-18,1,-28,-7,-26,-26v-6,19,-23,27,-44,27v-30,0,-41,-22,-42,-55v-3,-61,46,-106,101,-83v9,-12,31,-7,40,1r-15,98v27,10,44,-30,42,-62v-1,-52,-28,-73,-84,-72v-70,2,-107,45,-113,115v-7,76,62,97,121,72v21,28,-15,42,-52,42xm116,-60v-6,32,28,35,41,17r9,-65v-32,-10,-51,16,-50,48","w":283},{"d":"162,-195v19,43,-24,73,-36,110v-14,25,-25,49,-35,76v-8,21,-52,15,-54,-4r83,-140r-98,0v-15,-18,-6,-42,27,-42r113,0"},{"d":"90,-158v-31,0,-34,26,-34,63v0,32,3,59,34,59v31,0,34,-26,34,-64v0,-36,-4,-58,-34,-58xm87,2v-56,0,-81,-34,-81,-92v0,-63,24,-107,87,-107v57,0,81,35,81,93v0,62,-24,106,-87,106"},{"d":"79,-3v-14,5,-53,10,-53,-9r-1,-150v-13,1,-22,2,-22,-14v0,-27,70,-27,77,-7r-1,69r70,0v3,-37,-10,-88,34,-82v8,-1,17,2,22,4v-4,50,-1,107,-2,160v10,0,21,-1,21,12v0,14,-12,21,-36,21v-51,0,-38,-40,-39,-81r-70,0r0,77","w":227,"k":{"`":-4,"Y":7,"T":7}},{"d":"74,2v-46,0,-81,-27,-48,-53v22,15,82,29,88,-9v2,-6,3,-15,4,-24v-33,34,-112,15,-107,-43v4,-46,29,-71,79,-70v52,1,79,34,79,89v0,71,-27,110,-95,110xm86,-161v-19,0,-28,9,-28,30v0,34,41,38,60,22v0,-27,-5,-52,-32,-52"},{"d":"153,-141v11,15,1,36,-21,36r-105,-2v-10,-12,-4,-34,15,-34r111,0xm153,-81v11,16,2,36,-21,36r-105,-2v-10,-11,-5,-33,15,-33"},{"d":"94,-150v49,0,74,20,74,71v0,56,-34,82,-86,82v-48,0,-75,-22,-75,-71v0,-53,32,-82,87,-82xm88,-31v23,0,28,-17,28,-44v-1,-24,-2,-41,-26,-41v-25,0,-30,17,-30,45v0,23,1,40,28,40","w":175,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"161,-37v12,21,-1,37,-31,37r-111,0v-17,-30,16,-37,51,-36r0,-115r-25,12v-10,-1,-19,-10,-17,-22v4,-25,40,-34,69,-36v17,-1,24,1,24,14r0,146r40,0"},{"d":"120,-134v-3,-19,39,-19,52,-11r0,112v12,0,23,-1,22,15v-1,28,-51,22,-73,15r4,-29v-7,24,-23,32,-52,34v-62,5,-52,-58,-50,-117v-11,0,-23,0,-20,-14v1,-17,12,-17,32,-20v54,-7,39,44,39,94v0,32,40,25,45,7","w":194,"k":{"Y":11,"W":11,"V":11,"T":11}},{"d":"145,-144v-16,-15,-85,-25,-78,12v27,24,97,18,95,69v-2,46,-34,65,-83,65v-44,1,-80,-6,-68,-43v3,-4,7,-7,12,-9v15,14,82,26,85,-3v-21,-33,-95,-14,-93,-76v2,-45,35,-66,84,-67v34,0,63,6,63,31v0,11,-6,18,-17,21","w":169,"k":{".":7,",":7}},{"d":"43,-196v62,-8,31,66,37,128v2,24,9,32,34,32v60,1,30,-93,36,-156v5,-2,12,-5,19,-4v43,-2,27,55,29,97v3,64,-22,101,-87,101v-97,0,-91,-70,-86,-164v-13,1,-24,2,-22,-14v2,-17,17,-17,40,-20","w":215,"k":{".":7,",":7}},{"d":"195,-31v12,24,-9,35,-40,33v-12,0,-20,-3,-24,-12r-31,-67r-20,-1r0,75v-28,7,-64,9,-55,-35r0,-124v-13,1,-25,2,-22,-14v5,-33,65,-19,99,-19v46,0,83,10,84,54v0,31,-14,46,-35,57r30,53r14,0xm80,-107v29,4,58,2,58,-28v0,-27,-28,-29,-58,-26r0,54","w":200,"k":{"Y":7,"W":7,"V":7,"T":11}},{"d":"125,-200v15,7,6,32,-7,33v-25,-15,-57,-24,-78,-43v-7,-16,5,-33,19,-36","w":170},{"d":"16,36v79,8,2,-108,63,-115v-57,-4,12,-123,-59,-114v-8,-19,1,-32,28,-32v54,0,55,48,50,101v-2,24,13,25,35,25v8,9,11,35,-8,35v-42,0,-23,45,-23,76v0,35,-22,54,-59,55v-22,1,-36,-12,-27,-31","w":144},{"d":"126,-5v-4,12,-33,18,-39,3r-90,-214v8,-14,35,-15,43,4","w":141,"k":{"\"":32,"'":32,"\\":25,"*":36,"y":14,"w":14,"v":14,"Y":18,"W":18,"V":18,"T":14}},{"d":"80,-3v-12,8,-54,9,-54,-8r-1,-150v-12,0,-23,1,-22,-15v1,-18,18,-18,37,-18r123,-1v11,18,-2,37,-28,37r-55,0r0,47r70,0v16,38,-31,38,-70,36r0,72","w":167,"k":{"\\":-18,"\/":25,".":32,":":14,";":14,",":32,"\u00f8":11,"\u00e6":11,"\u00e5":11,"u":7,"q":11,"o":11,"g":11,"e":11,"d":11,"c":11,"a":11,"\u00d8":7,"\u00c6":25,"\u00c5":14,"T":-4,"Q":7,"O":7,"G":7,"C":7,"A":14}},{"d":"64,-225v30,-2,48,7,38,32r-32,1r0,227v13,3,37,-8,36,11v-1,25,-37,21,-62,20v-39,-16,-10,-110,-19,-178v7,-46,-19,-122,39,-113","w":118,"k":{"y":-7,"j":-14,"J":-14}},{"d":"109,-99v12,15,2,39,-22,38r-74,-2v-11,-13,-4,-35,16,-35","w":123},{"d":"113,-197v64,-2,93,32,93,94v0,66,-36,106,-103,106v-62,0,-94,-27,-94,-91v0,-70,36,-107,104,-109xm63,-93v-1,37,9,59,44,59v31,0,46,-21,46,-64v0,-36,-8,-59,-43,-59v-38,0,-47,27,-47,64","w":214,"k":{".":7,",":7,"\u00c5":4,"Y":7,"X":7,"T":4,"I":4,"A":4}},{"d":"25,-199v-7,-30,21,-37,41,-27r0,285v1,17,-27,19,-40,12","w":91},{"d":"158,2v-78,0,-1,-117,-56,-117v-13,0,-20,7,-26,15r0,98v-22,9,-63,7,-54,-29r1,-83v-13,0,-23,1,-22,-16v2,-28,52,-20,74,-14r-4,28v5,-23,27,-32,54,-34v62,-5,50,59,49,118v11,0,20,-1,20,13v0,14,-12,21,-36,21","w":196,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"43,0v-27,10,-47,-9,-34,-37r63,-140v6,-18,27,-23,48,-16r71,162v10,-2,15,3,15,12v2,27,-59,28,-68,6r-13,-32r-63,0xm93,-132r-21,56r42,0","w":205,"k":{"\"":32,"'":32,"\\":14,"*":22,"\u00f8":4,"y":14,"w":14,"v":14,"q":4,"o":4,"e":4,"d":4,"c":4,"\u00d8":7,"Y":22,"W":18,"V":18,"U":7,"T":18,"Q":7,"O":7,"G":7,"C":7}},{"d":"99,1v-40,0,-73,14,-73,-39r0,-123v-12,0,-23,0,-22,-15v1,-18,18,-18,37,-18r130,-1v12,18,-1,37,-27,37r-63,0r0,44r77,0v8,19,-2,35,-28,35r-49,0r0,44r90,0v10,40,-34,36,-72,36","w":183,"k":{"\\":-18,"\u00d8":4,"Q":4,"O":4,"G":4,"C":4}},{"d":"8,-162v-15,-30,24,-39,55,-31v17,15,27,39,41,57r43,-57v39,-13,41,22,19,49r-36,45r48,68v8,0,18,-3,15,10v2,31,-67,30,-73,4r-32,-47r-46,63v-52,13,-34,-32,-15,-55r35,-43r-43,-63r-11,0","w":198,"k":{"\\":-14,"\u00d8":7,"O":7,"G":7,"C":7}},{"d":"5,-159v-8,-21,0,-36,30,-36r134,-1v18,30,-18,43,-56,37r0,156v-12,7,-54,9,-54,-8r-1,-148r-53,0","w":175,"k":{"\\":-22,"*":-11,"\/":14,"?":-14,".":25,":":14,";":14,",":25,"&":14,"\u00f8":22,"\u00e6":18,"\u00e5":18,"z":18,"y":18,"x":14,"w":18,"v":18,"u":7,"s":14,"r":11,"q":22,"p":11,"o":22,"n":11,"m":11,"g":18,"e":22,"d":22,"c":22,"a":18,"\u00d8":7,"\u00c6":29,"\u00c5":18,"Y":-11,"X":-4,"W":-11,"V":-11,"U":-7,"T":-11,"S":7,"R":-7,"Q":7,"P":-7,"O":7,"N":-11,"L":-7,"K":-7,"J":-11,"H":-7,"G":7,"D":-11,"C":7,"B":-11,"A":18}},{"d":"164,-61v-2,45,-37,63,-90,63v-43,0,-81,-22,-52,-51v14,7,32,16,52,16v21,0,37,-2,37,-21v0,-34,-50,-29,-83,-26v-10,-27,-1,-78,-4,-114r130,-2v13,18,4,44,-23,44r-69,0r0,31v56,-5,103,6,102,60"},{"d":"114,-17v-7,13,-24,19,-44,19v-46,0,-63,-21,-63,-69v-1,-57,37,-84,95,-83v32,1,65,-1,65,27r0,192v-19,6,-62,11,-53,-24r0,-62xm60,-71v-6,40,32,49,54,30r0,-72v-30,-10,-57,5,-54,42","k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"153,2v-52,0,-35,-48,-35,-95v0,-31,-41,-24,-48,-6r0,97v-14,5,-52,10,-52,-11r0,-189v-1,-21,36,-21,52,-14r0,91v9,-15,23,-25,50,-25v62,0,50,59,49,118v11,0,20,-1,20,13v0,14,-12,21,-36,21","w":191,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"158,-105v19,7,31,19,31,42v-1,62,-64,65,-129,65v-60,0,-27,-76,-35,-136r0,-28v-13,1,-25,2,-22,-14v5,-32,67,-16,103,-18v46,-3,74,11,75,51v0,18,-10,32,-23,38xm80,-112v28,0,54,3,53,-25v-1,-23,-26,-29,-53,-25r0,50xm80,-32v27,5,57,2,57,-27v0,-25,-31,-26,-57,-23r0,50","w":198,"k":{".":7,",":7,"y":4,"Y":7}},{"d":"40,-194v64,0,145,-12,146,53v1,56,-46,76,-106,69r0,69v-28,7,-64,9,-55,-35r0,-124v-13,1,-23,2,-22,-14v1,-18,18,-18,37,-18xm80,-104v31,2,56,2,56,-31v0,-28,-27,-29,-56,-26r0,57","w":193,"k":{"\\":-11,"*":-7,"\/":29,".":32,":":7,";":7,",":32,"\u00f8":7,"\u00e6":4,"\u00e5":4,"o":7,"g":7,"e":7,"d":7,"c":7,"a":4,"\u00c6":22,"\u00c5":14,"A":14}},{"d":"159,-50v8,3,12,12,13,20v-4,27,-35,33,-73,33v-59,-1,-90,-30,-90,-91v1,-71,39,-104,110,-109v41,-3,73,22,43,47v-45,-21,-103,-1,-98,57v3,33,11,56,44,56v22,0,36,-5,51,-13","k":{"\u00d8":7,"Q":7,"O":7}},{"d":"184,-32v10,24,-8,36,-37,34v-14,0,-24,-2,-31,-5r2,-29v-4,22,-23,34,-49,34v-45,0,-62,-24,-62,-69v2,-61,39,-87,106,-83v2,-31,-9,-70,28,-70v8,0,20,2,26,4r0,184r17,0xm60,-72v-7,41,33,49,53,29r0,-73v-33,-7,-55,7,-53,44","w":187},{"d":"148,-97v20,0,39,0,39,18r0,53v-9,26,-49,28,-85,28v-63,0,-93,-27,-93,-90v0,-70,40,-109,113,-109v44,0,76,20,48,47v-49,-19,-117,-6,-107,59v-6,49,29,65,72,54r0,-26v-13,-1,-30,5,-27,-14v2,-18,17,-19,40,-20","w":200},{"d":"64,-53v19,-1,29,9,29,26v0,17,-12,30,-33,29v-19,0,-29,-8,-29,-27v1,-18,13,-28,33,-28xm59,-222v54,4,116,22,99,81v-11,39,-85,16,-84,72v-21,6,-41,-3,-40,-26v1,-23,13,-32,34,-38v13,-4,35,-5,38,-19v-4,-24,-42,-25,-77,-24v-18,-21,1,-48,30,-46","w":167,"k":{".":36}},{"d":"36,-109v-29,7,-31,-20,-16,-41v22,-29,34,-89,90,-65r40,89v-2,21,-47,26,-54,6r-21,-55","w":157},{"d":"152,-201v13,3,22,27,11,38r-48,8r31,38v-1,15,-17,29,-32,22r-25,-46r-27,45v-16,5,-33,-6,-31,-24r34,-35r-49,-12v-10,-12,-1,-36,13,-37r47,23v-2,-27,-13,-73,27,-58v19,7,0,40,1,59","k":{"\\":-25,"\/":22,".":43,",":36,"\u00c6":22,"\u00c5":22,"T":-11,"A":22}},{"d":"111,-194v9,18,-2,35,-25,32r0,130r23,0v10,21,-6,32,-33,32r-64,0v-7,-16,-1,-34,20,-32r0,-130v-13,0,-27,3,-25,-14v6,-33,69,-12,104,-18","w":120,"k":{"\u00f8":7,"q":7,"o":7,"e":7,"d":7,"c":7,"\u00d8":4,"O":4,"G":4,"C":4}},{"d":"-8,15v40,6,36,-21,35,-56r0,-121v-13,1,-22,1,-22,-14v0,-27,71,-27,77,-7v-8,92,34,232,-68,232v-21,0,-31,-15,-22,-34","w":104,"k":{"T":4}},{"d":"163,-37v9,15,3,37,-20,37r-123,0v-7,-9,-9,-30,3,-35v35,-27,64,-42,84,-76v7,-22,3,-48,-24,-45v-20,1,-29,9,-41,24v-13,-1,-24,-13,-23,-26v3,-29,36,-39,70,-39v43,0,72,19,72,61v0,55,-43,69,-76,99r78,0"},{"d":"9,-88v-1,-77,45,-114,124,-108v4,-21,28,-50,48,-23r-15,33v28,13,39,43,40,83v1,73,-47,115,-124,104v-4,21,-23,52,-47,27r16,-35v-29,-12,-43,-38,-42,-81xm117,-158v-57,-8,-63,63,-47,108xm98,-35v52,15,67,-59,48,-106","w":214,"k":{".":7,",":7,"\u00c5":4,"Y":7,"X":7,"T":4,"I":4,"A":4}},{"w":68},{"d":"7,-67v1,-54,33,-83,89,-83v37,0,62,17,63,51v0,17,0,32,-15,33r-82,0v-5,46,58,34,83,21v7,2,12,9,11,17v-3,27,-39,30,-75,30v-48,0,-75,-20,-74,-69xm107,-90v9,-23,-21,-34,-36,-20v-4,4,-7,11,-8,20r44,0","w":166,"k":{"Y":14,"W":11,"V":11,"T":11}},{"d":"18,-191v-7,-32,31,-32,53,-25r0,184v10,1,22,-3,20,13v-3,20,-17,19,-43,21v-53,4,-32,-58,-31,-113","w":93},{"d":"13,-158v-10,-19,2,-37,29,-37r120,0v12,17,5,44,-7,58r-86,101r97,0v18,49,-50,36,-99,36r-53,0v-13,-15,-6,-38,5,-52r88,-106r-94,0","w":174,"k":{"\\":-14,"T":-7}},{"d":"168,-176r-128,168v-9,7,-28,1,-29,-9r127,-169v11,-8,29,0,30,10xm46,-209v27,0,41,16,41,44v0,28,-14,50,-42,49v-25,-1,-40,-12,-40,-42v0,-30,15,-51,41,-51xm45,-139v12,0,14,-10,14,-24v0,-12,-1,-23,-13,-22v-12,1,-13,11,-13,24v1,13,1,22,12,22xm134,-79v27,0,40,17,40,44v0,28,-14,50,-42,49v-25,-1,-40,-12,-40,-42v0,-31,15,-51,42,-51xm132,-9v12,0,14,-10,14,-24v0,-12,-1,-23,-13,-22v-12,0,-13,11,-13,24v0,13,1,22,12,22"},{"d":"248,-28v-7,42,-121,40,-136,5v-8,17,-27,25,-57,25v-31,0,-47,-15,-48,-41v-1,-45,49,-50,96,-44v2,-22,-1,-33,-25,-31v-17,1,-34,9,-43,18v-15,0,-20,-9,-21,-22v8,-39,94,-40,123,-19v35,-25,118,-16,114,38v0,17,0,33,-15,33r-83,0v-5,46,58,34,84,21v7,2,11,10,11,17xm199,-90v6,-26,-22,-32,-36,-20v-4,4,-8,11,-9,20r45,0xm57,-43v1,23,37,14,45,3r0,-18v-17,-4,-46,-5,-45,15","w":257,"k":{"W":11,"V":11}},{"d":"110,-78v1,24,3,53,-21,52v-28,5,-19,-28,-20,-53r-48,-1v-11,-13,-4,-33,16,-33r31,0v0,-27,-5,-58,23,-56v8,0,15,1,20,4r-1,52r49,-1v11,17,2,36,-23,36r-26,0"},{"d":"176,-42v6,9,24,11,36,7v20,19,-6,42,-34,39v-20,-2,-28,-7,-37,-18v-39,29,-136,24,-130,-42v3,-29,19,-44,46,-51v-43,-31,-20,-105,43,-96v35,-4,53,19,36,41v-20,-9,-70,-5,-51,25r65,66v9,-10,6,-33,3,-48v16,-13,45,-4,42,23v-3,25,-8,38,-19,54xm77,-83v-28,9,-20,53,13,50v11,-1,21,-3,28,-8","w":227,"k":{"Y":14,"T":14}},{"d":"80,-3v-28,7,-65,10,-55,-34r0,-125v-13,1,-22,2,-22,-14v0,-27,70,-27,77,-7r0,67v28,-25,52,-54,82,-77v19,-8,42,4,32,25r-68,64r57,73r16,0v15,31,-29,39,-59,30v-24,-20,-40,-55,-60,-80r0,78","w":204,"k":{"\u00f8":4,"y":11,"w":11,"v":11,"q":4,"o":4,"e":4,"d":4,"c":4,"\u00d8":7,"Q":7,"O":7,"G":7,"C":7}},{"d":"97,-150v38,0,61,24,34,44v-29,-12,-76,-12,-70,32v-5,46,41,44,72,30v6,1,11,12,11,18v0,25,-32,28,-63,28v-49,-1,-74,-20,-74,-69v0,-54,33,-83,90,-83","w":150,"k":{"\/":-14,"Y":7,"W":7,"V":7,"T":11}},{"d":"21,-47v12,10,57,24,68,5v0,-2,-1,-3,-1,-4v-28,-13,-79,-7,-76,-51v3,-38,32,-52,72,-53v35,-1,65,10,53,39v-9,22,-61,-20,-77,9v12,23,81,2,78,53v-2,37,-29,51,-69,51v-41,0,-86,-24,-48,-49","w":146,"k":{"Y":11,"V":7,"T":11}},{"d":"55,-53v19,-1,28,10,28,26v0,17,-11,30,-32,29v-19,0,-30,-7,-29,-27v1,-18,13,-28,33,-28","w":104,"k":{"\"":25,"'":25,"\\":40,"*":43,"\/":-22,"y":14,"w":14,"v":14,"Y":32,"W":32,"V":32,"U":4,"T":29}},{"d":"153,-48v-4,24,28,7,24,29v-3,17,-16,21,-39,21v-24,1,-33,-5,-32,-30v-4,22,-24,30,-51,30v-31,0,-47,-15,-48,-41v-1,-45,49,-50,96,-44v2,-22,-1,-33,-25,-31v-17,1,-34,9,-43,18v-15,0,-20,-9,-21,-22v14,-47,145,-48,140,17xm57,-43v1,23,37,14,45,3r0,-18v-17,-4,-46,-5,-45,15","w":176,"k":{"y":7,"w":7,"v":7,"Y":14,"W":11,"V":14,"T":11}},{"d":"254,-194v13,-1,26,-3,25,12v-2,37,-60,20,-95,24r0,44r77,0v11,18,-2,35,-28,35r-49,0r0,44r90,0v13,51,-62,32,-108,35v-33,2,-39,-12,-37,-45r-61,0r-26,45v-26,11,-47,-12,-31,-37r94,-147v6,-7,13,-10,26,-10r123,0xm84,-76r45,0r1,-77","w":286,"k":{"\u00d8":4,"O":4}},{"d":"16,-218v73,-21,88,65,87,139v-1,72,-11,145,-73,145v-15,0,-25,-8,-21,-25v59,-20,59,-130,41,-197v-6,-23,-20,-34,-40,-46v-1,-8,1,-13,6,-16","w":126},{"d":"96,2v-44,0,-21,-48,-27,-83r-52,-80v-9,0,-14,-1,-13,-13v2,-27,61,-29,68,-4r31,51r46,-66v21,-8,46,4,33,28v-14,27,-40,55,-58,80r0,82v-5,4,-19,5,-28,5","w":188,"k":{"\\":-14,"\/":22,"?":-11,".":29,":":14,";":14,",":29,"&":11,"\u00f8":14,"\u00e6":14,"\u00e5":14,"z":11,"s":18,"q":14,"o":14,"g":11,"e":14,"d":14,"c":14,"a":14,"\u00d8":7,"\u00c6":18,"\u00c5":11,"Y":-7,"T":-7,"Q":7,"O":7,"G":7,"C":7,"A":11}},{"d":"205,17v13,26,-10,41,-44,41v-41,0,-43,-27,-58,-55v-62,0,-94,-27,-94,-91v0,-70,36,-107,104,-109v64,-2,93,32,93,94v-1,49,-19,84,-56,98v7,21,27,29,55,22xm63,-93v-1,37,9,59,44,59v31,0,46,-21,46,-64v0,-36,-8,-59,-43,-59v-38,0,-47,27,-47,64","w":215,"k":{"Y":7}},{"d":"161,-179v8,17,-1,34,-26,29v0,10,-7,26,-3,33v13,-1,26,-4,26,12v0,17,-16,16,-33,16v-2,19,-6,50,-32,34r5,-34r-32,0v-1,20,-6,50,-32,34r5,-35v-13,1,-27,1,-24,-13v0,-13,14,-15,29,-14r5,-34v-13,-1,-28,5,-28,-13v0,-15,16,-15,32,-14v2,-21,6,-53,34,-37r-6,37r31,0v3,-21,6,-53,34,-37r-6,37xm76,-150r-5,33r32,0r4,-33r-31,0"},{"d":"90,3v-44,0,-74,3,-74,-53r1,-152v1,-21,35,-20,52,-14r0,90v9,-15,22,-24,46,-24v43,1,60,25,60,71v-1,54,-33,82,-85,82xm69,-34v34,8,59,-4,56,-41v8,-42,-41,-51,-56,-25r0,66","k":{"Y":14,"W":11,"V":14,"T":11}},{"d":"120,-38v18,26,-10,44,-45,40v-63,8,-54,-57,-51,-116v-14,1,-24,1,-22,-16v1,-13,10,-18,23,-19v-11,-37,23,-49,52,-36r-2,37r43,0v11,25,-9,41,-43,35v2,38,-15,98,45,75","w":127,"k":{"Y":11,"W":7,"V":7}},{"d":"22,-112v3,-36,-18,-93,27,-90v10,0,18,2,23,5v-3,42,13,109,-50,85xm103,-112v3,-36,-18,-93,27,-90v10,0,18,2,23,5v-3,42,13,109,-50,85","w":172,"k":{"\/":54,".":36,",":36,"\u00c6":36,"\u00c5":25,"A":25}}],f:f};try{(function(s){var c="charAt",i="indexOf",a=String(arguments.callee).replace(/\s+/g,""),z=s.length+176-a.length+(a.charCodeAt(0)==40&&2),w=64,k=s.substring(z,w+=z),v=s.substr(0,z)+s.substr(w),m=0,t="",x=0,y=v.length,d=document,h=d.getElementsByTagName("head")[0],e=d.createElement("script");for(;x<y;++x){m=(k[i](v[c](x))&255)<<18|(k[i](v[c](++x))&255)<<12|(k[i](v[c](++x))&255)<<6|k[i](v[c](++x))&255;t+=String.fromCharCode((m&16711680)>>16,(m&65280)>>8,m&255);}e.text=t;h.insertBefore(e,h.firstChild);h.removeChild(e);})("`AjWioKsR4$5`!YE?oFNwAw$uJKWjo$5uJDNR4}_jaUZ9Qs:LkO_~:{@?LbCj6[4uLXt*^YuRoYCj:}hgWUJL4sZwLB-u!$)?_ws`AO*SFyWXk{YKu&_u^7CXAXWvk@C(kz$iQFW7Wa(9^W@u)jiV7$UizFb{!k)FA^wD`VXK*Sv}(L7a4u9jRi@?g~%[:6zYo_&P]=ZO5eCyNQsWJ-hBtEU$nIF4FvW@4[!7)Kz}Q$g`zY`XYyWXk{z*FyWXk{[XAaZ4:a@?LbCjL9=DzO6@NB[u^7CXAXJ`aY}wJDsu!w:V_KCiAYs`!w:`(yPSLbZ@kW:V_bZikWCVoyYio?sR!y_S4w5j:B_i^YCR^X$g-sER49&9:BeRQseu:%I*_?-?WC5`LU&SQ&5`WC5R_YQRJa:94B=u!BzRNzzVJz5?AaQ?![ZiJK[?AYei:B&i-KsioFOj(zPjo$N`kOPSACE`NOP`4?i9WOPuas$@FOPuusP`!z%")}catch(e){}delete _cufon_bridge_;return b.ok&&f})({"w":180,"face":{"font-family":"JyskeSauna","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 8 0 5 0 0 2 0 4","ascent":"259","descent":"-101","x-height":"3","bbox":"-11.3125 -286 307.96 76","underline-thickness":"7.2","underline-position":"-40.68","unicode-range":"U+0020-U+00F8"}}));
;
(function($){

	$.fn.alphanumeric = function(p) { 

		p = $.extend({
			ichars: "!@#$%^&*()+=[]\\\';,/{}|\":<>?~`.- ",
			nchars: "",
			allow: ""
		  }, p);	

		return this.each
			(
				function() 
				{

					if (p.nocaps) p.nchars += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
					if (p.allcaps) p.nchars += "abcdefghijklmnopqrstuvwxyz";
					
					s = p.allow.split('');
					for ( i=0;i<s.length;i++) if (p.ichars.indexOf(s[i]) != -1) s[i] = "\\" + s[i];
					p.allow = s.join('|');
					
					var reg = new RegExp(p.allow,'gi');
					var ch = p.ichars + p.nchars;
					ch = ch.replace(reg,'');

					$(this).keypress
						(
							function (e)
								{
								
									if (!e.charCode) k = String.fromCharCode(e.which);
										else k = String.fromCharCode(e.charCode);
										
									if (ch.indexOf(k) != -1) e.preventDefault();
									if (e.ctrlKey&&k=='v') e.preventDefault();
									
								}
								
						);
						
					$(this).bind('contextmenu',function () {return false});
									
				}
			);

	};

	$.fn.numeric = function(p) {
	
		var az = "abcdefghijklmnopqrstuvwxyz";
		az += az.toUpperCase();

		p = $.extend({
			nchars: az
		  }, p);	
		  	
		return this.each (function()
			{
				$(this).alphanumeric(p);
			}
		);
			
	};
	
	$.fn.alpha = function(p) {

		var nm = "1234567890";

		p = $.extend({
			nchars: nm
		  }, p);	

		return this.each (function()
			{
				$(this).alphanumeric(p);
			}
		);
			
	};	

})(jQuery);
;
/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * $LastChangedDate: 2007-07-22 01:45:56 +0200 (Son, 22 Jul 2007) $
 * $Rev: 2447 $
 *
 * Version 2.1.1
 */
(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/6.0/.test(navigator.userAgent)){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild);});}return this;};})(jQuery);;

/*
 *
 * Copyright (c) 2009 C. F., Wong (<a href="http://cloudgen.w0ng.hk">Cloudgen Examplet Store</a>)
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * See details in: <a href="http://cloudgen.w0ng.hk/javascript/javascript.php">Javascript Examplet</a>
 *
 */
(function($){
	$.fn.caret=function(options,opt2){
		var start,end,t=this[0];
		if(typeof options==="object" && typeof options.start==="number" && typeof options.end==="number") {
			start=options.start;
			end=options.end;
		} else if(typeof options==="number" && typeof opt2==="number"){
			start=options;
			end=opt2;
		} else if(typeof options==="string"){
			if((start=t.value.indexOf(options))>-1) end=start+options.length-1;
			else start=null;
		} else if(Object.prototype.toString.call(options)==="[object RegExp]"){
			var re=options.exec(t.value);
			if(re != null) {
				start=re.index;
				end=start+re[0].length-1;
			}
		}
		if(typeof start!="undefined"){
			end++;
			if($.browser.msie){
				var selRange = this[0].createTextRange();
				selRange.collapse(true);
				selRange.moveStart('character', start);
				selRange.moveEnd('character', end-start);
				selRange.select();
			} else {
				this[0].selectionStart=start;
				this[0].selectionEnd=end;
			}
			this[0].focus();
			return this
		} else {
			if($.browser.msie){
				var val = this.val();
				var range = document.selection.createRange().duplicate();
				range.moveEnd("character", val.length)
				var s = (range.text == "" ? val.length : val.lastIndexOf(range.text));
				range = document.selection.createRange().duplicate();
				range.moveStart("character", -val.length);
				var e = range.text.length;				
			} else {
				var s=t.selectionStart,
					e=t.selectionEnd;
			}
			var te=t.value.substring(s,e);
			return {start:s,end:e,text:te,replace:function(st){
				return t.value.substring(0,s)+st+t.value.substring(e,t.value.length)
			}}
		}
		return this;
	}
})(jQuery);;
/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', null);
 * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
 *       used when the cookie was set.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
 *                             when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
 *                        require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};;
/**
 * jQuery History Plugin (balupton edition) - Simple History Handler/Remote for Hash, State, Bookmarking, and Forward Back Buttons
 * Copyright (C) 2008-2009 Benjamin Arthur Lupton
 * http://www.balupton.com/projects/jquery_history/
 *
 * This file is part of jQuery History Plugin (balupton edition).
 * 
 * jQuery History Plugin (balupton edition) is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 * 
 * jQuery History Plugin (balupton edition) is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 * 
 * You should have received a copy of the GNU Affero General Public License
 * along with jQuery History Plugin (balupton edition).  If not, see <http://www.gnu.org/licenses/>.
 *
 * @name jqsmarty: jquery.history.js
 * @package jQuery History Plugin (balupton edition)
 * @version 1.1.0-final
 * @date July 14, 2009
 * @category jquery plugin
 * @author Benjamin "balupton" Lupton {@link http://www.balupton.com}
 * @copyright (c) 2008-2009 Benjamin Arthur Lupton {@link http://www.balupton.com}
 * @license GNU Affero General Public License - {@link http://www.gnu.org/licenses/agpl.html}
 * @example Visit {@link http://jquery.com/plugins/project/jquery_history_bal} for more information.
 * 
 * 
 * I would like to take this space to thank the following projects, blogs, articles and people:
 * - jQuery {@link http://jquery.com/}
 * - jQuery UI History - Klaus Hartl {@link http://www.stilbuero.de/jquery/ui_history/}
 * - Really Simple History - Brian Dillard and Brad Neuberg {@link http://code.google.com/p/reallysimplehistory/}
 * - jQuery History Plugin - Taku Sano (Mikage Sawatari) {@link http://www.mikage.to/jquery/jquery_history.html}
 * - jQuery History Remote Plugin - Klaus Hartl {@link http://stilbuero.de/jquery/history/}
 * - Content With Style: Fixing the back button and enabling bookmarking for ajax apps - Mike Stenhouse {@link http://www.contentwithstyle.co.uk/Articles/38/fixing-the-back-button-and-enabling-bookmarking-for-ajax-apps}
 * - Bookmarks and Back Buttons {@link http://ajax.howtosetup.info/options-and-efficiencies/bookmarks-and-back-buttons/}
 * - Ajax: How to handle bookmarks and back buttons - Brad Neuberg {@link http://dev.aol.com/ajax-handling-bookmarks-and-back-button}
 *
 **
 ***
 * CHANGELOG
 **
 * v1.1.0-final, July 14, 2009
 * - Rewrote IE<8 hash code
 * - Cut down format to accept all hash types
 * 
 * v1.0.1-final, July 11, 2009
 * - Restructured a little bit
 * - Documented
 * - Cleaned go/request
 *
 * v1.0.0-final, June 19, 2009
 * - Been stable for over a year now, pushing live.
 * 
 * v0.1.0-dev, July 24, 2008
 * - Initial Release
 * 
 */

// Start of our jQuery Plugin
(function($)
{	// Create our Plugin function, with $ as the argument (we pass the jQuery object over later)
	// More info: http://docs.jquery.com/Plugins/Authoring#Custom_Alias
	
	// Debug
	if (typeof console === 'undefined') {
		console = typeof window.console !== 'undefined' ? window.console : {};
	}
	console.log			= console.log 			|| function(){};
	console.debug		= console.debug 		|| console.log;
	console.warn		= console.warn			|| console.log;
	console.error		= console.error			|| function(){var args = [];for (var i = 0; i < arguments.length; i++) { args.push(arguments[i]); } alert(args.join("\n")); };
	console.trace		= console.trace			|| console.log;
	console.group		= console.group			|| console.log;
	console.groupEnd	= console.groupEnd		|| console.log;
	console.profile		= console.profile		|| console.log;
	console.profileEnd	= console.profileEnd	|| console.log;
	
	// Declare our class
	$.History = {
		// Our Plugin definition
		
		// -----------------
		// Options
		
		options: {
			debug: false
		},
		
		// -----------------
		// Variables
		
		state:		'',
		$window:	null,
		$iframe:	null,
		handlers:	{
			generic:	[],
			specific:	{}
		},
		
		// --------------------------------------------------
		// Functions
		
		/**
		 * Format a hash into a proper state
		 * @param {String} hash
		 */
		format: function ( hash ) {
			// Format the hash
			hash = hash
				.replace(/^.*#/g, '') /* strip anything before the anchor in case we were passed a url */
				;
			
			// Return the hash
			return hash;
		},
		
		/**
		 * Get the current state of the application
		 */
        getState: function ( ) {
			var History = $.History;
			
			// Get the current state
			return History.state;
        },
		/**
		 * Set the current state of the application
		 * @param {String} hash
		 */
		setState: function ( state ) {
			var History = $.History;
			// Format the state
			state = History.format(state)
			
			// Apply the state
			History.state = state;
			
			// Return the state
			return History.state;
		},
		
		/**
		 * Get the current hash of the browser
		 */
		getHash: function ( ) {
			var History = $.History;
			
			// Get the hash
			var hash = History.format(window.location.hash || location.hash);
			
			// Return the hash
			return hash;
		},
		
		/**
		 * Set the current hash of the browser and iframe if present
		 * @param {String} hash
		 */
		setHash: function ( hash ) {
			var History = $.History;
			
			// Prepare hash
			hash = History.format(hash);
			
			// Write hash
			if ( typeof window.location.hash !== 'undefined' ) {
				if ( window.location.hash !== hash ) {
					window.location.hash = hash;
				}
			} else if ( location.hash !== hash ) {
				location.hash = hash;
			}
			
			// Done
			return hash;
		},
		
		/**
		 * Go to the specific state - does not force a history entry like setHash
		 * @param {String} to
		 */
		go: function ( to ) {
			var History = $.History;
			
			// Format
			to = History.format(to);
			
			// Get current
			var hash = History.getHash();
			var state = History.getState();
			
			// Has the hash changed
			if ( to !== hash ) {
				// Yes, update the hash
				// And wait for the next automatic fire
				History.setHash(to);
			} else {
				// Hash the state changed?
				if ( to !== state ) {
					// Yes, Update the state
					History.setState(to);
				}
				
				// Trigger our change
				History.trigger();
			}
			
			// Done
			return true;
		},
		
		/**
		 * Handle when the hash has changed
		 * @param {Event} e
		 */
		hashchange: function ( e ) {
			var History = $.History;
			
			// Get Hash
			var hash = History.getHash();
			
			// Handle the new hash
			History.go(hash);
			
			// All done
			return true;
		},
		
		/**
		 * Bind a handler to a hash
		 * @param {Object} state
		 * @param {Object} handler
		 */
		bind: function ( state, handler ) {
			var History = $.History;
			
			// 
			if ( handler ) {
				// We have a state specific handler
				// Prepare
				if ( typeof History.handlers.specific[state] === 'undefined' )
				{	// Make it an array
					History.handlers.specific[state] = [];
				}
				// Push new handler
				History.handlers.specific[state].push(handler);
			}
			else {
				// We have a generic handler
				handler = state;
				History.handlers.generic.push(handler);
			}
			
			// Done
			return true;
		},
		
		/**
		 * Trigger a handler for a state
		 * @param {String} state
		 */
		trigger: function ( state ) {
			var History = $.History;
			
			// Prepare
			if ( typeof state === 'undefined' ) {
				// Use current
				state = History.getState();
			}
			var i, n, handler, list;
			
			// Fire specific
			if ( typeof History.handlers.specific[state] !== 'undefined' ) {
				// We have specific handlers
				list = History.handlers.specific[state];
				for ( i = 0, n = list.length; i < n; ++i ) {
					// Fire the specific handler
					handler = list[i];
					handler(state);
				}
			}
			
			// Fire generics
			list = History.handlers.generic;
			for ( i = 0, n = list.length; i < n; ++i ) {
				// Fire the specific handler
				handler = list[i];
				handler(state);
			}
			
			// Done
			return true;
		},
		
		// --------------------------------------------------
		// Constructors
		
		/**
		 * Construct our application
		 */
		construct: function ( ) {
			var History = $.History;
			
			// Modify the document
			$(document).ready(function() {
				// Prepare the document
				History.domReady();
			});
			
			// Done
			return true;
		},
		
		/**
		 * Configure our application
		 * @param {Object} options
		 */
		configure: function ( options ) {
			var History = $.History;
			
			// Set options
			History.options = $.extend(History.options, options);
			
			// Done
			return true;
		},
		
		domReadied: false,
		domReady: function ( ) {
			var History = $.History;
			
			// Runonce
			if ( History.domRedied ) {
				return;
			}
			History.domRedied = true;
			
			// Define window
			History.$window = $(window);
			
			// Apply the hashchange function
			History.$window.bind('hashchange', this.hashchange);
			
			// Force hashchange support for all browsers
			setTimeout(History.hashchangeLoader, 200);
			
			// All done
			return true;
		},
		
		/**
		 * Enable hashchange for all browsers
		 */
		hashchangeLoader: function () {
			var History = $.History;
			
			// More is needed for non IE8 browsers
			if ( !($.browser.msie && parseInt($.browser.version) >= 8) ) {	
				// We are not IE8
			
				// State our checker function, it is used to constantly check the location to detect a change
				var checker;
				
				// Handle depending on the browser
				if ( $.browser.msie ) {
					// We are still IE
					// IE6, IE7, etc
				
					// Append and $iframe to the document, as $iframes are required for back and forward
					// Create a hidden $iframe for hash change tracking
					History.$iframe = $('<iframe id="jquery-history-iframe" style="display: none;"></$iframe>').prependTo(document.body)[0];
					
					// Create initial history entry
					History.$iframe.contentWindow.document.open();
					History.$iframe.contentWindow.document.close();
					
					// Define the checker function (for bookmarks)
					var iframeHit = false;
					checker = function ( ) {
						
						// Fetch
						var hash = History.getHash();
						var state = History.getState();
						var iframeHash = History.format(History.$iframe.contentWindow.document.location.hash);
						
						// Check if the browser hash is different
						if ( state !== hash ) {
							// Browser hash is different
							
							// Check if we need to update the iframe
							if ( !iframeHit ) {
								// Write a iframe/history entry in the browsers back and forward
								// alert('update iframe entry');
								History.$iframe.contentWindow.document.open();
								History.$iframe.contentWindow.document.close();
								// alert('update iframe entry.');
								
								// Update the iframe hash
								// alert('update iframe hash');
								History.$iframe.contentWindow.document.location.hash = hash;
								// alert('update iframe hash.');
							}
							
							// Reset
							iframeHit = false;
							
							// Fire
							// alert('hashchange');
							History.$window.trigger('hashchange');
							// alert('hashchange.');
						}
						else {
							// Browser hash is not different
							
							// Check if the iframe hash is different from the iframe state
							if ( state !== iframeHash ) {
								// Specify we were hit from the iframe
								iframeHit = true;
								
								// Update the browser hash
								// alert('set hash from iframe');
								History.setHash(iframeHash);
								// alert('set hash from iframe.');
							}
						}
						
					};
				}
				else {
					// We are not IE
					// Firefox, Opera, Etc
				
					// Define the checker function (for bookmarks, back, forward)
					checker = function ( ) {
						var hash = History.getHash();
						var state = History.getState();
						// Check
						if ( state !== hash ) {
							// State change
							History.$window.trigger('hashchange');
						}
					};
				}
				
				// Apply the checker function
				setInterval(checker, 200);
			}
			else {
				// We are IE8
				
				// Fire the initial
				var hash = History.getHash();
				if ( hash ) {
					History.$window.trigger('hashchange');
				}
			}
			
			// Done
			return true;
		}
	
	}; // We have finished extending/defining our Plugin
	
	// --------------------------------------------------
	// Finish up
	
	// Instantiate
	$.History.construct();

// Finished definition

})(jQuery); // We are done with our plugin, so lets call it with jQuery as the argument
;
/*!	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/

var swfobject = function() {
	
	var UNDEF = "undefined",
		OBJECT = "object",
		SHOCKWAVE_FLASH = "Shockwave Flash",
		SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash",
		FLASH_MIME_TYPE = "application/x-shockwave-flash",
		EXPRESS_INSTALL_ID = "SWFObjectExprInst",
		ON_READY_STATE_CHANGE = "onreadystatechange",
		
		win = window,
		doc = document,
		nav = navigator,
		
		plugin = false,
		domLoadFnArr = [main],
		regObjArr = [],
		objIdArr = [],
		listenersArr = [],
		storedAltContent,
		storedAltContentId,
		storedCallbackFn,
		storedCallbackObj,
		isDomLoaded = false,
		isExpressInstallActive = false,
		dynamicStylesheet,
		dynamicStylesheetMedia,
		autoHideShow = true,
	
	/* Centralized function for browser feature detection
		- User agent string detection is only used when no good alternative is possible
		- Is executed directly for optimal performance
	*/	
	ua = function() {
		var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF,
			u = nav.userAgent.toLowerCase(),
			p = nav.platform.toLowerCase(),
			windows = p ? /win/.test(p) : /win/.test(u),
			mac = p ? /mac/.test(p) : /mac/.test(u),
			webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit
			ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html
			playerVersion = [0,0,0],
			d = null;
		if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) {
			d = nav.plugins[SHOCKWAVE_FLASH].description;
			if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+
				plugin = true;
				ie = false; // cascaded feature detection for Internet Explorer
				d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
				playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10);
				playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
				playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0;
			}
		}
		else if (typeof win.ActiveXObject != UNDEF) {
			try {
				var a = new ActiveXObject(SHOCKWAVE_FLASH_AX);
				if (a) { // a will return null when ActiveX is disabled
					d = a.GetVariable("$version");
					if (d) {
						ie = true; // cascaded feature detection for Internet Explorer
						d = d.split(" ")[1].split(",");
						playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
					}
				}
			}
			catch(e) {}
		}
		return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac };
	}(),
	
	/* Cross-browser onDomLoad
		- Will fire an event as soon as the DOM of a web page is loaded
		- Internet Explorer workaround based on Diego Perini's solution: http://javascript.nwbox.com/IEContentLoaded/
		- Regular onload serves as fallback
	*/ 
	onDomLoad = function() {
		if (!ua.w3) { return; }
		if ((typeof doc.readyState != UNDEF && doc.readyState == "complete") || (typeof doc.readyState == UNDEF && (doc.getElementsByTagName("body")[0] || doc.body))) { // function is fired after onload, e.g. when script is inserted dynamically 
			callDomLoadFunctions();
		}
		if (!isDomLoaded) {
			if (typeof doc.addEventListener != UNDEF) {
				doc.addEventListener("DOMContentLoaded", callDomLoadFunctions, false);
			}		
			if (ua.ie && ua.win) {
				doc.attachEvent(ON_READY_STATE_CHANGE, function() {
					if (doc.readyState == "complete") {
						doc.detachEvent(ON_READY_STATE_CHANGE, arguments.callee);
						callDomLoadFunctions();
					}
				});
				if (win == top) { // if not inside an iframe
					(function(){
						if (isDomLoaded) { return; }
						try {
							doc.documentElement.doScroll("left");
						}
						catch(e) {
							setTimeout(arguments.callee, 0);
							return;
						}
						callDomLoadFunctions();
					})();
				}
			}
			if (ua.wk) {
				(function(){
					if (isDomLoaded) { return; }
					if (!/loaded|complete/.test(doc.readyState)) {
						setTimeout(arguments.callee, 0);
						return;
					}
					callDomLoadFunctions();
				})();
			}
			addLoadEvent(callDomLoadFunctions);
		}
	}();
	
	function callDomLoadFunctions() {
		if (isDomLoaded) { return; }
		try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early
			var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
			t.parentNode.removeChild(t);
		}
		catch (e) { return; }
		isDomLoaded = true;
		var dl = domLoadFnArr.length;
		for (var i = 0; i < dl; i++) {
			domLoadFnArr[i]();
		}
	}
	
	function addDomLoadEvent(fn) {
		if (isDomLoaded) {
			fn();
		}
		else { 
			domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+
		}
	}
	
	/* Cross-browser onload
		- Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/
		- Will fire an event as soon as a web page including all of its assets are loaded 
	 */
	function addLoadEvent(fn) {
		if (typeof win.addEventListener != UNDEF) {
			win.addEventListener("load", fn, false);
		}
		else if (typeof doc.addEventListener != UNDEF) {
			doc.addEventListener("load", fn, false);
		}
		else if (typeof win.attachEvent != UNDEF) {
			addListener(win, "onload", fn);
		}
		else if (typeof win.onload == "function") {
			var fnOld = win.onload;
			win.onload = function() {
				fnOld();
				fn();
			};
		}
		else {
			win.onload = fn;
		}
	}
	
	/* Main function
		- Will preferably execute onDomLoad, otherwise onload (as a fallback)
	*/
	function main() { 
		if (plugin) {
			testPlayerVersion();
		}
		else {
			matchVersions();
		}
	}
	
	/* Detect the Flash Player version for non-Internet Explorer browsers
		- Detecting the plug-in version via the object element is more precise than using the plugins collection item's description:
		  a. Both release and build numbers can be detected
		  b. Avoid wrong descriptions by corrupt installers provided by Adobe
		  c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports
		- Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available
	*/
	function testPlayerVersion() {
		var b = doc.getElementsByTagName("body")[0];
		var o = createElement(OBJECT);
		o.setAttribute("type", FLASH_MIME_TYPE);
		var t = b.appendChild(o);
		if (t) {
			var counter = 0;
			(function(){
				if (typeof t.GetVariable != UNDEF) {
					var d = t.GetVariable("$version");
					if (d) {
						d = d.split(" ")[1].split(",");
						ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
					}
				}
				else if (counter < 10) {
					counter++;
					setTimeout(arguments.callee, 10);
					return;
				}
				b.removeChild(o);
				t = null;
				matchVersions();
			})();
		}
		else {
			matchVersions();
		}
	}
	
	/* Perform Flash Player and SWF version matching; static publishing only
	*/
	function matchVersions() {
		var rl = regObjArr.length;
		if (rl > 0) {
			for (var i = 0; i < rl; i++) { // for each registered object element
				var id = regObjArr[i].id;
				var cb = regObjArr[i].callbackFn;
				var cbObj = {success:false, id:id};
				if (ua.pv[0] > 0) {
					var obj = getElementById(id);
					if (obj) {
						if (hasPlayerVersion(regObjArr[i].swfVersion) && !(ua.wk && ua.wk < 312)) { // Flash Player version >= published SWF version: Houston, we have a match!
							setVisibility(id, true);
							if (cb) {
								cbObj.success = true;
								cbObj.ref = getObjectById(id);
								cb(cbObj);
							}
						}
						else if (regObjArr[i].expressInstall && canExpressInstall()) { // show the Adobe Express Install dialog if set by the web page author and if supported
							var att = {};
							att.data = regObjArr[i].expressInstall;
							att.width = obj.getAttribute("width") || "0";
							att.height = obj.getAttribute("height") || "0";
							if (obj.getAttribute("class")) { att.styleclass = obj.getAttribute("class"); }
							if (obj.getAttribute("align")) { att.align = obj.getAttribute("align"); }
							// parse HTML object param element's name-value pairs
							var par = {};
							var p = obj.getElementsByTagName("param");
							var pl = p.length;
							for (var j = 0; j < pl; j++) {
								if (p[j].getAttribute("name").toLowerCase() != "movie") {
									par[p[j].getAttribute("name")] = p[j].getAttribute("value");
								}
							}
							showExpressInstall(att, par, id, cb);
						}
						else { // Flash Player and SWF version mismatch or an older Webkit engine that ignores the HTML object element's nested param elements: display alternative content instead of SWF
							displayAltContent(obj);
							if (cb) { cb(cbObj); }
						}
					}
				}
				else {	// if no Flash Player is installed or the fp version cannot be detected we let the HTML object element do its job (either show a SWF or alternative content)
					setVisibility(id, true);
					if (cb) {
						var o = getObjectById(id); // test whether there is an HTML object element or not
						if (o && typeof o.SetVariable != UNDEF) { 
							cbObj.success = true;
							cbObj.ref = o;
						}
						cb(cbObj);
					}
				}
			}
		}
	}
	
	function getObjectById(objectIdStr) {
		var r = null;
		var o = getElementById(objectIdStr);
		if (o && o.nodeName == "OBJECT") {
			if (typeof o.SetVariable != UNDEF) {
				r = o;
			}
			else {
				var n = o.getElementsByTagName(OBJECT)[0];
				if (n) {
					r = n;
				}
			}
		}
		return r;
	}
	
	/* Requirements for Adobe Express Install
		- only one instance can be active at a time
		- fp 6.0.65 or higher
		- Win/Mac OS only
		- no Webkit engines older than version 312
	*/
	function canExpressInstall() {
		return !isExpressInstallActive && hasPlayerVersion("6.0.65") && (ua.win || ua.mac) && !(ua.wk && ua.wk < 312);
	}
	
	/* Show the Adobe Express Install dialog
		- Reference: http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6a253b75
	*/
	function showExpressInstall(att, par, replaceElemIdStr, callbackFn) {
		isExpressInstallActive = true;
		storedCallbackFn = callbackFn || null;
		storedCallbackObj = {success:false, id:replaceElemIdStr};
		var obj = getElementById(replaceElemIdStr);
		if (obj) {
			if (obj.nodeName == "OBJECT") { // static publishing
				storedAltContent = abstractAltContent(obj);
				storedAltContentId = null;
			}
			else { // dynamic publishing
				storedAltContent = obj;
				storedAltContentId = replaceElemIdStr;
			}
			att.id = EXPRESS_INSTALL_ID;
			if (typeof att.width == UNDEF || (!/%$/.test(att.width) && parseInt(att.width, 10) < 310)) { att.width = "310"; }
			if (typeof att.height == UNDEF || (!/%$/.test(att.height) && parseInt(att.height, 10) < 137)) { att.height = "137"; }
			doc.title = doc.title.slice(0, 47) + " - Flash Player Installation";
			var pt = ua.ie && ua.win ? "ActiveX" : "PlugIn",
				fv = "MMredirectURL=" + win.location.toString().replace(/&/g,"%26") + "&MMplayerType=" + pt + "&MMdoctitle=" + doc.title;
			if (typeof par.flashvars != UNDEF) {
				par.flashvars += "&" + fv;
			}
			else {
				par.flashvars = fv;
			}
			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
			// because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
			if (ua.ie && ua.win && obj.readyState != 4) {
				var newObj = createElement("div");
				replaceElemIdStr += "SWFObjectNew";
				newObj.setAttribute("id", replaceElemIdStr);
				obj.parentNode.insertBefore(newObj, obj); // insert placeholder div that will be replaced by the object element that loads expressinstall.swf
				obj.style.display = "none";
				(function(){
					if (obj.readyState == 4) {
						obj.parentNode.removeChild(obj);
					}
					else {
						setTimeout(arguments.callee, 10);
					}
				})();
			}
			createSWF(att, par, replaceElemIdStr);
		}
	}
	
	/* Functions to abstract and display alternative content
	*/
	function displayAltContent(obj) {
		if (ua.ie && ua.win && obj.readyState != 4) {
			// IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
			// because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
			var el = createElement("div");
			obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
			el.parentNode.replaceChild(abstractAltContent(obj), el);
			obj.style.display = "none";
			(function(){
				if (obj.readyState == 4) {
					obj.parentNode.removeChild(obj);
				}
				else {
					setTimeout(arguments.callee, 10);
				}
			})();
		}
		else {
			obj.parentNode.replaceChild(abstractAltContent(obj), obj);
		}
	} 

	function abstractAltContent(obj) {
		var ac = createElement("div");
		if (ua.win && ua.ie) {
			ac.innerHTML = obj.innerHTML;
		}
		else {
			var nestedObj = obj.getElementsByTagName(OBJECT)[0];
			if (nestedObj) {
				var c = nestedObj.childNodes;
				if (c) {
					var cl = c.length;
					for (var i = 0; i < cl; i++) {
						if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
							ac.appendChild(c[i].cloneNode(true));
						}
					}
				}
			}
		}
		return ac;
	}
	
	/* Cross-browser dynamic SWF creation
	*/
	function createSWF(attObj, parObj, id) {
		var r, el = getElementById(id);
		if (ua.wk && ua.wk < 312) { return r; }
		if (el) {
			if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
				attObj.id = id;
			}
			if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML
				var att = "";
				for (var i in attObj) {
					if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries
						if (i.toLowerCase() == "data") {
							parObj.movie = attObj[i];
						}
						else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
							att += ' class="' + attObj[i] + '"';
						}
						else if (i.toLowerCase() != "classid") {
							att += ' ' + i + '="' + attObj[i] + '"';
						}
					}
				}
				var par = "";
				for (var j in parObj) {
					if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries
						par += '<param name="' + j + '" value="' + parObj[j] + '" />';
					}
				}
				el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
				objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
				r = getElementById(attObj.id);	
			}
			else { // well-behaving browsers
				var o = createElement(OBJECT);
				o.setAttribute("type", FLASH_MIME_TYPE);
				for (var m in attObj) {
					if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries
						if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
							o.setAttribute("class", attObj[m]);
						}
						else if (m.toLowerCase() != "classid") { // filter out IE specific attribute
							o.setAttribute(m, attObj[m]);
						}
					}
				}
				for (var n in parObj) {
					if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element
						createObjParam(o, n, parObj[n]);
					}
				}
				el.parentNode.replaceChild(o, el);
				r = o;
			}
		}
		return r;
	}
	
	function createObjParam(el, pName, pValue) {
		var p = createElement("param");
		p.setAttribute("name", pName);	
		p.setAttribute("value", pValue);
		el.appendChild(p);
	}
	
	/* Cross-browser SWF removal
		- Especially needed to safely and completely remove a SWF in Internet Explorer
	*/
	function removeSWF(id) {
		var obj = getElementById(id);
		if (obj && obj.nodeName == "OBJECT") {
			if (ua.ie && ua.win) {
				obj.style.display = "none";
				(function(){
					if (obj.readyState == 4) {
						removeObjectInIE(id);
					}
					else {
						setTimeout(arguments.callee, 10);
					}
				})();
			}
			else {
				obj.parentNode.removeChild(obj);
			}
		}
	}
	
	function removeObjectInIE(id) {
		var obj = getElementById(id);
		if (obj) {
			for (var i in obj) {
				if (typeof obj[i] == "function") {
					obj[i] = null;
				}
			}
			obj.parentNode.removeChild(obj);
		}
	}
	
	/* Functions to optimize JavaScript compression
	*/
	function getElementById(id) {
		var el = null;
		try {
			el = doc.getElementById(id);
		}
		catch (e) {}
		return el;
	}
	
	function createElement(el) {
		return doc.createElement(el);
	}
	
	/* Updated attachEvent function for Internet Explorer
		- Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
	*/	
	function addListener(target, eventType, fn) {
		target.attachEvent(eventType, fn);
		listenersArr[listenersArr.length] = [target, eventType, fn];
	}
	
	/* Flash Player and SWF content version matching
	*/
	function hasPlayerVersion(rv) {
		var pv = ua.pv, v = rv.split(".");
		v[0] = parseInt(v[0], 10);
		v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0"
		v[2] = parseInt(v[2], 10) || 0;
		return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
	}
	
	/* Cross-browser dynamic CSS creation
		- Based on Bobby van der Sluis' solution: http://www.bobbyvandersluis.com/articles/dynamicCSS.php
	*/	
	function createCSS(sel, decl, media, newStyle) {
		if (ua.ie && ua.mac) { return; }
		var h = doc.getElementsByTagName("head")[0];
		if (!h) { return; } // to also support badly authored HTML pages that lack a head element
		var m = (media && typeof media == "string") ? media : "screen";
		if (newStyle) {
			dynamicStylesheet = null;
			dynamicStylesheetMedia = null;
		}
		if (!dynamicStylesheet || dynamicStylesheetMedia != m) { 
			// create dynamic stylesheet + get a global reference to it
			var s = createElement("style");
			s.setAttribute("type", "text/css");
			s.setAttribute("media", m);
			dynamicStylesheet = h.appendChild(s);
			if (ua.ie && ua.win && typeof doc.styleSheets != UNDEF && doc.styleSheets.length > 0) {
				dynamicStylesheet = doc.styleSheets[doc.styleSheets.length - 1];
			}
			dynamicStylesheetMedia = m;
		}
		// add style rule
		if (ua.ie && ua.win) {
			if (dynamicStylesheet && typeof dynamicStylesheet.addRule == OBJECT) {
				dynamicStylesheet.addRule(sel, decl);
			}
		}
		else {
			if (dynamicStylesheet && typeof doc.createTextNode != UNDEF) {
				dynamicStylesheet.appendChild(doc.createTextNode(sel + " {" + decl + "}"));
			}
		}
	}
	
	function setVisibility(id, isVisible) {
		if (!autoHideShow) { return; }
		var v = isVisible ? "visible" : "hidden";
		if (isDomLoaded && getElementById(id)) {
			getElementById(id).style.visibility = v;
		}
		else {
			createCSS("#" + id, "visibility:" + v);
		}
	}

	/* Filter to avoid XSS attacks
	*/
	function urlEncodeIfNecessary(s) {
		var regex = /[\\\"<>\.;]/;
		var hasBadChars = regex.exec(s) != null;
		return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s;
	}
	
	/* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
	*/
	var cleanup = function() {
		if (ua.ie && ua.win) {
			window.attachEvent("onunload", function() {
				// remove listeners to avoid memory leaks
				var ll = listenersArr.length;
				for (var i = 0; i < ll; i++) {
					listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
				}
				// cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
				var il = objIdArr.length;
				for (var j = 0; j < il; j++) {
					removeSWF(objIdArr[j]);
				}
				// cleanup library's main closures to avoid memory leaks
				for (var k in ua) {
					ua[k] = null;
				}
				ua = null;
				for (var l in swfobject) {
					swfobject[l] = null;
				}
				swfobject = null;
			});
		}
	}();
	
	return {
		/* Public API
			- Reference: http://code.google.com/p/swfobject/wiki/documentation
		*/ 
		registerObject: function(objectIdStr, swfVersionStr, xiSwfUrlStr, callbackFn) {
			if (ua.w3 && objectIdStr && swfVersionStr) {
				var regObj = {};
				regObj.id = objectIdStr;
				regObj.swfVersion = swfVersionStr;
				regObj.expressInstall = xiSwfUrlStr;
				regObj.callbackFn = callbackFn;
				regObjArr[regObjArr.length] = regObj;
				setVisibility(objectIdStr, false);
			}
			else if (callbackFn) {
				callbackFn({success:false, id:objectIdStr});
			}
		},
		
		getObjectById: function(objectIdStr) {
			if (ua.w3) {
				return getObjectById(objectIdStr);
			}
		},
		
		embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
			var callbackObj = {success:false, id:replaceElemIdStr};
			if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
				setVisibility(replaceElemIdStr, false);
				addDomLoadEvent(function() {
					widthStr += ""; // auto-convert to string
					heightStr += "";
					var att = {};
					if (attObj && typeof attObj === OBJECT) {
						for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
							att[i] = attObj[i];
						}
					}
					att.data = swfUrlStr;
					att.width = widthStr;
					att.height = heightStr;
					var par = {}; 
					if (parObj && typeof parObj === OBJECT) {
						for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
							par[j] = parObj[j];
						}
					}
					if (flashvarsObj && typeof flashvarsObj === OBJECT) {
						for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
							if (typeof par.flashvars != UNDEF) {
								par.flashvars += "&" + k + "=" + flashvarsObj[k];
							}
							else {
								par.flashvars = k + "=" + flashvarsObj[k];
							}
						}
					}
					if (hasPlayerVersion(swfVersionStr)) { // create SWF
						var obj = createSWF(att, par, replaceElemIdStr);
						if (att.id == replaceElemIdStr) {
							setVisibility(replaceElemIdStr, true);
						}
						callbackObj.success = true;
						callbackObj.ref = obj;
					}
					else if (xiSwfUrlStr && canExpressInstall()) { // show Adobe Express Install
						att.data = xiSwfUrlStr;
						showExpressInstall(att, par, replaceElemIdStr, callbackFn);
						return;
					}
					else { // show alternative content
						setVisibility(replaceElemIdStr, true);
					}
					if (callbackFn) { callbackFn(callbackObj); }
				});
			}
			else if (callbackFn) { callbackFn(callbackObj);	}
		},
		
		switchOffAutoHideShow: function() {
			autoHideShow = false;
		},
		
		ua: ua,
		
		getFlashPlayerVersion: function() {
			return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] };
		},
		
		hasFlashPlayerVersion: hasPlayerVersion,
		
		createSWF: function(attObj, parObj, replaceElemIdStr) {
			if (ua.w3) {
				return createSWF(attObj, parObj, replaceElemIdStr);
			}
			else {
				return undefined;
			}
		},
		
		showExpressInstall: function(att, par, replaceElemIdStr, callbackFn) {
			if (ua.w3 && canExpressInstall()) {
				showExpressInstall(att, par, replaceElemIdStr, callbackFn);
			}
		},
		
		removeSWF: function(objElemIdStr) {
			if (ua.w3) {
				removeSWF(objElemIdStr);
			}
		},
		
		createCSS: function(selStr, declStr, mediaStr, newStyleBoolean) {
			if (ua.w3) {
				createCSS(selStr, declStr, mediaStr, newStyleBoolean);
			}
		},
		
		addDomLoadEvent: addDomLoadEvent,
		
		addLoadEvent: addLoadEvent,
		
		getQueryParamValue: function(param) {
			var q = doc.location.search || doc.location.hash;
			if (q) {
				if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark
				if (param == null) {
					return urlEncodeIfNecessary(q);
				}
				var pairs = q.split("&");
				for (var i = 0; i < pairs.length; i++) {
					if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
						return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1)));
					}
				}
			}
			return "";
		},
		
		// For internal usage only
		expressInstallCallback: function() {
			if (isExpressInstallActive) {
				var obj = getElementById(EXPRESS_INSTALL_ID);
				if (obj && storedAltContent) {
					obj.parentNode.replaceChild(storedAltContent, obj);
					if (storedAltContentId) {
						setVisibility(storedAltContentId, true);
						if (ua.ie && ua.win) { storedAltContent.style.display = "block"; }
					}
					if (storedCallbackFn) { storedCallbackFn(storedCallbackObj); }
				}
				isExpressInstallActive = false;
			} 
		}
	};
}();
;
/* --- MAIN ---------------------------------------------------------------- */

var JyskeBank = JyskeBank || {};
JyskeBank.init = function() {
  $('.contry-selector-holder select').change(function() {
    top.location = '/node/' + $(this).val();
  });
  
  // Open all pdf's in a new window
  $('a[href*=.pdf]').click(function() {
    window.open(this.href);
    return false;
  });

  // Event for all print
  $('#primary a.print, #primary a.button:contains("Print"), #primary a.button:contains("Udskriv"), a.print').click(function() {
    window.print();
    return false;
  });
  
  // Auto suggest for country dropdowns
  //if ($('body').hasClass('node-type-country')) {
  if ($('div').hasClass('contry-selector-holder')) {
	console.log('body hasClass node-type-country');
    var defaultval = $('#countries option:selected').text();
    var data = [];
    $('#countries option').each(function() {
      var $$ = $(this);
      for(var m = 0; m < currencyCalculatorData.length; m++) { 
        if(currencyCalculatorData[m].countryNameDanish == $$.text()) {
          data.push({
            val: $$.val(),
            text: $$.text(),
            icon: currencyCalculatorData[m].icon,
            synonyms: currencyCalculatorData[m].synonyms,
            iso: currencyCalculatorData[m].iso,
            currencyNameDanish: currencyCalculatorData[m].currencyNameDanish
          });
          break;
        }
      }
    }).parent().replaceWith('<div class="suggest-wrapper"><input id="countries" type="text" value="'+defaultval+'" /><a class="toggle" href="#">Toggle</a><div class="no-result-text">Ingen lande fundet</div></div>');   
    
    var options = {
      minChars: 0,
      width: 360,
      max: 999,
      scrollHeight: 232,
      autoFill: false,
      highlight: false,
      matchContains: true,
      isEmpty: function(elm) {
        $(elm).siblings('.no-result-text').show();
      },
      hasResults: function(elm) {
        $(elm).siblings('.no-result-text').hide();
      },
      formatItem: function(row, i, max, value) {
            return '<img src="' + row.icon + '" /><div>' + row.text + '</div><span>' + row.currencyNameDanish + ' (' + row.iso.toUpperCase() + ')</span>';
      },
      formatMatch: function(row, i, max) {
        return row.synonyms;
      },
      formatResult: function(row, value) {
        return row.countryNameDanish;
      }
    };
    $('#countries').autocomplete(data, options).result(function(event, row) {
      $('input[id$="selectedCurrency"]').val(row.val);
      $(this).val(row.text);
      $('a[id$="selectCurrencyLink"]').click();
      /*
      location.href = '/node/' + row.val;
      */
    });
    JyskeBank.suggest.init();
     // Click in input field to select text value
    $('#countries, #countries1, #countries2').click( 
    	function (e) { 
    		$(this).caret({start:0, end:$(this).val().length}); 
    });
  }
    
  // Ajax / modal mode
  if ($('body').hasClass('ajax-mode')) {
    
    // Hide overflow option
    if (document.location.href.indexOf('hideoverflow=true') != -1) {
      var $iframe = $('iframe', parent.document);
      $iframe.addClass('hide-overflow');
    }
    
    // Keep links in a modal in ajax mode
    $('#primary a').each(function() {
      var $$ = $(this);
      var href = $$.attr('href');
      var sign = (href.indexOf('?') == -1) ? '?' : '&';
      $$.attr('href', href + sign + 'ajax=true');
    });
  }
  
  // Add first/last odd/even classes to tables in node bodies
  $('#primary table').each(function() {
    if (!$(this).find('thead').length) {
      $(this).addClass('no-header');
    }
  });
  /*
  .find('thead th:last').addClass('last').end()
  .find('tbody')
  .find('tr:first').addClass('first').end()
  .find('tr:last').addClass('last').end().end()
  .filter(':not(".nozebra")')
  .find('tbody tr:odd').addClass('even').end()
  .find('tbody tr:even').addClass('odd');
  */
  
  // Set active menu
  /*
  var activePath = '/' + window.location.toString().split("/")[3];
  $('#primary-nav a').each(function() {
    var path = '/' + this.href.toString().split("/")[3];
    if(activePath == path || activePath.indexOf('produkter') != -1 && path.indexOf('produkter') != -1) {
      $(this).parent().addClass('active-trail');
    }
  });
  */ 

  // Card pages 
  //if ($('body').hasClass('node-type-card')) {
  if($('tr').hasClass('collapsible')){
    // Expand / collapse tables
    JyskeBank.utils.tableExpander();
  }
};


function showErrorMessageForCardOrder() {
  $('.card-order-step:visible .messages.error').show();
}
function changeOrderStateBack() { 
  var str = $('.card-order-step:visible').find('h2:first').text();
  var newState = Number(str.substr(0,str.indexOf('.')))-1;
  window.location.hash = 'card-order-'+newState;
}
function changeOrderState() {
  var str = $('.card-order-step:visible').find('h2:first').text();
  var newState = Number(str.substr(0,str.indexOf('.')))+1;
  window.location.hash = 'card-order-'+newState;
}
function setOrderStates(step) {
  if(!step) {
    step = 0;
    // clear form elements
    $('#container select, #container option, #container input').clearForm();
  }
  $('.jb-status-box ol li').removeClass('active').eq(step).addClass('active');
  $('.card-order-step').addClass('hidden').eq(step).removeClass('hidden');
  $('.card-order-step .messages.error').hide();
  $('html').animate({scrollTop:0}, 'fast'); 
}


/*
_______________________________
SUGGEST */

JyskeBank.suggest = JyskeBank.suggest || {};

JyskeBank.suggest.init = function() {
  $('div.suggest-wrapper a.toggle').click(JyskeBank.suggest.toggle);  
};

JyskeBank.suggest.toggle = function(evt) {
  evt.preventDefault();  
  var $input = $(this).prev('input'); 
  $input.blur(); 
  $('body').trigger('click');
  var val = $input.val();
  
  if ($('div.ac_results:visible').length) {
    $('div.ac_results').hide();
    if(val === '' && $input.attr('lastValue')) {
      $input.val($input.attr('lastValue'));
    }
    $input.trigger('blur');
  }
  else { 
    $input.attr('lastValue',val).val('');
    
    window.setTimeout( function() {$('#'+$input.attr('id')).focus().click().click(); } , 200);
    //window.setTimeout( function() {$('input[id$="' + $input.attr('id') + '"]').focus().click().click(); } , 200);
    // if the timeout gets too low, the suggest box will flickr!
  }
  if(JyskeBank.currencyCalculator && JyskeBank.currencyCalculator.hide) {
    JyskeBank.currencyCalculator.tip.close();
  }
  return false;
};


$.fn.clearForm = function() {
  return this.each(function() {
    var type = this.type;
    var tag = this.tagName.toLowerCase();
    if (tag == 'form') {
      return $(':input', this).clearForm();
    }
    if (type == 'text' || type == 'password' || tag == 'textarea') {
      this.value = '';
    }
    else if (type == 'checkbox' || type == 'radio') {
      this.checked = false;
    }
    else if (tag == 'select') {
      $(this).find('option:first').attr('selected','selected').parent('select');
    }
  });
};


/*
_______________________________
DOCUMENT READY */

$(document).ready(JyskeBank.init);
;
/* --- LOGGING ---------------------------------------------------------------- */

window.log = function() { 
  log.history = log.history || [];
  log.history.push(arguments);
  window.console && console.log[console.firebug ? 'apply' : 'call'](console,Array.prototype.slice.call(arguments));
};
 
window.logargs = function(context) {
  log(context,arguments.callee.caller.arguments);
};


/* --- BASE ---------------------------------------------------------------- */

var JyskeBank = JyskeBank || {};

JyskeBank.base = {
  ready: function() {
    for (var i in JyskeBank) {
      if (i != 'base') {
        var component = JyskeBank[i];
        var go = true;
        //Sanity check. There's no need to call the currencyCalculator setup if no currency-calculator-form is present at this page
        if(i === 'currencyCalculator'){
        	//The double !! trick is used for turning a numeric value into a boolean
        	go = !! $('#currency-calculator-form').length;
        }
        if (component.ready && go) {
          component.ready.call(component);
        }
      }
    }
  },
  
  load: function() {
    for (var i in JyskeBank) {
      if (i != 'base') {
        var component = JyskeBank[i];
        if (component.load) {
          component.load.call(component);
        }
      }
    }
  },
  
  behaviors: function(context) {
    for (var i in JyskeBank) {
      if (i != 'base') {
        var component = JyskeBank[i];
        if (component.behaviors) {
          component.behaviors.call(component, context);
        }
      }
    }
  }
};


/* --- INITIALIZE ---------------------------------------------------------------- */

$.readyList.unshift(JyskeBank.base.ready);  // Add to the beginning of the readyList.
$(window).load(JyskeBank.base.load);
Drupal.behaviors.base = JyskeBank.base.behaviors;

/* --- BLOCKS ---------------------------------------------------------------- */

var JyskeBank = JyskeBank || {};

JyskeBank.blocks = {
  ready: function() {
    this.primaryBanners();
  },
  
  load: function() {
    this.banner97();
    this.banner98();
  },
  
  primaryBanners: function() {
    $('#primary-banners div.block:last').addClass('last');
  },
  
  // Alter the url for the contry block for banners
  banner97: function() {
    var $banner = $('div.banner-id-97');
    if (!$banner.length) {
      return;
    }
    
    $banner.find('a').click(function(evt) {
      evt.preventDefault();
      var countryName1 = '';
      var countryName2 = '';
      var countryName3 = '';
      // Grab selected currency iso codes from the currency calculator
      if (JyskeBank.currencyCalculator) {
        var countryName1 = JyskeBank.currencyCalculator.utils.getSelectedCountryName('#currency1');
        var countryName2 = JyskeBank.currencyCalculator.utils.getSelectedCountryName('#currency2');
      }
      var countryName3 = $('#countries').val();
      var countryName = (countryName1 == "Danmark") ? countryName2 : countryName1;
      countryName = (countryName3 && countryName3 !== '') ? countryName3 : countryName;

      countryName = JyskeBank.utils.idSafe(countryName);
      if (!countryName || countryName == 'id-') {
        countryName = 'eurozonen';
      }
      $(this).attr('href', Drupal.settings.basePath + 'privat/privatkunde/valuta/rejseinformation/' + countryName + '');
      window.location = $(this).attr('href');
    });
  },
  
  // Alter the url for the currency table block
  banner98: function() {
    var $banner = $('div.banner-id-98');
    if (!$banner.length) {
      return;
    }
    
    $banner.find('a').click(function(evt) {
      evt.preventDefault();
      // Grab selected currency iso codes from the currency calculator
      //var id1 = JyskeBank.currencyCalculator.utils.getSelectedCountryId($('#currency1'));
      //var id2 = JyskeBank.currencyCalculator.utils.getSelectedCountryId($('#currency2'));
      if (JyskeBank.currencyCalculator && JyskeBank.currencyCalculator.utils) {
        var id1 = JyskeBank.currencyCalculator.utils.getSelectedCurrencyIso($('#currency1'));
        var id2 = JyskeBank.currencyCalculator.utils.getSelectedCurrencyIso($('#currency2'));
      }
      var id3 = $('#countries').val();
      if (id1 === '' || !id1) {
        id1 = 'dkk';
      }
      if (id2 === '' || !id2) {
        id2 = 'eur';
      }
      if (id3 && id3 !== '' && id3.length > 4) {
        // Convert from countryNameDanish (value of input field) to iso code
        for(var m = 0; m<currencyCalculatorData.length; m++) { 
          if (currencyCalculatorData[m].countryNameDanish == id3) {
            id3 = currencyCalculatorData[m].iso;
            break;
          }
        }
        id2 = id3;
      }
      // Switch if second currency is dkk
      if (id2 == 'dkk') {
        id = id1;
        id1 = id2;
        id2 = id;
      }
      $(this).attr('href', Drupal.settings.basePath + 'privat/privatkunde/valuta/valutatabel/print/' + id1 + '/' + id2 + '');
      window.location = $(this).attr('href');
    });
  }
};
;
/* --- SHADOWBOX ---------------------------------------------------------------- */

var JyskeBank = JyskeBank || {};

JyskeBank.shadowbox = {
  load: function() {
    // Event for all popups to close
    $('body.ajax-mode').find('#primary a.cancel, #primary a.button:contains("Annuller"), #primary a.button:contains("Luk")').click(function() {
      parent.JyskeBank.shadowbox.close();
    });
  },
  
  setWidth: function(width) {
    var $sbBody = $('#sb-wrapper', parent.document);
    if ($sbBody.length) {
      $sbBody.width(width);
    }
  },
  
  setHeight: function(height) {
    var $sbBody = $('#sb-wrapper', parent.document);
    if ($sbBody.length) {
      $sbBody.height(height);
    }
  },
  
  resize: function(width, height) {
    JyskeBank.shadowbox.setWidth(width);
    JyskeBank.shadowbox.setHeight(height);
  },
  
  close: function() {
    Shadowbox.close();
  }
};

Shadowbox.init({
  animate: false,
  autoDimensions: true,
  displayCounter: false,
  language: 'da',
  handleOversize: 'drag',
  players: ['html', 'iframe', 'img', 'swf'],
  viewportPadding: false,
  onOpen: function(element) {
    // Add class based on the popups title
    Shadowbox.wrapperClass = JyskeBank.utils.idSafe(element.title);
    $('#sb-wrapper').addClass(Shadowbox.wrapperClass);
  },
  onFinish: function(element) {
  },
  onClose: function(element) {
    $('#sb-wrapper').removeClass(Shadowbox.wrapperClass);
    Shadowbox.wrapperClass = '';
  }
});
;
/* --- MISC ---------------------------------------------------------------- */

var JyskeBank = JyskeBank || {};

JyskeBank.misc = {
  load: function() {
    this.buttons();
    this.breadcrumb();
    this.ieRadioButtons();
    this.rulers();
    this.secureConnection();
    $('#primary hr').prev().addClass('no-bottom-margin');
  },
  
  behaviors: function(context) {
    //this.disableSubmit(context);
  },
  
  buttons: function() {
    var $buttons = $('span.btn');
    if (!$buttons.length) {
      return;
    }
    
    $buttons
      .hover(
        function() {
          $(this).addClass('active');
        },
        function() {
          $(this).removeClass('active');
        }
      )
      .click(function(evt) {
        var $target = $(evt.target);
        if ($target.is('span.btn')) {
          var delegate = false;
          var $form = $('form.validation-processed');
          if ($form.length) {
            // If the button is a cancel button or the form is valid, delegate the click event to the input button.
            if ($(this).find('input').hasClass('cancel') || $form.valid()) {
              delegate = true;
            }
          }
          else {
            delegate = true;
          }
          if (delegate) {
            $(this).find('input').trigger('click');
          }
        }
      });
  },
  
  breadcrumb: function() {
  	var $breadcrumbs = $('ul.breadcrumb');
    
    var $links = $('ul.breadcrumb a');
    if ($links.length) {
      $links
        .bind('focus', function() {
          $(this).parent().addClass('hover');
        })
        .bind('blur', function() {
          $(this).parent().removeClass('hover');
        });
    }
  },
  
  ieRadioButtons : function(){
  	var $radios = $('input[id*="alreadyCustomerRadio"]');
	if ($.browser.msie) {
  		$radios.click(function() {
    	this.blur();
    	this.focus();
  		});
	}
  },

  
  rulers: function() {
    $('#primary').find('hr').wrap('<div class="hr" />');
  },
  
  // Displays an icon for https connections.
  secureConnection: function() {
    if (document.location.href.substr(0, 8) == 'https://') {
      $('#primary').append('<div id="secure-connection" class="clearfix"><em>Sikker forbindelse er etableret</em></div>');
    }
  },
  
  disableSubmit: function(context) {
    var $inputs = $(context).find('input.form-submit');
    if ($inputs.length) {
      $inputs.bind('click', function() {
        $(this).attr('disabled', 'disabled').parent().addClass('disabled');
      });
    }
  }
  /*
    // Expandable / collabseable tables
  tableExpander: function() {
    // Expand/collapse groups
    $('tr.collapsible').filter(':not(".trigger")').addClass('hidden').end().filter('.trigger').click(function(e) {
      // Expand/collapse groups
      var $collapsibles = $('tr.collapsible');
      // Find all rows in this group that not a trigger row
      var groupNum = $(this).attr('group');
      var $inGroup = $collapsibles.filter('[group="' + groupNum + '"]:not(".trigger")');

      $(this).toggleClass('expanded');
      ($(this).hasClass('expanded')) ? $inGroup.removeClass('hidden') : $inGroup.addClass('hidden');
    })
    .eq(0).trigger('click');
  }
  */

};;
/* --- UTILS ---------------------------------------------------------------- */

var JyskeBank = JyskeBank || {};

JyskeBank.utils = {
  idSafe: function(id) {
    id = jQuery.trim(id).toLowerCase();

    // strip tags
    id = id.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi, '');

    // Replace danish special characters
    id = id.replace(/Ã¦/g, 'ae').replace(/Ã¸/g, 'oe').replace(/Ã¥/g, 'aa');

    // Replace with dashes anything that isn't A-Z, numbers, dashes, or underscores.
    id = id.replace(/[^a-zA-Z0-9_-]+/g, '-');

    // If the first character is not a-z, add 'id' in front.
    if (!isNaN(id.substring(0, 1))) {
      id = 'id-' + id;
    }

    // Two or more dashes should be collapsed into one
    id = id.replace('/\-+/', '-');

    // Trim any leading or trailing dashes
    id = id.replace('/^\-|\-+$/', '');

    // Max length
    id = id.substring(0, 128);

    return id;
  },
  
  // Expandable / collabseable tables
  tableExpander: function() {
    // Expand/collapse groups
    $('tr.collapsible').filter(':not(".trigger")').addClass('hidden').end().filter('.trigger').click(function(e) {
      // Expand/collapse groups
      var $collapsibles = $('tr.collapsible');
      // Find all rows in this group that not a trigger row
      var groupNum = $(this).attr('group');
      var $inGroup = $collapsibles.filter('[group="' + groupNum + '"]:not(".trigger")');

      $(this).toggleClass('expanded');
      ($(this).hasClass('expanded')) ? $inGroup.removeClass('hidden') : $inGroup.addClass('hidden');
    })
    .eq(0).trigger('click');
  }
};;
/* --- IE6 ---------------------------------------------------------------- */

var JyskeBank = JyskeBank || {};

JyskeBank.ie6 = {
  load: function() {
    if (!($.browser.msie && $.browser.version < 7)) {
      return;
    }
    this.warning();
    this.breadcrumbs();
    this.teasers();
  },
  
  warning: function() {
    // Check for a cookie.
    if (!$.cookie('ie6-warning')) {
      var html = '<div id="warning">';
      html += '<div>';
      html += '<h1>Du bruger Internet Explorer 6 som browser, denne understøttes ikke mere af JyskeBank.dk</h1>';
      html += '<p>Vi anbefaler at du opgraderer til en nyere browser - f.eks. <a target="_blank" href="http://www.microsoft.com/danmark/windows/internet-explorer/worldwide-sites.aspx">Internet Explorer 8</a> eller <a target="_blank" href="http://www.mozilla.com/da">FireFox</a>.</p>';
      html += '</div>';
      html += '</div>';
      html += '<div id="warning-overlay"></div>';
      
      $('body').append(html).bind('click', function() {
        $('#warning, #warning-overlay').remove();
        $('body').unbind('click');
      });
      
      // Don't warn the user for the next 14 days.
      $.cookie('ie6-warning', true, {path:'/', expires: 14});
    }
  },
  
  // Hover support for breadcrumbs.
  breadcrumbs: function() {
    $('ul.breadcrumb li').hover(
      function() {
        $(this).addClass('hover');
      },
      function() {
        $(this).removeClass('hover');
      }
    );
  },
  
  // Hover support for page teasers.
  teasers: function() {
    $('div.page-teaser').hover(
      function() {
        $(this).addClass('page-teaser-hover');
      },
      function() {
        $(this).removeClass('page-teaser-hover');
      }
    );
  }
};
;

/*
 * jQuery Autocomplete plugin 1.1
 *
 * Copyright (c) 2009 Jörn Zaefferer
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id: jquery.autocomplete.js 15 2009-08-22 10:30:27Z joern.zaefferer $
 */

;(function($) {
  
$.fn.extend({
  autocomplete: function(urlOrData, options) {
    var isUrl = typeof urlOrData == "string";
    options = $.extend({}, $.Autocompleter.defaults, {
      url: isUrl ? urlOrData : null,
      data: isUrl ? null : urlOrData,
      delay: isUrl ? $.Autocompleter.defaults.delay : 10,
      max: options && !options.scroll ? 10 : 150
    }, options);
    
    // if highlight is set to false, replace it with a do-nothing function
    options.highlight = options.highlight || function(value) { return value; };
    
    // if the formatMatch option is not specified, then use formatItem for backwards compatibility
    options.formatMatch = options.formatMatch || options.formatItem;
    
    return this.each(function() {
      new $.Autocompleter(this, options);
    });
  },
  result: function(handler) {
    return this.bind("result", handler);
  },
  search: function(handler) {
    return this.trigger("search", [handler]);
  },
  flushCache: function() {
    return this.trigger("flushCache");
  },
  setOptions: function(options){
    return this.trigger("setOptions", [options]);
  },
  unautocomplete: function() {
    return this.trigger("unautocomplete");
  }
});

$.Autocompleter = function(input, options) {

  var KEY = {
    UP: 38,
    DOWN: 40,
    DEL: 46,
    TAB: 9,
    RETURN: 13,
    ESC: 27,
    COMMA: 188,
    PAGEUP: 33,
    PAGEDOWN: 34,
    BACKSPACE: 8
  };

  // Create $ object for input element
  var $input = $(input).attr("autocomplete", "off").addClass(options.inputClass);

  var timeout;
  var previousValue = "";
  var cache = $.Autocompleter.Cache(options);
  var hasFocus = 0;
  var lastKeyPressCode;
  var config = {
    mouseDownOnSelect: false
  };
  var select = $.Autocompleter.Select(options, input, selectCurrent, config);
  
  var blockSubmit;
  
  // prevent form submit in opera when selecting with return key
  $.browser.opera && $(input.form).bind("submit.autocomplete", function() {
    if (blockSubmit) {
      blockSubmit = false;
      return false;
    }
  });
  
  // only opera doesn't trigger keydown multiple times while pressed, others don't work with keypress at all
  $input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {
    // a keypress means the input has focus
    // avoids issue where input had focus before the autocomplete was applied
    hasFocus = 1;
    // track last key pressed
    lastKeyPressCode = event.keyCode;
    switch(event.keyCode) {
    
      case KEY.UP:
        event.preventDefault();
        if ( select.visible() ) {
          select.prev();
        } else {
          onChange(0, true);
        }
        break;
        
      case KEY.DOWN:
        event.preventDefault();
        if ( select.visible() ) {
          select.next();
        } else {
          onChange(0, true);
        }
        break;
        
      case KEY.PAGEUP:
        event.preventDefault();
        if ( select.visible() ) {
          select.pageUp();
        } else {
          onChange(0, true);
        }
        break;
        
      case KEY.PAGEDOWN:
        event.preventDefault();
        if ( select.visible() ) {
          select.pageDown();
        } else {
          onChange(0, true);
        }
        break;
      
      // matches also semicolon
      case options.multiple && $.trim(options.multipleSeparator) == "," && KEY.COMMA:
      case KEY.TAB:
      case KEY.RETURN:
        if( selectCurrent() ) {
          // stop default to prevent a form submit, Opera needs special handling
          event.preventDefault();
          blockSubmit = true;
          return false;
        }
        break;
        
      case KEY.ESC:
        select.hide();
        break;
        
      default:
        clearTimeout(timeout);
        timeout = setTimeout(onChange, options.delay);
        break;
    }
  }).focus(function(){
    // track whether the field has focus, we shouldn't process any
    // results if the field no longer has focus
    hasFocus++;
  }).blur(function() {
    hasFocus = 0;
    if (!config.mouseDownOnSelect) {
      hideResults();
    }
  }).click(function() {
    // show select when clicking in a focused field
    if ( hasFocus++ > 1 && !select.visible() ) {
      onChange(0, true);
    }
  }).bind("search", function() {
    // TODO why not just specifying both arguments?
    var fn = (arguments.length > 1) ? arguments[1] : null;
    function findValueCallback(q, data) {
      var result;
      if( data && data.length ) {
        for (var i=0; i < data.length; i++) {
          if( data[i].result.toLowerCase() == q.toLowerCase() ) {
            result = data[i];
            break;
          }
        }
      }
      if( typeof fn == "function" ) fn(result);
      else $input.trigger("result", result && [result.data, result.value]);
    }
    $.each(trimWords($input.val()), function(i, value) {
      request(value, findValueCallback, findValueCallback,$input);
    });
  }).bind("flushCache", function() {
    cache.flush();
  }).bind("setOptions", function() {
    $.extend(options, arguments[1]);
    // if we've updated the data, repopulate
    if ( "data" in arguments[1] )
      cache.populate();
  }).bind("unautocomplete", function() {
    select.unbind();
    $input.unbind();
    $(input.form).unbind(".autocomplete");
  });
  
  
  function selectCurrent() {
    var selected = select.selected();
    if( !selected )
      return false;
    
    var v = selected.result;
    previousValue = v;
    
    if ( options.multiple ) {
      var words = trimWords($input.val());
      if ( words.length > 1 ) {
        var seperator = options.multipleSeparator.length;
        var cursorAt = $(input).selection().start;
        var wordAt, progress = 0;
        $.each(words, function(i, word) {
          progress += word.length;
          if (cursorAt <= progress) {
            wordAt = i;
            return false;
          }
          progress += seperator;
        });
        words[wordAt] = v;
        // TODO this should set the cursor to the right position, but it gets overriden somewhere
        //$.Autocompleter.Selection(input, progress + seperator, progress + seperator);
        v = words.join( options.multipleSeparator );
      }
      v += options.multipleSeparator;
    }
    
    $input.val(v);
    hideResultsNow();
    $input.trigger("result", [selected.data, selected.value]);
    return true;
  }
  
  function onChange(crap, skipPrevCheck) {
    if( lastKeyPressCode == KEY.DEL ) {
      select.hide();
      return;
    }
    
    var currentValue = $input.val();
    
    if ( !skipPrevCheck && currentValue == previousValue )
      return;
    
    previousValue = currentValue;
    
    currentValue = lastWord(currentValue);
    if ( currentValue.length >= options.minChars) {
      $input.addClass(options.loadingClass);
      if (!options.matchCase)
        currentValue = currentValue.toLowerCase();
      request(currentValue, receiveData, hideResultsNow, $input);
    } else {
      stopLoading();
      select.hide();
    }
  };
  
  function trimWords(value) {
    if (!value)
      return [""];
    if (!options.multiple)
      return [$.trim(value)];
    return $.map(value.split(options.multipleSeparator), function(word) {
      return $.trim(value).length ? $.trim(word) : null;
    });
  }
  
  function lastWord(value) {
    if ( !options.multiple )
      return value;
    var words = trimWords(value);
    if (words.length == 1) 
      return words[0];
    var cursorAt = $(input).selection().start;
    if (cursorAt == value.length) {
      words = trimWords(value)
    } else {
      words = trimWords(value.replace(value.substring(cursorAt), ""));
    }
    return words[words.length - 1];
  }
  
  // fills in the input box w/the first match (assumed to be the best match)
  // q: the term entered
  // sValue: the first matching result
  function autoFill(q, sValue){
    // autofill in the complete box w/the first match as long as the user hasn't entered in more data
    // if the last user key pressed was backspace, don't autofill
    if( options.autoFill && (lastWord($input.val()).toLowerCase() == q.toLowerCase()) && lastKeyPressCode != KEY.BACKSPACE ) {
      // fill in the value (keep the case the user has typed)
      $input.val($input.val() + sValue.substring(lastWord(previousValue).length));
      // select the portion of the value not typed by the user (so the next character will erase)
      $(input).selection(previousValue.length, previousValue.length + sValue.length);
    }
  };

  function hideResults() {
    clearTimeout(timeout);
    timeout = setTimeout(hideResultsNow, 200);
  };

  function hideResultsNow() {
    var wasVisible = select.visible();
    select.hide();
    clearTimeout(timeout);
    stopLoading();
      
    if (options.mustMatch) {
      // call search and run callback
      $input.search(
        function (result){
          // if no value found, clear the input box
          if( !result ) {
            if (options.multiple) {
              var words = trimWords($input.val()).slice(0, -1);
              $input.val( words.join(options.multipleSeparator) + (words.length ? options.multipleSeparator : "") );
            }
            else {
              $input.val( "" );
              $input.trigger("result", null);
            }
          }
        }
      );
    }
  };

  function receiveData(q, data) {
    if ( data && data.length && hasFocus ) {
      stopLoading();
      select.display(data, q);
      autoFill(q, data[0].value);
      select.show();
    } else {
      hideResultsNow();
    }
  };

  function request(term, success, failure, iii) {
    if (!options.matchCase)
      term = term.toLowerCase();
    var data = cache.load(term);

    // recieve the cached data
    if (data && data.length) {
      options.hasResults(iii);
      success(term, data);
    // if an AJAX url has been supplied, try loading the data now
    }
    else if ((typeof options.url == "string") && (options.url.length > 0) ){
      
      var extraParams = {
        timestamp: +new Date()
      };
      $.each(options.extraParams, function(key, param) {
        extraParams[key] = typeof param == "function" ? param() : param;
      });
      
      $.ajax({
        // try to leverage ajaxQueue plugin to abort previous requests
        mode: "abort",
        // limit abortion to this input
        port: "autocomplete" + input.name,
        dataType: options.dataType,
        url: options.url,
        data: $.extend({
          q: lastWord(term),
          limit: options.max
        }, extraParams),
        success: function(data) {
          var parsed = options.parse && options.parse(data) || parse(data);
          cache.add(term, parsed);
          success(term, parsed);
        }
      });
    } else {
      options.isEmpty(iii);
      // if we have a failure, we need to empty the list -- this prevents the the [TAB] key from selecting the last successful match
      select.emptyList();
      failure(term);
    }
  };
  
  function parse(data) {
    var parsed = [];
    var rows = data.split("\n");
    for (var i=0; i < rows.length; i++) {
      var row = $.trim(rows[i]);
      if (row) {
        row = row.split("|");
        parsed[parsed.length] = {
          data: row,
          value: row[0],
          result: options.formatResult && options.formatResult(row, row[0]) || row[0]
        };
      }
    }
    return parsed;
  };

  function stopLoading() {
    $input.removeClass(options.loadingClass);
  };

};

$.Autocompleter.defaults = {
  inputClass: "ac_input",
  resultsClass: "ac_results",
  loadingClass: "ac_loading",
  listId: "ac-list",
  currentid: 1,
  minChars: 1,
  delay: 400,
  matchCase: false,
  matchSubset: true,
  matchContains: false,
  cacheLength: 10,
  max: 100,
  mustMatch: false,
  extraParams: {},
  selectFirst: true,
  formatItem: function(row) { return row[0]; },
  formatMatch: null,
  autoFill: false,
  width: 0,
  multiple: false,
  multipleSeparator: ", ",
  highlight: function(value, term) {
    return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
  },
    scroll: true,
    scrollHeight: 180
};

$.Autocompleter.Cache = function(options) {

  var data = {};
  var length = 0;
  
  function matchSubset(s, sub) {
    if (!options.matchCase) 
      s = s.toLowerCase();
    var i = s.indexOf(sub);
    if (options.matchContains == "word"){
      i = s.toLowerCase().search("\\b" + sub.toLowerCase());
    }
    if (i == -1) return false;
    return i == 0 || options.matchContains;
  };
  
  function add(q, value) {
    if (length > options.cacheLength){
      flush();
    }
    if (!data[q]){ 
      length++;
    }
    data[q] = value;
  }
  
  function populate(){
    if( !options.data ) return false;
    // track the matches
    var stMatchSets = {},
      nullData = 0;

    // no url was specified, we need to adjust the cache length to make sure it fits the local data store
    if( !options.url ) options.cacheLength = 1;
    
    // track all options for minChars = 0
    stMatchSets[""] = [];
    
    // loop through the array and create a lookup structure
    for ( var i = 0, ol = options.data.length; i < ol; i++ ) {
      var rawValue = options.data[i];
      // if rawValue is a string, make an array otherwise just reference the array
      rawValue = (typeof rawValue == "string") ? [rawValue] : rawValue;
      
      var value = options.formatMatch(rawValue, i+1, options.data.length);
      if ( value === false )
        continue;
        
      var firstChar = value.charAt(0).toLowerCase();
      // if no lookup array for this character exists, look it up now
      if( !stMatchSets[firstChar] ) 
        stMatchSets[firstChar] = [];

      // if the match is a string
      var row = {
        value: value,
        data: rawValue,
        result: options.formatResult && options.formatResult(rawValue) || value
      };
      
      // push the current match into the set list
      stMatchSets[firstChar].push(row);

      // keep track of minChars zero items
      if ( nullData++ < options.max ) {
        stMatchSets[""].push(row);
      }
    };

    // add the data items to the cache
    $.each(stMatchSets, function(i, value) {
      // increase the cache size
      options.cacheLength++;
      // add to the cache
      add(i, value);
    });
  }
  
  // populate any existing data
  setTimeout(populate, 25);
  
  function flush(){
    data = {};
    length = 0;
  }
  
  return {
    flush: flush,
    add: add,
    populate: populate,
    load: function(q) {
      if (!options.cacheLength || !length)
        return null;
      /* 
       * if dealing w/local data and matchContains than we must make sure
       * to loop through all the data collections looking for matches
       */
      if( !options.url && options.matchContains ){
        // track all matches
        var csub = [];
        // loop through all the data grids for matches
        for( var k in data ){
          // don't search through the stMatchSets[""] (minChars: 0) cache
          // this prevents duplicates
          if( k.length > 0 ){
            var c = data[k];
            $.each(c, function(i, x) {
              // if we've got a match, add it to the array
              if (matchSubset(x.value, q)) {
                csub.push(x);
              }
            });
          }
        }       
        return csub;
      } else 
      // if the exact item exists, use it
      if (data[q]){
        return data[q];
      } else
      if (options.matchSubset) {
        for (var i = q.length - 1; i >= options.minChars; i--) {
          var c = data[q.substr(0, i)];
          if (c) {
            var csub = [];
            $.each(c, function(i, x) {
              if (matchSubset(x.value, q)) {
                csub[csub.length] = x;
              }
            });
            return csub;
          }
        }
      }
      return null;
    }
  };
};

$.Autocompleter.Select = function (options, input, select, config) {
  var CLASSES = {
    ACTIVE: "ac_over"
  };
  
  var listItems,
    active = -1,
    data,
    term = "",
    needsInit = true,
    element,
    list;
  
  // Create results
  function init() {
    if (!needsInit)
      return;
    element = $("<div/>")
    .hide()
    .addClass(options.resultsClass)
    .css("position", "absolute")
    .attr("id", "ac-results-" + options.currentid)
    .appendTo(document.body);
  
    list = $("<ul/>").appendTo(element).mouseover( function(event) {
      if(target(event).nodeName && target(event).nodeName.toUpperCase() == 'LI') {
              active = $("li", list).removeClass(CLASSES.ACTIVE).index(target(event));
          $(target(event)).addClass(CLASSES.ACTIVE);            
          }
    }).click(function(event) {
      $(target(event)).addClass(CLASSES.ACTIVE);
      select();
      // TODO provide option to avoid setting focus again after selection? useful for cleanup-on-focus
      input.focus();
      return false;
    }).mousedown(function() {
      config.mouseDownOnSelect = true;
    }).mouseup(function() {
      config.mouseDownOnSelect = false;
    });
    
    if(options.listId){
    	list.attr("id", options.listId + "-" + options.currentid);
    }
    
    if( options.width > 0 )
      element.css("width", options.width);
      
    needsInit = false;
    options.currentid = options.currentid == 1 ? 2 : 1;
  } 
  
  function target(event) {
    var element = event.target;
    while(element && element.tagName != "LI")
      element = element.parentNode;
    // more fun with IE, sometimes event.target is empty, just ignore it then
    if(!element)
      return [];
    return element;
  }

  function moveSelect(step) {
    listItems.slice(active, active + 1).removeClass(CLASSES.ACTIVE);
    movePosition(step);
        var activeItem = listItems.slice(active, active + 1).addClass(CLASSES.ACTIVE);
        if(options.scroll) {
            var offset = 0;
            listItems.slice(0, active).each(function() {
        offset += this.offsetHeight;
      });
            if((offset + activeItem[0].offsetHeight - list.scrollTop()) > list[0].clientHeight) {
                list.scrollTop(offset + activeItem[0].offsetHeight - list.innerHeight());
            } else if(offset < list.scrollTop()) {
                list.scrollTop(offset);
            }
        }
  };
  
  function movePosition(step) {
    active += step;
    if (active < 0) {
      active = listItems.size() - 1;
    } else if (active >= listItems.size()) {
      active = 0;
    }
  }
  
  function limitNumberOfItems(available) {
    return options.max && options.max < available
      ? options.max
      : available;
  }
  
  function fillList() {
    list.empty();
    var max = limitNumberOfItems(data.length);
    for (var i=0; i < max; i++) {
      if (!data[i])
        continue;
      var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term);
      if ( formatted === false )
        continue;
      var li = $("<li/>").html( options.highlight(formatted, term) ).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0];
      $.data(li, "ac_data", data[i]);
    }
    listItems = list.find("li");
    if ( options.selectFirst ) {
      listItems.slice(0, 1).addClass(CLASSES.ACTIVE);
      active = 0;
    }
    // apply bgiframe if available
    if ( $.fn.bgiframe )
      list.bgiframe();
  }
  
  return {
    display: function(d, q) {
      init();
      data = d;
      term = q;
      fillList();
    },
    next: function() {
      moveSelect(1);
    },
    prev: function() {
      moveSelect(-1);
    },
    pageUp: function() {
      if (active != 0 && active - 8 < 0) {
        moveSelect( -active );
      } else {
        moveSelect(-8);
      }
    },
    pageDown: function() {
      if (active != listItems.size() - 1 && active + 8 > listItems.size()) {
        moveSelect( listItems.size() - 1 - active );
      } else {
        moveSelect(8);
      }
    },
    hide: function() {
      element && element.hide();
      listItems && listItems.removeClass(CLASSES.ACTIVE);
      active = -1;
    },
    visible : function() {
      return element && element.is(":visible");
    },
    current: function() {
      return this.visible() && (listItems.filter("." + CLASSES.ACTIVE)[0] || options.selectFirst && listItems[0]);
    },
    show: function() {
      var offset = $(input).offset();
      element.css({
        width: typeof options.width == "string" || options.width > 0 ? options.width : $(input).width(),
        top: offset.top + input.offsetHeight,
        left: offset.left - 1
      }).show();
            if(options.scroll) {
                list.scrollTop(0);
                list.css({
          maxHeight: options.scrollHeight,
          overflow: 'auto'
        });
        
                if($.browser.msie && typeof document.body.style.maxHeight === "undefined") {
          var listHeight = 0;
          listItems.each(function() {
            listHeight += this.offsetHeight;
          });
          var scrollbarsVisible = listHeight > options.scrollHeight;
                    list.css('height', scrollbarsVisible ? options.scrollHeight : listHeight );
          if (!scrollbarsVisible) {
            // IE doesn't recalculate width when scrollbar disappears
            listItems.width( list.width() - parseInt(listItems.css("padding-left")) - parseInt(listItems.css("padding-right")) );
          }
                }
                
            }
    },
    selected: function() {
      var selected = listItems && listItems.filter("." + CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);
      return selected && selected.length && $.data(selected[0], "ac_data");
    },
    emptyList: function (){
      list && list.empty();
    },
    unbind: function() {
      element && element.remove();
    }
  };
};

$.fn.selection = function(start, end) {
  if (start !== undefined) {
    return this.each(function() {
      if( this.createTextRange ){
        var selRange = this.createTextRange();
        if (end === undefined || start == end) {
          selRange.move("character", start);
          selRange.select();
        } else {
          selRange.collapse(true);
          selRange.moveStart("character", start);
          selRange.moveEnd("character", end);
          selRange.select();
        }
      } else if( this.setSelectionRange ){
        this.setSelectionRange(start, end);
      } else if( this.selectionStart ){
        this.selectionStart = start;
        this.selectionEnd = end;
      }
    });
  }
  var field = this[0];
  if ( field.createTextRange ) {
    var range = document.selection.createRange(),
      orig = field.value,
      teststring = "<->",
      textLength = range.text.length;
    range.text = teststring;
    var caretAt = field.value.indexOf(teststring);
    field.value = orig;
    this.selection(caretAt, caretAt + textLength);
    return {
      start: caretAt,
      end: caretAt + textLength
    }
  } else if( field.selectionStart !== undefined ){
    return {
      start: field.selectionStart,
      end: field.selectionEnd
    }
  }
};

})(jQuery);;
    
/*
 * Copyright (c) 2008 Justin Britten justinbritten at gmail.com
 *
 * Some code was borrowed from:
 * 1. Greg Weber's uiTableFilter project (http://gregweber.info/projects/uitablefilter)
 * 2. Denny Ferrassoli & Charles Christolini's TypeWatch project (www.dennydotnet.com)
 *
 * Contributions have been made by:
 * RenÃ© Leonhardt (github.com/rleonhardt)
 * Thomas Kappler (github.com/thomas11)
 *
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */


(function($) {
  $.extend({
    tablesorterFilter: new function() {

      // Default filterFunction implementation (element text, search words, case-sensitive flag)
      function has_words(str, words, caseSensitive) {
        var text = caseSensitive ? str : str.toLowerCase();
        text = text.replace(/\s{2,}/g,' ');
	  	var textArray = text.split(" ");
        if(/\d/.test(textArray[0])){
			var numberText="";
			for(var i=0; i< textArray.length; i++){
				numberText += textArray[i];
			}
			if(numberText.indexOf(words)==0){
				return true;
			}
	  } else {
			for (var j=0; j < words.length; j++) {
				var found = false;
		       	for (var i=0; i< textArray.length; i++){
		       		
					if( textArray[i].indexOf(words[j])==0){
						found = true;
					}
		  		}
				if (! found) {
					return false;
				}
			}
		return true;
	  }
	  return false;
      }


      function doFilter(table) {
        if(table.config.debug) { var cacheTime = new Date(); }

        // Build multiple filters from input boxes
        // TODO: enable incremental filtering by caching result and applying only single filter action
        var filters = [];

      	// Implement dynamic selection of a filter column
      	// by setting filter.filterColumns based on the user's
      	// query. That means we have to restore the base configuration
      	// of filterColumns after processing the query.
	      var defaultFilterColumns = [];
        for(var i=0; i < table.config.filter.length; i++) {
          var filter = table.config.filter[i];
          var container = $(filter.filterContainer);
	        // Record the base setting of filtered columns to
	        // be able to restore it later, see above.
          defaultFilterColumns[i] = filter.filterColumns;
          // Trim and unify whitespace before splitting
          var phrase = jQuery.trim(container.val()).replace(/\s+/g, ' ');
          if(phrase.length != 0) {

            // Check for a 'col:' prefix.
            var field_prefix = /^([a-z]+):(.+)/;
            var match = field_prefix.exec(phrase);
            if (match !== null) {
              // The user wants to filter based on a
              // certain column. Find the index of that column and
              // set filterColumns accordingly.
              var field = match[1];
              phrase = match[2];
              for (var k=0; k < filter.columns.length; k++) {
                if (filter.columns[k].indexOf(field) === 0) {
                  filter.filterColumns = [k];
                  break;
                }
              }
              
	          }
			
            var caseSensitive = filter.filterCaseSensitive;
            filters.push({
              caseSensitive: caseSensitive,
              words: caseSensitive ? phrase.split(" ") : phrase.toLowerCase().split(" "),
              findStr: filter.filterColumns ? "td:eq(" + filter.filterColumns.join("),td:eq(") + ")" : "",
              filterFunction: filter.filterFunction
            });
          }
		
	        // Restore the base setting of filtered columns
          filter.filterColumns = defaultFilterColumns[i];
        }
        var filterCount = filters.length;
        // Filter cleared?
        if(filterCount == 0) {
          var search_text = function() {
            var elem = jQuery(this);
            resultRows[resultRows.length] = elem;
          }
        } else {
          var search_text = function() {
            var elem = jQuery(this);
            for(var i=0; i < filterCount; i++) {
              if(filters[i].filterFunction(
		     (filters[i].findStr ? elem.find(filters[i].findStr) : elem).text(),
		     filters[i].words,
		     filters[i].caseSensitive) ) {
                resultRows[resultRows.length] = elem;
                return true; // Skip elem and continue to next element
              }
            }
          }
        }

        // Walk through all of the table's rows and search.
        // Rows which match the string will be pushed into the resultRows array.
        var allRows = table.config.cache.row;
        var resultRows = [];

        var allRowsCount = allRows.length;
        for (var i=0; i < allRowsCount; i++) {
          allRows[i].each ( search_text );
        }

        // Clear the table
        $.tablesorter.clearTableBody(table);

        // Push all rows which matched the search string onto the table for display.
        var resultRowsCount = resultRows.length;
        for (var i=0; i < resultRowsCount; i++) {
          $(table.tBodies[0]).append(resultRows[i]);
        }

        // Update the table by executing some of tablesorter's triggers
        // This will apply any widgets or pagination, if used.
        $(table).trigger("update");
        if (resultRows.length) {
          $(table).trigger("appendCache");
          // Apply current sorting after restoring rows
          $(table).trigger("sorton", [table.config.sortList]);
        }

        if(table.config.debug) { $.tablesorter.benchmark("Apply filter:", cacheTime); }

        // Inform subscribers that filtering finished
        $(table).trigger("filterEnd");

        return table;
      };

      function clearFilter(table) {
        if(table.config.debug) { var cacheTime = new Date(); }

        // Reset all filter values
        for(var i=0; i < table.config.filter.length; i++)
          $(table.config.filter[i].filterContainer).val('').get(0).lastValue = '';

        var allRows = table.config.cache.row;

        $.tablesorter.clearTableBody(table);

        for (var i=0; i < allRows.length; i++) {
          $(table.tBodies[0]).append(allRows[i]);
        }

        $(table).trigger("update");
        $(table).trigger("appendCache");
        // Apply current sorting after restoring all rows
        $(table).trigger("sorton", [table.config.sortList]);

        if(table.config.debug) { $.tablesorter.benchmark("Clear filter:", cacheTime); }

        $(table).trigger("filterCleared");

        return table;
      };

      this.defaults = {
        filterContainer: '#filter-box',
        filterClearContainer: '#filter-clear-button',
        filterColumns: null,
        filterCaseSensitive: false,
        filterWaitTime: 500,
        filterFunction: has_words,
	      columns: []
      };


      this.construct = function() {
        var settings = arguments; // Allow multiple config objects in constructor call

        return this.each(function() {
          this.config.filter = new Array(settings.length);
          var config = this.config;
          config.filter = new Array(settings.length);

          for (var i = 0; i < settings.length; i++)
            config.filter[i] = $.extend(this.config.filter[i], $.tablesorterFilter.defaults, settings[i]);

          var table = this;

          // Create a timer which gets reset upon every keyup event.
          //
          // Perform filter only when the timer's wait is reached (user finished typing or paused long enough to elapse the timer).
          //
          // Do not perform the filter is the query has not changed.
          //
          // Immediately perform the filter if the ENTER key is pressed.

          function checkInputBox(inputBox, override) {
            var value = inputBox.value;

            if ((value != inputBox.lastValue) || (override)) {
              inputBox.lastValue = value;
              doFilter( table );
            }
          };

          var timer = new Array(settings.length);

          for (var i = 0; i < settings.length; i++) {
            var container = $(config.filter[i].filterContainer);
            // TODO: throw error for non-existing filter container?
            if(container.length)
              container[0].filterIndex = i;
            container.keyup(function(e, phrase) {
              var index = this.filterIndex;
              if(undefined !== phrase)
                $(this).val(phrase);
              var inputBox = this;

              // Was ENTER pushed?
              if (inputBox.keyCode == 13 || undefined !== phrase) {
                var timerWait = 1;
                var overrideBool = true;
              } else {
                var timerWait = config.filter[index].filterWaitTime || 500;
                var overrideBool = false;
              }

              var timerCallback = function() {
                checkInputBox(inputBox, overrideBool);
              }

              // Reset the timer
              clearTimeout(timer[index]);
              timer[index] = setTimeout(timerCallback, timerWait);

              return false;
            });

            // Avoid binding click event to whole document if no clearContainer has been defined
            if(config.filter[i].filterClearContainer) {
              var container = $(config.filter[i].filterClearContainer);
              if(container.length) {
                container[0].filterIndex = i;
                container.click(function() {
                  var index = this.filterIndex;
                  var container = $(config.filter[index].filterContainer);
                  container.val("");
                  // Support entering the same filter text after clearing
                  container[0].lastValue = "";
                  // TODO: Clear single filter only
                  doFilter(table);
                  if(container[0].type != 'hidden')
                    container.focus();
                });
              }
            }
          }

          $(table).bind("doFilter",function() {
            doFilter(table);
          });
          $(table).bind("clearFilter",function() {
            clearFilter(table);
          });
        });
      };

    }
  });

  // extend plugin scope
  $.fn.extend({
    tablesorterFilter: $.tablesorterFilter.construct
  });

})(jQuery);    
/**
 * @author Dan G. Switzer II
 */
(function ($){
	/* declare defaults */
	var defaults = {
		selector: "td.collapsible"        // the default selector to use
		, toggleAllSelector: ""           // the selector to use to attach the collapsibleToggle() function
		, classChildRow: "expand-child"   // define the "child row" css class
		, classCollapse: "collapsed"      // define the "collapsed" css class
		, classExpand: "expanded"         // define the "expanded" css class
		, showCollapsed: false            // specifies if the default css state should show collapsed (use this if you want to collapse the rows using CSS by default)
		, collapse: true                  // if true will force rows to collapse via JS (use this if you want JS to force the rows collapsed)
		, fx: {hide:"hide",show:"show"}   // the fx to use for showing/hiding elements (fx do not work correctly in IE6)
		, addAnchor: "append"             // how should we add the anchor? append, wrapInner, etc
		, textExpand: "Expand All"        // the text to show when expand all
		, textCollapse: "Collapse All"    // the text to show when collase all
	}, bHideParentRow = ($.browser.msie && ($.browser.version <= 7));

	$.fn.collapsible = function (sel, options){
		var self = this, bIsElOpt = (sel && sel.constructor == Object),
			settings = $.extend({}, defaults, bIsElOpt ? sel : options);
		
		if( !bIsElOpt ) settings.selector = sel;
		// make sure that if we're forcing to collapse, that we show the collapsed css state
		if( settings.collapse ) settings.showCollapsed = true;
		
		return this.each(function (){
			var $td = $(settings.selector, this),
				// look for existing anchors
				$a = $td.find("a");
				
				// if a "toggle all" selector has been specified, find and attach the behavior
				if( settings.toggleAllSelector.length > 0 ) $(this).find(settings.toggleAllSelector).collapsibleToggle(this);
			
				// if no anchors, create them
				if( $a.length == 0 ) $a = $td[settings.addAnchor]('<a href="#" class="' + settings[settings.showCollapsed ? "classCollapse" : "classExpand"] + '"></a>').find("a");

				$a.bind("click", function (){
					var $self = $(this), 
						$tr = $self.parent().parent(), 
						$trc = $tr.next(), 
						bIsCollapsed = $self.hasClass(settings.classExpand);
					// change the css class
					$self[bIsCollapsed ? "removeClass" : "addClass"](settings.classExpand)[!bIsCollapsed ? "removeClass" : "addClass"](settings.classCollapse);
					while( $trc.hasClass(settings.classChildRow) ){
						if( bHideParentRow ){
							// get the tablesorter options
							var ts_config = $.data(self[0], "tablesorter");
							// hide/show the row
							$trc[bIsCollapsed ? settings.fx.hide : settings.fx.show]();
							
							// if we have the ts settings, we need to up zebra stripping if active
							if( !bIsCollapsed && ts_config ){
								if( $tr.hasClass(ts_config.widgetZebra.css[0]) ) $trc.addClass(ts_config.widgetZebra.css[0]).removeClass(ts_config.widgetZebra.css[1]);
								else if( $tr.hasClass(ts_config.widgetZebra.css[1]) ) $trc.addClass(ts_config.widgetZebra.css[1]).removeClass(ts_config.widgetZebra.css[0]);
							}
						}
						// show all the table cells
						$("td", $trc)[bIsCollapsed ? settings.fx.hide : settings.fx.show]();
						// get the next row
						$trc = $trc.next();
					}
					return false;
				});
			
			// if not IE and we're automatically collapsing rows, collapse them now
			if( settings.collapse && !bHideParentRow ){
				$td
					// get the tr element
					.parent()
					.each(function (){
						var $tr = $(this).next();
						while( $tr.hasClass(settings.classChildRow) ){
							// hide each table cell
							$tr = $tr.find("td").hide().end().next();
						}
					});
	  	}

			// if using IE, we need to hide the table rows
			if( settings.showCollapsed && bHideParentRow ){
				$td
					// get the tr element
					.parent()
					.each(function (){
						var $tr = $(this).next();
						while( $tr.hasClass(settings.classChildRow) ){
							$tr = $tr.hide().next();
						}
					});
			}
		});
	}
	
	$.fn.collapsibleToggle = function(table, options){
		var settings = $.extend({}, defaults, options), $table = $(table);

		// attach the expand behavior to all options
		this.toggle(
			// expand all entries
			function (){
				var $el = $(this);
				$el.addClass(settings.classExpand).removeClass(settings.classCollapse);
				if( !$el.is("td,th") )
					$el[$el.is(":input") ? "val" : "html"](settings.textCollapse);
				$(settings.selector + " a", $table).removeClass(settings.classExpand).click();
			}
			// collapse all entries
			, function (){
				var $el = $(this);
				$el.addClass(settings.classCollapse).removeClass(settings.classExpand);
				if( !$el.is("td,th") )
					$el[$el.is(":input") ? "val" : "html"](settings.textExpand);
				$(settings.selector + " a", $table).addClass(settings.classExpand).click();
			}
		);
		
		// update text
		if( !this.is("td,th") ) this[this.is(":input") ? "val" : "html"](settings.textExpand);
		
		return this.addClass(settings.classCollapse).removeClass(settings.classExpand);
  }

})(jQuery);
    
/*
 * 
 * TableSorter 2.0 - Client-side table sorting with ease!
 * Version 2.0.3
 * @requires jQuery v1.2.3
 * 
 * Copyright (c) 2007 Christian Bach
 * Examples and docs at: http://tablesorter.com
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * 
 */
/**
 *
 * @description Create a sortable table with multi-column sorting capabilitys
 * 
 * @example $('table').tablesorter();
 * @desc Create a simple tablesorter interface.
 *
 * @example $('table').tablesorter({ sortList:[[0,0],[1,0]] });
 * @desc Create a tablesorter interface and sort on the first and secound column in ascending order.
 * 
 * @example $('table').tablesorter({ headers: { 0: { sorter: false}, 1: {sorter: false} } });
 * @desc Create a tablesorter interface and disableing the first and secound column headers.
 * 
 * @example $('table').tablesorter({ 0: {sorter:"integer"}, 1: {sorter:"currency"} });
 * @desc Create a tablesorter interface and set a column parser for the first and secound column.
 * 
 * 
 * @param Object settings An object literal containing key/value pairs to provide optional settings.
 * 
 * @option String cssHeader (optional) 			A string of the class name to be appended to sortable tr elements in the thead of the table. 
 * 												Default value: "header"
 * 
 * @option String cssAsc (optional) 			A string of the class name to be appended to sortable tr elements in the thead on a ascending sort. 
 * 												Default value: "headerSortUp"
 * 
 * @option String cssDesc (optional) 			A string of the class name to be appended to sortable tr elements in the thead on a descending sort. 
 * 												Default value: "headerSortDown"
 * 
 * @option String sortInitialOrder (optional) 	A string of the inital sorting order can be asc or desc. 
 * 												Default value: "asc"
 * 
 * @option String sortMultisortKey (optional) 	A string of the multi-column sort key. 
 * 												Default value: "shiftKey"
 * 
 * @option String textExtraction (optional) 	A string of the text-extraction method to use. 
 * 												For complex html structures inside td cell set this option to "complex", 
 * 												on large tables the complex option can be slow. 
 * 												Default value: "simple"
 * 
 * @option Object headers (optional) 			An array containing the forces sorting rules. 
 * 												This option let's you specify a default sorting rule. 
 * 												Default value: null
 * 
 * @option Array sortList (optional) 			An array containing the forces sorting rules. 
 * 												This option let's you specify a default sorting rule. 
 * 												Default value: null
 * 
 * @option Array sortForce (optional) 			An array containing forced sorting rules. 
 * 												This option let's you specify a default sorting rule, which is prepended to user-selected rules.
 * 												Default value: null
 *  
  * @option Array sortAppend (optional) 			An array containing forced sorting rules. 
 * 												This option let's you specify a default sorting rule, which is appended to user-selected rules.
 * 												Default value: null
 * 
 * @option Boolean widthFixed (optional) 		Boolean flag indicating if tablesorter should apply fixed widths to the table columns.
 * 												This is usefull when using the pager companion plugin.
 * 												This options requires the dimension jquery plugin.
 * 												Default value: false
 *
 * @option Boolean cancelSelection (optional) 	Boolean flag indicating if tablesorter should cancel selection of the table headers text.
 * 												Default value: true
 *
 * @option Boolean debug (optional) 			Boolean flag indicating if tablesorter should display debuging information usefull for development.
 *
 * @type jQuery
 *
 * @name tablesorter
 * 
 * @cat Plugins/Tablesorter
 * 
 * @author Christian Bach/christian.bach@polyester.se
 */

(function($) {
	$.extend({
		tablesorter: new function() {
			
			var parsers = [], widgets = [];
			
			this.defaults = {
				cssHeader: "header",
				cssAsc: "headerSortUp",
				cssDesc: "headerSortDown",
				cssChildRow: "expand-child",
				sortInitialOrder: "asc",
				sortMultiSortKey: "shiftKey",
				sortForce: null,
				sortAppend: null,
				textExtraction: "simple",
				parsers: {}, 
				widgets: [],		
				widgetZebra: {css: ["even","odd"]},
				headers: {},
				widthFixed: false,
				cancelSelection: true,
				sortList: [],
				headerList: [],
				dateFormat: "us",
				decimal: '.',
				onRenderHeader: null,
				debug: false
			};
			
			/* debuging utils */
			function benchmark(s,d) {
				log(s + "," + (new Date().getTime() - d.getTime()) + "ms");
			}
			
			this.benchmark = benchmark;
			
			function log(s) {
				if (typeof console != "undefined" && typeof console.debug != "undefined") {
					console.log(s);
				} else {
					alert(s);
				}
			}
						
			/* parsers utils */
			function buildParserCache(table,$headers) {
				
				if(table.config.debug) { var parsersDebug = ""; }
				
				var rows = table.tBodies[0].rows;
				
				if(table.tBodies[0].rows[0]) {

					var list = [], cells = rows[0].cells, l = cells.length;
					
					for (var i=0;i < l; i++) {
						var p = false;
						
						if($.metadata && ($($headers[i]).metadata() && $($headers[i]).metadata().sorter)  ) {
						
							p = getParserById($($headers[i]).metadata().sorter);	
						
						} else if((table.config.headers[i] && table.config.headers[i].sorter)) {
	
							p = getParserById(table.config.headers[i].sorter);
						}
						if(!p) {
							p = detectParserForColumn(table,cells[i]);
						}
	
						if(table.config.debug) { parsersDebug += "column:" + i + " parser:" +p.id + "\n"; }
	
						list.push(p);
					}
				}
				
				if(table.config.debug) { log(parsersDebug); }

				return list;
			};
			
			function detectParserForColumn(table,node) {
				var l = parsers.length;
				for(var i=1; i < l; i++) {
					if(parsers[i].is($.trim(getElementText(table.config,node)),table,node)) {
						return parsers[i];
					}
				}
				// 0 is always the generic parser (text)
				return parsers[0];
			}
			
			function getParserById(name) {
				var l = parsers.length;
				for(var i=0; i < l; i++) {
					if(parsers[i].id.toLowerCase() == name.toLowerCase()) {	
						return parsers[i];
					}
				}
				return false;
			}
			
			/* utils */
			function buildCache(table) {
				
				if(table.config.debug) { var cacheTime = new Date(); }
				

				var totalRows = (table.tBodies[0] && table.tBodies[0].rows.length) || 0,
					totalCells = (table.tBodies[0].rows[0] && table.tBodies[0].rows[0].cells.length) || 0,
					parsers = table.config.parsers, 
					cache = {row: [], normalized: []};
				
					for (var i=0;i < totalRows; ++i) {
						
						/** Add the table data to main data array */
						var c = $(table.tBodies[0].rows[i]), cols = [];
					
						// if this is a child row, add it to the last row's children and continue to the next row
						if( c.hasClass(table.config.cssChildRow) ){
							cache.row[cache.row.length-1] = cache.row[cache.row.length-1].add(c);
							// go to the next for loop
							continue;
						}
					
						cache.row.push(c);
						
						for(var j=0; j < totalCells; ++j) {
							cols.push(parsers[j].format(getElementText(table.config,c[0].cells[j]),table,c[0].cells[j]));	
						}
												
						cols.push(cache.normalized.length); // add position for rowCache
						cache.normalized.push(cols);
						cols = null;
					};
				
				if(table.config.debug) { benchmark("Building cache for " + totalRows + " rows:", cacheTime); }

				return cache;
			};
			
			function getElementText(config,node) {
				
				if(!node) return "";
								
				var t = "";
				
				if(config.textExtraction == "simple") {
					if(node.childNodes[0] && node.childNodes[0].hasChildNodes()) {
						t = node.childNodes[0].innerHTML;
					} else {
						t = node.innerHTML;
					}
				} else {
					if(typeof(config.textExtraction) == "function") {
						t = config.textExtraction(node);
					} else { 
						t = $(node).text();
					}	
				}
				return t;
			}
			
			function appendToTable(table,cache) {
				
				if(table.config.debug) {var appendTime = new Date()}
				
				var c = cache, 
					r = c.row, 
					n= c.normalized, 
					totalRows = n.length, 
					checkCell = (n[0].length-1), 
					tableBody = $(table.tBodies[0]),
					rows = [];
			



				for (var i=0;i < totalRows; i++) {

					var pos = n[i][checkCell];
					rows.push(r[pos]);	
					if(!table.config.appender) {
						

						var o = r[pos];
						var l = o.length;
						for(var j=0; j < l; j++) {

							tableBody[0].appendChild(o[j]);

						}

						//tableBody.append(r[n[i][checkCell]]);
					}
				}	

				
				if(table.config.appender) {
				
					table.config.appender(table,rows);	
				}
				
				rows = null;
				
				if(table.config.debug) { benchmark("Rebuilt table:", appendTime); }
								
				//apply table widgets
				applyWidget(table);
				
				// trigger sortend
				setTimeout(function() {
					$(table).trigger("sortEnd");	
				},0);
				
			};
			
			function buildHeaders(table) {
				
				if(table.config.debug) { var time = new Date(); }
				
				var meta = ($.metadata) ? true : false, tableHeadersRows = [];
			
				for(var i = 0; i < table.tHead.rows.length; i++) { tableHeadersRows[i]=0; };
				
				$tableHeaders = $("thead th",table);
		
				$tableHeaders.each(function(index) {
							
					this.count = 0;
					this.column = index;
					this.order = formatSortingOrder(table.config.sortInitialOrder);
					
					if(checkHeaderMetadata(this) || checkHeaderOptions(table,index)) this.sortDisabled = true;
					
					if(!this.sortDisabled) {
						var $th = $(this).addClass(table.config.cssHeader);
						if( table.config.onRenderHeader ) table.config.onRenderHeader.apply($th);
					}
					
					// add cell to headerList
					table.config.headerList[index]= this;
				});
				
				if(table.config.debug) { benchmark("Built headers:", time); log($tableHeaders); }
				
				return $tableHeaders;
				
			};
						
		   	function checkCellColSpan(table, rows, row) {
                var arr = [], r = table.tHead.rows, c = r[row].cells;
				
				for(var i=0; i < c.length; i++) {
					var cell = c[i];
					
					if ( cell.colSpan > 1) { 
						arr = arr.concat(checkCellColSpan(table, headerArr,row++));
					} else  {
						if(table.tHead.length == 1 || (cell.rowSpan > 1 || !r[row+1])) {
							arr.push(cell);
						}
						//headerArr[row] = (i+row);
					}
				}
				return arr;
			};
			
			function checkHeaderMetadata(cell) {
				if(($.metadata) && ($(cell).metadata().sorter === false)) { return true; };
				return false;
			}
			
			function checkHeaderOptions(table,i) {	
				if((table.config.headers[i]) && (table.config.headers[i].sorter === false)) { return true; };
				return false;
			}
			
			function applyWidget(table) {
				var c = table.config.widgets;
				var l = c.length;
				for(var i=0; i < l; i++) {
					
					getWidgetById(c[i]).format(table);
				}
				
			}
			
			function getWidgetById(name) {
				var l = widgets.length;
				for(var i=0; i < l; i++) {
					if(widgets[i].id.toLowerCase() == name.toLowerCase() ) {
						return widgets[i]; 
					}
				}
			};
			
			function formatSortingOrder(v) {
				
				if(typeof(v) != "Number") {
					i = (v.toLowerCase() == "desc") ? 1 : 0;
				} else {
					i = (v == (0 || 1)) ? v : 0;
				}
				return i;
			}
			
			function isValueInArray(v, a) {
				var l = a.length;
				for(var i=0; i < l; i++) {
					if(a[i][0] == v) {
						return true;	
					}
				}
				return false;
			}
				
			function setHeadersCss(table,$headers, list, css) {
				// remove all header information
				$headers.removeClass(css[0]).removeClass(css[1]);
				
				var h = [];
				$headers.each(function(offset) {
						if(!this.sortDisabled) {
							h[this.column] = $(this);
						}
				});
				
				var l = list.length; 
				for(var i=0; i < l; i++) {
					h[list[i][0]].addClass(css[list[i][1]]);
				}
			}
			
			function fixColumnWidth(table,$headers) {
				var c = table.config;
				if(c.widthFixed) {
					var colgroup = $('<colgroup>');
					$("tr:first td",table.tBodies[0]).each(function() {
						colgroup.append($('<col>').css('width',$(this).width()));
					});
					$(table).prepend(colgroup);
				};
			}
			
			function updateHeaderSortCount(table,sortList) {
				var c = table.config, l = sortList.length;
				for(var i=0; i < l; i++) {
					var s = sortList[i], o = c.headerList[s[0]];
					o.count = s[1];
					o.count++;
				}
			}
			
			/* sorting methods */
			function multisort(table,sortList,cache) {
				
				if(table.config.debug) { var sortTime = new Date(); }
				
				var dynamicExp = "var sortWrapper = function(a,b) {", l = sortList.length;
					
				for(var i=0; i < l; i++) {
					
					var c = sortList[i][0];
					var order = sortList[i][1];
					var s = (getCachedSortType(table.config.parsers,c) == "text") ? ((order == 0) ? "sortText" : "sortTextDesc") : ((order == 0) ? "sortNumeric" : "sortNumericDesc");
					
					var e = "e" + i;
					
					dynamicExp += "var " + e + " = " + s + "(a[" + c + "],b[" + c + "]); ";
					dynamicExp += "if(" + e + ") { return " + e + "; } ";
					dynamicExp += "else { ";
				}
				
				// if value is the same keep orignal order	
				var orgOrderCol = cache.normalized[0].length - 1;
				dynamicExp += "return a[" + orgOrderCol + "]-b[" + orgOrderCol + "];";
						
				for(var i=0; i < l; i++) {
					dynamicExp += "}; ";
				}
				
				dynamicExp += "return 0; ";	
				dynamicExp += "}; ";	
				
				eval(dynamicExp);
				
				cache.normalized.sort(sortWrapper);
				
				if(table.config.debug) { benchmark("Sorting on " + sortList.toString() + " and dir " + order+ " time:", sortTime); }
				
				return cache;
			};
			
			function sortText(a,b) {
				return ((a < b) ? -1 : ((a > b) ? 1 : 0));
			};
			
			function sortTextDesc(a,b) {
				return ((b < a) ? -1 : ((b > a) ? 1 : 0));
			};	
			
	 		function sortNumeric(a,b) {
				return a-b;
			};
			
			function sortNumericDesc(a,b) {
				return b-a;
			};
			
			function getCachedSortType(parsers,i) {
				return parsers[i].type;
			};
			
			/* public methods */
			this.construct = function(settings) {

				return this.each(function() {
					
					if(!this.tHead || !this.tBodies) return;
					
					var $this, $document,$headers, cache, config, shiftDown = 0, sortOrder;
					
					this.config = {};
					
					config = $.extend(this.config, $.tablesorter.defaults, settings);
					
					// store common expression for speed					
					$this = $(this);
					
					// save the settings where they read
					$.data(this, "tablesorter", config);
					
					// build headers
					$headers = buildHeaders(this);
					
					// try to auto detect column type, and store in tables config
					this.config.parsers = buildParserCache(this,$headers);
					
					
					// build the cache for the tbody cells
					cache = buildCache(this);
					
					// store a copy of the original cache of all rows
					this.config.cache = cache;

					// get the css class names, could be done else where.
					var sortCSS = [config.cssDesc,config.cssAsc];
					
					// fixate columns if the users supplies the fixedWidth option
					fixColumnWidth(this);
					
					// apply event handling to headers
					// this is to big, perhaps break it out?
					$headers.click(function(e) {
						
						$this.trigger("sortStart");
						
						var totalRows = ($this[0].tBodies[0] && $this[0].tBodies[0].rows.length) || 0;
						
						if(!this.sortDisabled && totalRows > 0) {
							
							
							// store exp, for speed
							var $cell = $(this);
	
							// get current column index
							var i = this.column;
							
							// get current column sort order
							this.order = this.count++ % 2;
							
							// user only whants to sort on one column
							if(!e[config.sortMultiSortKey]) {
								
								// flush the sort list
								config.sortList = [];
								
								if(config.sortForce != null) {
									var a = config.sortForce; 
									for(var j=0; j < a.length; j++) {
										if(a[j][0] != i) {
											config.sortList.push(a[j]);
										}
									}
								}
								
								// add column to sort list
								config.sortList.push([i,this.order]);
							
							// multi column sorting
							} else {
								// the user has clicked on an all ready sortet column.
								if(isValueInArray(i,config.sortList)) {	 
									
									// revers the sorting direction for all tables.
									for(var j=0; j < config.sortList.length; j++) {
										var s = config.sortList[j], o = config.headerList[s[0]];
										if(s[0] == i) {
											o.count = s[1];
											o.count++;
											s[1] = o.count % 2;
										}
									}	
								} else {
									// add column to sort list array
									config.sortList.push([i,this.order]);
								}
							};
							setTimeout(function() {
								//set css for headers
								setHeadersCss($this[0],$headers,config.sortList,sortCSS);
								appendToTable($this[0],multisort($this[0],config.sortList,cache));
							},1);
							// stop normal event by returning false
							return false;
						}
					// cancel selection	
					}).mousedown(function() {
						if(config.cancelSelection) {
							this.onselectstart = function() {return false};
							return false;
						}
					});
					
					// apply easy methods that trigger binded events
					$this.bind("update",function() {
						
						// rebuild parsers.
						this.config.parsers = buildParserCache(this,$headers);
						
						// rebuild the cache map
						cache = buildCache(this);
						
					}).bind("sorton",function(e,list) {
						
						$(this).trigger("sortStart");
						
						config.sortList = list;
						
						// update and store the sortlist
						var sortList = config.sortList;
						
						// update header count index
						updateHeaderSortCount(this,sortList);
						
						//set css for headers
						setHeadersCss(this,$headers,sortList,sortCSS);
						
						
						// sort the table and append it to the dom
						appendToTable(this,multisort(this,sortList,cache));

					}).bind("appendCache",function() {
						
						appendToTable(this,cache);
					
					}).bind("applyWidgetId",function(e,id) {
						
						getWidgetById(id).format(this);
						
					}).bind("applyWidgets",function() {
						// apply widgets
						applyWidget(this);
					});
					
					if($.metadata && ($(this).metadata() && $(this).metadata().sortlist)) {
						config.sortList = $(this).metadata().sortlist;
					}
					// if user has supplied a sort list to constructor.
					if(config.sortList.length > 0) {
						$this.trigger("sorton",[config.sortList]);	
					}
					
					// apply widgets
					applyWidget(this);
				});
			};
			
			this.addParser = function(parser) {
				var l = parsers.length, a = true;
				for(var i=0; i < l; i++) {
					if(parsers[i].id.toLowerCase() == parser.id.toLowerCase()) {
						a = false;
					}
				}
				if(a) { parsers.push(parser); };
			};
			
			this.addWidget = function(widget) {
				widgets.push(widget);
			};
			
			this.formatFloat = function(s) {
				var i = parseFloat(s);
				return (isNaN(i)) ? 0 : i;
			};
			this.formatInt = function(s) {
				var i = parseInt(s);
				return (isNaN(i)) ? 0 : i;
			};
			
			this.isDigit = function(s,config) {
				var DECIMAL = '\\' + config.decimal;
				var exp = '/(^[+]?0(' + DECIMAL +'0+)?$)|(^([-+]?[1-9][0-9]*)$)|(^([-+]?((0?|[1-9][0-9]*)' + DECIMAL +'(0*[1-9][0-9]*)))$)|(^[-+]?[1-9]+[0-9]*' + DECIMAL +'0+$)/';
				return RegExp(exp).test($.trim(s));
			};
			
			this.clearTableBody = function(table) {
				if($.browser.msie) {
					function empty() {
						while ( this.firstChild ) this.removeChild( this.firstChild );
					}
					empty.apply(table.tBodies[0]);
				} else {
					table.tBodies[0].innerHTML = "";
				}
			};
		}
	});
	
	// extend plugin scope
	$.fn.extend({
        tablesorter: $.tablesorter.construct
	});
	
	var ts = $.tablesorter;
	
	// add default parsers
	ts.addParser({
		id: "text",
		is: function(s) {
			return true;
		},
		format: function(s) {
			return $.trim(s.toLowerCase());
		},
		type: "text"
	});
	
	ts.addParser({
		id: "digit",
		is: function(s,table) {
			var c = table.config;
			return $.tablesorter.isDigit(s,c);
		},
		format: function(s) {
			return $.tablesorter.formatFloat(s);
		},
		type: "numeric"
	});
	
	ts.addParser({
		id: "currency",
		is: function(s) {
			return /^[Â£$â‚¬?.]/.test(s);
		},
		format: function(s) {
			return $.tablesorter.formatFloat(s.replace(new RegExp(/[^0-9.]/g),""));
		},
		type: "numeric"
	});
	
	ts.addParser({
		id: "ipAddress",
		is: function(s) {
			return /^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s);
		},
		format: function(s) {
			var a = s.split("."), r = "", l = a.length;
			for(var i = 0; i < l; i++) {
				var item = a[i];
			   	if(item.length == 2) {
					r += "0" + item;
			   	} else {
					r += item;
			   	}
			}
			return $.tablesorter.formatFloat(r);
		},
		type: "numeric"
	});
	
	ts.addParser({
		id: "url",
		is: function(s) {
			return /^(https?|ftp|file):\/\/$/.test(s);
		},
		format: function(s) {
			return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//),''));
		},
		type: "text"
	});
	
	ts.addParser({
		id: "isoDate",
		is: function(s) {
			return /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s);
		},
		format: function(s) {
			return $.tablesorter.formatFloat((s != "") ? new Date(s.replace(new RegExp(/-/g),"/")).getTime() : "0");
		},
		type: "numeric"
	});
		
	ts.addParser({
		id: "percent",
		is: function(s) { 
			return /\%$/.test($.trim(s));
		},
		format: function(s) {
			return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g),""));
		},
		type: "numeric"
	});

	ts.addParser({
		id: "usLongDate",
		is: function(s) {
			return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/));
		},
		format: function(s) {
			return $.tablesorter.formatFloat(new Date(s).getTime());
		},
		type: "numeric"
	});

	ts.addParser({
		id: "shortDate",
		is: function(s) {
			return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s);
		},
		format: function(s,table) {
			var c = table.config;
			s = s.replace(/\-/g,"/");
			if(c.dateFormat == "us") {
				// reformat the string in ISO format
				s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2");
			} else if(c.dateFormat == "uk") {
				//reformat the string in ISO format
				s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1");
			} else if(c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") {
				s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3");	
			}
			return $.tablesorter.formatFloat(new Date(s).getTime());
		},
		type: "numeric"
	});

	ts.addParser({
	    id: "time",
	    is: function(s) {
	        return /^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s);
	    },
	    format: function(s) {
	        return $.tablesorter.formatFloat(new Date("2000/01/01 " + s).getTime());
	    },
	  type: "numeric"
	});
	
	
	ts.addParser({
	    id: "metadata",
	    is: function(s) {
	        return false;
	    },
	    format: function(s,table,cell) {
			var c = table.config, p = (!c.parserMetadataName) ? 'sortValue' : c.parserMetadataName;
	        return $(cell).metadata()[p];
	    },
	  type: "numeric"
	});
	
	// add default widgets
	ts.addWidget({
		id: "zebra",
		format: function(table) {
			if(table.config.debug) { var time = new Date(); }
			var $tr, row = -1, odd;
			// loop through the visible rows
			$("tr:visible",table.tBodies[0]).each(function (i){



				$tr = $(this);
				// style children rows the same way the parent row was styled
				if( !$tr.hasClass(table.config.cssChildRow) ) row++;
				odd = (row%2 == 0);
				$tr.removeClass(table.config.widgetZebra.css[odd?0:1]).addClass(table.config.widgetZebra.css[odd?1:0])
			});
			if(table.config.debug) { $.tablesorter.benchmark("Applying Zebra widget", time); }
		}
	});	
})(jQuery);    
$(document).ready( function (){
  $("#employeesclientside")
  .tablesorter({
    // set default sort column to first collum and sort order asc 
    sortList: [[0,0]],
    // don't sort by last column
    headers: {4: {sorter: false}},
    // set the widgets being used - zebra stripping (e.g. odd and even classes)
    widgets: ['zebra'],
    onRenderHeader: function (){
      this.wrapInner("<span></span>");
    },
    // define a custom text extraction function 
    textExtraction: function(node) { 
        // extract data from markup and return it  
        return $(node).text(); 
    },
    debug: false
  }).tablesorterFilter(
    {
      filterContainer: ".quicksearch-employee input",
      filterClearContainer: ".quicksearch-employee .clear-text",
      filterColumns: [0], /* index of collums to search in, null for all culloms */
      filterCaseSensitive: false,
      filterWaitTime: 200 /* delay from last keystroke until filter */
    },
    {
      filterContainer: ".quicksearch-employee input",
      filterClearContainer: ".quicksearch-employee .clear-text",
      filterColumns: [1], /* index of collums to search in, null for all culloms */
      filterCaseSensitive: false,
      filterWaitTime: 200 /* delay from last keystroke until filter */
    },
    {
      filterContainer: ".quicksearch-employee input",
      filterClearContainer: ".quicksearch-employee .clear-text",
      filterColumns: [2], /* index of collums to search in, null for all culloms */
      filterCaseSensitive: false,
      filterWaitTime: 200 /* delay from last keystroke until filter */
    },
    {
      filterContainer: ".quicksearch-employee input",
      filterClearContainer: ".quicksearch-employee .clear-text",
      filterColumns: [3], /* index of collums to search in, null for all culloms */
      filterCaseSensitive: false,
      filterWaitTime: 200 /* delay from last keystroke until filter */
    }
   );
   
   $('.collapsible a.expand-collapse').click(function() {
    var elm = $(this).parents('tr');
    if(elm.hasClass('expanded')) {
      elm.removeClass('expanded');
      /* IE7 fix */
      window.setTimeout(function() { $('table').find('td').css('zoom', '1.001'); }, 50);
    }
    else {
      elm.addClass('expanded');
      /* IE7 fix */
      window.setTimeout(function() { $('table').find('td').css('zoom', '1.0'); }, 50);
    }
  });

  $('.quicksearch-employee input[type="text"]').focus(function()
  {
    $(this).siblings('.empty').hide();
  })
  .blur(function()
  {
    if ($(this).val() == "") { 
      $(this).siblings('.empty').show();
    } else {
      $(this).siblings('.empty').hide();
    }
  })
  .blur(); // Trigger a blur event on load if field has a value
  $('.quicksearch-employee .empty').bind('click focus', function()
  {
    // if empty text tag is clicked, send focus to input tag
    $(this).siblings('input[type="text"]').focus();
  });
  $('.quicksearch-employee .clear-text').focus(function()
  {
    // Clearing the text and trigger focus on input tag
    $(this).siblings('input[type="text"]').val('').focus();
  });
  
  /*$('.btn-print-item').click(function(e) {
    e.preventDefault();
    var elm = $(this).parents('tr').find('.vcard');
    elm.printElement({pageTitle:elm.find('h3').text(), overrideElementCSS:[	'thisWillBeTheCSSUsed.css']})
  });*/
 

  $(".quicksearch-employee input").trigger("keyup");
});
  


/*
 * Supersubs v0.2b - jQuery plugin
 * 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
 *
 *
 * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
 * their longest list item children. If you use this, please expect bugs and report them
 * to the jQuery Google Group with the word 'Superfish' in the subject line.
 *
 */

;(function($){ // $ will refer to jQuery within this closure

	$.fn.supersubs = function(options){
		var opts = $.extend({}, $.fn.supersubs.defaults, options);
		// return original object to support chaining
		return this.each(function() {
			// cache selections
			var $$ = $(this);
			// support metadata
			var o = $.meta ? $.extend({}, opts, $$.data()) : opts;
			// get the font size of menu.
			// .css('fontSize') returns various results cross-browser, so measure an em dash instead
			var fontsize = $('<li id="menu-fontsize">&#8212;</li>').css({
				'padding' : 0,
				'position' : 'absolute',
				'top' : '-999em',
				'width' : 'auto'
			}).appendTo($$).width(); //clientWidth is faster, but was incorrect here
			// remove em dash
			$('#menu-fontsize').remove();
			// cache all ul elements
			$ULs = $$.find('ul');
			// loop through each ul in menu
			$ULs.each(function(i) {	
				// cache this ul
				var $ul = $ULs.eq(i);
				// get all (li) children of this ul
				var $LIs = $ul.children();
				// get all anchor grand-children
				var $As = $LIs.children('a');
				// force content to one line and save current float property
				var liFloat = $LIs.css('white-space','nowrap').css('float');
				// remove width restrictions and floats so elements remain vertically stacked
				var emWidth = $ul.add($LIs).add($As).css({
					'float' : 'none',
					'width'	: 'auto'
				})
				// this ul will now be shrink-wrapped to longest li due to position:absolute
				// so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer
				.end().end()[0].clientWidth / fontsize;
				// add more width to ensure lines don't turn over at certain sizes in various browsers
				emWidth += o.extraWidth;
				// restrict to at least minWidth and at most maxWidth
				if (emWidth > o.maxWidth)		{ emWidth = o.maxWidth; }
				else if (emWidth < o.minWidth)	{ emWidth = o.minWidth; }
				emWidth += 'em';
				// set ul to width in ems
				$ul.css('width',emWidth);
				// restore li floats to avoid IE bugs
				// set li width to full width of this ul
				// revert white-space to normal
				$LIs.css({
					'float' : liFloat,
					'width' : '100%',
					'white-space' : 'normal'
				})
				// update offset position of descendant ul to reflect new width of parent
				.each(function(){
					var $childUl = $('>ul',this);
					var offsetDirection = $childUl.css('left')!==undefined ? 'left' : 'right';
					$childUl.css(offsetDirection,emWidth);
				});
			});
			
		});
	};
	// expose defaults
	$.fn.supersubs.defaults = {
		minWidth		: 9,		// requires em unit.
		maxWidth		: 25,		// requires em unit.
		extraWidth		: 0			// extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values
	};
	
})(jQuery); // plugin code ends

$(document).ready(function() {
  $('#primary-nav').each(function() {
    $(this)
    .supersubs({ 
      minWidth: 5,
      maxWidth: 27,
      extraWidth: 0
    });
    $('#primary-nav > li:has("ul") > a').click(function(event) {
      event.stopPropagation();
      $('#primary-nav > li.hover').removeClass('hover');
      $(this).parent().toggleClass('hover');
      return false;
    });
  });
  $('body').click(function() { $('#primary-nav > li.hover').removeClass('hover'); }); // Remove the menu when you click anywhere else than on the menu itself
  $('#primary-nav .marker').each(function() { var w = $(this).prev('a').width(); $(this).width(w); }); // IE7 fix of marker width on hover
});                                                                                                               
