/*
 * 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")}})})();

/**
 * jQuery lightBox plugin
 * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/)
 * and adapted to me for use like a plugin from jQuery.
 * @name jquery-lightbox-0.5.js
 * @author Leandro Vieira Pinho - http://leandrovieira.com
 * @version 0.5
 * @date April 11, 2008
 * @category jQuery plugin
 * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
 * @license CC Attribution-No Derivative Works 2.5 Brazil - http://creativecommons.org/licenses/by-nd/2.5/br/deed.en_US
 * @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin
 */
(function($){$.fn.lightBox=function(settings){settings=jQuery.extend({overlayBgColor:'#000',overlayOpacity:0.8,fixedNavigation:false,imageLoading:'images/lightbox-ico-loading.gif',imageBtnPrev:'images/lightbox-btn-prev.gif',imageBtnNext:'images/lightbox-btn-next.gif',imageBtnClose:'images/lightbox-btn-close.gif',imageBlank:'images/lightbox-blank.gif',containerBorderSize:10,containerResizeSpeed:400,txtImage:'Image',txtOf:'of',keyToClose:'c',keyToPrev:'p',keyToNext:'n',imageArray:[],activeImage:0},settings);var jQueryMatchedObj=this;function _initialize(){_start(this,jQueryMatchedObj);return false;}
function _start(objClicked,jQueryMatchedObj){$('embed, object, select').css({'visibility':'hidden'});_set_interface();settings.imageArray.length=0;settings.activeImage=0;if(jQueryMatchedObj.length==1){settings.imageArray.push(new Array(objClicked.getAttribute('href'),objClicked.getAttribute('title')));}else{for(var i=0;i<jQueryMatchedObj.length;i++){settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title')));}}
while(settings.imageArray[settings.activeImage][0]!=objClicked.getAttribute('href')){settings.activeImage++;}
_set_image_to_view();}
function _set_interface(){$('body').append('<div id="jquery-overlay"></div><div id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lightbox-container-image"><img id="lightbox-image"><div style="" id="lightbox-nav"><a href="#" id="lightbox-nav-btnPrev"></a><a href="#" id="lightbox-nav-btnNext"></a></div><div id="lightbox-loading"><a href="#" id="lightbox-loading-link"><img src="'+settings.imageLoading+'"></a></div></div></div><div id="lightbox-container-image-data-box"><div id="lightbox-container-image-data"><div id="lightbox-image-details"><span id="lightbox-image-details-caption"></span><span id="lightbox-image-details-currentNumber"></span></div><div id="lightbox-secNav"><a href="#" id="lightbox-secNav-btnClose"><img src="'+settings.imageBtnClose+'"></a></div></div></div></div>');var arrPageSizes=___getPageSize();$('#jquery-overlay').css({backgroundColor:settings.overlayBgColor,opacity:settings.overlayOpacity,width:arrPageSizes[0],height:arrPageSizes[1]}).fadeIn();var arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+(arrPageSizes[3]/10),left:arrPageScroll[0]}).show();$('#jquery-overlay,#jquery-lightbox').click(function(){_finish();});$('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function(){_finish();return false;});$(window).resize(function(){var arrPageSizes=___getPageSize();$('#jquery-overlay').css({width:arrPageSizes[0],height:arrPageSizes[1]});var arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+(arrPageSizes[3]/10),left:arrPageScroll[0]});});}
function _set_image_to_view(){$('#lightbox-loading').show();if(settings.fixedNavigation){$('#lightbox-image,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();}else{$('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();}
var objImagePreloader=new Image();objImagePreloader.onload=function(){$('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);_resize_container_image_box(objImagePreloader.width,objImagePreloader.height);objImagePreloader.onload=function(){};};objImagePreloader.src=settings.imageArray[settings.activeImage][0];};function _resize_container_image_box(intImageWidth,intImageHeight){var intCurrentWidth=$('#lightbox-container-image-box').width();var intCurrentHeight=$('#lightbox-container-image-box').height();var intWidth=(intImageWidth+(settings.containerBorderSize*2));var intHeight=(intImageHeight+(settings.containerBorderSize*2));var intDiffW=intCurrentWidth-intWidth;var intDiffH=intCurrentHeight-intHeight;$('#lightbox-container-image-box').animate({width:intWidth,height:intHeight},settings.containerResizeSpeed,function(){_show_image();});if((intDiffW==0)&&(intDiffH==0)){if($.browser.msie){___pause(250);}else{___pause(100);}}
$('#lightbox-container-image-data-box').css({width:intImageWidth});$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({height:intImageHeight+(settings.containerBorderSize*2)});};function _show_image(){$('#lightbox-loading').hide();$('#lightbox-image').fadeIn(function(){_show_image_data();_set_navigation();});_preload_neighbor_images();};function _show_image_data(){$('#lightbox-container-image-data-box').slideDown('fast');$('#lightbox-image-details-caption').hide();if(settings.imageArray[settings.activeImage][1]){$('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show();}
if(settings.imageArray.length>1){$('#lightbox-image-details-currentNumber').html(settings.txtImage+' '+(settings.activeImage+1)+' '+settings.txtOf+' '+settings.imageArray.length).show();}}
function _set_navigation(){$('#lightbox-nav').show();$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({'background':'transparent url('+settings.imageBlank+') no-repeat'});if(settings.activeImage!=0){if(settings.fixedNavigation){$('#lightbox-nav-btnPrev').css({'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'}).unbind().bind('click',function(){settings.activeImage=settings.activeImage-1;_set_image_to_view();return false;});}else{$('#lightbox-nav-btnPrev').unbind().hover(function(){$(this).css({'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'});},function(){$(this).css({'background':'transparent url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function(){settings.activeImage=settings.activeImage-1;_set_image_to_view();return false;});}}
if(settings.activeImage!=(settings.imageArray.length-1)){if(settings.fixedNavigation){$('#lightbox-nav-btnNext').css({'background':'url('+settings.imageBtnNext+') right 15% no-repeat'}).unbind().bind('click',function(){settings.activeImage=settings.activeImage+1;_set_image_to_view();return false;});}else{$('#lightbox-nav-btnNext').unbind().hover(function(){$(this).css({'background':'url('+settings.imageBtnNext+') right 15% no-repeat'});},function(){$(this).css({'background':'transparent url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function(){settings.activeImage=settings.activeImage+1;_set_image_to_view();return false;});}}
_enable_keyboard_navigation();}
function _enable_keyboard_navigation(){$(document).keydown(function(objEvent){_keyboard_action(objEvent);});}
function _disable_keyboard_navigation(){$(document).unbind();}
function _keyboard_action(objEvent){if(objEvent==null){keycode=event.keyCode;escapeKey=27;}else{keycode=objEvent.keyCode;escapeKey=objEvent.DOM_VK_ESCAPE;}
key=String.fromCharCode(keycode).toLowerCase();if((key==settings.keyToClose)||(key=='x')||(keycode==escapeKey)){_finish();}
if((key==settings.keyToPrev)||(keycode==37)){if(settings.activeImage!=0){settings.activeImage=settings.activeImage-1;_set_image_to_view();_disable_keyboard_navigation();}}
if((key==settings.keyToNext)||(keycode==39)){if(settings.activeImage!=(settings.imageArray.length-1)){settings.activeImage=settings.activeImage+1;_set_image_to_view();_disable_keyboard_navigation();}}}
function _preload_neighbor_images(){if((settings.imageArray.length-1)>settings.activeImage){objNext=new Image();objNext.src=settings.imageArray[settings.activeImage+1][0];}
if(settings.activeImage>0){objPrev=new Image();objPrev.src=settings.imageArray[settings.activeImage-1][0];}}
function _finish(){$('#jquery-lightbox').remove();$('#jquery-overlay').fadeOut(function(){$('#jquery-overlay').remove();});$('embed, object, select').css({'visibility':'visible'});}
function ___getPageSize(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=window.innerWidth+window.scrollMaxX;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
var windowWidth,windowHeight;if(self.innerHeight){if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;}else{windowWidth=self.innerWidth;}
windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=xScroll;}else{pageWidth=windowWidth;}
arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight);return arrayPageSize;};function ___getPageScroll(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
arrayPageScroll=new Array(xScroll,yScroll);return arrayPageScroll;};function ___pause(ms){var date=new Date();curDate=null;do{var curDate=new Date();}
while(curDate-date<ms);};return this.unbind('click').click(_initialize);};})(jQuery);

/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);


/** autocolumn */

(function($){$.fn.columnize=function(options){var defaults={width:400,columns:false,buildOnce:false,overflow:false,doneFunc:function(){},target:false,ignoreImageLoading:true,float:"left",lastNeverTallest:false};var options=$.extend(defaults,options);return this.each(function(){var $inBox=options.target?$(options.target):$(this);var maxHeight=$(this).height();var $cache=$('<div></div>');var lastWidth=0;var columnizing=false;$cache.append($(this).children().clone(true));if(!options.ignoreImageLoading&&!options.target){if(!$inBox.data("imageLoaded")){$inBox.data("imageLoaded",true);if($(this).find("img").length>0){var func=function($inBox,$cache){return function(){if(!$inBox.data("firstImageLoaded")){$inBox.data("firstImageLoaded","true");$inBox.empty().append($cache.children().clone(true));$inBox.columnize(options);}}}($(this),$cache);$(this).find("img").one("load",func);$(this).find("img").one("abort",func);return;}}}
$inBox.empty();columnizeIt();if(!options.buildOnce){$(window).resize(function(){if(!options.buildOnce&&$.browser.msie){if($inBox.data("timeout")){clearTimeout($inBox.data("timeout"));}
$inBox.data("timeout",setTimeout(columnizeIt,200));}else if(!options.buildOnce){columnizeIt();}else{}});}
function columnize($putInHere,$pullOutHere,$parentColumn,height){while($parentColumn.height()<height&&$pullOutHere[0].childNodes.length){$putInHere.append($pullOutHere[0].childNodes[0]);}
if($putInHere[0].childNodes.length==0)return;var kids=$putInHere[0].childNodes;var lastKid=kids[kids.length-1];$putInHere[0].removeChild(lastKid);var $item=$(lastKid);if($item[0].nodeType==3){var oText=$item[0].nodeValue;var counter2=options.width/18;if(options.accuracy)
counter2=options.accuracy;var columnText;var latestTextNode=null;while($parentColumn.height()<height&&oText.length){if(oText.indexOf(' ',counter2)!='-1'){columnText=oText.substring(0,oText.indexOf(' ',counter2));}else{columnText=oText;}
latestTextNode=document.createTextNode(columnText);$putInHere.append(latestTextNode);if(oText.length>counter2){oText=oText.substring(oText.indexOf(' ',counter2));}else{oText="";}}
if($parentColumn.height()>=height&&latestTextNode!=null){$putInHere[0].removeChild(latestTextNode);oText=latestTextNode.nodeValue+oText;}
if(oText.length){$item[0].nodeValue=oText;}else{return false;}}
if($pullOutHere.children().length){$pullOutHere.prepend($item);}else{$pullOutHere.append($item);}
return $item[0].nodeType==3;}
function split($putInHere,$pullOutHere,$parentColumn,height){if($pullOutHere.children().length){$cloneMe=$pullOutHere.children(":first");$clone=$cloneMe.clone(true);if($clone.attr("nodeType")==1&&!$clone.hasClass("dontend")){$putInHere.append($clone);if($clone.is("img")&&$parentColumn.height()<height+20){$cloneMe.remove();}else if(!$cloneMe.hasClass("dontsplit")&&$parentColumn.height()<height+20){$cloneMe.remove();}else if($clone.is("img")||$cloneMe.hasClass("dontsplit")){$clone.remove();}else{$clone.empty();if(!columnize($clone,$cloneMe,$parentColumn,height)){if($cloneMe.children().length){split($clone,$cloneMe,$parentColumn,height);}}
if($clone.get(0).childNodes.length==0){$clone.remove();}}}}}
function singleColumnizeIt(){if($inBox.data("columnized")&&$inBox.children().length==1){return;}
$inBox.data("columnized",true);$inBox.data("columnizing",true);$inBox.empty();$inBox.append($("<div class='first last column' style='width:98%; padding: 3px; float: "+options.float+";'></div>"));$col=$inBox.children().eq($inBox.children().length-1);$destroyable=$cache.clone(true);if(options.overflow){targetHeight=options.overflow.height;columnize($col,$destroyable,$col,targetHeight);if(!$destroyable.children().find(":first-child").hasClass("dontend")){split($col,$destroyable,$col,targetHeight);}
while(checkDontEndColumn($col.children(":last").length&&$col.children(":last").get(0))){var $lastKid=$col.children(":last");$lastKid.remove();$destroyable.prepend($lastKid);}
var html="";var div=document.createElement('DIV');while($destroyable[0].childNodes.length>0){var kid=$destroyable[0].childNodes[0];for(var i=0;i<kid.attributes.length;i++){if(kid.attributes[i].nodeName.indexOf("jQuery")==0){kid.removeAttribute(kid.attributes[i].nodeName);}}
div.innerHTML="";div.appendChild($destroyable[0].childNodes[0]);html+=div.innerHTML;}
var overflow=$(options.overflow.id)[0];overflow.innerHTML=html;}else{$col.append($destroyable);}
$inBox.data("columnizing",false);if(options.overflow){options.overflow.doneFunc();}}
function checkDontEndColumn(dom){if(dom.nodeType!=1)return false;if($(dom).hasClass("dontend"))return true;if(dom.childNodes.length==0)return false;return checkDontEndColumn(dom.childNodes[dom.childNodes.length-1]);}
function columnizeIt(){if(lastWidth==$inBox.width())return;lastWidth=$inBox.width();var numCols=Math.round($inBox.width()/options.width);if(options.columns)numCols=options.columns;if(numCols<=1){return singleColumnizeIt();}
if($inBox.data("columnizing"))return;$inBox.data("columnized",true);$inBox.data("columnizing",true);$inBox.empty();$inBox.append($("<div style='width:"+(Math.round(100/numCols)-2)+"%; padding: 3px; float: "+options.float+";'></div>"));$col=$inBox.children(":last");$col.append($cache.clone());maxHeight=$col.height();$inBox.empty();var targetHeight=maxHeight/numCols;var firstTime=true;var maxLoops=3;var scrollHorizontally=false;if(options.overflow){maxLoops=1;targetHeight=options.overflow.height;}else if(options.height&&options.width){maxLoops=1;targetHeight=options.height;scrollHorizontally=true;}
for(var loopCount=0;loopCount<maxLoops;loopCount++){$inBox.empty();var $destroyable;try{$destroyable=$cache.clone(true);}catch(e){$destroyable=$cache.clone();}
$destroyable.css("visibility","hidden");for(var i=0;i<numCols;i++){var className=(i==0)?"first column":"column";var className=(i==numCols-1)?("last "+className):className;$inBox.append($("<div class='"+className+"' style='width:"+(Math.round(100/numCols)-2)+"%; float: "+options.float+";'></div>"));}
var i=0;while(i<numCols-(options.overflow?0:1)||scrollHorizontally&&$destroyable.children().length){if($inBox.children().length<=i){$inBox.append($("<div class='"+className+"' style='width:"+(Math.round(100/numCols)-2)+"%; float: "+options.float+";'></div>"));}
var $col=$inBox.children().eq(i);columnize($col,$destroyable,$col,targetHeight);if(!$destroyable.children().find(":first-child").hasClass("dontend")){split($col,$destroyable,$col,targetHeight);}else{}
while(checkDontEndColumn($col.children(":last").length&&$col.children(":last").get(0))){var $lastKid=$col.children(":last");$lastKid.remove();$destroyable.prepend($lastKid);}
i++;}
if(options.overflow&&!scrollHorizontally){var IE6=false;var IE7=(document.all)&&(navigator.appVersion.indexOf("MSIE 7.")!=-1);if(IE6||IE7){var html="";var div=document.createElement('DIV');while($destroyable[0].childNodes.length>0){var kid=$destroyable[0].childNodes[0];for(var i=0;i<kid.attributes.length;i++){if(kid.attributes[i].nodeName.indexOf("jQuery")==0){kid.removeAttribute(kid.attributes[i].nodeName);}}
div.innerHTML="";div.appendChild($destroyable[0].childNodes[0]);html+=div.innerHTML;}
var overflow=$(options.overflow.id)[0];overflow.innerHTML=html;}else{$(options.overflow.id).empty().append($destroyable.children().clone(true));}}else if(!scrollHorizontally){$col=$inBox.children().eq($inBox.children().length-1);while($destroyable.children().length)$col.append($destroyable.children(":first"));var afterH=$col.height();var diff=afterH-targetHeight;var totalH=0;var min=10000000;var max=0;var lastIsMax=false;$inBox.children().each(function($inBox){return function($item){var h=$inBox.children().eq($item).height();lastIsMax=false;totalH+=h;if(h>max){max=h;lastIsMax=true;}
if(h<min)min=h;}}($inBox));var avgH=totalH/numCols;if(options.lastNeverTallest&&lastIsMax){targetHeight=targetHeight+30;if(loopCount==maxLoops-1)maxLoops++;}else if(max-min>30){targetHeight=avgH+30;}else if(Math.abs(avgH-targetHeight)>20){targetHeight=avgH;}else{loopCount=maxLoops;}}else{$inBox.children().each(function(i){$col=$inBox.children().eq(i);$col.width(options.width+"px");if(i==0){$col.addClass("first");}else if(i==$inBox.children().length-1){$col.addClass("last");}else{$col.removeClass("first");$col.removeClass("last");}});$inBox.width($inBox.children().length*options.width+"px");}
$inBox.append($("<br style='clear:both;'>"));}
$inBox.find('.column').find(':first.removeiffirst').remove();$inBox.find('.column').find(':last.removeiflast').remove();$inBox.data("columnizing",false);if(options.overflow){options.overflow.doneFunc();}
options.doneFunc();}});};})(jQuery);

/******************************************************************************
Name:    Highslide JS
Version: 4.1.8 (October 27 2009)
Config:  default +inline +ajax +iframe +flash
Author:  Torstein HÃƒÂ¸nsi
Support: http://highslide.com/support

Licence:
Highslide JS is licensed under a Creative Commons Attribution-NonCommercial 2.5
License (http://creativecommons.org/licenses/by-nc/2.5/).

You are free:
    * to copy, distribute, display, and perform the work
    * to make derivative works

Under the following conditions:
    * Attribution. You must attribute the work in the manner  specified by  the
      author or licensor.
    * Noncommercial. You may not use this work for commercial purposes.

* For  any  reuse  or  distribution, you  must make clear to others the license
  terms of this work.
* Any  of  these  conditions  can  be  waived  if  you  get permission from the 
  copyright holder.

Your fair use and other rights are in no way affected by the above.
******************************************************************************/
if (!hs) { var hs = {
// Language strings
lang : {
    cssDirection: 'ltr',
    loadingText : 'Loading...',
    loadingTitle : 'Click to cancel',
    focusTitle : 'Click to bring to front',
    fullExpandTitle : 'Expand to actual size (f)',
    creditsText : '<i></i>',  // To change title of the window (CLAUDIA)
    creditsTitle : ' ',   // To change message when link (CLAUDIA)
    previousText : 'Previous',
    nextText : 'Next', 
    moveText : 'Move',
    closeText : 'Close', 
    closeTitle : 'Close (esc)', 
    resizeTitle : 'Resize',
    playText : 'Play',
    playTitle : 'Play slideshow (spacebar)',
    pauseText : 'Pause',
    pauseTitle : 'Pause slideshow (spacebar)',
    previousTitle : 'Previous (arrow left)',
    nextTitle : 'Next (arrow right)',
    moveTitle : 'Move',
    fullExpandText : '1:1',
    restoreTitle : 'Click to close image, click and drag to move. Use arrow keys for next and previous.'
},
// See http://highslide.com/ref for examples of settings  
graphicsDir : 'highslide/graphics/',
expandCursor : 'zoomin.cur', // null disables
restoreCursor : 'zoomout.cur', // null disables
expandDuration : 250, // milliseconds
restoreDuration : 250,
marginLeft : 15,
marginRight : 15,
marginTop : 15,
marginBottom : 15,
zIndexCounter : 1001, // adjust to other absolutely positioned elements
loadingOpacity : 0.75,
allowMultipleInstances: true,
numberOfImagesToPreload : 5,
outlineWhileAnimating : 2, // 0 = never, 1 = always, 2 = HTML only 
outlineStartOffset : 3, // ends at 10
padToMinWidth : false, // pad the popup width to make room for wide caption
fullExpandPosition : 'bottom right',
fullExpandOpacity : 1,
showCredits : true, // you can set this to false if you want
creditsHref : ' ',   // To change link of the title (CLAUDIA)
creditsTarget : '_self',
enableKeyListener : true,
openerTagNames : ['a'], // Add more to allow slideshow indexing

allowWidthReduction : false,
allowHeightReduction : true,
preserveContent : true, // Preserve changes made to the content and position of HTML popups.
objectLoadTime : 'before', // Load iframes 'before' or 'after' expansion.
cacheAjax : true, // Cache ajax popups for instant display. Can be overridden for each popup.
dragByHeading: true,
minWidth: 610,   //changed by CB
minHeight: 500,     //changed by CB
allowSizeReduction: true, // allow the image to reduce to fit client size. If false, this overrides minWidth and minHeight
outlineType : 'drop-shadow', // set null to disable outlines
skin : {
    contentWrapper:
        '<div class="highslide-header"><ul>'+
            '<li class="highslide-previous">'+
                '<a href="#" title="{hs.lang.previousTitle}" onclick="return hs.previous(this)">'+
                '<span>{hs.lang.previousText}</span></a>'+
            '</li>'+
            '<li class="highslide-next">'+
                '<a href="#" title="{hs.lang.nextTitle}" onclick="return hs.next(this)">'+
                '<span>{hs.lang.nextText}</span></a>'+
            '</li>'+
            '<li class="highslide-move">'+
                '<a href="#" title="{hs.lang.moveTitle}" onclick="return false">'+
                '<span>{hs.lang.moveText}</span></a>'+
            '</li>'+
            '<li class="highslide-close">'+
                '<a href="#" title="{hs.lang.closeTitle}" onclick="return hs.close(this)">'+
                '<span>{hs.lang.closeText}</span></a>'+
            '</li>'+
        '</ul></div>'+
        '<div class="highslide-body"></div>'+
        '<div class="highslide-footer"><div>'+
            '<span class="highslide-resize" title="{hs.lang.resizeTitle}"><span></span></span>'+
        '</div></div>'
},
// END OF YOUR SETTINGS


// declare internal properties
preloadTheseImages : [],
continuePreloading: true,
expanders : [],
overrides : [
    'allowSizeReduction',
    'useBox',
    'outlineType',
    'outlineWhileAnimating',
    'captionId',
    'captionText',
    'captionEval',
    'captionOverlay',
    'headingId',
    'headingText',
    'headingEval',
    'headingOverlay',
    'creditsPosition',
    'dragByHeading',
    
    'width',
    'height',
    
    'contentId',
    'allowWidthReduction',
    'allowHeightReduction',
    'preserveContent',
    'maincontentId',
    'maincontentText',
    'maincontentEval',
    'objectType',   
    'cacheAjax',    
    'objectWidth',
    'objectHeight',
    'objectLoadTime',   
    'swfOptions',
    'wrapperClassName',
    'minWidth',
    'minHeight',
    'maxWidth',
    'maxHeight',
    'slideshowGroup',
    'easing',
    'easingClose',
    'fadeInOut',
    'src'
],
overlays : [],
idCounter : 0,
oPos : {
    x: ['leftpanel', 'left', 'center', 'right', 'rightpanel'],
    y: ['above', 'top', 'middle', 'bottom', 'below']
},
mouse: {},
headingOverlay: {},
captionOverlay: {},
swfOptions: { flashvars: {}, params: {}, attributes: {} },
timers : [],

pendingOutlines : {},
sleeping : [],
preloadTheseAjax : [],
cacheBindings : [],
cachedGets : {},
clones : {},
onReady: [],
uaVersion: /Trident\/4\.0/.test(navigator.userAgent) ? 8 :
    parseFloat((navigator.userAgent.toLowerCase().match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1]),
ie : (document.all && !window.opera),
safari : /Safari/.test(navigator.userAgent),
geckoMac : /Macintosh.+rv:1\.[0-8].+Gecko/.test(navigator.userAgent),

$ : function (id) {
    if (id) return document.getElementById(id);
},

push : function (arr, val) {
    arr[arr.length] = val;
},

createElement : function (tag, attribs, styles, parent, nopad) {
    var el = document.createElement(tag);
    if (attribs) hs.extend(el, attribs);
    if (nopad) hs.setStyles(el, {padding: 0, border: 'none', margin: 0});
    if (styles) hs.setStyles(el, styles);
    if (parent) parent.appendChild(el); 
    return el;
},

extend : function (el, attribs) {
    for (var x in attribs) el[x] = attribs[x];
    return el;
},

setStyles : function (el, styles) {
    for (var x in styles) {
        if (hs.ie && x == 'opacity') {
            if (styles[x] > 0.99) el.style.removeAttribute('filter');
            else el.style.filter = 'alpha(opacity='+ (styles[x] * 100) +')';
        }
        else el.style[x] = styles[x];
    }
},
animate: function(el, prop, opt) {
    var start,
        end,
        unit;
    if (typeof opt != 'object' || opt === null) {
        var args = arguments;
        opt = {
            duration: args[2],
            easing: args[3],
            complete: args[4]
        };
    }
    if (typeof opt.duration != 'number') opt.duration = 250;
    opt.easing = Math[opt.easing] || Math.easeInQuad;
    opt.curAnim = hs.extend({}, prop);
    for (var name in prop) {
        var e = new hs.fx(el, opt , name );
        
        start = parseFloat(hs.css(el, name)) || 0;
        end = parseFloat(prop[name]);
        unit = name != 'opacity' ? 'px' : '';
        
        e.custom( start, end, unit );
    }   
},
css: function(el, prop) {
    if (document.defaultView) {
        return document.defaultView.getComputedStyle(el, null).getPropertyValue(prop);

    } else {
        if (prop == 'opacity') prop = 'filter';
        var val = el.currentStyle[prop.replace(/\-(\w)/g, function (a, b){ return b.toUpperCase(); })];
        if (prop == 'filter') 
            val = val.replace(/alpha\(opacity=([0-9]+)\)/, 
                function (a, b) { return b / 100 });
        return val === '' ? 1 : val;
    } 
},

getPageSize : function () {
    var d = document, w = window, iebody = d.compatMode && d.compatMode != 'BackCompat' 
        ? d.documentElement : d.body;
    
    var width = hs.ie ? iebody.clientWidth : 
            (d.documentElement.clientWidth || self.innerWidth),
        height = hs.ie ? iebody.clientHeight : self.innerHeight;
    
    hs.page = {
        width: width,
        height: height,     
        scrollLeft: hs.ie ? iebody.scrollLeft : pageXOffset,
        scrollTop: hs.ie ? iebody.scrollTop : pageYOffset
    }
},

getPosition : function(el)  {
    var p = { x: el.offsetLeft, y: el.offsetTop };
    while (el.offsetParent) {
        el = el.offsetParent;
        p.x += el.offsetLeft;
        p.y += el.offsetTop;
        if (el != document.body && el != document.documentElement) {
            p.x -= el.scrollLeft;
            p.y -= el.scrollTop;
        }
    }
    return p;
},

expand : function(a, params, custom, type) {
    if (!a) a = hs.createElement('a', null, { display: 'none' }, hs.container);
    if (typeof a.getParams == 'function') return params;
    if (type == 'html') {
        for (var i = 0; i < hs.sleeping.length; i++) {
            if (hs.sleeping[i] && hs.sleeping[i].a == a) {
                hs.sleeping[i].awake();
                hs.sleeping[i] = null;
                return false;
            }
        }
        hs.hasHtmlExpanders = true;
    }   
    try {   
        new hs.Expander(a, params, custom, type);
        return false;
    } catch (e) { return true; }
},

htmlExpand : function(a, params, custom) {
    return hs.expand(a, params, custom, 'html');
},

getSelfRendered : function() {
    return hs.createElement('div', { 
        className: 'highslide-html-content', 
        innerHTML: hs.replaceLang(hs.skin.contentWrapper) 
    });
},
getElementByClass : function (el, tagName, className) {
    var els = el.getElementsByTagName(tagName);
    for (var i = 0; i < els.length; i++) {
        if ((new RegExp(className)).test(els[i].className)) {
            return els[i];
        }
    }
    return null;
},
replaceLang : function(s) {
    s = s.replace(/\s/g, ' ');
    var re = /{hs\.lang\.([^}]+)\}/g,
        matches = s.match(re),
        lang;
    if (matches) for (var i = 0; i < matches.length; i++) {
        lang = matches[i].replace(re, "$1");
        if (typeof hs.lang[lang] != 'undefined') s = s.replace(matches[i], hs.lang[lang]);
    }
    return s;
},


getCacheBinding : function (a) {
    for (var i = 0; i < hs.cacheBindings.length; i++) {
        if (hs.cacheBindings[i][0] == a) {
            var c = hs.cacheBindings[i][1];
            hs.cacheBindings[i][1] = c.cloneNode(1);
            return c;
        }
    }
    return null;
},

preloadAjax : function (e) {
    var arr = hs.getAnchors();
    for (var i = 0; i < arr.htmls.length; i++) {
        var a = arr.htmls[i];
        if (hs.getParam(a, 'objectType') == 'ajax' && hs.getParam(a, 'cacheAjax'))
            hs.push(hs.preloadTheseAjax, a);
    }
    
    hs.preloadAjaxElement(0);
},

preloadAjaxElement : function (i) {
    if (!hs.preloadTheseAjax[i]) return;
    var a = hs.preloadTheseAjax[i];
    var cache = hs.getNode(hs.getParam(a, 'contentId'));
    if (!cache) cache = hs.getSelfRendered();
    var ajax = new hs.Ajax(a, cache, 1);    
    ajax.onError = function () { };
    ajax.onLoad = function () {
        hs.push(hs.cacheBindings, [a, cache]);
        hs.preloadAjaxElement(i + 1);
    };
    ajax.run();
},

focusTopmost : function() {
    var topZ = 0, 
        topmostKey = -1,
        expanders = hs.expanders,
        exp,
        zIndex;
    for (var i = 0; i < expanders.length; i++) {
        exp = expanders[i];
        if (exp) {
            zIndex = exp.wrapper.style.zIndex;
            if (zIndex && zIndex > topZ) {
                topZ = zIndex;              
                topmostKey = i;
            }
        }
    }
    if (topmostKey == -1) hs.focusKey = -1;
    else expanders[topmostKey].focus();
},

getParam : function (a, param) {
    a.getParams = a.onclick;
    var p = a.getParams ? a.getParams() : null;
    a.getParams = null;
    
    return (p && typeof p[param] != 'undefined') ? p[param] : 
        (typeof hs[param] != 'undefined' ? hs[param] : null);
},

getSrc : function (a) {
    var src = hs.getParam(a, 'src');
    if (src) return src;
    return a.href;
},

getNode : function (id) {
    var node = hs.$(id), clone = hs.clones[id], a = {};
    if (!node && !clone) return null;
    if (!clone) {
        clone = node.cloneNode(true);
        clone.id = '';
        hs.clones[id] = clone;
        return node;
    } else {
        return clone.cloneNode(true);
    }
},

discardElement : function(d) {
    if (d) hs.garbageBin.appendChild(d);
    hs.garbageBin.innerHTML = '';
},
transit : function (adj, exp) {
    var last = exp = exp || hs.getExpander();
    if (hs.upcoming) return false;
    else hs.last = last;
    try {
        hs.upcoming = adj;
        adj.onclick();      
    } catch (e){
        hs.last = hs.upcoming = null;
    }
    try {
        exp.close();
    } catch (e) {}
    return false;
},

previousOrNext : function (el, op) {
    var exp = hs.getExpander(el);
    if (exp) return hs.transit(exp.getAdjacentAnchor(op), exp);
    else return false;
},

previous : function (el) {
    return hs.previousOrNext(el, -1);
},

next : function (el) {
    return hs.previousOrNext(el, 1);    
},

keyHandler : function(e) {
    if (!e) e = window.event;
    if (!e.target) e.target = e.srcElement; // ie
    if (typeof e.target.form != 'undefined') return true; // form element has focus
    var exp = hs.getExpander();
    
    var op = null;
    switch (e.keyCode) {
        case 70: // f
            if (exp) exp.doFullExpand();
            return true;
        case 32: // Space
        case 34: // Page Down
        case 39: // Arrow right
        case 40: // Arrow down
            op = 1;
            break;
        case 8:  // Backspace
        case 33: // Page Up
        case 37: // Arrow left
        case 38: // Arrow up
            op = -1;
            break;
        case 27: // Escape
        case 13: // Enter
            op = 0;
    }
    if (op !== null) {hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
        if (!hs.enableKeyListener) return true;
        
        if (e.preventDefault) e.preventDefault();
        else e.returnValue = false;
        if (exp) {
            if (op == 0) {
                exp.close();
            } else {
                hs.previousOrNext(exp.key, op);
            }
            return false;
        }
    }
    return true;
},


registerOverlay : function (overlay) {
    hs.push(hs.overlays, hs.extend(overlay, { hsId: 'hsId'+ hs.idCounter++ } ));
},


getWrapperKey : function (element, expOnly) {
    var el, re = /^highslide-wrapper-([0-9]+)$/;
    // 1. look in open expanders
    el = element;
    while (el.parentNode)   {
        if (el.id && re.test(el.id)) return el.id.replace(re, "$1");
        el = el.parentNode;
    }
    // 2. look in thumbnail
    if (!expOnly) {
        el = element;
        while (el.parentNode)   {
            if (el.tagName && hs.isHsAnchor(el)) {
                for (var key = 0; key < hs.expanders.length; key++) {
                    var exp = hs.expanders[key];
                    if (exp && exp.a == el) return key;
                }
            }
            el = el.parentNode;
        }
    }
    return null; 
},

getExpander : function (el, expOnly) {
    if (typeof el == 'undefined') return hs.expanders[hs.focusKey] || null;
    if (typeof el == 'number') return hs.expanders[el] || null;
    if (typeof el == 'string') el = hs.$(el);
    return hs.expanders[hs.getWrapperKey(el, expOnly)] || null;
},

isHsAnchor : function (a) {
    return (a.onclick && a.onclick.toString().replace(/\s/g, ' ').match(/hs.(htmlE|e)xpand/));
},

reOrder : function () {
    for (var i = 0; i < hs.expanders.length; i++)
        if (hs.expanders[i] && hs.expanders[i].isExpanded) hs.focusTopmost();
},

mouseClickHandler : function(e) 
{   
    if (!e) e = window.event;
    if (e.button > 1) return true;
    if (!e.target) e.target = e.srcElement;
    
    var el = e.target;
    while (el.parentNode
        && !(/highslide-(image|move|html|resize)/.test(el.className)))
    {
        el = el.parentNode;
    }
    var exp = hs.getExpander(el);
    if (exp && (exp.isClosing || !exp.isExpanded)) return true;
        
    if (exp && e.type == 'mousedown') {
        if (e.target.form) return true;
        var match = el.className.match(/highslide-(image|move|resize)/);
        if (match) {
            hs.dragArgs = { 
                exp: exp , 
                type: match[1], 
                left: exp.x.pos, 
                width: exp.x.size, 
                top: exp.y.pos, 
                height: exp.y.size, 
                clickX: e.clientX, 
                clickY: e.clientY
            };
            
            
            hs.addEventListener(document, 'mousemove', hs.dragHandler);
            if (e.preventDefault) e.preventDefault(); // FF
            
            if (/highslide-(image|html)-blur/.test(exp.content.className)) {
                exp.focus();
                hs.hasFocused = true;
            }
            return false;
        }
        else if (/highslide-html/.test(el.className) && hs.focusKey != exp.key) {
            exp.focus();
            exp.doShowHide('hidden');
        }
    } else if (e.type == 'mouseup') {
        
        hs.removeEventListener(document, 'mousemove', hs.dragHandler);
        
        if (hs.dragArgs) {
            if (hs.styleRestoreCursor && hs.dragArgs.type == 'image') 
                hs.dragArgs.exp.content.style.cursor = hs.styleRestoreCursor;
            var hasDragged = hs.dragArgs.hasDragged;
            
            if (!hasDragged &&!hs.hasFocused && !/(move|resize)/.test(hs.dragArgs.type)) {
                exp.close();
            } 
            else if (hasDragged || (!hasDragged && hs.hasHtmlExpanders)) {
                hs.dragArgs.exp.doShowHide('hidden');
            }
            
            if (hs.dragArgs.exp.releaseMask) 
                hs.dragArgs.exp.releaseMask.style.display = 'none';
            hs.hasFocused = false;
            hs.dragArgs = null;
        
        } else if (/highslide-image-blur/.test(el.className)) {
            el.style.cursor = hs.styleRestoreCursor;        
        }
    }
    return false;
},

dragHandler : function(e)
{
    if (!hs.dragArgs) return true;
    if (!e) e = window.event;
    var a = hs.dragArgs, exp = a.exp;
    if (exp.iframe) {       
        if (!exp.releaseMask) exp.releaseMask = hs.createElement('div', null, 
            { position: 'absolute', width: exp.x.size+'px', height: exp.y.size+'px', 
                left: exp.x.cb+'px', top: exp.y.cb+'px', zIndex: 4, background: (hs.ie ? 'white' : 'none'), 
                opacity: .01 }, 
            exp.wrapper, true);
        if (exp.releaseMask.style.display == 'none')
            exp.releaseMask.style.display = '';
    }
    
    a.dX = e.clientX - a.clickX;
    a.dY = e.clientY - a.clickY;    
    
    var distance = Math.sqrt(Math.pow(a.dX, 2) + Math.pow(a.dY, 2));
    if (!a.hasDragged) a.hasDragged = (a.type != 'image' && distance > 0)
        || (distance > (hs.dragSensitivity || 5));
    
    if (a.hasDragged && e.clientX > 5 && e.clientY > 5) {
        
        if (a.type == 'resize') exp.resize(a);
        else {
            exp.moveTo(a.left + a.dX, a.top + a.dY);
            if (a.type == 'image') exp.content.style.cursor = 'move';
        }
    }
    return false;
},

wrapperMouseHandler : function (e) {
    try {
        if (!e) e = window.event;
        var over = /mouseover/i.test(e.type); 
        if (!e.target) e.target = e.srcElement; // ie
        if (hs.ie) e.relatedTarget = 
            over ? e.fromElement : e.toElement; // ie
        var exp = hs.getExpander(e.target);
        if (!exp.isExpanded) return;
        if (!exp || !e.relatedTarget || hs.getExpander(e.relatedTarget, true) == exp 
            || hs.dragArgs) return;
        for (var i = 0; i < exp.overlays.length; i++) (function() {
            var o = hs.$('hsId'+ exp.overlays[i]);
            if (o && o.hideOnMouseOut) {
                if (over) hs.setStyles(o, { visibility: 'visible', display: '' });
                hs.animate(o, { opacity: over ? o.opacity : 0 }, o.dur);
            }
        })();   
    } catch (e) {}
},
addEventListener : function (el, event, func) {
    if (el == document && event == 'ready') hs.push(hs.onReady, func);
    try {
        el.addEventListener(event, func, false);
    } catch (e) {
        try {
            el.detachEvent('on'+ event, func);
            el.attachEvent('on'+ event, func);
        } catch (e) {
            el['on'+ event] = func;
        }
    } 
},

removeEventListener : function (el, event, func) {
    try {
        el.removeEventListener(event, func, false);
    } catch (e) {
        try {
            el.detachEvent('on'+ event, func);
        } catch (e) {
            el['on'+ event] = null;
        }
    }
},

preloadFullImage : function (i) {
    if (hs.continuePreloading && hs.preloadTheseImages[i] && hs.preloadTheseImages[i] != 'undefined') {
        var img = document.createElement('img');
        img.onload = function() { 
            img = null;
            hs.preloadFullImage(i + 1);
        };
        img.src = hs.preloadTheseImages[i];
    }
},
preloadImages : function (number) {
    if (number && typeof number != 'object') hs.numberOfImagesToPreload = number;
    
    var arr = hs.getAnchors();
    for (var i = 0; i < arr.images.length && i < hs.numberOfImagesToPreload; i++) {
        hs.push(hs.preloadTheseImages, hs.getSrc(arr.images[i]));
    }
    
    // preload outlines
    if (hs.outlineType) new hs.Outline(hs.outlineType, function () { hs.preloadFullImage(0)} );
    else
    
    hs.preloadFullImage(0);
    
    // preload cursor
    if (hs.restoreCursor) var cur = hs.createElement('img', { src: hs.graphicsDir + hs.restoreCursor });
},


init : function () {
    if (!hs.container) {
    
        hs.getPageSize();
        hs.ieLt7 = hs.ie && hs.uaVersion < 7;
        hs.ie6SSL = hs.ieLt7 && location.protocol == 'https:';
        for (var x in hs.langDefaults) {
            if (typeof hs[x] != 'undefined') hs.lang[x] = hs[x];
            else if (typeof hs.lang[x] == 'undefined' && typeof hs.langDefaults[x] != 'undefined') 
                hs.lang[x] = hs.langDefaults[x];
        }
        
        hs.container = hs.createElement('div', {
                className: 'highslide-container'
            }, {
                position: 'absolute', 
                left: 0, 
                top: 0, 
                width: '100%', 
                zIndex: hs.zIndexCounter,
                direction: 'ltr'
            }, 
            document.body,
            true
        );
        hs.loading = hs.createElement('a', {
                className: 'highslide-loading',
                title: hs.lang.loadingTitle,
                innerHTML: hs.lang.loadingText,
                href: 'javascript:;'
            }, {
                position: 'absolute',
                top: '-9999px',
                opacity: hs.loadingOpacity,
                zIndex: 1
            }, hs.container
        );
        hs.garbageBin = hs.createElement('div', null, { display: 'none' }, hs.container);
        hs.clearing = hs.createElement('div', null, 
            { clear: 'both', paddingTop: '1px' }, null, true);
        
        // http://www.robertpenner.com/easing/ 
        Math.linearTween = function (t, b, c, d) {
            return c*t/d + b;
        };
        Math.easeInQuad = function (t, b, c, d) {
            return c*(t/=d)*t + b;
        };
        
        hs.hideSelects = hs.ieLt7;
        hs.hideIframes = ((window.opera && hs.uaVersion < 9) || navigator.vendor == 'KDE' 
            || (hs.ie && hs.uaVersion < 5.5));
    }
},
ready : function() {
    if (hs.isReady) return;
    hs.isReady = true;
    
    for (var i = 0; i < hs.onReady.length; i++) hs.onReady[i]();
},

updateAnchors : function() {
    var el, els, all = [], images = [], htmls = [],groups = {}, re;
        
    for (var i = 0; i < hs.openerTagNames.length; i++) {
        els = document.getElementsByTagName(hs.openerTagNames[i]);
        for (var j = 0; j < els.length; j++) {
            el = els[j];
            re = hs.isHsAnchor(el);
            if (re) {
                hs.push(all, el);
                if (re[0] == 'hs.expand') hs.push(images, el);
                else if (re[0] == 'hs.htmlExpand') hs.push(htmls, el);
                var g = hs.getParam(el, 'slideshowGroup') || 'none';
                if (!groups[g]) groups[g] = [];
                hs.push(groups[g], el);
            }
        }
    }
    hs.anchors = { all: all, groups: groups, images: images, htmls: htmls };
    return hs.anchors;
    
},

getAnchors : function() {
    return hs.anchors || hs.updateAnchors();
},


close : function(el) {
    var exp = hs.getExpander(el);
    if (exp) exp.close();
    return false;
}
}; // end hs object
hs.fx = function( elem, options, prop ){
    this.options = options;
    this.elem = elem;
    this.prop = prop;

    if (!options.orig) options.orig = {};
};
hs.fx.prototype = {
    update: function(){
        (hs.fx.step[this.prop] || hs.fx.step._default)(this);
        
        if (this.options.step)
            this.options.step.call(this.elem, this.now, this);

    },
    custom: function(from, to, unit){
        this.startTime = (new Date()).getTime();
        this.start = from;
        this.end = to;
        this.unit = unit;// || this.unit || "px";
        this.now = this.start;
        this.pos = this.state = 0;

        var self = this;
        function t(gotoEnd){
            return self.step(gotoEnd);
        }

        t.elem = this.elem;

        if ( t() && hs.timers.push(t) == 1 ) {
            hs.timerId = setInterval(function(){
                var timers = hs.timers;

                for ( var i = 0; i < timers.length; i++ )
                    if ( !timers[i]() )
                        timers.splice(i--, 1);

                if ( !timers.length ) {
                    clearInterval(hs.timerId);
                }
            }, 13);
        }
    },
    step: function(gotoEnd){
        var t = (new Date()).getTime();
        if ( gotoEnd || t >= this.options.duration + this.startTime ) {
            this.now = this.end;
            this.pos = this.state = 1;
            this.update();

            this.options.curAnim[ this.prop ] = true;

            var done = true;
            for ( var i in this.options.curAnim )
                if ( this.options.curAnim[i] !== true )
                    done = false;

            if ( done ) {
                if (this.options.complete) this.options.complete.call(this.elem);
            }
            return false;
        } else {
            var n = t - this.startTime;
            this.state = n / this.options.duration;
            this.pos = this.options.easing(n, 0, 1, this.options.duration);
            this.now = this.start + ((this.end - this.start) * this.pos);
            this.update();
        }
        return true;
    }

};

hs.extend( hs.fx, {
    step: {

        opacity: function(fx){
            hs.setStyles(fx.elem, { opacity: fx.now });
        },

        _default: function(fx){
            try {
                if ( fx.elem.style && fx.elem.style[ fx.prop ] != null )
                    fx.elem.style[ fx.prop ] = fx.now + fx.unit;
                else
                    fx.elem[ fx.prop ] = fx.now;
            } catch (e) {}
        }
    }
});

hs.Outline =  function (outlineType, onLoad) {
    this.onLoad = onLoad;
    this.outlineType = outlineType;
    var v = hs.uaVersion, tr;
    
    this.hasAlphaImageLoader = hs.ie && v >= 5.5 && v < 7;
    if (!outlineType) {
        if (onLoad) onLoad();
        return;
    }
    
    hs.init();
    this.table = hs.createElement(
        'table', { 
            cellSpacing: 0 
        }, {
            visibility: 'hidden',
            position: 'absolute',
            borderCollapse: 'collapse',
            width: 0
        },
        hs.container,
        true
    );
    var tbody = hs.createElement('tbody', null, null, this.table, 1);
    
    this.td = [];
    for (var i = 0; i <= 8; i++) {
        if (i % 3 == 0) tr = hs.createElement('tr', null, { height: 'auto' }, tbody, true);
        this.td[i] = hs.createElement('td', null, null, tr, true);
        var style = i != 4 ? { lineHeight: 0, fontSize: 0} : { position : 'relative' };
        hs.setStyles(this.td[i], style);
    }
    this.td[4].className = outlineType +' highslide-outline';
    
    this.preloadGraphic(); 
};

hs.Outline.prototype = {
preloadGraphic : function () {
    var src = hs.graphicsDir + (hs.outlinesDir || "outlines/")+ this.outlineType +".png";
                
    var appendTo = hs.safari ? hs.container : null;
    this.graphic = hs.createElement('img', null, { position: 'absolute', 
        top: '-9999px' }, appendTo, true); // for onload trigger
    
    var pThis = this;
    this.graphic.onload = function() { pThis.onGraphicLoad(); };
    
    this.graphic.src = src;
},

onGraphicLoad : function () {
    var o = this.offset = this.graphic.width / 4,
        pos = [[0,0],[0,-4],[-2,0],[0,-8],0,[-2,-8],[0,-2],[0,-6],[-2,-2]],
        dim = { height: (2*o) +'px', width: (2*o) +'px' };
    for (var i = 0; i <= 8; i++) {
        if (pos[i]) {
            if (this.hasAlphaImageLoader) {
                var w = (i == 1 || i == 7) ? '100%' : this.graphic.width +'px';
                var div = hs.createElement('div', null, { width: '100%', height: '100%', position: 'relative', overflow: 'hidden'}, this.td[i], true);
                hs.createElement ('div', null, { 
                        filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale, src='"+ this.graphic.src + "')", 
                        position: 'absolute',
                        width: w, 
                        height: this.graphic.height +'px',
                        left: (pos[i][0]*o)+'px',
                        top: (pos[i][1]*o)+'px'
                    }, 
                div,
                true);
            } else {
                hs.setStyles(this.td[i], { background: 'url('+ this.graphic.src +') '+ (pos[i][0]*o)+'px '+(pos[i][1]*o)+'px'});
            }
            
            if (window.opera && (i == 3 || i ==5)) 
                hs.createElement('div', null, dim, this.td[i], true);
            
            hs.setStyles (this.td[i], dim);
        }
    }
    this.graphic = null;
    if (hs.pendingOutlines[this.outlineType]) hs.pendingOutlines[this.outlineType].destroy();
    hs.pendingOutlines[this.outlineType] = this;
    if (this.onLoad) this.onLoad();
},
    
setPosition : function (pos, offset, vis, dur, easing) {
    var exp = this.exp,
        stl = exp.wrapper.style,
        offset = offset || 0,
        pos = pos || {
            x: exp.x.pos + offset,
            y: exp.y.pos + offset,
            w: exp.x.get('wsize') - 2 * offset,
            h: exp.y.get('wsize') - 2 * offset
        };
    if (vis) this.table.style.visibility = (pos.h >= 4 * this.offset) 
        ? 'visible' : 'hidden';
    hs.setStyles(this.table, {
        left: (pos.x - this.offset) +'px',
        top: (pos.y - this.offset) +'px',
        width: (pos.w + 2 * this.offset) +'px'
    });
    
    pos.w -= 2 * this.offset;
    pos.h -= 2 * this.offset;
    hs.setStyles (this.td[4], {
        width: pos.w >= 0 ? pos.w +'px' : 0,
        height: pos.h >= 0 ? pos.h +'px' : 0
    });
    if (this.hasAlphaImageLoader) this.td[3].style.height 
        = this.td[5].style.height = this.td[4].style.height;    
    
},
    
destroy : function(hide) {
    if (hide) this.table.style.visibility = 'hidden';
    else hs.discardElement(this.table);
}
};

hs.Dimension = function(exp, dim) {
    this.exp = exp;
    this.dim = dim;
    this.ucwh = dim == 'x' ? 'Width' : 'Height';
    this.wh = this.ucwh.toLowerCase();
    this.uclt = dim == 'x' ? 'Left' : 'Top';
    this.lt = this.uclt.toLowerCase();
    this.ucrb = dim == 'x' ? 'Right' : 'Bottom';
    this.rb = this.ucrb.toLowerCase();
    this.p1 = this.p2 = 0;
};
hs.Dimension.prototype = {
get : function(key) {
    switch (key) {
        case 'loadingPos':
            return this.tpos + this.tb + (this.t - hs.loading['offset'+ this.ucwh]) / 2;
        case 'wsize':
            return this.size + 2 * this.cb + this.p1 + this.p2;
        case 'fitsize':
            return this.clientSize - this.marginMin - this.marginMax;
        case 'maxsize':
            return this.get('fitsize') - 2 * this.cb - this.p1 - this.p2 ;
        case 'opos':
            return this.pos - (this.exp.outline ? this.exp.outline.offset : 0);
        case 'osize':
            return this.get('wsize') + (this.exp.outline ? 2*this.exp.outline.offset : 0);
        case 'imgPad':
            return this.imgSize ? Math.round((this.size - this.imgSize) / 2) : 0;
        
    }
},
calcBorders: function() {
    // correct for borders
    this.cb = (this.exp.content['offset'+ this.ucwh] - this.t) / 2;
    
    this.marginMax = hs['margin'+ this.ucrb];
},
calcThumb: function() {
    this.t = this.exp.el[this.wh] ? parseInt(this.exp.el[this.wh]) : 
        this.exp.el['offset'+ this.ucwh];
    this.tpos = this.exp.tpos[this.dim];
    this.tb = (this.exp.el['offset'+ this.ucwh] - this.t) / 2;
    if (this.tpos == 0 || this.tpos == -1) {
        this.tpos = (hs.page[this.wh] / 2) + hs.page['scroll'+ this.uclt];      
    };
},
calcExpanded: function() {
    var exp = this.exp;
    this.justify = 'auto';
    
    
    // size and position
    this.pos = this.tpos - this.cb + this.tb;
    
    if (this.maxHeight && this.dim == 'x')
        exp.maxWidth = Math.min(exp.maxWidth || this.full, exp.maxHeight * this.full / exp.y.full); 
        
    this.size = Math.min(this.full, exp['max'+ this.ucwh] || this.full);
    this.minSize = exp.allowSizeReduction ? 
        Math.min(exp['min'+ this.ucwh], this.full) :this.full;
    if (exp.isImage && exp.useBox)  {
        this.size = exp[this.wh];
        this.imgSize = this.full;
    }
    if (this.dim == 'x' && hs.padToMinWidth) this.minSize = exp.minWidth;
    this.marginMin = hs['margin'+ this.uclt];
    this.scroll = hs.page['scroll'+ this.uclt];
    this.clientSize = hs.page[this.wh];
},
setSize: function(i) {
    var exp = this.exp;
    if (exp.isImage && (exp.useBox || hs.padToMinWidth)) {
        this.imgSize = i;
        this.size = Math.max(this.size, this.imgSize);
        exp.content.style[this.lt] = this.get('imgPad')+'px';
    } else
    this.size = i;
    
    exp.content.style[this.wh] = i +'px';
    exp.wrapper.style[this.wh] = this.get('wsize') +'px';
    if (exp.outline) exp.outline.setPosition();
    if (exp.releaseMask) exp.releaseMask.style[this.wh] = i +'px';
    if (this.dim == 'y' && exp.iDoc && exp.body.style.height != 'auto') try {
        exp.iDoc.body.style.overflow = 'auto';
    } catch (e) {}
    if (exp.isHtml) {
        var d = exp.scrollerDiv;
        if (this.sizeDiff === undefined)
            this.sizeDiff = exp.innerContent['offset'+ this.ucwh] - d['offset'+ this.ucwh];
        d.style[this.wh] = (this.size - this.sizeDiff) +'px';
            
        if (this.dim == 'x') exp.mediumContent.style.width = 'auto';
        if (exp.body) exp.body.style[this.wh] = 'auto';
    }
    if (this.dim == 'x' && exp.overlayBox) exp.sizeOverlayBox(true);
},
setPos: function(i) {
    this.pos = i;
    this.exp.wrapper.style[this.lt] = i +'px';  
    
    if (this.exp.outline) this.exp.outline.setPosition();
    
}
};

hs.Expander = function(a, params, custom, contentType) {
    if (document.readyState && hs.ie && !hs.isReady) {
        hs.addEventListener(document, 'ready', function() {
            new hs.Expander(a, params, custom, contentType);
        });
        return;
    } 
    this.a = a;
    this.custom = custom;
    this.contentType = contentType || 'image';
    this.isHtml = (contentType == 'html');
    this.isImage = !this.isHtml;
    
    hs.continuePreloading = false;
    this.overlays = [];
    hs.init();
    var key = this.key = hs.expanders.length;
    // override inline parameters
    for (var i = 0; i < hs.overrides.length; i++) {
        var name = hs.overrides[i];
        this[name] = params && typeof params[name] != 'undefined' ?
            params[name] : hs[name];
    }
    if (!this.src) this.src = a.href;
    
    // get thumb
    var el = (params && params.thumbnailId) ? hs.$(params.thumbnailId) : a;
    el = this.thumb = el.getElementsByTagName('img')[0] || el;
    this.thumbsUserSetId = el.id || a.id;
    
    // check if already open
    for (var i = 0; i < hs.expanders.length; i++) {
        if (hs.expanders[i] && hs.expanders[i].a == a) {
            hs.expanders[i].focus();
            return false;
        }
    }   

    // cancel other
    if (!hs.allowSimultaneousLoading) for (var i = 0; i < hs.expanders.length; i++) {
        if (hs.expanders[i] && hs.expanders[i].thumb != el && !hs.expanders[i].onLoadStarted) {
            hs.expanders[i].cancelLoading();
        }
    }
    hs.expanders[key] = this;
    if (!hs.allowMultipleInstances && !hs.upcoming) {
        if (hs.expanders[key-1]) hs.expanders[key-1].close();
        if (typeof hs.focusKey != 'undefined' && hs.expanders[hs.focusKey])
            hs.expanders[hs.focusKey].close();
    }
    
    // initiate metrics
    this.el = el;
    this.tpos = hs.getPosition(el);
    hs.getPageSize();
    var x = this.x = new hs.Dimension(this, 'x');
    x.calcThumb();
    var y = this.y = new hs.Dimension(this, 'y');
    y.calcThumb();
    this.wrapper = hs.createElement(
        'div', {
            id: 'highslide-wrapper-'+ this.key,
            className: 'highslide-wrapper '+ this.wrapperClassName
        }, {
            visibility: 'hidden',
            position: 'absolute',
            zIndex: hs.zIndexCounter += 2
        }, null, true );
    
    this.wrapper.onmouseover = this.wrapper.onmouseout = hs.wrapperMouseHandler;
    if (this.contentType == 'image' && this.outlineWhileAnimating == 2)
        this.outlineWhileAnimating = 0;
    
    // get the outline
    if (!this.outlineType) {
        this[this.contentType +'Create']();
    
    } else if (hs.pendingOutlines[this.outlineType]) {
        this.connectOutline();
        this[this.contentType +'Create']();
    
    } else {
        this.showLoading();
        var exp = this;
        new hs.Outline(this.outlineType, 
            function () {
                exp.connectOutline();
                exp[exp.contentType +'Create']();
            } 
        );
    }
    return true;
};

hs.Expander.prototype = {
error : function(e) {
    // alert ('Line '+ e.lineNumber +': '+ e.message);
    window.location.href = this.src;
},

connectOutline : function() {
    var outline = this.outline = hs.pendingOutlines[this.outlineType];
    outline.exp = this;
    outline.table.style.zIndex = this.wrapper.style.zIndex - 1;
    hs.pendingOutlines[this.outlineType] = null;
},

showLoading : function() {
    if (this.onLoadStarted || this.loading) return;
    
    this.loading = hs.loading;
    var exp = this;
    this.loading.onclick = function() {
        exp.cancelLoading();
    };
    var exp = this, 
        l = this.x.get('loadingPos') +'px',
        t = this.y.get('loadingPos') +'px';
    setTimeout(function () { 
        if (exp.loading) hs.setStyles(exp.loading, { left: l, top: t, zIndex: hs.zIndexCounter++ })}
    , 100);
},

imageCreate : function() {
    var exp = this;
    
    var img = document.createElement('img');
    this.content = img;
    img.onload = function () {
        if (hs.expanders[exp.key]) exp.contentLoaded(); 
    };
    if (hs.blockRightClick) img.oncontextmenu = function() { return false; };
    img.className = 'highslide-image';
    hs.setStyles(img, {
        visibility: 'hidden',
        display: 'block',
        position: 'absolute',
        maxWidth: '9999px',
        zIndex: 3
    });
    img.title = hs.lang.restoreTitle;
    if (hs.safari) hs.container.appendChild(img);
    if (hs.ie && hs.flushImgSize) img.src = null;
    img.src = this.src;
    
    this.showLoading();
},

htmlCreate : function () {
    
    this.content = hs.getCacheBinding(this.a);
    if (!this.content) 
        this.content = hs.getNode(this.contentId);
    if (!this.content) 
        this.content = hs.getSelfRendered();
    this.getInline(['maincontent']);
    if (this.maincontent) {
        var body = hs.getElementByClass(this.content, 'div', 'highslide-body');
        if (body) body.appendChild(this.maincontent);
        this.maincontent.style.display = 'block';
    }
    
    var innerContent = this.innerContent = this.content;
    
    if (/(swf|iframe)/.test(this.objectType)) this.setObjContainerSize(innerContent);
    
    // the content tree
    hs.container.appendChild(this.wrapper);
    hs.setStyles( this.wrapper, { 
        position: 'static',
        padding: '0 '+ hs.marginRight +'px 0 '+ hs.marginLeft +'px'
    });
    this.content = hs.createElement(
        'div', {
            className: 'highslide-html' 
        }, {
            position: 'relative',
            zIndex: 3,
            overflow: 'hidden'
        },
        this.wrapper
    );
    this.mediumContent = hs.createElement('div', null, null, this.content, 1);
    this.mediumContent.appendChild(innerContent);
    
    hs.setStyles (innerContent, { 
        position: 'relative',
        display: 'block',
        direction: hs.lang.cssDirection || ''
    });
    if (this.width) innerContent.style.width = this.width +'px';
    if (this.height) hs.setStyles(innerContent, {
        height: this.height +'px',
        overflow: 'hidden'
    });
    if (innerContent.offsetWidth < this.minWidth)
        innerContent.style.width = this.minWidth +'px';
        
    
    
    if (this.objectType == 'ajax' && !hs.getCacheBinding(this.a)) {
        this.showLoading();
        var exp = this;
        var ajax = new hs.Ajax(this.a, innerContent);
        ajax.src = this.src;
        ajax.onLoad = function () { if (hs.expanders[exp.key]) exp.contentLoaded(); };
        ajax.onError = function () { location.href = exp.src; };
        ajax.run();
    }
    else
    
    if (this.objectType == 'iframe' && this.objectLoadTime == 'before') {
        this.writeExtendedContent();
    }
    else
        this.contentLoaded();
},

contentLoaded : function() {
    try {   
        if (!this.content) return;
        this.content.onload = null;
        if (this.onLoadStarted) return;
        else this.onLoadStarted = true;
        
        var x = this.x, y = this.y;
        
        if (this.loading) {
            hs.setStyles(this.loading, { top: '-9999px' });
            this.loading = null;
        }
        if (this.isImage) { 
            x.full = this.content.width;
            y.full = this.content.height;
            
            hs.setStyles(this.content, {
                width: x.t +'px',
                height: y.t +'px'
            });
            this.wrapper.appendChild(this.content);
            hs.container.appendChild(this.wrapper);
        } else if (this.htmlGetSize) this.htmlGetSize();
        
        x.calcBorders();
        y.calcBorders();
        
        hs.setStyles (this.wrapper, {
            left: (x.tpos + x.tb - x.cb) +'px',
            top: (y.tpos + x.tb - y.cb) +'px'
        });
        this.getOverlays();
        
        var ratio = x.full / y.full;
        x.calcExpanded();
        this.justify(x);
        
        y.calcExpanded();
        this.justify(y);
        if (this.isHtml) this.htmlSizeOperations();
        if (this.overlayBox) this.sizeOverlayBox(0, 1);

        
        if (this.allowSizeReduction) {
            if (this.isImage)
                this.correctRatio(ratio);
            else this.fitOverlayBox();
            if (this.isImage && this.x.full > (this.x.imgSize || this.x.size)) {
                this.createFullExpand();
                if (this.overlays.length == 1) this.sizeOverlayBox();
            }
        }
        this.show();
        
    } catch (e) {
        this.error(e);
    }
},


setObjContainerSize : function(parent, auto) {
    var c = hs.getElementByClass(parent, 'DIV', 'highslide-body');
    if (/(iframe|swf)/.test(this.objectType)) {
        if (this.objectWidth) c.style.width = this.objectWidth +'px';
        if (this.objectHeight) c.style.height = this.objectHeight +'px';
    }
},

writeExtendedContent : function () {
    if (this.hasExtendedContent) return;
    var exp = this;
    this.body = hs.getElementByClass(this.innerContent, 'DIV', 'highslide-body');
    if (this.objectType == 'iframe') {
        this.showLoading();
        var ruler = hs.clearing.cloneNode(1);
        this.body.appendChild(ruler);
        this.newWidth = this.innerContent.offsetWidth;
        if (!this.objectWidth) this.objectWidth = ruler.offsetWidth;
        var hDiff = this.innerContent.offsetHeight - this.body.offsetHeight,
            h = this.objectHeight || hs.page.height - hDiff - hs.marginTop - hs.marginBottom,
            onload = this.objectLoadTime == 'before' ? 
                ' onload="if (hs.expanders['+ this.key +']) hs.expanders['+ this.key +'].contentLoaded()" ' : '';
        this.body.innerHTML += '<iframe name="hs'+ (new Date()).getTime() +'" frameborder="0" key="'+ this.key +'" '
            +' style="width:'+ this.objectWidth +'px; height:'+ h +'px" '
            + onload +' src="'+ this.src +'" ></iframe>';
        this.ruler = this.body.getElementsByTagName('div')[0];
        this.iframe = this.body.getElementsByTagName('iframe')[0];
        
        if (this.objectLoadTime == 'after') this.correctIframeSize();
        
    }
    if (this.objectType == 'swf') {
        this.body.id = this.body.id || 'hs-flash-id-' + this.key;
        var a = this.swfOptions;
        if (!a.params) a.params = {};
        if (typeof a.params.wmode == 'undefined') a.params.wmode = 'transparent';
        if (swfobject) swfobject.embedSWF(this.src, this.body.id, this.objectWidth, this.objectHeight, 
            a.version || '7', a.expressInstallSwfurl, a.flashvars, a.params, a.attributes);
    }
    this.hasExtendedContent = true;
},
htmlGetSize : function() {
    if (this.iframe && !this.objectHeight) { // loadtime before
        this.iframe.style.height = this.body.style.height = this.getIframePageHeight() +'px';
    }
    this.innerContent.appendChild(hs.clearing);
    if (!this.x.full) this.x.full = this.innerContent.offsetWidth;
    this.y.full = this.innerContent.offsetHeight;
    this.innerContent.removeChild(hs.clearing);
    if (hs.ie && this.newHeight > parseInt(this.innerContent.currentStyle.height)) { // ie css bug
        this.newHeight = parseInt(this.innerContent.currentStyle.height);
    }
    hs.setStyles( this.wrapper, { position: 'absolute', padding: '0'});
    hs.setStyles( this.content, { width: this.x.t +'px', height: this.y.t +'px'});
    
},

getIframePageHeight : function() {
    var h;
    try {
        var doc = this.iDoc = this.iframe.contentDocument || this.iframe.contentWindow.document;
        var clearing = doc.createElement('div');
        clearing.style.clear = 'both';
        doc.body.appendChild(clearing);
        h = clearing.offsetTop;
        if (hs.ie) h += parseInt(doc.body.currentStyle.marginTop) 
            + parseInt(doc.body.currentStyle.marginBottom) - 1;
    } catch (e) { // other domain
        h = 300;
    }
    return h;
},
correctIframeSize : function () {
    var wDiff = this.innerContent.offsetWidth - this.ruler.offsetWidth;
    hs.discardElement(this.ruler);
    if (wDiff < 0) wDiff = 0;
    
    var hDiff = this.innerContent.offsetHeight - this.iframe.offsetHeight;
    if (this.iDoc && !this.objectHeight && !this.height && this.y.size == this.y.full) try {
        this.iDoc.body.style.overflow = 'hidden';
    } catch (e) {}
    hs.setStyles(this.iframe, { 
        width: Math.abs(this.x.size - wDiff) +'px', 
        height: Math.abs(this.y.size - hDiff) +'px'
    });
    hs.setStyles(this.body, { 
        width: this.iframe.style.width, 
        height: this.iframe.style.height
    });
        
    this.scrollingContent = this.iframe;
    this.scrollerDiv = this.scrollingContent;
    
},
htmlSizeOperations : function () {
    
    this.setObjContainerSize(this.innerContent);
    
    
    if (this.objectType == 'swf' && this.objectLoadTime == 'before') this.writeExtendedContent();   
    
    // handle minimum size
    if (this.x.size < this.x.full && !this.allowWidthReduction) this.x.size = this.x.full;
    if (this.y.size < this.y.full && !this.allowHeightReduction) this.y.size = this.y.full;
    this.scrollerDiv = this.innerContent;
    hs.setStyles(this.mediumContent, { 
        position: 'relative',
        width: this.x.size +'px'
    });
    hs.setStyles(this.innerContent, { 
        border: 'none',
        width: 'auto',
        height: 'auto'
    });
    var node = hs.getElementByClass(this.innerContent, 'DIV', 'highslide-body');
    if (node && !/(iframe|swf)/.test(this.objectType)) {
        var cNode = node; // wrap to get true size
        node = hs.createElement(cNode.nodeName, null, {overflow: 'hidden'}, null, true);
        cNode.parentNode.insertBefore(node, cNode);
        node.appendChild(hs.clearing); // IE6
        node.appendChild(cNode);
        
        var wDiff = this.innerContent.offsetWidth - node.offsetWidth;
        var hDiff = this.innerContent.offsetHeight - node.offsetHeight;
        node.removeChild(hs.clearing);
        
        var kdeBugCorr = hs.safari || navigator.vendor == 'KDE' ? 1 : 0; // KDE repainting bug
        hs.setStyles(node, { 
                width: (this.x.size - wDiff - kdeBugCorr) +'px', 
                height: (this.y.size - hDiff) +'px',
                overflow: 'auto', 
                position: 'relative' 
            } 
        );
        if (kdeBugCorr && cNode.offsetHeight > node.offsetHeight)   {
            node.style.width = (parseInt(node.style.width) + kdeBugCorr) + 'px';
        }
        this.scrollingContent = node;
        this.scrollerDiv = this.scrollingContent;
    }
    if (this.iframe && this.objectLoadTime == 'before') this.correctIframeSize();
    if (!this.scrollingContent && this.y.size < this.mediumContent.offsetHeight) this.scrollerDiv = this.content;
    
    if (this.scrollerDiv == this.content && !this.allowWidthReduction && !/(iframe|swf)/.test(this.objectType)) {
        this.x.size += 17; // room for scrollbars
    }
    if (this.scrollerDiv && this.scrollerDiv.offsetHeight > this.scrollerDiv.parentNode.offsetHeight) {
        setTimeout("try { hs.expanders["+ this.key +"].scrollerDiv.style.overflow = 'auto'; } catch(e) {}",
             hs.expandDuration);
    }
},

justify : function (p, moveOnly) {
    var tgtArr, tgt = p.target, dim = p == this.x ? 'x' : 'y';
    
        var hasMovedMin = false;
        
        var allowReduce = p.exp.allowSizeReduction;
            p.pos = Math.round(p.pos - ((p.get('wsize') - p.t) / 2));
        if (p.pos < p.scroll + p.marginMin) {
            p.pos = p.scroll + p.marginMin;
            hasMovedMin = true;     
        }
        if (!moveOnly && p.size < p.minSize) {
            p.size = p.minSize;
            allowReduce = false;
        }
        if (p.pos + p.get('wsize') > p.scroll + p.clientSize - p.marginMax) {
            if (!moveOnly && hasMovedMin && allowReduce) {
                p.size = Math.min(p.size, p.get(dim == 'y' ? 'fitsize' : 'maxsize'));
            } else if (p.get('wsize') < p.get('fitsize')) {
                p.pos = p.scroll + p.clientSize - p.marginMax - p.get('wsize');
            } else { // image larger than viewport
                p.pos = p.scroll + p.marginMin;
                if (!moveOnly && allowReduce) p.size = p.get(dim == 'y' ? 'fitsize' : 'maxsize');
            }           
        }
        
        if (!moveOnly && p.size < p.minSize) {
            p.size = p.minSize;
            allowReduce = false;
        }
        
    
        
    if (p.pos < p.marginMin) {
        var tmpMin = p.pos;
        p.pos = p.marginMin; 
        
        if (allowReduce && !moveOnly) p.size = p.size - (p.pos - tmpMin);
        
    }
},

correctRatio : function(ratio) {
    var x = this.x, 
        y = this.y,
        changed = false,
        xSize = Math.min(x.full, x.size),
        ySize = Math.min(y.full, y.size),
        useBox = (this.useBox || hs.padToMinWidth);
    
    if (xSize / ySize > ratio) { // width greater
        xSize = ySize * ratio;
        if (xSize < x.minSize) { // below minWidth
            xSize = x.minSize;
            ySize = xSize / ratio;
        }
        changed = true;
    
    } else if (xSize / ySize < ratio) { // height greater
        ySize = xSize / ratio;
        changed = true;
    }
    
    if (hs.padToMinWidth && x.full < x.minSize) {
        x.imgSize = x.full;
        y.size = y.imgSize = y.full;
    } else if (this.useBox) {
        x.imgSize = xSize;
        y.imgSize = ySize;
    } else {
        x.size = xSize;
        y.size = ySize;
    }
    changed = this.fitOverlayBox(useBox ? null : ratio, changed);
    if (useBox && y.size < y.imgSize) {
        y.imgSize = y.size;
        x.imgSize = y.size * ratio;
    }
    if (changed || useBox) {
        x.pos = x.tpos - x.cb + x.tb;
        x.minSize = x.size;
        this.justify(x, true);
    
        y.pos = y.tpos - y.cb + y.tb;
        y.minSize = y.size;
        this.justify(y, true);
        if (this.overlayBox) this.sizeOverlayBox();
    }
},
fitOverlayBox : function(ratio, changed) {
    var x = this.x, y = this.y;
    if (this.overlayBox && (this.isImage || this.allowHeightReduction)) {
        while (y.size > this.minHeight && x.size > this.minWidth 
                &&  y.get('wsize') > y.get('fitsize')) {
            y.size -= 10;
            if (ratio) x.size = y.size * ratio;
            this.sizeOverlayBox(0, 1);
            changed = true;
        }
    }
    return changed;
},

show : function () {
    var x = this.x, y = this.y;
    this.doShowHide('hidden');
    
    // Apply size change
    this.changeSize(
        1, {
            wrapper: {
                width : x.get('wsize'),
                height : y.get('wsize'),
                left: x.pos,
                top: y.pos
            },
            content: {
                left: x.p1 + x.get('imgPad'),
                top: y.p1 + y.get('imgPad'),
                width:x.imgSize ||x.size,
                height:y.imgSize ||y.size
            }
        },
        hs.expandDuration
    );
},

changeSize : function(up, to, dur) {
    
    if (this.outline && !this.outlineWhileAnimating) {
        if (up) this.outline.setPosition();
        else this.outline.destroy(
                (this.isHtml && this.preserveContent));
    }
    
    
    if (!up) this.destroyOverlays();
    
    var exp = this,
        x = exp.x,
        y = exp.y,
        easing = this.easing;
    if (!up) easing = this.easingClose || easing;
    var after = up ?
        function() {
                
            if (exp.outline) exp.outline.table.style.visibility = "visible";
            setTimeout(function() {
                exp.afterExpand();
            }, 50);
        } :
        function() {
            exp.afterClose();
        };
    if (up) hs.setStyles( this.wrapper, {
        width: x.t +'px',
        height: y.t +'px'
    });
    if (up && this.isHtml) {
        hs.setStyles(this.wrapper, {
            left: (x.tpos - x.cb + x.tb) +'px',
            top: (y.tpos - y.cb + y.tb) +'px'
        });
    }
    if (this.fadeInOut) {
        hs.setStyles(this.wrapper, { opacity: up ? 0 : 1 });
        hs.extend(to.wrapper, { opacity: up });
    }
    hs.animate( this.wrapper, to.wrapper, {
        duration: dur,
        easing: easing,
        step: function(val, args) {
            if (exp.outline && exp.outlineWhileAnimating && args.prop == 'top') {
                var fac = up ? args.pos : 1 - args.pos;
                var pos = {
                    w: x.t + (x.get('wsize') - x.t) * fac,
                    h: y.t + (y.get('wsize') - y.t) * fac,
                    x: x.tpos + (x.pos - x.tpos) * fac,
                    y: y.tpos + (y.pos - y.tpos) * fac
                };
                exp.outline.setPosition(pos, 0, 1);             
            }
            if (exp.isHtml) {   
                if (args.prop == 'left') 
                    exp.mediumContent.style.left = (x.pos - val) +'px';
                if (args.prop == 'top') 
                    exp.mediumContent.style.top = (y.pos - val) +'px';
            }
        }
    });
    hs.animate( this.content, to.content, dur, easing, after);
    if (up) {
        this.wrapper.style.visibility = 'visible';
        this.content.style.visibility = 'visible';
        if (this.isHtml) this.innerContent.style.visibility = 'visible';
        this.a.className += ' highslide-active-anchor';
    }
},




afterExpand : function() {
    this.isExpanded = true; 
    this.focus();
    
    if (this.isHtml && this.objectLoadTime == 'after') this.writeExtendedContent();
    if (this.iframe) {
        try {
            var exp = this,
                doc = this.iframe.contentDocument || this.iframe.contentWindow.document;
            hs.addEventListener(doc, 'mousedown', function () {
                if (hs.focusKey != exp.key) exp.focus();
            });
        } catch(e) {}
        if (hs.ie && typeof this.isClosing != 'boolean') // first open 
            this.iframe.style.width = (this.objectWidth - 1) +'px'; // hasLayout
    }
    if (hs.upcoming && hs.upcoming == this.a) hs.upcoming = null;
    this.prepareNextOutline();
    var p = hs.page, mX = hs.mouse.x + p.scrollLeft, mY = hs.mouse.y + p.scrollTop;
    this.mouseIsOver = this.x.pos < mX && mX < this.x.pos + this.x.get('wsize')
        && this.y.pos < mY && mY < this.y.pos + this.y.get('wsize');    
    if (this.overlayBox) this.showOverlays();
    
},


prepareNextOutline : function() {
    var key = this.key;
    var outlineType = this.outlineType;
    new hs.Outline(outlineType, 
        function () { try { hs.expanders[key].preloadNext(); } catch (e) {} });
},


preloadNext : function() {
    var next = this.getAdjacentAnchor(1);
    if (next && next.onclick.toString().match(/hs\.expand/)) 
        var img = hs.createElement('img', { src: hs.getSrc(next) });
},


getAdjacentAnchor : function(op) {
    var current = this.getAnchorIndex(), as = hs.anchors.groups[this.slideshowGroup || 'none'];
    
    /*< ? if ($cfg->slideshow) : ?>s*/
    if (!as[current + op] && this.slideshow && this.slideshow.repeat) {
        if (op == 1) return as[0];
        else if (op == -1) return as[as.length-1];
    }
    /*< ? endif ?>s*/
    return as[current + op] || null;
},

getAnchorIndex : function() {
    var arr = hs.getAnchors().groups[this.slideshowGroup || 'none'];
    if (arr) for (var i = 0; i < arr.length; i++) {
        if (arr[i] == this.a) return i; 
    }
    return null;
},


cancelLoading : function() {
    hs.discardElement (this.wrapper);
    hs.expanders[this.key] = null;
    if (this.loading) hs.loading.style.left = '-9999px';
},

writeCredits : function () {
    this.credits = hs.createElement('a', {
        href: hs.creditsHref,
        target: hs.creditsTarget,
        className: 'highslide-credits',
        innerHTML: hs.lang.creditsText,
        title: hs.lang.creditsTitle
    });
    this.createOverlay({ 
        overlayId: this.credits, 
        position: this.creditsPosition || 'top left' 
    });
},

getInline : function(types, addOverlay) {
    for (var i = 0; i < types.length; i++) {
        var type = types[i], s = null;
        if (!this[type +'Id'] && this.thumbsUserSetId)  
            this[type +'Id'] = type +'-for-'+ this.thumbsUserSetId;
        if (this[type +'Id']) this[type] = hs.getNode(this[type +'Id']);
        if (!this[type] && !this[type +'Text'] && this[type +'Eval']) try {
            s = eval(this[type +'Eval']);
        } catch (e) {}
        if (!this[type] && this[type +'Text']) {
            s = this[type +'Text'];
        }
        if (!this[type] && !s) {
            this[type] = hs.getNode(this.a['_'+ type + 'Id']);
            if (!this[type]) {
                var next = this.a.nextSibling;
                while (next && !hs.isHsAnchor(next)) {
                    if ((new RegExp('highslide-'+ type)).test(next.className || null)) {
                        if (!next.id) this.a['_'+ type + 'Id'] = next.id = 'hsId'+ hs.idCounter++;
                        this[type] = hs.getNode(next.id);
                        break;
                    }
                    next = next.nextSibling;
                }
            }
        }
        
        if (!this[type] && s) this[type] = hs.createElement('div', 
                { className: 'highslide-'+ type, innerHTML: s } );
        
        if (addOverlay && this[type]) {
            var o = { position: (type == 'heading') ? 'above' : 'below' };
            for (var x in this[type+'Overlay']) o[x] = this[type+'Overlay'][x];
            o.overlayId = this[type];
            this.createOverlay(o);
        }
    }
},


// on end move and resize
doShowHide : function(visibility) {
    if (hs.hideSelects) this.showHideElements('SELECT', visibility);
    if (hs.hideIframes) this.showHideElements('IFRAME', visibility);
    if (hs.geckoMac) this.showHideElements('*', visibility);
},
showHideElements : function (tagName, visibility) {
    var els = document.getElementsByTagName(tagName);
    var prop = tagName == '*' ? 'overflow' : 'visibility';
    for (var i = 0; i < els.length; i++) {
        if (prop == 'visibility' || (document.defaultView.getComputedStyle(
                els[i], "").getPropertyValue('overflow') == 'auto'
                || els[i].getAttribute('hidden-by') != null)) {
            var hiddenBy = els[i].getAttribute('hidden-by');
            if (visibility == 'visible' && hiddenBy) {
                hiddenBy = hiddenBy.replace('['+ this.key +']', '');
                els[i].setAttribute('hidden-by', hiddenBy);
                if (!hiddenBy) els[i].style[prop] = els[i].origProp;
            } else if (visibility == 'hidden') { // hide if behind
                var elPos = hs.getPosition(els[i]);
                elPos.w = els[i].offsetWidth;
                elPos.h = els[i].offsetHeight;
            
                
                    var clearsX = (elPos.x + elPos.w < this.x.get('opos') 
                        || elPos.x > this.x.get('opos') + this.x.get('osize'));
                    var clearsY = (elPos.y + elPos.h < this.y.get('opos') 
                        || elPos.y > this.y.get('opos') + this.y.get('osize'));
                var wrapperKey = hs.getWrapperKey(els[i]);
                if (!clearsX && !clearsY && wrapperKey != this.key) { // element falls behind image
                    if (!hiddenBy) {
                        els[i].setAttribute('hidden-by', '['+ this.key +']');
                        els[i].origProp = els[i].style[prop];
                        els[i].style[prop] = 'hidden';
                        
                    } else if (hiddenBy.indexOf('['+ this.key +']') == -1) {
                        els[i].setAttribute('hidden-by', hiddenBy + '['+ this.key +']');
                    }
                } else if ((hiddenBy == '['+ this.key +']' || hs.focusKey == wrapperKey)
                        && wrapperKey != this.key) { // on move
                    els[i].setAttribute('hidden-by', '');
                    els[i].style[prop] = els[i].origProp || '';
                } else if (hiddenBy && hiddenBy.indexOf('['+ this.key +']') > -1) {
                    els[i].setAttribute('hidden-by', hiddenBy.replace('['+ this.key +']', ''));
                }
                        
            }
        }
    }
},

focus : function() {
    this.wrapper.style.zIndex = hs.zIndexCounter += 2;
    // blur others
    for (var i = 0; i < hs.expanders.length; i++) {
        if (hs.expanders[i] && i == hs.focusKey) {
            var blurExp = hs.expanders[i];
            blurExp.content.className += ' highslide-'+ blurExp.contentType +'-blur';
            if (blurExp.isImage) {
                blurExp.content.style.cursor = hs.ie ? 'hand' : 'pointer';
                blurExp.content.title = hs.lang.focusTitle; 
            }
        }
    }
    
    // focus this
    if (this.outline) this.outline.table.style.zIndex 
        = this.wrapper.style.zIndex - 1;
    this.content.className = 'highslide-'+ this.contentType;
    if (this.isImage) {
        this.content.title = hs.lang.restoreTitle;
        
        if (hs.restoreCursor) {
            hs.styleRestoreCursor = window.opera ? 'pointer' : 'url('+ hs.graphicsDir + hs.restoreCursor +'), pointer';
            if (hs.ie && hs.uaVersion < 6) hs.styleRestoreCursor = 'hand';
            this.content.style.cursor = hs.styleRestoreCursor;
        }
    }
    hs.focusKey = this.key; 
    hs.addEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);    
},
moveTo: function(x, y) {
    this.x.setPos(x);
    this.y.setPos(y);
},
resize : function (e) {
    var w, h, r = e.width / e.height;
    w = Math.max(e.width + e.dX, Math.min(this.minWidth, this.x.full));
    if (this.isImage && Math.abs(w - this.x.full) < 12) w = this.x.full;
    h = this.isHtml ? e.height + e.dY : w / r;
    if (h < Math.min(this.minHeight, this.y.full)) {
        h = Math.min(this.minHeight, this.y.full);
        if (this.isImage) w = h * r;
    }
    this.resizeTo(w, h);
},
resizeTo: function(w, h) {
    this.y.setSize(h);
    this.x.setSize(w);
    this.wrapper.style.height = this.y.get('wsize') +'px';
},

close : function() {
    if (this.isClosing || !this.isExpanded) return;
    this.isClosing = true;
    
    hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
    
    try {
        if (this.isHtml) this.htmlPrepareClose();
        this.content.style.cursor = 'default';
        this.changeSize(
            0, {
                wrapper: {
                    width : this.x.t,
                    height : this.y.t,
                    left: this.x.tpos - this.x.cb + this.x.tb,
                    top: this.y.tpos - this.y.cb + this.y.tb
                },
                content: {
                    left: 0,
                    top: 0,
                    width: this.x.t,
                    height: this.y.t
                }
            }, hs.restoreDuration
        );
    } catch (e) { this.afterClose(); }
},

htmlPrepareClose : function() {
    if (hs.geckoMac) { // bad redraws
        if (!hs.mask) hs.mask = hs.createElement('div', null, 
            { position: 'absolute' }, hs.container);
        hs.setStyles(hs.mask, { width: this.x.size +'px', height: this.y.size +'px', 
            left: this.x.pos +'px', top: this.y.pos +'px', display: 'block' });         
    }
    if (this.objectType == 'swf') try { hs.$(this.body.id).StopPlay(); } catch (e) {}
    
    if (this.objectLoadTime == 'after' && !this.preserveContent) this.destroyObject();      
    if (this.scrollerDiv && this.scrollerDiv != this.scrollingContent) 
        this.scrollerDiv.style.overflow = 'hidden';
},

destroyObject : function () {
    if (hs.ie && this.iframe)
        try { this.iframe.contentWindow.document.body.innerHTML = ''; } catch (e) {}
    if (this.objectType == 'swf') swfobject.removeSWF(this.body.id);
    this.body.innerHTML = '';
},

sleep : function() {
    if (this.outline) this.outline.table.style.display = 'none';
    this.releaseMask = null;
    this.wrapper.style.display = 'none';
    hs.push(hs.sleeping, this);
},

awake : function() {try {
    
    hs.expanders[this.key] = this;
    
    if (!hs.allowMultipleInstances &&hs.focusKey != this.key) { 
        try { hs.expanders[hs.focusKey].close(); } catch (e){}
    }
    
    var z = hs.zIndexCounter++, stl = { display: '', zIndex: z };
    hs.setStyles (this.wrapper, stl);
    this.isClosing = false;
    
    var o = this.outline || 0;
    if (o) {
        if (!this.outlineWhileAnimating) stl.visibility = 'hidden';
        hs.setStyles (o.table, stl);        
    }
        
    this.show();
} catch (e) {}


},

createOverlay : function (o) {
    var el = o.overlayId;
    if (typeof el == 'string') el = hs.getNode(el);
    if (o.html) el = hs.createElement('div', { innerHTML: o.html });
    if (!el || typeof el == 'string') return;
    el.style.display = 'block';
    this.genOverlayBox();
    var width = o.width && /^[0-9]+(px|%)$/.test(o.width) ? o.width : 'auto';
    if (/^(left|right)panel$/.test(o.position) && !/^[0-9]+px$/.test(o.width)) width = '200px';
    var overlay = hs.createElement(
        'div', {
            id: 'hsId'+ hs.idCounter++,
            hsId: o.hsId
        }, {
            position: 'absolute',
            visibility: 'hidden',
            width: width,
            direction: hs.lang.cssDirection || '',
            opacity: 0
        },this.overlayBox,
        true
    );
    
    overlay.appendChild(el);
    hs.extend(overlay, {
        opacity: 1,
        offsetX: 0,
        offsetY: 0,
        dur: (o.fade === 0 || o.fade === false || (o.fade == 2 && hs.ie)) ? 0 : 250
    });
    hs.extend(overlay, o);
        
    if (this.gotOverlays) {
        this.positionOverlay(overlay);
        if (!overlay.hideOnMouseOut || this.mouseIsOver) 
            hs.animate(overlay, { opacity: overlay.opacity }, overlay.dur);
    }
    hs.push(this.overlays, hs.idCounter - 1);
},
positionOverlay : function(overlay) {
    var p = overlay.position || 'middle center',
        offX = overlay.offsetX,
        offY = overlay.offsetY;
    if (overlay.parentNode != this.overlayBox) this.overlayBox.appendChild(overlay);
    if (/left$/.test(p)) overlay.style.left = offX +'px'; 
    
    if (/center$/.test(p))  hs.setStyles (overlay, { 
        left: '50%',
        marginLeft: (offX - Math.round(overlay.offsetWidth / 2)) +'px'
    }); 
    
    if (/right$/.test(p)) overlay.style.right = - offX +'px';
        
    if (/^leftpanel$/.test(p)) { 
        hs.setStyles(overlay, {
            right: '100%',
            marginRight: this.x.cb +'px',
            top: - this.y.cb +'px',
            bottom: - this.y.cb +'px',
            overflow: 'auto'
        });      
        this.x.p1 = overlay.offsetWidth;
    
    } else if (/^rightpanel$/.test(p)) {
        hs.setStyles(overlay, {
            left: '100%',
            marginLeft: this.x.cb +'px',
            top: - this.y.cb +'px',
            bottom: - this.y.cb +'px',
            overflow: 'auto'
        });
        this.x.p2 = overlay.offsetWidth;
    }

    if (/^top/.test(p)) overlay.style.top = offY +'px'; 
    if (/^middle/.test(p))  hs.setStyles (overlay, { 
        top: '50%', 
        marginTop: (offY - Math.round(overlay.offsetHeight / 2)) +'px'
    }); 
    if (/^bottom/.test(p)) overlay.style.bottom = - offY +'px';
    if (/^above$/.test(p)) {
        hs.setStyles(overlay, {
            left: (- this.x.p1 - this.x.cb) +'px',
            right: (- this.x.p2 - this.x.cb) +'px',
            bottom: '100%',
            marginBottom: this.y.cb +'px',
            width: 'auto'
        });
        this.y.p1 = overlay.offsetHeight;
    
    } else if (/^below$/.test(p)) {
        hs.setStyles(overlay, {
            position: 'relative',
            left: (- this.x.p1 - this.x.cb) +'px',
            right: (- this.x.p2 - this.x.cb) +'px',
            top: '100%',
            marginTop: this.y.cb +'px',
            width: 'auto'
        });
        this.y.p2 = overlay.offsetHeight;
        overlay.style.position = 'absolute';
    }
},

getOverlays : function() {  
    this.getInline(['heading', 'caption'], true);
    if (this.heading && this.dragByHeading) this.heading.className += ' highslide-move';
    if (hs.showCredits) this.writeCredits();
    for (var i = 0; i < hs.overlays.length; i++) {
        var o = hs.overlays[i], tId = o.thumbnailId, sg = o.slideshowGroup;
        if ((!tId && !sg) || (tId && tId == this.thumbsUserSetId)
                || (sg && sg === this.slideshowGroup)) {
            if (this.isImage || (this.isHtml && o.useOnHtml))
            this.createOverlay(o);
        }
    }
    var os = [];
    for (var i = 0; i < this.overlays.length; i++) {
        var o = hs.$('hsId'+ this.overlays[i]);
        if (/panel$/.test(o.position)) this.positionOverlay(o);
        else hs.push(os, o);
    }
    for (var i = 0; i < os.length; i++) this.positionOverlay(os[i]);
    this.gotOverlays = true;
},
genOverlayBox : function() {
    if (!this.overlayBox) this.overlayBox = hs.createElement (
        'div', {
            className: this.wrapperClassName
        }, {
            position : 'absolute',
            width: (this.x.size || (this.useBox ? this.width : null) 
                || this.x.full) +'px',
            height: (this.y.size || this.y.full) +'px',
            visibility : 'hidden',
            overflow : 'hidden',
            zIndex : hs.ie ? 4 : 'auto'
        },
        hs.container,
        true
    );
},
sizeOverlayBox : function(doWrapper, doPanels) {
    var overlayBox = this.overlayBox, 
        x = this.x,
        y = this.y;
    hs.setStyles( overlayBox, {
        width: x.size +'px', 
        height: y.size +'px'
    });
    if (doWrapper || doPanels) {
        for (var i = 0; i < this.overlays.length; i++) {
            var o = hs.$('hsId'+ this.overlays[i]);
            var ie6 = (hs.ieLt7 || document.compatMode == 'BackCompat');
            if (o && /^(above|below)$/.test(o.position)) {
                if (ie6) {
                    o.style.width = (overlayBox.offsetWidth + 2 * x.cb
                        + x.p1 + x.p2) +'px';
                }
                y[o.position == 'above' ? 'p1' : 'p2'] = o.offsetHeight;
            }
            if (o && ie6 && /^(left|right)panel$/.test(o.position)) {
                o.style.height = (overlayBox.offsetHeight + 2* y.cb) +'px';
            }
        }
    }
    if (doWrapper) {
        hs.setStyles(this.content, {
            top: y.p1 +'px'
        });
        hs.setStyles(overlayBox, {
            top: (y.p1 + y.cb) +'px'
        });
    }
},

showOverlays : function() {
    var b = this.overlayBox;
    b.className = '';
    hs.setStyles(b, {
        top: (this.y.p1 + this.y.cb) +'px',
        left: (this.x.p1 + this.x.cb) +'px',
        overflow : 'visible'
    });
    if (hs.safari) b.style.visibility = 'visible';
    this.wrapper.appendChild (b);
    for (var i = 0; i < this.overlays.length; i++) {
        var o = hs.$('hsId'+ this.overlays[i]);
        o.style.zIndex = 4;
        if (!o.hideOnMouseOut || this.mouseIsOver) {
            o.style.visibility = 'visible';
            hs.setStyles(o, { visibility: 'visible', display: '' });
            hs.animate(o, { opacity: o.opacity }, o.dur);
        }
    }
},

destroyOverlays : function() {
    if (!this.overlays.length) return;
    if (this.isHtml && this.preserveContent) {
        this.overlayBox.style.top = '-9999px';
        hs.container.appendChild(this.overlayBox);
    } else
    hs.discardElement(this.overlayBox);
},



createFullExpand : function () {
    this.fullExpandLabel = hs.createElement(
        'a', {
            href: 'javascript:hs.expanders['+ this.key +'].doFullExpand();',
            title: hs.lang.fullExpandTitle,
            className: 'highslide-full-expand'
        }
    );
    
    this.createOverlay({ 
        overlayId: this.fullExpandLabel, 
        position: hs.fullExpandPosition, 
        hideOnMouseOut: true, 
        opacity: hs.fullExpandOpacity
    });
},

doFullExpand : function () {
    try {
        if (this.fullExpandLabel) hs.discardElement(this.fullExpandLabel);
        
        this.focus();
        var xSize = this.x.size;
        this.resizeTo(this.x.full, this.y.full);
        
        var xpos = this.x.pos - (this.x.size - xSize) / 2;
        if (xpos < hs.marginLeft) xpos = hs.marginLeft;
        
        this.moveTo(xpos, this.y.pos);
        this.doShowHide('hidden');
    
    } catch (e) {
        this.error(e);
    }
},


afterClose : function () {
    this.a.className = this.a.className.replace('highslide-active-anchor', '');
    
    this.doShowHide('visible'); 
    
    if (this.isHtml && this.preserveContent) {
        this.sleep();
    } else {
        if (this.outline && this.outlineWhileAnimating) this.outline.destroy();
    
        hs.discardElement(this.wrapper);
    }
    if (hs.mask) hs.mask.style.display = 'none';
    
    hs.expanders[this.key] = null;      
    hs.reOrder();
}

};


// hs.Ajax object prototype
hs.Ajax = function (a, content, pre) {
    this.a = a;
    this.content = content;
    this.pre = pre;
};

hs.Ajax.prototype = {
run : function () {
    var xhr;
    if (!this.src) this.src = hs.getSrc(this.a);
    if (this.src.match('#')) {
        var arr = this.src.split('#');
        this.src = arr[0];
        this.id = arr[1];
    }
    if (hs.cachedGets[this.src]) {
        this.cachedGet = hs.cachedGets[this.src];
        if (this.id) this.getElementContent();
        else this.loadHTML();
        return;
    }
    try { xhr = new XMLHttpRequest(); }
    catch (e) {
        try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); }
        catch (e) {
            try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
            catch (e) { this.onError(); }
        }
    }
    var pThis = this; 
    xhr.onreadystatechange = function() {
        if(pThis.xhr.readyState == 4) {
            if (pThis.id) pThis.getElementContent();
            else pThis.loadHTML();
        }
    };
    var src = this.src;
    this.xhr = xhr;
    if (hs.forceAjaxReload) 
        src = src.replace(/$/, (/\?/.test(src) ? '&' : '?') +'dummy='+ (new Date()).getTime());
    xhr.open('GET', src, true);
    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.send(null);
},

getElementContent : function() {
    hs.init();
    var attribs = window.opera || hs.ie6SSL ? { src: 'about:blank' } : null;
    
    this.iframe = hs.createElement('iframe', attribs, 
        { position: 'absolute', top: '-9999px' }, hs.container);
        
    this.loadHTML();
},

loadHTML : function() {
    var s = this.cachedGet || this.xhr.responseText,
        regBody;
    if (this.pre) hs.cachedGets[this.src] = s;
    if (!hs.ie || hs.uaVersion >= 5.5) {
        s = s.replace(new RegExp('<link[^>]*>', 'gi'), '')
            .replace(new RegExp('<script[^>]*>.*?</script>', 'gi'), '');
        if (this.iframe) {
            var doc = this.iframe.contentDocument;
            if (!doc && this.iframe.contentWindow) doc = this.iframe.contentWindow.document;
            if (!doc) { // Opera
                var pThis = this;
                setTimeout(function() { pThis.loadHTML(); }, 25);
                return;
            }
            doc.open();
            doc.write(s);
            doc.close();
            try { s = doc.getElementById(this.id).innerHTML; } catch (e) {
                try { s = this.iframe.document.getElementById(this.id).innerHTML; } catch (e) {} // opera
            }
            hs.discardElement(this.iframe);
        } else {
            regBody = /(<body[^>]*>|<\/body>)/ig;
            
            if (regBody.test(s)) s = s.split(regBody)[hs.ie ? 1 : 2];
        }
    }
    hs.getElementByClass(this.content, 'DIV', 'highslide-body').innerHTML = s;
    this.onLoad();
    for (var x in this) this[x] = null;
}
};
hs.langDefaults = hs.lang;
// history
var HsExpander = hs.Expander;
if (hs.ie) {
    (function () {
        try {
            document.documentElement.doScroll('left');
        } catch (e) {
            setTimeout(arguments.callee, 50);
            return;
        }
        hs.ready();
    })();
}
hs.addEventListener(document, 'DOMContentLoaded', hs.ready);
hs.addEventListener(window, 'load', hs.ready);

// set handlers
hs.addEventListener(document, 'ready', function() {
    if (hs.expandCursor) {
        var style = hs.createElement('style', { type: 'text/css' }, null, 
            document.getElementsByTagName('HEAD')[0]);
            
        function addRule(sel, dec) {        
            if (!hs.ie) {
                style.appendChild(document.createTextNode(sel + " {" + dec + "}"));
            } else {
                var last = document.styleSheets[document.styleSheets.length - 1];
                if (typeof(last.addRule) == "object") last.addRule(sel, dec);
            }
        }
        function fix(prop) {
            return 'expression( ( ( ignoreMe = document.documentElement.'+ prop +
                ' ? document.documentElement.'+ prop +' : document.body.'+ prop +' ) ) + \'px\' );';
        }
        if (hs.expandCursor) addRule ('.highslide img', 
            'cursor: url('+ hs.graphicsDir + hs.expandCursor +'), pointer !important;');
    }
});
hs.addEventListener(window, 'resize', function() {
    hs.getPageSize();
});
hs.addEventListener(document, 'mousemove', function(e) {
    hs.mouse = { x: e.clientX, y: e.clientY };
});
hs.addEventListener(document, 'mousedown', hs.mouseClickHandler);
hs.addEventListener(document, 'mouseup', hs.mouseClickHandler);

hs.addEventListener(document, 'ready', hs.getAnchors);
hs.addEventListener(window, 'load', hs.preloadImages);
hs.addEventListener(window, 'load', hs.preloadAjax);
}


             /*
 * jQuery ifixpng plugin
 * (previously known as pngfix)
 * Version 2.1  (23/04/2008)
 * @requires jQuery v1.1.3 or above
 *
 * Examples at: http://jquery.khurshid.com
 * Copyright (c) 2007 Kush M.
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
 
 /**
  *
  * @example
  *
  * optional if location of pixel.gif if different to default which is images/pixel.gif
  * $.ifixpng('media/pixel.gif');
  *
  * $('img[@src$=.png], #panel').ifixpng();
  *
  * @apply hack to all png images and #panel which icluded png img in its css
  *
  * @name ifixpng
  * @type jQuery
  * @cat Plugins/Image
  * @return jQuery
  * @author jQuery Community
  */
  
var countries = {
    'Australia' : 'Australian',
    'United States' : 'American',
    'Canada' : 'Canadian',
    'Afghanistan' : 'Afghan',
    'Albania' : 'Albanian',
    'Algeria' : 'Algerian',
    'Andorra' : 'Andorran',
    'Angola' : 'Angolan',
    'Argentina' : 'Argentinian',
    'Armenia' : 'Armenian',
    'Austria' : 'Austrian',
    'Azerbaijan' : 'Azerbaijani',
    'Bahamas' : 'Bahamian',
    'Bahrain' : 'Bahraini',
    'Bangladesh' : 'Bangladeshi',
    'Barbados' : 'Barbadian',
    'Belarus' : 'Belorussian or Byelorussian',
    'Belgium' : 'Belgian',
    'Belize' : 'Belizian',
    'Benin' : 'Beninese',
    'Bhutan' : 'Bhutanese',
    'Bolivia' : 'Bolivian',
    'Bosnia-Herzegovina' : 'Bosnian',
    'Botswana' : 'Botswanan',
    'Brazil' : 'Brazilian',
    'Britain' : 'British',
    'Brunei' : 'Bruneian',
    'Bulgaria' : 'Bulgarian',
    'Burkina' : 'Burkinese',
    'Burma / Myanmar' : 'Burmese',
    'Burundi' : 'Burundian',
    'Cambodia' : 'Cambodian',
    'Cameroon' : 'Cameroonian',
    'Cape Verde Islands' : 'Cape Verdean',
    'Chad' : 'Chadian',
    'Chile' : 'Chilean',
    'China' : 'Chinese',
    'Colombia' : 'Colombian',
    'Congo' : 'Congolese',
    'Costa Rica' : 'Costa Rican',
    'Croatia' : 'Croat or Croatian',
    'Cuba' : 'Cuban',
    'Cyprus' : 'Cypriot',
    'Czech Republic' : 'Czech',
    'Denmark' : 'Danish',
    'Djibouti' : 'Djiboutian',
    'Dominica' : 'Dominican',
    'Dominican Republic' : 'Dominican',
    'Ecuador' : 'Ecuadorean',
    'Egypt' : 'Egyptian',
    'El Salvador' : 'Salvadorean',
    'England' : 'English',
    'Eritrea' : 'Eritrean',
    'Estonia' : 'Estonian',
    'Ethiopia' : 'Ethiopian',
    'Fiji' : 'Fijian',
    'Finland' : 'Finnish',
    'France' : 'French',
    'Gabon' : 'Gabonese',
    'Gambia' : 'Gambian',
    'Georgia' : 'Georgian',
    'Germany' : 'German',
    'Ghana' : 'Ghanaian',
    'Greece' : 'Greek',
    'Grenada' : 'Grenadian',
    'Guatemala' : 'Guatemalan',
    'Guinea' : 'Guinean',
    'Guyana' : 'Guyanese',
    'Haiti' : 'Haitian',
    'Holland' : 'Dutch',
    'Honduras' : 'Honduran',
    'Hungary' : 'Hungarian',
    'Iceland' : 'Icelandic',
    'India' : 'Indian',
    'Indonesia' : 'Indonesian',
    'Iran' : 'Iranian',
    'Iraq' : 'Iraqi',
    'Ireland' : 'Irish',
    'Israel' : 'Israeli',
    'Italy' : 'Italian',
    'Jamaica' : 'Jamaican',
    'Japan' : 'Japanese',
    'Jordan' : 'Jordanian',
    'Kazakhstan' : 'Kazakh',
    'Kenya' : 'Kenyan',
    'Kuwait' : 'Kuwaiti',
    'Laos' : 'Laotian',
    'Latvia' : 'Latvian',
    'Lebanon' : 'Lebanese',
    'Liberia' : 'Liberian',
    'Libya' : 'Libyan',
    'Liechtenstein' : '-',
    'Lithuania' : 'Lithuanian',
    'Luxembourg' : '-',
    'Macedonia' : 'Macedonian',
    'Madagascar' : 'Malagasay or Madagascan',
    'Malawi' : 'Malawian',
    'Malaysia' : 'Malaysian',
    'Maldives' : 'Maldivian',
    'Mali' : 'Malian',
    'Malta' : 'Maltese',
    'Mauritania' : 'Mauritanian',
    'Mauritius' : 'Mauritian',
    'Mexico' : 'Mexican',
    'Moldova' : 'Moldovan',
    'Monaco' : 'MonÃƒÂ©gasque or Monacan',
    'Mongolia' : 'Mongolian',
    'Montenegro' : 'Montenegrin',
    'Morocco' : 'Moroccan',
    'Mozambique' : 'Mozambican',
    'Myanmar see Burma' : '-',
    'Namibia' : 'Namibian',
    'Nepal' : 'Nepalese',
    'Netherlands' : 'Dutch',
    'New Zealand' : '-',
    'Nicaragua' : 'Nicaraguan',
    'Niger' : 'Nigerien',
    'Nigeria' : 'Nigerian',
    'North Korea' : 'North Korean',
    'Norway' : 'Norwegian',
    'Oman' : 'Omani',
    'Pakistan' : 'Pakistani',
    'Panama' : 'Panamanian',
    'Papua New Guinea' : 'Papua New Guinean or Guinean',
    'Paraguay' : 'Paraguayan',
    'Peru' : 'Peruvian',
    'the Philippines' : 'Philippine',
    'Poland' : 'Polish',
    'Portugal' : 'Portuguese',
    'Qatar' : 'Qatari',
    'Romania' : 'Romanian',
    'Russia' : 'Russian',
    'Rwanda' : 'Rwandan',
    'Saudi Arabia' : 'Saudi Arabian or Saudi',
    'Scotland' : 'Scottish',
    'Senegal' : 'Senegalese',
    'Serbia' : 'Serb or Serbian',
    'Seychelles, the' : 'Seychellois',
    'Sierra Leone' : 'Sierra Leonian',
    'Singapore' : 'Singaporean',
    'Slovakia' : 'Slovak',
    'Slovenia' : 'Slovene or Slovenian',
    'Solomon Islands' : '-',
    'Somalia' : 'Somali',
    'South Africa' : 'South African',
    'South Korea' : 'South Korean',
    'Spain' : 'Spanish',
    'Sri Lanka' : 'Sri Lankan',
    'Sudan' : 'Sudanese',
    'Suriname' : 'Surinamese',
    'Swaziland' : 'Swazi',
    'Sweden' : 'Swedish',
    'Switzerland' : 'Swiss',
    'Syria' : 'Syrian',
    'Taiwan' : 'Taiwanese',
    'Tajikistan' : 'Tajik or Tadjik',
    'Tanzania' : 'Tanzanian',
    'Thailand' : 'Thai',
    'Togo' : 'Togolese',
    'Trinidad and Tobago' : 'Trinidadian',
    'Tobagan/Tobagonian' : 'a Trinidadian',
    'Tunisia' : 'Tunisian',
    'Turkey' : 'Turkish',
    'Turkmenistan' : 'Turkmen or Turkoman',
    'Tuvali' : 'Tuvaluan',
    'Uganda' : 'Ugandan',
    'Ukraine' : 'Ukrainian',
    'United Arab Emirates (UAE)' : '-',
    'United Kingdom (UK)' : 'British',
    'Uruguay' : 'Uruguayan',
    'Uzbekistan' : 'Uzbek',
    'Vanuata' : 'Vanuatuan',
    'Vatican City' : '-',
    'Venezuela' : 'Venezuelan',
    'Vietnam' : 'Vietnamese',
    'Wales' : 'Welsh',
    'Western Samoa' : 'Western Samoan',
    'Yemen' : 'Yemeni',
    'Yugoslavia' : 'Yugoslav',
    'Zaire' : 'ZaÃƒÂ¯rean',
    'Zambia' : 'Zambian',
    'Zimbabwe' : 'Zimbabwean'   
};
 
(function($) {

    /**
     * helper variables and function
     */
    $.ifixpng = function(customPixel) {
        $.ifixpng.pixel = customPixel;
    };
    
    $.ifixpng.getPixel = function() {
        return $.ifixpng.pixel || 'http://apc.datacupboard.com/blank.gif';
    };
    
    var hack = {
        ltie7  : $.browser.msie && $.browser.version < 7,
        filter : function(src) {
            return "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true,sizingMethod=crop,src='"+src+"')";
        }
    };
    
    /**
     * Applies ie png hack to selected dom elements
     *
     * $('img[@src$=.png]').ifixpng();
     * @desc apply hack to all images with png extensions
     *
     * $('#panel, img[@src$=.png]').ifixpng();
     * @desc apply hack to element #panel and all images with png extensions
     *
     * @name ifixpng
     */
     
    $.fn.ifixpng = hack.ltie7 ? function() {
        return this.each(function() {
            var $$ = $(this);
            // in case rewriting urls
            var base = $('base').attr('href');
            if (base) {
                // remove anything after the last '/'
                base = base.replace(/\/[^\/]+$/,'/');
            }
            if ($$.is('img') || $$.is('input')) { // hack image tags present in dom
                if ($$.attr('src')) {
                    if ($$.attr('src').match(/.*\.png([?].*)?$/i)) { // make sure it is png image
                        // use source tag value if set 
                        var source = (base && $$.attr('src').search(/^(\/|http:)/i)) ? base + $$.attr('src') : $$.attr('src');
                        // apply filter
                        $$.css({filter:hack.filter(source), width:$$.width(), height:$$.height()})
                          .attr({src:$.ifixpng.getPixel()})
                          .positionFix();
                    }
                }
            } else { // hack png css properties present inside css
                var image = $$.css('backgroundImage');
                if (image.match(/^url\(["']?(.*\.png([?].*)?)["']?\)$/i)) {
                    image = RegExp.$1;
                    image = (base && image.substring(0,1)!='/') ? base + image : image;
                    $$.css({backgroundImage:'none', filter:hack.filter(image)})
                      .children().children().positionFix();
                }
            }
        });
    } : function() { return this; };
    
    /**
     * Removes any png hack that may have been applied previously
     *
     * $('img[@src$=.png]').iunfixpng();
     * @desc revert hack on all images with png extensions
     *
     * $('#panel, img[@src$=.png]').iunfixpng();
     * @desc revert hack on element #panel and all images with png extensions
     *
     * @name iunfixpng
     */
     
    $.fn.iunfixpng = hack.ltie7 ? function() {
        return this.each(function() {
            var $$ = $(this);
            var src = $$.css('filter');
            if (src.match(/src=["']?(.*\.png([?].*)?)["']?/i)) { // get img source from filter
                src = RegExp.$1;
                if ($$.is('img') || $$.is('input')) {
                    $$.attr({src:src}).css({filter:''});
                } else {
                    $$.css({filter:'', background:'url('+src+')'});
                }
            }
        });
    } : function() { return this; };
    
    /**
     * positions selected item relatively
     */
     
    $.fn.positionFix = function() {
        return this.each(function() {
            var $$ = $(this);
            var position = $$.css('position');
            if (position != 'absolute' && position != 'relative') {
                $$.css({position:'relative'});
            }
        });
    };

})(jQuery);


(function($) {
    jQuery.fn.backgroundPosition = function() {
        var p = $(this).css('background-position');
        if(typeof(p) === 'undefined') return $(this).css('background-position-x') + ' ' + $(this).css('background-position-y');
        else return p;
    };
})(jQuery);

String.prototype.toProperCase = function(){
  return this.toLowerCase().replace(/^(.)|\s(.)/g, 
      function($1) { return $1.toUpperCase(); });
}

function rgb2hex(rgb) {
 rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
 function hex(x) {
  hexDigits = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");
  return isNaN(x) ? "00" : hexDigits[(x - x % 16) / 16] + hexDigits[x % 16];
 }
 return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}

function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }

    return vars;
}



$(document).ready(function(){

if(jQuery.browser.mozilla && parseFloat(jQuery.browser.version) < 1.9){
    $("#menu_bar").css({width:'1060px'})
}
    
window.mini = {};   

window.gurl=getUrlVars()

window.winh = $(window).height();
window.minw = 800;

window.minime = function(){     
    $("body").addClass('mini');
    $("#body_b").height(355).css({overflow:'hidden'});
    $("#tabs").css({marginTop:'-50px'});
    $("#header").height(107);
    $("#header_a").css({top:'71px',height:'35px'});
    $("#menu_bar").css({paddingTop:'5px'});
    //$("#header_top .center").css({marginTop:'-10px'});
    $("#logo").css({top:'4px'});
    $("#search_panel").css({top:'8px'});
    
    $("#body_c").height(2);
    $("#body_d").height(56).css({backgroundPosition:'center -20px'}).unbind();
    $("#d_buttons")
        .height(56)
        .css({marginTop:'-20px'})
        .unbind();
        
    $("#d_links > div")
        .css({
            opacity:0,
            backgroundColor : '#D9DBDA',
            paddingTop : '5px',
            border: '1px solid #666',
            'border-top': '0px'})
       .mouseleave(function(){
            $(this).css({opacity:0})
        });
        
    var pos =  $("#body_d").position();
    if(pos){
        var $dlr = $("<div></div>").attr('id','d_links_resize').css({
            position : 'absolute',
            top : pos.top+20,
            width:'100%',
            zIndex : 100}).prependTo("#container");
        $("#d_links").css({width:'988px'}).prependTo($dlr);
    }
        
    $("#body_f").height(80);
    $("#f_footer").css({paddingTop:'5px'});
    
    $("#english_header").height(120);
    $("#english_header > h1").css({top:'8px'});
    $("#english_header > a").css({top:'14px'});
    
    $("#vocational_header").height(100);
    $("#vocational_header > h1").css({top:'4px'});
    $("#vocational_header > h2").css({top:'46px'});
    $("#vocational_header > a").css({top:'9px'});
    
    $("#apply_header").height(90);
    
    $("#apply_header > .center").height(90);
    
    $("#body.apply #internal_pages").css({marginTop:'-28px'})
    $("#formnav").css({paddingBottom:'16px'})
    $("#breadcrumb").css({marginTop:'16px'})
    $("#body.apply #breadcrumb").css({marginTop:'0px'})
    
    mini.resized = 1;
}

if(gurl.full!=1 && (winh<minw||gurl.full==2)){
    minime();
}

$(window).resize(function() {
    winh = $(window).height();
    if(gurl.full!=1 && (winh<minw||gurl.full==2)){
        minime();
    } else {
        if(winh>minw){
            if(mini.resized == 1 && mini.full != 1){
                mini.full = 1;
                window.location.href=window.location.href;
            }
        }
    }
});

    
    
    
    
//$(document).pngFix();
//$('.apc_content').find('div, a').ifixpng(); 
if(jQuery.browser.msie && jQuery.browser.version < 7){
    /*$('#form_back, #form_next, .boxtop, .boxbot, .tab_text_box, .menu, .flag_select, #menu, .menu1, .note, .error_note').ifixpng();*/
    $('#form_back, #form_next, .form_next, #video_overlay,.tab_text_box,.note, .error_note, .boxtop, .boxbot, .tab_text_box, div.menu, div.iebg').ifixpng();
}


jQuery.each(main_menu,function(no,menu){
    var m = $("<ul></ul>");
    jQuery.each(menu,function(i,val){
        var url = val.url;
        if( url.search("http") > 0 && url.search("www") > 0 ){
            url = val.url;
        } else {
            url = (val.url!='') ? '/'+val.url : val.url;
        }
        var menuitem = $('<li><a href="'+url+'">'+val.title+"</a></li>");
        if(val.submenu){
            
            var submenu = $("<ul></ul>");
            jQuery.each(val.submenu,function(si,sval){
                var surl = sval.url;
                if( surl.search("http") > 0 && surl.search("www") > 0 ){
                    surl = sval.url;
                } else {
                    surl = (sval.url!='') ? '/'+sval.url : sval.url;
                }
                submenu.append('<li><a href="'+surl+'">'+sval.title+"</a></li>");
            });
            if(val.title=='Social Club'){
                menuitem.css('float','right');
            }
            menuitem.find("a").append(submenu);
            if((i%2)==1){
                //menuitem.css('clear','both')
            }
        }
        m.append(menuitem);
    });
    if(jQuery.browser.msie && jQuery.browser.version < 7){
        $("div.menu").css({'padding-bottom':'40px'})
    }
    if(jQuery.browser.msie && jQuery.browser.version < 7){
        //$("#"+no).append($('<div class="menu '+no+'"></div>').addClass('iedieinafire').append(m));
        var b = $("<div class='iebg' style='height:100%;'><div style='float:none;clear:both'></div></div>").prepend(m);
        $("#body").append($('<div class="menu '+no+' iedieinafire"></div>').css({'top':'0px','padding-bottom':'20px'}).append(b));
        //$('div.iebg').ifixpng();
    } else {
        $("#"+no).append($('<div class="menu '+no+'"></div>').append(m));
    }
    $(".menu").each(function(i){
        var ele = $(this);
        ele.css({opacity:0}).show();
        var ul = ele.find('ul');
        ul.css({height:ul.height()+'px',position:'absolute',bottom:'4px',left:'0px',width:'391px'});
        ele.css({height:ul.height()+'px'});
        ele.data('height',ul.height()+'px');
        ele.find("div.iebg").css({height:(ul.height()+20)+'px'});
        ele.hide().css({opacity:null});
    });
})

    
    $("#menu_bar > a").hover(function(){
        if(jQuery.browser.msie && jQuery.browser.version < 7){
            $(".menu").hide();
            //$('div.iebg').ifixpng();
        }
        $(".menu").stop().slideUp()
        var p = $(this).position();
        var ele = $(this);
        var body_width = $("body").width();
        var menu = $("."+ele.attr('id'));
        
        if(menu.find('li').size()){ 
            var menu_width = menu.width();
            
            
            /*var menu_height = Math.round(menu.find("li").size()/2); // For IE 
            
            if(jQuery.browser.msie){
                menu.css({
                    'height' : (menu_height*24) + 10
                });
            } else {
                ele.append(menu);
            }
            */
            
            if((p.left+menu_width)>body_width){
                menu.css('left',body_width-menu_width);
            } else {
                menu.css({
                    'left' : p.left
                });
            }
            
            //menu.show();
            //menu.slideDown(400);
            if(jQuery.browser.msie && jQuery.browser.version < 7){
                menu.show();
            } else {
                menu
                    .css({height:0,'padding-top':null,'padding-left':null,'padding-right':null,'padding-bottom':null})
                    .animate({height:menu.data('height')},400,function(){
                        menu.css({'padding-top':null,'padding-left':null,'padding-right':null,'padding-bottom':null});
                    });
            }
            if(jQuery.browser.msie){
                $('.menu').ifixpng();
                $('.iebg').ifixpng();
            }
        }
    },function(){
        /*$("#menu").hide();*/
        if(!jQuery.browser.msie || (jQuery.browser.msie && jQuery.browser.version >= 7) ){
            //$(this).find(".menu").hide();
            $(this).find(".menu").slideUp();
        }
    });
    
    $("#menu_bar > a").each(function(){
        $(this).click(function(e){
            var menu = $("."+$(this).attr('id'));
            var href = '';
            e.preventDefault();
            if(menu.find('li').size()>0){
                if(e.target.tagName=='A'){
                    href = $(e.target).attr('href');
                    if(href.substr(-3,3).toLowerCase()=='pdf'){
                        window.open(href,'_blank');
                    } else {
                        window.location = href;
                    }
                    e.preventDefault();
                } else {
                    e.preventDefault();
                }
            } else {
                href = $(e.target).attr('href');
                window.location = href;
            }
        });
    });

    
    $(".menu").mouseleave(function(){
        $(this).hide();
    });
    $("#menu_bar > a").mouseleave(function(){
        if(!jQuery.browser.msie){
            $(".menu").hide();
        }
    });
    
    
    if(jQuery.browser.msie){
        $(".flag_select").css({'z-index':'1100','top':'20px','left':'50%','margin-left':'273px'}).appendTo("body");
    }
    
    $(".tab").toggle(function(){
        var tab = $(this);
        $(".tab").each(function(){
            var a = $(this).find(".tab_button");
            a.removeClass("active");
            //var bg = a.backgroundPosition().split(" ");
            //a.css('backgroundPosition', bg[0]+" 0px" );
        });
        $(".tab").animate({'width':'90px'}, 100, function(){        
            var a = tab.find(".tab_button");
            a.addClass("active");
            //var bg = a.backgroundPosition().split(" ");
            //a.css('backgroundPosition', bg[0]+" -405px" );
        });
        //$(".tab[rel='open']").stop().animate({'width':'90px'}, 510).attr('rel','');
        //tab.stop().animate({'width':'794px'}, 500);
        
        tab.animate({'width':'800px'}, 500);
        tab.attr('rel','open');
        return false;
    }, function(){
        var tab = $(this);
        if(tab.width() > 90){//attr('rel')=='open'){
            var a = tab.find(".tab_button");
            a.removeClass("active");
            //var bg = a.backgroundPosition().split(" ");
            //a.css('backgroundPosition', bg[0]+" 0px" );
            $(".tab").animate({'width':'90px'});
        } else {
            tab.click();
        }
    });
    
    /*
    $(".tab .tab_button").hover(function(){
        var a = $(this);
        var bg = a.backgroundPosition().split(" ");
        if(window.console.log){console.log(a.css('background-position'));}
        a.css('backgroundPosition', bg[0]+" -405px" );
    },function(){
        //console.log($(this).parent().parent().width());
        if($(this).parent().parent().width()<91){
            var a = $(this);
            var bg = a.backgroundPosition().split(" ");
            a.css('backgroundPosition', bg[0]+" 0px" );
        }
    })
    */
    
    var $p = $("div.prev");
    var $n = $("div.next");
    
    function currentImgLink(ele){
        img_no = ele.attr('id').substr(4)
        $(".nav_no").removeClass("current");
        $(".nav_no:contains('"+img_no+"')").addClass("current");
    }
    
    $p.click(function(){
        var next = $("#main_tab .slides:last");
        currentImgLink($("#main_tab .slides:last").prev());
        $("#main_tab .slides:last").animate({'opacity':0}, function(){
            next.prependTo($(".tab_images"));
            $("#main_tab .slides").css('opacity','100');
        });
    })
    
    $n.click(function(){
        var first = $("#main_tab .slides:first");
        var last = $("#main_tab .slides:last");
        first.css({'opacity':'100','left':'710px'}).appendTo($(".tab_images"));
        //var clone = last.clone();
        //clone.appendTo($(".tab_images"));
        //first.css('opacity','100');
        currentImgLink(first);
        //clone.animate({'opacity':0}, function(){
        //  clone.remove();
        //});
        first.animate({'left':0});
    })
    
    var newsScroll = setInterval(function(){
        $n.click();
        //$(".galnext").click();
    }, 6000);
    
    img_count = $(".tab_images img").size();
    for(i=0;i<img_count;i++){
        $(".tab_images .slides:eq("+(i)+")").attr("id","img_"+(i+1))
        var current = (i==img_count-1)?' current':'';
        var no = $("<div class=\"nav_no"+current+"\">"+(i+1)+"</div>"); 
        no.insertBefore($n);
        no.click(function(){
            $("#img_"+$(this).text()).appendTo($(".tab_images"));
            $(".nav_no").removeClass("current");
            $(this).addClass("current");
        });
    }
    
    $(".text_a:empty, .text_b:empty, .text_c:empty").remove();
    
    $(".tab_text_box a").click(function(){
        window.location = $(this).attr('href');
        return false;
    });

    $("#d_buttons a").hover(function(){
        $("#d_links ul").hide().parent().css({opacity:0});
        $("."+$(this)[0].id).find("ul").show().parent().css({opacity:1});//.css('opacity',1);
    },function(){
        /*$("."+$(this)[0].id).find("ul").hide();//css('opacity',0);*/
    });

    if(winh<minw){
        var $bodyd = $("#body_d");
        if($bodyd.size()>0){
            var pos = $bodyd.position();
            $("#d_links > div")
                .css({
                    opacity:0,
                    backgroundColor : '#D9DBDA',
                    paddingTop : '5px',
                    border: '1px solid #666',
                    'border-top': '0px'})
               .mouseleave(function(){
                    $(this).css({opacity:0})
                });
            $("#body_b").mouseenter(function(){
                $("#d_links > div").css({opacity:0});
            });
            $("#body_e").hoverIntent(function(){
                $("#d_links > div").css({opacity:0});
            },function(){})
            var $dlr = $("<div></div>").attr('id','d_links_resize').css({
                position : 'absolute',
                top : pos.top+20,
                width:'100%',
                zIndex : 100}).prependTo("#container");
            $("#d_links").css({width:'988px'}).prependTo($dlr);
        }
    } else {
    
        $("#d_links > div").each(function(i){
            $(this).find("ul").show();
            $(this).css('height',$(this).height());
            $(this).find("ul").hide();
        });
    
        $("#d_buttons a").hover(function(){
            $("#d_links ul").hide();
            $("."+$(this)[0].id).find("ul").show();//.css('opacity',1);
        },function(){
            /*$("."+$(this)[0].id).find("ul").hide();//css('opacity',0);*/
        });
        $("#body_d").hoverIntent(function(){
            $("#body_d").css('height','auto');
            //$("#d_buttons").css('height','6px');
            //$("#d_buttons a").css('height','6px');
        },function(){});
        $("#body_d").mouseleave(function(){
            /*$("#d_links > div").css('opacity',0);*/
            $("#body_d").css('height','97px');
            //$("#d_buttons").css('height','97px');
            //$("#d_buttons a").css('height','21px');
        });
    }
    
    /*$("#body_d").mouseenter(function(){
            $("#body_d").css('height','auto');
    });
    $("#body_d").mouseleave(function(){
        $("#body_d").css('height','97px');
    })*/
    
    gallery_image_count = $("#gallery_images img").size();
    
    $(".galnext").click(function(){
        $img = $("#gallery_images");
        imgpos = $img.position();
        if(imgpos.left>-((gallery_image_count*151+102)-588)){
            $img.animate({'left':(imgpos.left-151)+"px"},function(){
            });
        }
    })
    
    $(".galprev").click(function(){
        $img = $("#gallery_images");
        imgpos = $img.position();
        if(imgpos.left<-48){
            $img.animate({'left':(imgpos.left+151)+"px"},function(){
            });
        }
    });
    
    //$('#gallery_images a').lightBox({fixedNavigation:true});
    $('#gallery_overlay').click(function(event){
    })
    
    $("#apc_news ul").css({'top':"0px"});
    
    var newsScroll = '';
    
    function initNewsScroll(){
        newsScroll = setInterval(function(){
            var $news = $("#apc_news ul");
            var top = parseInt($("#apc_news ul").css('top'));
            //console.log(top+'>'+(-($news.height())+65));
            if(top>-($news.height())+65){
                $("#apc_news ul").animate({'top':(top-50)+"px"},1000);
            } else {
                $("#apc_news ul").css({'top':"0px"})
            }
        }, 5000);
    };
    
    initNewsScroll();
    
    $("#apc_news").mouseenter(function(){
        clearInterval(newsScroll);
    });
    $("#apc_news").mouseleave(function(){
        initNewsScroll();
        /*newsScroll = setInterval(function(){
            var $news = $("#apc_news ul");
            var top = parseInt($("#apc_news ul").css('top'));
            if(top>-($news.height())+65){
                $("#apc_news ul").animate({'top':(top-50)+"px"},1000)
            } else {
                $("#apc_news ul").css({'top':"0px"})
            }
        }, 5000);*/
    });
    
    
    var $td_currentPage = $("td.currentPage").parent().next().find("td");
    if(!$td_currentPage.hasClass("submenu")){
        $td_currentPage.css({"backgroundPosition":"0px -501px"});
    }
        
    
    $("#internal_menu td").hover(function(){
        var $td = $(this).parent().next().find("td");
        //if(!$td.hasClass("submenu")){
            $td.css({"backgroundPosition":"0px -501px"});
        //}
        $(this).find("a").removeClass("over").addClass("over");
    }, function(){
        if(!$(this).hasClass("currentPage")){
            if(!$(this).hasClass('nohover') && !$(this).parent().next().find("td").hasClass('menu_shadow') ){
                $(this).parent().next().find("td").css({"backgroundPosition":"0px 0px"});
            };
        }
        if(!$(this).hasClass("currentPage")){
            $(this).find("a").removeClass("over");
        }
    });
    
    
    
    $(".submenu > ul > li").hover(function(){
        var menu = $(this);
        menu.next().css({"backgroundPosition":"-8px -271px"});
        if(menu.children().size()){
            menu.find("ul").show();
        } else {
            menu.css({
                'background' : "url('../images/graphic_elements/int_menu_bg_over.png') repeat-y",
                'color' : '#fff'
            })
        }
    }, function(){
        var menu = $(this);
        menu.next().css({"backgroundPosition":"-8px 0px"});
        if(menu.children().size() && !menu.hasClass('currentPage')){
            menu.find("ul").hide();
        } else {
            menu.css({
                'background' : '',
                'color' : '#515e66'
            })
        }
    });
    

    $("#internal_tabs .int_tab_page:first").show().addClass("currentTab");

    $("#internal_tabs .int_right").each(function(){
         $(this).find(".content:first").show();
    });
    
    $(".apc_content .backtotop a").eq(0).addClass("blue");
    $("#apc_content_nav a").click(function(){
        $(".apc_content .backtotop a").removeClass("over");
        $($(this).attr('href')+" .backtotop a").addClass("over");
    });
    $(".backtotop a").click(function(){$(".apc_content .backtotop a").removeClass("over");});
    
    $(".int_menu a:first").addClass("current");
    $(".int_menu a").click(function(){
        currentIndex = $(this).prevAll().length;
        totalTabs = $(".currentTab .int_menu a").length;
        $(".int_menu a").removeClass("current");
        $(this).addClass("current");
        $(this).parent().parent().find(".content").hide();
        $(this).parent().parent().find(".content").eq(currentIndex).show();
        if(currentIndex+1==totalTabs){$("#int_right_arrow").hide();}else{$("#int_right_arrow").show();}
        if(currentIndex==0){$("#int_left_arrow").hide();}else{$("#int_left_arrow").show();}
        return false;
    })
    
    $("#tab_menu a").click(function(){
        currentTab($(this),0);
        if(window.edutour_tab!=undefined){ window.edutour_tab($(this)); }
        return false;
    });
    
    totalInitialTabs = $(".currentTab .int_menu a").length;
    $(".currentTab .int_menu a:first").addClass("current");
    if(totalInitialTabs>1){
        //$("#int_left_arrow").show();
        $("#int_right_arrow").show();
    } else {
        $("#int_left_arrow").hide();
        $("#int_right_arrow").hide();
    }
    
    $("#int_right_arrow").click(function(){
        currentIndex = $(".currentTab .int_menu a.current").prevAll().length;
        totalTabs = $(".currentTab .int_menu a").length;
        if(currentIndex+1<totalTabs){
            newtab = $(".currentTab .int_menu a.current").next();
        } else {
            newtab = $(".currentTab .int_menu a:first");
        }
        $(".currentTab .int_menu a").removeClass("current");
        newtab.addClass("current");
        newtab.parent().parent().find(".content").hide().eq(currentIndex+1).show();
        if(currentIndex+2==totalTabs){$("#int_right_arrow").hide();}else{$("#int_right_arrow").show();}
        if(currentIndex+2==0){$("#int_left_arrow").hide();}else{$("#int_left_arrow").show();}
    });
    
    $("#int_left_arrow").click(function(){
        currentIndex = $(".currentTab .int_menu a.current").prevAll().length;
        totalTabs = $(".currentTab .int_menu a").length;
        if(currentIndex>0){
            newtab = $(".currentTab .int_menu a.current").prev();
        } else {
            newtab = $(".currentTab .int_menu a:last");
        }
        $(".currentTab .int_menu a").removeClass("current");
        newtab.addClass("current");
        newtab.parent().parent().find(".content").hide().eq(currentIndex-1).show();
        if(currentIndex==totalTabs){$("#int_right_arrow").hide();}else{$("#int_right_arrow").show();}
        if(currentIndex==1){$("#int_left_arrow").hide();}else{$("#int_left_arrow").show();}
    });
    
    
    /*$("#int_right_arrow").click(function(){
        currentTab(null,+1);
    });
    
    $("#int_left_arrow").click(function(){
        currentTab(null,-1);
    });*/
    
    function currentTab(ele,dir){
        var $tabs = $("#internal_mid  .int_tab_page");
        var $tabmenu = $("#tab_menu a");
        var tab_count = $tabs.size();
        var current_tab = $("#tab_menu").find(".current").prevAll().length;
        
        $tabmenu.removeClass("current");
        $tabs.hide().removeClass("currentTab");
        
        var ele = ele;
        if(dir!=0){
            if(dir>0){
                if(current_tab<tab_count){
                    ele = $tabmenu.eq(current_tab+1);
                    current_tab++;
                }
            } else {
                if(current_tab>0){
                    ele = $tabmenu.eq(current_tab-1);
                    current_tab--;
                }
            }
        } else {
            current_tab = ele.prevAll().length;
        }
        if(current_tab==0){$("#int_left_arrow").hide()}else{$("#int_left_arrow").show()};
        $("#int_left_arrow").hide();
        if(current_tab==tab_count){$("#int_right_arrow").hide()}else{$("#int_right_arrow").show()};
        
        
        $("#current_int_tab").text(' » '+ele.text().toProperCase());
        $("#"+ele.attr('class')).show().addClass("currentTab");
        totalInitialTabs = $(".currentTab .int_menu a").length;
        $(".currentTab .int_menu a").removeClass("current");
        $(".currentTab .int_menu a:first").addClass("current");
        $(".currentTab .content").hide().eq(0).show();
        if(totalInitialTabs>1){
            //$("#int_left_arrow").show();
            $("#int_right_arrow").show();
        } else {
            $("#int_left_arrow").hide();
            $("#int_right_arrow").hide();
        }
        ele.addClass("current");
    }
    
    //Add Current Tab to the Breadcrumb
    $("#current_int_tab").text(
        $("#tab_menu > a.current").text()!=''
        ? ' » '+$("#tab_menu > a.current").text().toProperCase()
        : '');
    
    $("#current_lang").mouseenter(function(){
        $(".menu").hide();
        $(".flag_select").show();
        return false;
    });
    
    $(".flag_select").mouseleave(function(){
        $(".menu").hide();
        $(this).hide();
    });
    
    $("#search_panel input").focus(function(){
        var input = $(this);
        if(input.val()=='search'){
            input.val('');
        }
    });
    
    $("#f_footer a img").hover(function(){
        var img = $(this);
        img.attr('rel',img.attr('src'));
        var src = img.attr('src').split("/");
        var file = src[src.length-1].split(".");
        img.attr('src','/images/footer_sponsors/'+file[0]+"_over."+file[1]);
    },function(){
        var img = $(this);
        img.attr('src', img.attr('rel'));
    })
    
    
    
    $('.twocolumn').columnize({width:470,ignoreImageLoading:false,lastNeverTallest:false});
    
    $("#country_of_birth").change(function(){
        var nationality = countries[$("#country_of_birth option:selected").text()];
        //console.log(nationality)
        $("#nationality").val((nationality==undefined?'-':nationality));
    }); 
    
    $("ul.error").prepend("<li style=\"text-align:center;border-bottom:1px solid #fff;\"><strong>DEBUG ONLY</strong></li>");
    
});


