if (typeof wsmlMakeResourceUrl != "function")
  var wsmlMakeResourceUrl = function(u){return u;}; // TODO: remove when fixed - right now we need it for HighSlide when it's used in iframe
if (typeof WebCollage == 'undefined')
{
  if (typeof WebCollage == 'undefined')
    WebCollage = {plugins:{},  pageId: ("" + Math.random()).substr(2)};

  (function(){
  /**
   *  SWFObject v2.2 <http://code.google.com/p/swfobject/>
   *  is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
   */
  WebCollage.SWFObject22=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;if(typeof WebCollage.SWFObject22 != 'undefined'){for(var X in WebCollage.SWFObject22){WebCollage.SWFObject22[X]=null}}WebCollage.SWFObject22=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();
  })();




  /*
   * jQuery 1.2.6 - New Wave Javascript
   *
   * Copyright (c) 2008 John Resig (jquery.com)
   * Dual licensed under the MIT (MIT-LICENSE.txt)
   * and GPL (GPL-LICENSE.txt) licenses.
   *
   * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $
   * $Rev: 5685 $
   */
  (function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else
  return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else
  return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else
  selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i<max;i++){var option=options[i];if(option.selected){value=jQuery.browser.msie&&!option.attributes.value.specified?option.text:option.value;if(one)return value;values.push(value);}}return values;}else
  return(this[0].value||"").replace(/\r/g,"");}return undefined;}if(value.constructor==Number)value+='';return this.each(function(){if(this.nodeType!=1)return;if(value.constructor==Array&&/radio|checkbox/.test(this.type))this.checked=(jQuery.inArray(this.value,value)>=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else
  this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else
  return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else
  jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i<length;i++)if((options=arguments[i])!=null)for(var name in options){var src=target[name],copy=options[name];if(target===copy)continue;if(deep&&copy&&typeof copy=="object"&&!copy.nodeType)target[name]=jQuery.extend(deep,src||(copy.length!=null?[]:{}),copy);else if(copy!==undefined)target[name]=copy;}return target;};var expando="jQuery"+now(),uuid=0,windowData={},exclude=/z-?index|font-?weight|opacity|zoom|line-?height/i,defaultView=document.defaultView||{};jQuery.extend({noConflict:function(deep){window.$=_$;if(deep)window.jQuery=_jQuery;return jQuery;},isFunction:function(fn){return!!fn&&typeof fn!="string"&&!fn.nodeName&&fn.constructor!=Array&&/^[\s[]?function/.test(fn+"");},isXMLDoc:function(elem){return elem.documentElement&&!elem.body||elem.tagName&&elem.ownerDocument&&!elem.ownerDocument.body;},globalEval:function(data){data=jQuery.trim(data);if(data){var head=document.getElementsByTagName("head")[0]||document.documentElement,script=document.createElement("script");script.type="text/javascript";if(jQuery.browser.msie)script.text=data;else
  script.appendChild(document.createTextNode(data));head.insertBefore(script,head.firstChild);head.removeChild(script);}},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toUpperCase()==name.toUpperCase();},cache:{},data:function(elem,name,data){elem=elem==window?windowData:elem;var id=elem[expando];if(!id)id=elem[expando]=++uuid;if(name&&!jQuery.cache[id])jQuery.cache[id]={};if(data!==undefined)jQuery.cache[id][name]=data;return name?jQuery.cache[id][name]:id;},removeData:function(elem,name){elem=elem==window?windowData:elem;var id=elem[expando];if(name){if(jQuery.cache[id]){delete jQuery.cache[id][name];name="";for(name in jQuery.cache[id])break;if(!name)jQuery.removeData(elem);}}else{try{delete elem[expando];}catch(e){if(elem.removeAttribute)elem.removeAttribute(expando);}delete jQuery.cache[id];}},each:function(object,callback,args){var name,i=0,length=object.length;if(args){if(length==undefined){for(name in object)if(callback.apply(object[name],args)===false)break;}else
  for(;i<length;)if(callback.apply(object[i++],args)===false)break;}else{if(length==undefined){for(name in object)if(callback.call(object[name],name,object[name])===false)break;}else
  for(var value=object[0];i<length&&callback.call(value,i,value)!==false;value=object[++i]){}}return object;},prop:function(elem,value,type,i,name){if(jQuery.isFunction(value))value=value.call(elem,i);return value&&value.constructor==Number&&type=="curCSS"&&!exclude.test(name)?value+"px":value;},className:{add:function(elem,classNames){jQuery.each((classNames||"").split(/\s+/),function(i,className){if(elem.nodeType==1&&!jQuery.className.has(elem.className,className))elem.className+=(elem.className?" ":"")+className;});},remove:function(elem,classNames){if(elem.nodeType==1)elem.className=classNames!=undefined?jQuery.grep(elem.className.split(/\s+/),function(className){return!jQuery.className.has(classNames,className);}).join(" "):"";},has:function(elem,className){return jQuery.inArray(className,(elem.className||elem).toString().split(/\s+/))>-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else
  jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i<stack.length;i++)if(color(stack[i])){swap[i]=stack[i].style.display;stack[i].style.display="block";}ret=name=="display"&&swap[stack.length-1]!=null?"none":(computedStyle&&computedStyle.getPropertyValue(name))||"";for(i=0;i<swap.length;i++)if(swap[i]!=null)stack[i].style.display=swap[i];}if(name=="opacity"&&ret=="")ret="1";}else if(elem.currentStyle){var camelCase=name.replace(/\-(\w)/g,function(all,letter){return letter.toUpperCase();});ret=elem.currentStyle[name]||elem.currentStyle[camelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var left=style.left,rsLeft=elem.runtimeStyle.left;elem.runtimeStyle.left=elem.currentStyle.left;style.left=ret||0;ret=style.pixelLeft+"px";style.left=left;elem.runtimeStyle.left=rsLeft;}}return ret;},clean:function(elems,context){var ret=[];context=context||document;if(typeof context.createElement=='undefined')context=context.ownerDocument||context[0]&&context[0].ownerDocument||document;jQuery.each(elems,function(i,elem){if(!elem)return;if(elem.constructor==Number)elem+='';if(typeof elem=="string"){elem=elem.replace(/(<(\w+)[^>]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+"></"+tag+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!tags.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!tags.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!tags.indexOf("<td")||!tags.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!tags.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||jQuery.browser.msie&&[1,"div<div>","</div>"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf("<table")&&tags.indexOf("<tbody")<0?div.firstChild&&div.firstChild.childNodes:wrap[1]=="<table>"&&tags.indexOf("<tbody")<0?div.childNodes:[];for(var j=tbody.length-1;j>=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else
  ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&&notxml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&&notxml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&&notxml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else
  while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i<length;i++)if(array[i]===elem)return i;return-1;},merge:function(first,second){var i=0,elem,pos=first.length;if(jQuery.browser.msie){while(elem=second[i++])if(elem.nodeType!=8)first[pos++]=elem;}else
  while(elem=second[i++])first[pos++]=elem;return first;},unique:function(array){var ret=[],done={};try{for(var i=0,length=array.length;i<length;i++){var id=jQuery.data(array[i]);if(!done[id]){done[id]=true;ret.push(array[i]);}}}catch(e){ret=array;}return ret;},grep:function(elems,callback,inv){var ret=[];for(var i=0,length=elems.length;i<length;i++)if(!inv!=!callback(elems[i],i))ret.push(elems[i]);return ret;},map:function(elems,callback){var ret=[];for(var i=0,length=elems.length;i<length;i++){var value=callback(elems[i],i);if(value!=null)ret[ret.length]=value;}return ret.concat.apply([],ret);}});var userAgent=navigator.userAgent.toLowerCase();jQuery.browser={version:(userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(userAgent),opera:/opera/.test(userAgent),msie:/msie/.test(userAgent)&&!/opera/.test(userAgent),mozilla:/mozilla/.test(userAgent)&&!/(compatible|webkit)/.test(userAgent)};var styleFloat=jQuery.browser.msie?"styleFloat":"cssFloat";jQuery.extend({boxModel:!jQuery.browser.msie||document.compatMode=="CSS1Compat",props:{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:styleFloat,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing"}});jQuery.each({parent:function(elem){return elem.parentNode;},parents:function(elem){return jQuery.dir(elem,"parentNode");},next:function(elem){return jQuery.nth(elem,2,"nextSibling");},prev:function(elem){return jQuery.nth(elem,2,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},siblings:function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(selector){var ret=jQuery.map(this,fn);if(selector&&typeof selector=="string")ret=jQuery.multiFilter(selector,ret);return this.pushStack(jQuery.unique(ret));};});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(){var args=arguments;return this.each(function(){for(var i=0,length=args.length;i<length;i++)jQuery(args[i])[original](this);});};});jQuery.each({removeAttr:function(name){jQuery.attr(this,name,"");if(this.nodeType==1)this.removeAttribute(name);},addClass:function(classNames){jQuery.className.add(this,classNames);},removeClass:function(classNames){jQuery.className.remove(this,classNames);},toggleClass:function(classNames){jQuery.className[jQuery.className.has(this,classNames)?"remove":"add"](this,classNames);},remove:function(selector){if(!selector||jQuery.filter(selector,[this]).r.length){jQuery("*",this).add(this).each(function(){jQuery.event.remove(this);jQuery.removeData(this);});if(this.parentNode)this.parentNode.removeChild(this);}},empty:function(){jQuery(">*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return i<m[3]-0;},gt:function(a,i,m){return i>m[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j<rl;j++){var n=m=="~"||m=="+"?ret[j].nextSibling:ret[j].firstChild;for(;n;n=n.nextSibling)if(n.nodeType==1){var id=jQuery.data(n);if(m=="~"&&merge[id])break;if(!nodeName||n.nodeName.toUpperCase()==nodeName){if(m=="~")merge[id]=true;r.push(n);}if(m=="+")break;}}ret=r;t=jQuery.trim(t.replace(re,""));foundToken=true;}}if(t&&!foundToken){if(!t.indexOf(",")){if(context==ret[0])ret.shift();done=jQuery.merge(done,ret);r=ret=[context];t=" "+t.substr(1,t.length);}else{var re2=quickID;var m=re2.exec(t);if(m){m=[0,m[2],m[3],m[1]];}else{re2=quickClass;m=re2.exec(t);}m[2]=m[2].replace(/\\/g,"");var elem=ret[ret.length-1];if(m[1]=="#"&&elem&&elem.getElementById&&!jQuery.isXMLDoc(elem)){var oid=elem.getElementById(m[2]);if((jQuery.browser.msie||jQuery.browser.opera)&&oid&&typeof oid.id=="string"&&oid.id!=m[2])oid=jQuery('[@id="'+m[2]+'"]',elem)[0];ret=r=oid&&(!m[3]||jQuery.nodeName(oid,m[3]))?[oid]:[];}else{for(var i=0;ret[i];i++){var tag=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];if(tag=="*"&&ret[i].nodeName.toLowerCase()=="object")tag="param";r=jQuery.merge(r,ret[i].getElementsByTagName(tag));}if(m[1]==".")r=jQuery.classFilter(r,m[2]);if(m[1]=="#"){var tmp=[];for(var i=0;r[i];i++)if(r[i].getAttribute("id")==m[2]){tmp=[r[i]];break;}r=tmp;}ret=r;}t=t.replace(re2,"");}}if(t){var val=jQuery.filter(t,r);ret=r=val.r;t=jQuery.trim(val.t);}}if(t)ret=[];if(ret&&context==ret[0])ret.shift();done=jQuery.merge(done,ret);return done;},classFilter:function(r,m,not){m=" "+m+" ";var tmp=[];for(var i=0;r[i];i++){var pass=(" "+r[i].className+" ").indexOf(m)>=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i<rl;i++){var a=r[i],z=a[jQuery.props[m[2]]||m[2]];if(z==null||/href|src|selected/.test(m[2]))z=jQuery.attr(a,m[2])||'';if((type==""&&!!z||type=="="&&z==m[5]||type=="!="&&z!=m[5]||type=="^="&&z&&!z.indexOf(m[5])||type=="$="&&z.substr(z.length-m[5].length)==m[5]||(type=="*="||type=="~=")&&z.indexOf(m[5])>=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i<rl;i++){var node=r[i],parentNode=node.parentNode,id=jQuery.data(parentNode);if(!merge[id]){var c=1;for(var n=parentNode.firstChild;n;n=n.nextSibling)if(n.nodeType==1)n.nodeIndex=c++;merge[id]=true;}var add=false;if(first==0){if(node.nodeIndex==last)add=true;}else if((node.nodeIndex-last)%first==0&&(node.nodeIndex-last)/first>=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else
  for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var 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 timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i<args.length)jQuery.event.proxy(fn,args[i++]);return this.click(jQuery.event.proxy(fn,function(event){this.lastToggle=(this.lastToggle||0)%i;event.preventDefault();return args[this.lastToggle++].apply(this,arguments)||false;}));},hover:function(fnOver,fnOut){return this.bind('mouseenter',fnOver).bind('mouseleave',fnOut);},ready:function(fn){bindReady();if(jQuery.isReady)fn.call(document,jQuery);else
  jQuery.readyList.push(function(){return fn.call(this,jQuery);});return this;}});jQuery.extend({isReady:false,readyList:[],ready:function(){if(!jQuery.isReady){jQuery.isReady=true;if(jQuery.readyList){jQuery.each(jQuery.readyList,function(){this.call(document);});jQuery.readyList=null;}jQuery(document).triggerHandler("ready");}}});var readyBound=false;function bindReady(){if(readyBound)return;readyBound=true;if(document.addEventListener&&!jQuery.browser.opera)document.addEventListener("DOMContentLoaded",jQuery.ready,false);if(jQuery.browser.msie&&window==top)(function(){if(jQuery.isReady)return;try{document.documentElement.doScroll("left");}catch(error){setTimeout(arguments.callee,0);return;}jQuery.ready();})();if(jQuery.browser.opera)document.addEventListener("DOMContentLoaded",function(){if(jQuery.isReady)return;for(var i=0;i<document.styleSheets.length;i++)if(document.styleSheets[i].disabled){setTimeout(arguments.callee,0);return;}jQuery.ready();},false);if(jQuery.browser.safari){var numStyles;(function(){if(jQuery.isReady)return;if(document.readyState!="loaded"&&document.readyState!="complete"){setTimeout(arguments.callee,0);return;}if(numStyles===undefined)numStyles=jQuery("style, link[rel=stylesheet]").length;if(document.styleSheets.length!=numStyles){setTimeout(arguments.callee,0);return;}jQuery.ready();})();}jQuery.event.add(window,"load",jQuery.ready);}jQuery.each(("blur,focus,load,resize,scroll,unload,click,dblclick,"+"mousedown,mouseup,mousemove,mouseover,mouseout,change,select,"+"submit,keydown,keypress,keyup,error").split(","),function(i,name){jQuery.fn[name]=function(fn){return fn?this.bind(name,fn):this.trigger(name);};});var withinElement=function(event,elem){var parent=event.relatedTarget;while(parent&&parent!=elem)try{parent=parent.parentNode;}catch(error){parent=elem;}return parent==elem;};jQuery(window).bind("unload",function(){jQuery("*").add(document).unbind();});jQuery.fn.extend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof url!='string')return this._load(url);var off=url.indexOf(" ");if(off>=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("<div/>").append(res.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,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(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else
  xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else
  jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else
  for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else
  s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else
  e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;i<timers.length;i++)if(!timers[i]())timers.splice(i--,1);if(!timers.length){clearInterval(jQuery.timerId);jQuery.timerId=null;}},13);}},show:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.show=true;this.custom(0,this.cur());if(this.prop=="width"||this.prop=="height")this.elem.style[this.prop]="1px";jQuery(this.elem).show();},hide:function(){this.options.orig[this.prop]=jQuery.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0);},step:function(gotoEnd){var t=now();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.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});
  jQuery.cookie = function(name, value, options) {
      if (typeof value != 'undefined') { // name and value given, set cookie
          options = options || {};
          if (value === null) {
              value = '';
              options.expires = -1;
          }
          var expires = '';
          if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
              var date;
              if (typeof options.expires == 'number') {
                  date = new Date();
                  date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
              } else {
                  date = options.expires;
              }
              expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
          }
          var path = options.path ? '; path=' + (options.path) : '';
          var domain = options.domain ? '; domain=' + (options.domain) : '';
          var secure = options.secure ? '; secure' : '';
          document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
      } else { // only name given, get cookie
          var cookieValue = null;
          if (document.cookie && document.cookie != '') {
              var cookies = document.cookie.split(';');
              for (var i = 0; i < cookies.length; i++) {
                  var cookie = jQuery.trim(cookies[i]);
                  // Does this cookie string begin with the name we want?
                  if (cookie.substring(0, name.length + 1) == (name + '=')) {
                      cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                      break;
                  }
              }
          }
          return cookieValue;
      }
  };

  if (typeof WebCollage == 'undefined')
    WebCollage = {plugins:{}};
  WebCollage.jQuery15 = jQuery.noConflict(true);})();


/*!
 * jQuery JavaScript Library v1.4.2
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Sat Feb 13 22:33:48 2010 -0500
 */
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b===
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this,
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected,
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent=
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n=
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true,
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando];
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this,
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i,
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i=
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g,
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split(".");
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a),
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&&
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");if(e)d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a,
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift();
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D||
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m,
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h=
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m===
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g,
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&&
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>";
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}();
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}:
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a===
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType===
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this},
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})},
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild);
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja,
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]);
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["",
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e=
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]?
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja=
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter=
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a,
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f=
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!==
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&&
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)?
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache===
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B=
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since",
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E||
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x);
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b===
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional;
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration===
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem,
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b);
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a,
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top-
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset":
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window);

  WebCollage.jQuery16 = jQuery.noConflict(true);

/*

   jQuery Tools 1.2.3 Scrollable - New wave UI design

   NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.

   http://flowplayer.org/tools/scrollable.html

   Since: March 2008
   Date:    Mon Jun 7 13:43:53 2010 +0000
  */
  (function(e){function n(f,c){var a=e(c);return a.length<2?a:f.parent().find(c)}function t(f,c){var a=this,l=f.add(a),g=f.children(),k=0,m=c.vertical;j||(j=a);if(g.length>1)g=e(c.items,f);e.extend(a,{getConf:function(){return c},getIndex:function(){return k},getSize:function(){return a.getItems().size()},getNaviButtons:function(){return o.add(p)},getRoot:function(){return f},getItemWrap:function(){return g},getItems:function(){return g.children(c.item).not("."+c.clonedClass)},move:function(b,d){return a.seekTo(k+
  b,d)},next:function(b){return a.move(1,b)},prev:function(b){return a.move(-1,b)},begin:function(b){return a.seekTo(0,b)},end:function(b){return a.seekTo(a.getSize()-1,b)},focus:function(){return j=a},addItem:function(b){b=e(b);if(c.circular){e(".cloned:last").before(b);e(".cloned:first").replaceWith(b.clone().addClass(c.clonedClass))}else g.append(b);l.trigger("onAddItem",[b]);return a},seekTo:function(b,d,h){if(c.circular&&b===0&&k==-1&&d!==0)return a;if(!c.circular&&b<0||b>a.getSize()||b<-1)return a;
  var i=b;if(b.jquery)b=a.getItems().index(b);else i=a.getItems().eq(b);var q=e.Event("onBeforeSeek");if(!h){l.trigger(q,[b,d]);if(q.isDefaultPrevented()||!i.length)return a}i=m?{top:-i.position().top}:{left:-i.position().left};k=b;j=a;if(d===undefined)d=c.speed;g.animate(i,d,c.easing,h||function(){l.trigger("onSeek",[b])});return a}});e.each(["onBeforeSeek","onSeek","onAddItem"],function(b,d){e.isFunction(c[d])&&e(a).bind(d,c[d]);a[d]=function(h){e(a).bind(d,h);return a}});if(c.circular){var r=a.getItems().slice(-1).clone().prependTo(g),
  s=a.getItems().eq(1).clone().appendTo(g);r.add(s).addClass(c.clonedClass);a.onBeforeSeek(function(b,d,h){if(!b.isDefaultPrevented())if(d==-1){a.seekTo(r,h,function(){a.end(0)});return b.preventDefault()}else d==a.getSize()&&a.seekTo(s,h,function(){a.begin(0)})});a.seekTo(0,0)}var o=n(f,c.prev).click(function(){a.prev()}),p=n(f,c.next).click(function(){a.next()});!c.circular&&a.getSize()>1&&a.onBeforeSeek(function(b,d){setTimeout(function(){if(!b.isDefaultPrevented()){o.toggleClass(c.disabledClass,
  d<=0);p.toggleClass(c.disabledClass,d>=a.getSize()-1)}},1)});c.mousewheel&&e.fn.mousewheel&&f.mousewheel(function(b,d){if(c.mousewheel){a.move(d<0?1:-1,c.wheelSpeed||50);return false}});c.keyboard&&e(document).bind("keydown.scrollable",function(b){if(!(!c.keyboard||b.altKey||b.ctrlKey||e(b.target).is(":input")))if(!(c.keyboard!="static"&&j!=a)){var d=b.keyCode;if(m&&(d==38||d==40)){a.move(d==38?-1:1);return b.preventDefault()}if(!m&&(d==37||d==39)){a.move(d==37?-1:1);return b.preventDefault()}}});
  e(a).trigger("onBeforeSeek",[c.initialIndex])}e.tools=e.tools||{version:"1.2.3"};e.tools.scrollable={conf:{activeClass:"active",circular:false,clonedClass:"cloned",disabledClass:"disabled",easing:"swing",initialIndex:0,item:null,items:".items",keyboard:true,mousewheel:false,next:".next",prev:".prev",speed:400,vertical:false,wheelSpeed:0}};var j;e.fn.scrollable=function(f){var c=this.data("scrollable");if(c)return c;f=e.extend({},e.tools.scrollable.conf,f);this.each(function(){c=new t(e(this),f);e(this).data("scrollable",
  c)});return f.api?c:this}})(WebCollage.jQuery16);

  /**
   * announcements
   *
   * Displays rotating announcements
   *
   * cssPrefix:          prefix for CSS classes (optional, defaults to wcan-)
   * textPause:          text caption to use for 'Pause' button (mandatory)
   * textPlay:           text caption to use for 'Play' button (mandatory)
   * itemDuration:       time the rotation stops at a particular item (default: 7 seconds)
   * transitionDuration: time the transition (fade in and out) happends (default: 1 second)
   * initialItem:        item the rotations starts with (default: 0)
   * autoPlay:           indicates whether the rotation starts from the get go (default: true)
   * maxItems:           maximum number of items in the rotation (default: 9)
   */

 (function($) {

   $.fn.announcements = function (settings) {

     settings = $.extend({}, $.fn.announcements.defaults, settings);

     return this.each(function () {

      var $this = $(this);

      var top = $("<div></div>").addClass(settings.cssPrefix + $.fn.announcements.classes.topClass);

      $this.wrap(top);

       var children = settings.isIE6orLower ? children = $this.find("a") : children = $this.children("a");

      if (typeof WebCollage.plugins.shouldDisplayAnnouncement == "function")
      {
        children = children.filter(function(index){
          var currentChild = children.eq(index);
          var shouldDisplayAnnouncement = WebCollage.plugins.shouldDisplayAnnouncement(currentChild);

          if (!shouldDisplayAnnouncement)
            currentChild.remove();

          return shouldDisplayAnnouncement;
        });
      }

      if (children.length > 1)
        animate($this.parent(), $this, children, settings);

      children.autoclip();

    });
   };

   $.fn.announcements.defaults = {
        cssPrefix:      "wcan-",
        maxItems:       9,
         initialItem:    0,
         isIE6orLower:   $.browser.msie && ($.browser.version < 7)
   };

   $.fn.announcements.classes = {
        topClass:       "top",
        panelClass:     "panel",
        selectbarClass: "selectbar",
        playClass:      "play",
        pauseClass:     "pause",
        breakClass:     "break"
   };

   function animate (top, rotation, children, settings)
   {
     // panel
     var panel = $("<div></div>").addClass(settings.cssPrefix + $.fn.announcements.classes.panelClass);
     panel.attr('style', 'height:23px !important');

     // select bar

     var titles = children.map (function (i) {
       var $this = $(this);

       return $this.attr("title") ||
              $this.attr("alt") ||
               (settings.isIE6orLower ? $this.find("img").attr("title") : $this.children("img").attr("title")) ||
               (settings.isIE6orLower ? $this.find("img").attr("alt") : $this.children("img").attr("alt")) ||
              (i + 1);
     });

     var selectbar = $("<div></div>").addClass(settings.cssPrefix + $.fn.announcements.classes.selectbarClass);

     var selectbarSettings = $.extend({
           titles: titles,
           onChange: function () {
               var i = bar.selectbar.selected();

               rotation.rotate.select(i);
             }
       },
       settings);

     var bar = selectbar.selectbar(selectbarSettings);
     panel.append(selectbar);

     // play

     var play = $("<a></a>");
     play.click(function () { rotation.rotate.play(); play.toggle(); pause.toggle(); });
     play.attr("title", settings.textPlay).attr("href", "javascript:;");
     play.attr("alt", settings.textPlay);
     play.hide();
     play.addClass(settings.cssPrefix + $.fn.announcements.classes.playClass);
     panel.append(play);

     // pause

     var pause = $("<a></a>");
     pause.click(function () { rotation.rotate.pause(); play.toggle(); pause.toggle(); });
     pause.attr("title", settings.textPause).attr("href", "javascript:;");
     pause.attr("alt", settings.textPause);
     pause.addClass(settings.cssPrefix + $.fn.announcements.classes.pauseClass);
     panel.append(pause);

     // break

     var breakElem = $("<div></div>").addClass(settings.cssPrefix + $.fn.announcements.classes.breakClass);
     panel.append(breakElem);

     var rotateSettings = $.extend({
         onChange : function (object) {
           bar.selectbar.select(object.selected());
         }
       },
       settings);

     rotation.rotate(rotateSettings);

     top.append(panel);

     rotation.find("a:gt(" + (settings.maxItems - 1) + ")").hide();
   }

 }) (WebCollage.jQuery16);



  /**
   * autoclip
   *
   * Converts an image to a div with a background image, so it automatically clips as the wrapper shrinks
   */

 (function($) {

   $.fn.autoclip = function (settings) {
       return $(this).wrap("<table class='wc-autoclip-impl' cellspacing='0' cellpadding='0'><tr><td></td></tr></table>");
   };

 }) (WebCollage.jQuery16);

 /**
   * rotate
   *
   * Rotates a set of <a href> elements within a <div> element
   *
   * cssPrefix:          prefix for CSS classes (optional, defaults to wcr-)
   * cssClassName:       class name for wrapper (optional, defaults to rotation)
   * itemDuration:       time the rotation stops at a particular item (default: 7 seconds)
   * transitionDuration: time the transition (fade in and out) happends (default: 1 second)
   * initialItem:        item the rotations starts with (default: 0)
   * autoPlay:           indicates whether the rotation starts from the get go (default: true)
   */

 (function($) {

   $.fn.rotate = function (settings) {
     settings = $.extend({}, $.fn.rotate.defaults, settings);

     return this.each(function() {
       init($(this), settings);
     });
   };

   $.fn.rotate.defaults = {
        cssPrefix:           "wcr",
        cssClass:            "rotation",
        itemDuration:        7000,
        transitionDuration:  1000,
        initialItem:         0,
        autoPlay:            true,
        maxItems:            9
      };

   $.fn.rotate.pause = function ()
   {
     this.playing = false;

     if (this.timeout)
       window.clearTimeout(this.timeout);
   }

   $.fn.rotate.play = function ()
   {
     this.playing = true;

     startCountdownToNext(this);
   }

   $.fn.rotate.selected = function ()
   {
     return this.currentSelection;
   }

   $.fn.rotate.select = function (newSelection)
   {
     var playing = this.playing;

     if (playing)
       this.pause();

     this.items.each(function (i) {
       var $this = $(this);
       $this.stop(true, true);
       if (i == $this.currentSelection)
         $this.fadeIn(0);
       else
         $this.fadeOut(0);
     });

     $(this.items[this.currentSelection]).fadeOut(this.settings.transitionDuration);
     $(this.items[newSelection]).fadeIn(this.settings.transitionDuration);

     this.currentSelection = newSelection;

     if (playing)
       this.play();
   }

   function init (container, settings) {
      container.rotate.settings = settings;
      if (settings.isIE6orLower)
        container.rotate.items = container.find("a:lt(" + settings.maxItems+ ")");
      else
        container.rotate.items = container.children("a:lt(" + settings.maxItems+ ")");
      container.rotate.playing = settings.autoPlay;

      if (container.rotate.items.length == 0)
        return;

     // rotation area
     container.addClass(settings.cssPrefix + settings.cssClass);

      var height = -1;

      for (var i = 0; i < container.rotate.items.length; i++)
      {
        var a = $(container.rotate.items[i]);

        var images = a.children("img");
        if (images.length == 0)
          images = a.find("img");

        images.each ( function () {
          if (this.height > height)
            height = this.height;
        });

        if (i == 0)
          a.show();
        else
          a.hide();
      }

      var style = 'height: ' + height + 'px !important;';
      container.attr('style', style);
      container.show();

      if (container.rotate.items.length == 1)
        return;



      $(document).ready(function() {
        container.rotate.currentSelection = settings.initialItem;

        if (settings.autoPlay)
          container.rotate.play(settings);
      });
   }

   function startCountdownToNext (object)
   {
     var next = (object.currentSelection + 1) % object.items.length;

     object.timeout = window.setTimeout(function () {transitionTo(object, next);}, object.settings.itemDuration);
   }

   function transitionTo (object, next)
   {
     $(object.items[object.currentSelection]).fadeOut(object.settings.transitionDuration);
     $(object.items[next]).fadeIn(object.settings.transitionDuration,
       function () { if (object.playing) startCountdownToNext(object); });

     object.currentSelection = next;

     if (object.settings.onChange)
       object.settings.onChange(object);
   }

 }) (WebCollage.jQuery16);

 /**
   * selectbar
   *
   * Converts a standard select box into a "select bar": a panel of buttons in which one is always selected
   *
   * titles     : the titles to put on the buttons (mandatory, determines the number of buttons)
   * initialItem: item selected initially (defaults to -1, none)
   */

 (function($) {

   $.fn.selectbar = function (settings) {
     settings = $.extend({}, $.fn.selectbar.defaults, settings);

     return this.each(function() {
       init ($(this), settings);
     });
   }

   $.fn.selectbar.defaults = {
     cssPrefix  : "wcsb-",
     initialItem: -1,
     maxItems   : 9
   }

   /**
     * select: change selection to a new value
     */
   $.fn.selectbar.select = function (newSelection, triggerOnChange)
   {
     if (newSelection == this.currentSelection)
       return;

     var old = this.currentSelection;

     if (old != -1)
     {
       var o = $.fn.selectbar.settings.isIE6orLower ? $(this.container.find("a").get(old)) : $(this.container.children("a").get(old));
       o.removeClass(this.settings.cssPrefix + o.data("i") + "a");
       o.addClass(this.settings.cssPrefix + o.data("i"));
       o.css("enabled", "false");
     }

     var n = $.fn.selectbar.settings.isIE6orLower ? $(this.container.find("a").get(newSelection)) : $(this.container.children("a").get(newSelection));

     n.removeClass(this.settings.cssPrefix + n.data("i"));
     n.addClass(this.settings.cssPrefix + n.data("i") + "a");
     n.css("enabled", "true");

     this.currentSelection = newSelection;

     if (triggerOnChange)
       this.settings.onChange(newSelection);
   }

   /**
     * selected: returns selected element
     */
   $.fn.selectbar.selected = function ()
   {
     return this.currentSelection;
   }

   function init (container, settings)
   {
     settings.titles.each(function (i) {
        if (i >= settings.maxItems)
          return;

        var item = document.createElement("a");
        var $item = $(item);

        $item.attr("href", "javascript:;");
        $item.attr("title", this);
        $item.addClass(settings.cssPrefix + "sb-item").addClass(settings.cssPrefix + (i + 1));
        $item.data("i", i + 1);

        var onclick = function () { container.selectbar.select(i, true); };

        $item.click (onclick);
        $item.keypress(function (e) { if (e.which == 32) onclick(); });

        container.append(item);
     });

     container.selectbar.settings = settings;
     container.selectbar.container = container;
     container.selectbar.currentSelection = -1;

     if (settings.initialItem != -1)
       container.selectbar.select(settings.initialItem, false);
   }

 }) (WebCollage.jQuery16);




/**
 * Galleria - NO ONE CHANGE THIS GALLERIA. THERE ARE CHANGES IN HERE FOR ACCESSIBILITY OF IMAGE GALLERY AND VIDEO GALLERY.  CHANGING THIS WILL BREAK ACCESSIBILITY.
 * after _thumb.click(...); we added the following functions:
 * 1) _thumb.keypress(function(e){if(e.which==13){$.galleria.activate(_src);}});
 *   --effictively has the same effect as the click event.
 * 2)_thumb.focus(function(){_container.addClass('hover');});
 *   --when a thumbnail is focused by a keypress this gets called and is effectively the same as a hover:in with the mouse.
 * 3)_thumb.blur(function(){_container.removeClass('hover')});
 *   --when a focus is removed from a thumbnail by a keypress this gets called and is effectively the same as a hover:out with the mouse.
 *
**/
  (function() {
  var $ = WebCollage.jQuery15;
  var jQuery =   WebCollage.jQuery15;

  (function($){var $$;$$=$.fn.galleria=function($options){if(!$$.hasCSS()){return false;}$.historyInit($$.onPageLoad);var $defaults={insert:'.galleria_container',history:true,clickNext:true,onImage:function(image,caption,thumb){},onThumb:function(thumb){}};var $opts=$.extend($defaults,$options);for(var i in $opts){if(i){$.galleria[i]=$opts[i];}}var _insert=($($opts.insert).is($opts.insert))?$($opts.insert):jQuery(document.createElement('div')).insertBefore(this);var _div=$(document.createElement('div')).addClass('galleria_wrapper');var _span=$(document.createElement('span')).addClass('caption');_insert.addClass('galleria_container').append(_div).append(_span);return this.each(function(){$(this).addClass('galleria');$(this).children('li').each(function(i){var _container=$(this);var _o=$.meta?$.extend({},$opts,_container.data()):$opts;_o.clickNext=$(this).is(':only-child')?false:_o.clickNext;var _a=$(this).find('a').is('a')?$(this).find('a'):false;var _img=$(this).children('img').css('display','none');var _src=_a?_a.attr('href'):_img.attr('src');var _title=_a?_a.attr('title'):_img.attr('title');var _loader=new Image();if(_o.history&&(window.location.hash&&window.location.hash.replace(/\#/,'')==_src)){_container.siblings('.active').removeClass('active');_container.addClass('active');}$(_loader).load(function(){$(this).attr('alt',_img.attr('alt'));var _thumb=_a?_a.find('img').addClass('thumb noscale').css('display','none'):_img.clone(true).addClass('thumb').css('display','none');if(_a){_a.replaceWith(_thumb);}if(!_thumb.hasClass('noscale')){var w=Math.ceil(_img.width()/_img.height()*_container.height());var h=Math.ceil(_img.height()/_img.width()*_container.width());if(w<h){_thumb.css({height:'auto',width:_container.width(),marginTop:-(h-_container.height())/2});}else{_thumb.css({width:'auto',height:_container.height(),marginLeft:-(w-_container.width())/2});}}else{window.setTimeout(function(){_thumb.css({marginLeft:-(_thumb.width()-_container.width())/2,marginTop:-(_thumb.height()-_container.height())/2});},1);}_thumb.attr('rel',_src);_thumb.attr('title',_title);_thumb.click(function(){$.galleria.activate(_src);});_thumb.keypress(function(e){if(e.which==13){$.galleria.activate(_src);}});_thumb.focus(function(){_container.addClass('hover');});_thumb.blur(function(){_container.removeClass('hover')});_thumb.hover(function(){$(this).addClass('hover');},function(){$(this).removeClass('hover');});_container.hover(function(){_container.addClass('hover');},function(){_container.removeClass('hover');});_container.prepend(_thumb);_thumb.css('display','block');_o.onThumb(jQuery(_thumb));if(_container.hasClass('active')){$.galleria.activate(_src);}_img.remove();}).error(function(){_container.html('<span class="error" style="color:red">Error loading image: '+_src+'</span>');}).attr('src',_src);});});};$$.nextSelector=function(selector){return $(selector).is(':last-child')?$(selector).siblings(':first-child'):$(selector).next();};$$.previousSelector=function(selector){return $(selector).is(':first-child')?$(selector).siblings(':last-child'):$(selector).prev();};$$.hasCSS=function(){$('body').append($(document.createElement('div')).attr('id','css_test').css({width:'1px',height:'1px',display:'none'}));var _v=($('#css_test').width()!=1)?false:true;$('#css_test').remove();return _v;};$$.onPageLoad=function(_src){var _thumb=$('.galleria img[@rel="'+_src+'"]');var _wrapper=undefined;$('.galleria_wrapper').each(function(i){if($($(this).parents('.galleria_container').parents(':first')).find('img[@rel="'+_src+'"]').size()>0){_wrapper=$(this);}});if(_wrapper != undefined){if(_src){if($.galleria.history){window.location=window.location.href.replace(/\#.*/,'')+'#'+_src;}_thumb.parents('li').siblings('.active').removeClass('active');_thumb.parents('li').addClass('active');var _img=$(new Image()).attr('src',_src).addClass('replaced');_wrapper.empty().append(_img);;$.galleria.onImage(_img,_wrapper.siblings('.caption'),_thumb);if($.galleria.clickNext){_img.css('cursor','pointer').click(function(){$.galleria.next();});}}else{_wrapper.siblings().andSelf().empty();$('.galleria li.active').removeClass('active');}$.galleria.current=_src;}};$.extend({galleria:{current:'',onImage:function(){},activate:function(_src){if($.galleria.history){$.historyLoad(_src);}else{$$.onPageLoad(_src);}},next:function(){var _next=$($$.nextSelector($('.galleria img[@rel="'+$.galleria.current+'"]').parents('li'))).find('img').attr('rel');$.galleria.activate(_next);},prev:function(){var _prev=$($$.previousSelector($('.galleria img[@rel="'+$.galleria.current+'"]').parents('li'))).find('img').attr('rel');$.galleria.activate(_prev);}}});})(jQuery);jQuery.extend({historyCurrentHash:undefined,historyCallback:undefined,historyInit:function(callback){jQuery.historyCallback=callback;var current_hash=location.hash;jQuery.historyCurrentHash=current_hash;if(jQuery.browser.msie){if(jQuery.historyCurrentHash===''){jQuery.historyCurrentHash='#';}$("body").prepend('<iframe id="jQuery_history" style="display: none;"></iframe>');var ihistory=$("#jQuery_history")[0];var iframe=ihistory.contentWindow.document;iframe.open();iframe.close();iframe.location.hash=current_hash;}else if($.browser.safari){jQuery.historyBackStack=[];jQuery.historyBackStack.length=history.length;jQuery.historyForwardStack=[];jQuery.isFirst=true;}jQuery.historyCallback(current_hash.replace(/^#/,''));setInterval(jQuery.historyCheck,100);},historyAddHistory:function(hash){jQuery.historyBackStack.push(hash);jQuery.historyForwardStack.length=0;this.isFirst=true;},historyCheck:function(){if(jQuery.browser.msie){var ihistory=$("#jQuery_history")[0];var iframe=ihistory.contentDocument||ihistory.contentWindow.document;var current_hash=iframe.location.hash;if(current_hash!=jQuery.historyCurrentHash){location.hash=current_hash;jQuery.historyCurrentHash=current_hash;jQuery.historyCallback(current_hash.replace(/^#/,''));}}else if($.browser.safari){if(!jQuery.dontCheck){var historyDelta=history.length-jQuery.historyBackStack.length;if(historyDelta){jQuery.isFirst=false;var i;if(historyDelta<0){for(i=0;i<Math.abs(historyDelta);i++){jQuery.historyForwardStack.unshift(jQuery.historyBackStack.pop());}}else{for(i=0;i<historyDelta;i++){jQuery.historyBackStack.push(jQuery.historyForwardStack.shift());}}var cachedHash=jQuery.historyBackStack[jQuery.historyBackStack.length-1];if(cachedHash!==undefined){jQuery.historyCurrentHash=location.hash;jQuery.historyCallback(cachedHash);}}else if(jQuery.historyBackStack[jQuery.historyBackStack.length-1]===undefined&&!jQuery.isFirst){if(document.URL.indexOf('#')>=0){jQuery.historyCallback(document.URL.split('#')[1]);}else{current_hash=location.hash;jQuery.historyCallback('');}jQuery.isFirst=true;}}}else{current_hash=location.hash;if(current_hash!=jQuery.historyCurrentHash){jQuery.historyCurrentHash=current_hash;jQuery.historyCallback(current_hash.replace(/^#/,''));}}},historyLoad:function(hash){var newhash;if(jQuery.browser.safari){newhash=hash;}else{newhash='#'+hash;location.hash=newhash;}jQuery.historyCurrentHash=newhash;if(jQuery.browser.msie){var ihistory=$("#jQuery_history")[0];var iframe=ihistory.contentWindow.document;iframe.open();iframe.close();iframe.location.hash=newhash;jQuery.historyCallback(hash);}else if(jQuery.browser.safari){jQuery.dontCheck=true;this.historyAddHistory(hash);var fn=function(){jQuery.dontCheck=false;};window.setTimeout(fn,200);jQuery.historyCallback(hash);location.hash=newhash;}else{jQuery.historyCallback(hash);}}});

  })();

  /**
   * jCarousel - Riding carousels with jQuery
   *   http://sorgalla.com/jcarousel/
   *
   * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com)
   * Dual licensed under the MIT (MIT-LICENSE.txt)
   * and GPL (GPL-LICENSE.txt) licenses.
   *
   * Built on top of the jQuery library
   *   http://jquery.com
   *
   * Inspired by the "Carousel Component" by Bill Scott
   *   http://billwscott.com/carousel/
   */

  (function() {
  var $ = WebCollage.jQuery15;
  var jQuery =   WebCollage.jQuery15;
  eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(9($){$.1v.C=9(o){z 4.1b(9(){3p r(4,o)})};8 q={Z:F,25:1,21:1,u:7,1c:3,15:7,1K:\'2X\',2c:\'2Q\',1q:0,B:7,1j:7,1G:7,2F:7,2B:7,2z:7,2x:7,2v:7,2s:7,2p:7,1S:\'<P></P>\',1Q:\'<P></P>\',2m:\'2l\',2k:\'2l\',1O:7,1L:7};$.C=9(e,o){4.5=$.16({},q,o||{});4.Q=F;4.D=7;4.H=7;4.t=7;4.U=7;4.R=7;4.N=!4.5.Z?\'1H\':\'26\';4.E=!4.5.Z?\'24\':\'23\';8 a=\'\',1e=e.K.1e(\' \');1r(8 i=0;i<1e.I;i++){6(1e[i].2y(\'C-2w\')!=-1){$(e).1E(1e[i]);8 a=1e[i];1p}}6(e.2t==\'3o\'||e.2t==\'3n\'){4.t=$(e);4.D=4.t.19();6(4.D.1o(\'C-H\')){6(!4.D.19().1o(\'C-D\'))4.D=4.D.B(\'<P></P>\');4.D=4.D.19()}10 6(!4.D.1o(\'C-D\'))4.D=4.t.B(\'<P></P>\').19()}10{4.D=$(e);4.t=$(e).3h(\'>2o,>2n,P>2o,P>2n\')}6(a!=\'\'&&4.D.19()[0].K.2y(\'C-2w\')==-1)4.D.B(\'<P 3g=" \'+a+\'"></P>\');4.H=4.t.19();6(!4.H.I||!4.H.1o(\'C-H\'))4.H=4.t.B(\'<P></P>\').19();4.R=$(\'.C-11\',4.D);6(4.R.u()==0&&4.5.1Q!=7)4.R=4.H.1z(4.5.1Q).11();4.R.V(4.K(\'C-11\'));4.U=$(\'.C-17\',4.D);6(4.U.u()==0&&4.5.1S!=7)4.U=4.H.1z(4.5.1S).11();4.U.V(4.K(\'C-17\'));4.H.V(4.K(\'C-H\'));4.t.V(4.K(\'C-t\'));4.D.V(4.K(\'C-D\'));8 b=4.5.15!=7?1k.1P(4.1m()/4.5.15):7;8 c=4.t.32(\'1F\');8 d=4;6(c.u()>0){8 f=0,i=4.5.21;c.1b(9(){d.1I(4,i++);f+=d.S(4,b)});4.t.y(4.N,f+\'T\');6(!o||o.u===J)4.5.u=c.u()}4.D.y(\'1y\',\'1A\');4.U.y(\'1y\',\'1A\');4.R.y(\'1y\',\'1A\');4.2G=9(){d.17()};4.2b=9(){d.11()};4.1U=9(){d.2q()};6(4.5.1j!=7)4.5.1j(4,\'2a\');6($.2A.28){4.1f(F,F);$(27).1u(\'2I\',9(){d.1t()})}10 4.1t()};8 r=$.C;r.1v=r.2H={C:\'0.2.3\'};r.1v.16=r.16=$.16;r.1v.16({1t:9(){4.A=7;4.G=7;4.X=7;4.13=7;4.14=F;4.1d=7;4.O=7;4.W=F;6(4.Q)z;4.t.y(4.E,4.1s(4.5.21)+\'T\');8 p=4.1s(4.5.25);4.X=4.13=7;4.1i(p,F);$(27).22(\'2E\',4.1U).1u(\'2E\',4.1U)},2D:9(){4.t.2C();4.t.y(4.E,\'3u\');4.t.y(4.N,\'3t\');6(4.5.1j!=7)4.5.1j(4,\'2D\');4.1t()},2q:9(){6(4.O!=7&&4.W)4.t.y(4.E,r.M(4.t.y(4.E))+4.O);4.O=7;4.W=F;6(4.5.1G!=7)4.5.1G(4);6(4.5.15!=7){8 a=4;8 b=1k.1P(4.1m()/4.5.15),N=0,E=0;$(\'1F\',4.t).1b(9(i){N+=a.S(4,b);6(i+1<a.A)E=N});4.t.y(4.N,N+\'T\');4.t.y(4.E,-E+\'T\')}4.1c(4.A,F)},3s:9(){4.Q=1h;4.1f()},3r:9(){4.Q=F;4.1f()},u:9(s){6(s!=J){4.5.u=s;6(!4.Q)4.1f()}z 4.5.u},3q:9(i,a){6(a==J||!a)a=i;6(4.5.u!==7&&a>4.5.u)a=4.5.u;1r(8 j=i;j<=a;j++){8 e=4.L(j);6(!e.I||e.1o(\'C-1a-1D\'))z F}z 1h},L:9(i){z $(\'.C-1a-\'+i,4.t)},2u:9(i,s){8 e=4.L(i),20=0,2u=0;6(e.I==0){8 c,e=4.1B(i),j=r.M(i);1n(c=4.L(--j)){6(j<=0||c.I){j<=0?4.t.2r(e):c.1X(e);1p}}}10 20=4.S(e);e.1E(4.K(\'C-1a-1D\'));1R s==\'3l\'?e.3k(s):e.2C().3j(s);8 a=4.5.15!=7?1k.1P(4.1m()/4.5.15):7;8 b=4.S(e,a)-20;6(i>0&&i<4.A)4.t.y(4.E,r.M(4.t.y(4.E))-b+\'T\');4.t.y(4.N,r.M(4.t.y(4.N))+b+\'T\');z e},1V:9(i){8 e=4.L(i);6(!e.I||(i>=4.A&&i<=4.G))z;8 d=4.S(e);6(i<4.A)4.t.y(4.E,r.M(4.t.y(4.E))+d+\'T\');e.1V();4.t.y(4.N,r.M(4.t.y(4.N))-d+\'T\')},17:9(){4.1C();6(4.O!=7&&!4.W)4.1T(F);10 4.1c(((4.5.B==\'1Z\'||4.5.B==\'G\')&&4.5.u!=7&&4.G==4.5.u)?1:4.A+4.5.1c)},11:9(){4.1C();6(4.O!=7&&4.W)4.1T(1h);10 4.1c(((4.5.B==\'1Z\'||4.5.B==\'A\')&&4.5.u!=7&&4.A==1)?4.5.u:4.A-4.5.1c)},1T:9(b){6(4.Q||4.14||!4.O)z;8 a=r.M(4.t.y(4.E));!b?a-=4.O:a+=4.O;4.W=!b;4.X=4.A;4.13=4.G;4.1i(a)},1c:9(i,a){6(4.Q||4.14)z;4.1i(4.1s(i),a)},1s:9(i){6(4.Q||4.14)z;6(4.5.B!=\'18\')i=i<1?1:(4.5.u&&i>4.5.u?4.5.u:i);8 a=4.A>i;8 b=r.M(4.t.y(4.E));8 f=4.5.B!=\'18\'&&4.A<=1?1:4.A;8 c=a?4.L(f):4.L(4.G);8 j=a?f:f-1;8 e=7,l=0,p=F,d=0;1n(a?--j>=i:++j<i){e=4.L(j);p=!e.I;6(e.I==0){e=4.1B(j).V(4.K(\'C-1a-1D\'));c[a?\'1z\':\'1X\'](e)}c=e;d=4.S(e);6(p)l+=d;6(4.A!=7&&(4.5.B==\'18\'||(j>=1&&(4.5.u==7||j<=4.5.u))))b=a?b+d:b-d}8 g=4.1m();8 h=[];8 k=0,j=i,v=0;8 c=4.L(i-1);1n(++k){e=4.L(j);p=!e.I;6(e.I==0){e=4.1B(j).V(4.K(\'C-1a-1D\'));c.I==0?4.t.2r(e):c[a?\'1z\':\'1X\'](e)}c=e;8 d=4.S(e);6(d==0){3f(\'3e: 3d 1H/26 3c 1r 3b. 3a 39 38 37 36 35. 34...\');z 0}6(4.5.B!=\'18\'&&4.5.u!==7&&j>4.5.u)h.33(e);10 6(p)l+=d;v+=d;6(v>=g)1p;j++}1r(8 x=0;x<h.I;x++)h[x].1V();6(l>0){4.t.y(4.N,4.S(4.t)+l+\'T\');6(a){b-=l;4.t.y(4.E,r.M(4.t.y(4.E))-l+\'T\')}}8 n=i+k-1;6(4.5.B!=\'18\'&&4.5.u&&n>4.5.u)n=4.5.u;6(j>n){k=0,j=n,v=0;1n(++k){8 e=4.L(j--);6(!e.I)1p;v+=4.S(e);6(v>=g)1p}}8 o=n-k+1;6(4.5.B!=\'18\'&&o<1)o=1;6(4.W&&a){b+=4.O;4.W=F}4.O=7;6(4.5.B!=\'18\'&&n==4.5.u&&(n-k+1)>=1){8 m=r.Y(4.L(n),!4.5.Z?\'1l\':\'1N\');6((v-m)>g)4.O=v-g-m}1n(i-->o)b+=4.S(4.L(i));4.X=4.A;4.13=4.G;4.A=o;4.G=n;z b},1i:9(p,a){6(4.Q||4.14)z;4.14=1h;8 b=4;8 c=9(){b.14=F;6(p==0)b.t.y(b.E,0);6(b.5.B==\'1Z\'||b.5.B==\'G\'||b.5.u==7||b.G<b.5.u)b.2j();b.1f();b.1M(\'2i\')};4.1M(\'31\');6(!4.5.1K||a==F){4.t.y(4.E,p+\'T\');c()}10{8 o=!4.5.Z?{\'24\':p}:{\'23\':p};4.t.1i(o,4.5.1K,4.5.2c,c)}},2j:9(s){6(s!=J)4.5.1q=s;6(4.5.1q==0)z 4.1C();6(4.1d!=7)z;8 a=4;4.1d=30(9(){a.17()},4.5.1q*2Z)},1C:9(){6(4.1d==7)z;2Y(4.1d);4.1d=7},1f:9(n,p){6(n==J||n==7){8 n=!4.Q&&4.5.u!==0&&((4.5.B&&4.5.B!=\'A\')||4.5.u==7||4.G<4.5.u);6(!4.Q&&(!4.5.B||4.5.B==\'A\')&&4.5.u!=7&&4.G>=4.5.u)n=4.O!=7&&!4.W}6(p==J||p==7){8 p=!4.Q&&4.5.u!==0&&((4.5.B&&4.5.B!=\'G\')||4.A>1);6(!4.Q&&(!4.5.B||4.5.B==\'G\')&&4.5.u!=7&&4.A==1)p=4.O!=7&&4.W}8 a=4;4.U[n?\'1u\':\'22\'](4.5.2m,4.2G)[n?\'1E\':\'V\'](4.K(\'C-17-1w\')).1J(\'1w\',n?F:1h);4.R[p?\'1u\':\'22\'](4.5.2k,4.2b)[p?\'1E\':\'V\'](4.K(\'C-11-1w\')).1J(\'1w\',p?F:1h);6(4.U.I>0&&(4.U[0].1g==J||4.U[0].1g!=n)&&4.5.1O!=7){4.U.1b(9(){a.5.1O(a,4,n)});4.U[0].1g=n}6(4.R.I>0&&(4.R[0].1g==J||4.R[0].1g!=p)&&4.5.1L!=7){4.R.1b(9(){a.5.1L(a,4,p)});4.R[0].1g=p}},1M:9(a){8 b=4.X==7?\'2a\':(4.X<4.A?\'17\':\'11\');4.12(\'2F\',a,b);6(4.X!==4.A){4.12(\'2B\',a,b,4.A);4.12(\'2z\',a,b,4.X)}6(4.13!==4.G){4.12(\'2x\',a,b,4.G);4.12(\'2v\',a,b,4.13)}4.12(\'2s\',a,b,4.A,4.G,4.X,4.13);4.12(\'2p\',a,b,4.X,4.13,4.A,4.G)},12:9(a,b,c,d,e,f,g){6(4.5[a]==J||(1R 4.5[a]!=\'2h\'&&b!=\'2i\'))z;8 h=1R 4.5[a]==\'2h\'?4.5[a][b]:4.5[a];6(!$.2W(h))z;8 j=4;6(d===J)h(j,c,b);10 6(e===J)4.L(d).1b(9(){h(j,4,d,c,b)});10{1r(8 i=d;i<=e;i++)6(i!==7&&!(i>=f&&i<=g))4.L(i).1b(9(){h(j,4,i,c,b)})}},1B:9(i){z 4.1I(\'<1F></1F>\',i)},1I:9(e,i){8 a=$(e).V(4.K(\'C-1a\')).V(4.K(\'C-1a-\'+i));a.1J(\'2V\',i);z a},K:9(c){z c+\' \'+c+(!4.5.Z?\'-2U\':\'-Z\')},S:9(e,d){8 a=e.2g!=J?e[0]:e;8 b=!4.5.Z?a.1x+r.Y(a,\'2f\')+r.Y(a,\'1l\'):a.2e+r.Y(a,\'2d\')+r.Y(a,\'1N\');6(d==J||b==d)z b;8 w=!4.5.Z?d-r.Y(a,\'2f\')-r.Y(a,\'1l\'):d-r.Y(a,\'2d\')-r.Y(a,\'1N\');$(a).y(4.N,w+\'T\');z 4.S(a)},1m:9(){z!4.5.Z?4.H[0].1x-r.M(4.H.y(\'2T\'))-r.M(4.H.y(\'2S\')):4.H[0].2e-r.M(4.H.y(\'2R\'))-r.M(4.H.y(\'3i\'))},2P:9(i,s){6(s==J)s=4.5.u;z 1k.2O((((i-1)/s)-1k.2N((i-1)/s))*s)+1}});r.16({3m:9(d){z $.16(q,d||{})},Y:9(e,p){6(!e)z 0;8 a=e.2g!=J?e[0]:e;6(p==\'1l\'&&$.2A.28){8 b={\'1y\':\'1A\',\'2M\':\'2L\',\'1H\':\'1q\'},1Y,1W;$.29(a,b,9(){1Y=a.1x});b[\'1l\']=0;$.29(a,b,9(){1W=a.1x});z 1W-1Y}z r.M($.y(a,p))},M:9(v){v=2K(v);z 2J(v)?0:v}})})(3v);',62,218,'||||this|options|if|null|var|function||||||||||||||||||||list|size||||css|return|first|wrap|jcarousel|container|lt|false|last|clip|length|undefined|className|get|intval|wh|tail|div|locked|buttonPrev|dimension|px|buttonNext|addClass|inTail|prevFirst|margin|vertical|else|prev|callback|prevLast|animating|visible|extend|next|circular|parent|item|each|scroll|timer|split|buttons|jcarouselstate|true|animate|initCallback|Math|marginRight|clipping|while|hasClass|break|auto|for|pos|setup|bind|fn|disabled|offsetWidth|display|before|block|create|stopAuto|placeholder|removeClass|li|reloadCallback|width|format|attr|animation|buttonPrevCallback|notify|marginBottom|buttonNextCallback|ceil|buttonPrevHTML|typeof|buttonNextHTML|scrollTail|funcResize|remove|oWidth2|after|oWidth|both|old|offset|unbind|top|left|start|height|window|safari|swap|init|funcPrev|easing|marginTop|offsetHeight|marginLeft|jquery|object|onAfterAnimation|startAuto|buttonPrevEvent|click|buttonNextEvent|ol|ul|itemVisibleOutCallback|reload|prepend|itemVisibleInCallback|nodeName|add|itemLastOutCallback|skin|itemLastInCallback|indexOf|itemFirstOutCallback|browser|itemFirstInCallback|empty|reset|resize|itemLoadCallback|funcNext|prototype|load|isNaN|parseInt|none|float|floor|round|index|swing|borderTopWidth|borderRightWidth|borderLeftWidth|horizontal|jcarouselindex|isFunction|normal|clearTimeout|1000|setTimeout|onBeforeAnimation|children|push|Aborting|loop|infinite|an|cause|will|This|items|set|No|jCarousel|alert|class|find|borderBottomWidth|append|html|string|defaults|OL|UL|new|has|unlock|lock|10px|0px|jQuery'.split('|'),0,{}))
  })();


  /**
   * Name:    Highslide JS
   * Version: 4.1.4 (April 17 2009)
   * Config:  default +inline +ajax +iframe +flash +positioning
   * Author:  Torstein Honsi
   * Support: http://highslide.com/support
   * WARNING: The code below has undergone changes specific to WebCollage.
   * Be minded to those changes before trying to upgrade highslide.  The changes can
   * seen in highslide414.js.
   */
  (function()
  {

    var hs={lang:{cssDirection:'ltr',loadingText:'&nbsp;',loadingTitle:'Click to cancel',focusTitle:'Click to bring to front',fullExpandTitle:'Expand to actual size (f)',creditsText:'Powered by <i>Highslide JS</i>',creditsTitle:'Go to the Highslide JS homepage',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.'},graphicsDir:wsmlMakeResourceUrl('/_wc/default-defs/resources/common/hsgraphics/'),expandCursor:'zoomin.cur',restoreCursor:'zoomout.cur',expandDuration:250,restoreDuration:250,marginLeft:15,marginRight:15,marginTop:15,marginBottom:15,zIndexCounter:1001,loadingOpacity:0.75,allowMultipleInstances:true,numberOfImagesToPreload:5,outlineWhileAnimating:2,outlineStartOffset:3,padToMinWidth:false,fullExpandPosition:'bottom right',fullExpandOpacity:1,showCredits:true,creditsHref:'http://highslide.com/',enableKeyListener:true,openerTagNames:['a'],allowWidthReduction:false,allowHeightReduction:true,preserveContent:true,anchor:'auto',align:'auto',targetX:null,targetY:null,objectLoadTime:'before',cacheAjax:true,dragByHeading:true,minWidth:200,minHeight:200,allowSizeReduction:true,outlineType:'drop-shadow',wrapperClassName:'highslide-wrapper',skin:{contentWrapper:'<div class="highslide-header"><ul>'+'<li class="highslide-previous">'+'<a href="#" title="{WebCollage.HighSlide.lang.previousTitle}" onclick="return WebCollage.HighSlide.previous(this)">'+'<span>{hs.lang.previousText}</span></a>'+'</li>'+'<li class="highslide-next">'+'<a href="#" title="{WebCollage.HighSlide.lang.nextTitle}" onclick="return WebCollage.HighSlide.next(this)">'+'<span>{hs.lang.nextText}</span></a>'+'</li>'+'<li class="highslide-move">'+'<a href="#" title="{WebCollage.HighSlide.lang.moveTitle}" onclick="return false">'+'<span>{hs.lang.moveText}</span></a>'+'</li>'+'<li class="highslide-close">'+'<a href="#" title="{WebCollage.HighSlide.lang.closeTitle}" onclick="return WebCollage.HighSlide.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="{WebCollage.HighSlide.lang.resizeTitle}"><span></span></span>'+'</div></div>'},preloadTheseImages:[],continuePreloading:true,expanders:[],overrides:['allowSizeReduction','useBox','anchor','align','targetX','targetY','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: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;return{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){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){adj=exp.getAdjacentAnchor(op);return hs.transit(adj,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;if(typeof e.target.form!='undefined')return true;var exp=hs.getExpander();var op=null;switch(e.keyCode){case 70:if(exp)exp.doFullExpand();return true;case 32:case 34:case 39:case 40:op=1;break;case 8:case 33:case 37:case 38:op=-1;break;case 27:case 13: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]+)$/;el=element;while(el.parentNode){if(el.id&&re.test(el.id))return el.id.replace(re,"$1");el=el.parentNode}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/))||(a.getAttribute!=undefined&&a.getAttribute("renderasoverlay")=="true")},reOrder:function(){for(var i=0;i<hs.expanders.length;i++)if(hs.expanders[i]&&hs.expanders[i].isExpanded)hs.focusTopmost()},fireEvent:function(obj,evt,args){return obj&&obj[evt]?(obj[evt](obj,args)!==false):true},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();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';if(hasDragged)hs.fireEvent(hs.dragArgs.exp,'onDrop',hs.dragArgs);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(!hs.fireEvent(exp,'onDrag',a))return false;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;if(hs.ie)e.relatedTarget=over?e.fromElement:e.toElement;var exp=hs.getExpander(e.target);if(!exp.isExpanded)return;if(!exp||!e.relatedTarget||hs.getExpander(e.relatedTarget,true)==exp||hs.dragArgs)return;hs.fireEvent(exp,over?'onMouseOver':'onMouseOut',e);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'});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]))}if(hs.outlineType)new hs.Outline(hs.outlineType,function(){hs.preloadFullImage(0)});else hs.preloadFullImage(0);if(hs.restoreCursor)var cur=hs.createElement('img',{src:hs.graphicsDir+hs.restoreCursor})},init:function(){if(!hs.container){hs.page=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);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]=='WebCollage.HighSlide.expand')hs.push(images,el);else if(re[0]=='WebCollage.HighSlide.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}};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.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){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}}});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);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(){this.cb=(this.exp.content['offset'+this.ucwh]-this.t)/2;this.marginMax=hs['margin'+this.ucrb]+2*this.cb},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=(hs.page[this.wh]/2)+hs.page['scroll'+this.uclt]}},calcExpanded:function(){var exp=this.exp;this.justify='auto';if(exp.align=='center')this.justify='center';else if(new RegExp(this.lt).test(exp.anchor))this.justify=null;else if(new RegExp(this.rb).test(exp.anchor))this.justify='max';this.pos=this.tpos-this.cb+this.tb;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.target=exp['target'+this.dim.toUpperCase()];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(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;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;var el=(params&&params.thumbnailId)?hs.$(params.thumbnailId):a;el=this.thumb=el.getElementsByTagName('img')[0]||el;this.thumbsUserSetId=el.id||a.id;if(!hs.fireEvent(this,'onInit'))return true;for(var i=0;i<hs.expanders.length;i++){if(hs.expanders[i]&&hs.expanders[i].a==a){hs.expanders[i].focus();return false}}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[this.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()}this.el=el;this.tpos=hs.getPosition(el);hs.page=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:this.wrapperClassName},{visibility:'hidden',position:'absolute',zIndex:hs.zIndexCounter++},null,true);this.wrapper.onmouseover=this.wrapper.onmouseout=hs.wrapperMouseHandler;if(this.contentType=='image'&&this.outlineWhileAnimating==2)this.outlineWhileAnimating=0;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){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;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)img.src='res://';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'}this.innerContent=this.content;if(/(swf|iframe)/.test(this.objectType))this.setObjContainerSize(this.innerContent);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(this.innerContent);hs.setStyles(this.innerContent,{position:'relative',display:'block',direction:hs.lang.cssDirection||''});if(this.width)this.innerContent.style.width=this.width+'px';if(this.height)this.innerContent.style.height=this.height+'px';if(this.innerContent.offsetWidth<this.minWidth)this.innerContent.style.width=this.minWidth+'px';if(this.objectType=='ajax'&&!hs.getCacheBinding(this.a)){this.showLoading();var ajax=new hs.Ajax(this.a,this.innerContent);var exp=this;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 (WebCollage.HighSlide.expanders['+this.key+']) WebCollage.HighSlide.expanders['+this.key+'].contentLoaded()" ':'';this.body.innerHTML+='<iframe name="hs'+(new Date()).getTime()+'" frameborder="0" key="'+this.key+'" '+' allowtransparency="true" 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(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(){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)){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.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){h=300}return h},correctIframeSize:function(){var wDiff=this.innerContent.offsetWidth-this.ruler.offsetWidth;if(wDiff<0)wDiff=0;var hDiff=this.innerContent.offsetHeight-this.iframe.offsetHeight;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();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;node=hs.createElement(cNode.nodeName,null,{overflow:'hidden'},null,true);cNode.parentNode.insertBefore(node,cNode);node.appendChild(hs.clearing);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;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}if(this.scrollerDiv&&this.scrollerDiv.offsetHeight>this.scrollerDiv.parentNode.offsetHeight){setTimeout("try { WebCollage.HighSlide.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';if(tgt&&tgt.match(/ /)){tgtArr=tgt.split(' ');tgt=tgtArr[0]}if(tgt&&hs.$(tgt)){p.pos=hs.getPosition(hs.$(tgt))[dim];if(tgtArr&&tgtArr[1]&&tgtArr[1].match(/^[-]?[0-9]+px$/))p.pos+=parseInt(tgtArr[1]);if(p.size<p.minSize)p.size=p.minSize}else if(p.justify=='auto'||p.justify=='center'){var hasMovedMin=false;var allowReduce=p.exp.allowSizeReduction;if(p.justify=='center')p.pos=Math.round(p.scroll+(p.clientSize+p.marginMin-p.marginMax-p.get('wsize'))/2);else 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=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{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}}else if(p.justify=='max'){p.pos=Math.floor(p.pos-p.size+p.t)}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){xSize=ySize*ratio;if(xSize<x.minSize){xSize=x.minSize;ySize=xSize/ratio}changed=true}else if(xSize/ySize<ratio){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}this.fitOverlayBox(useBox?null:ratio);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){var x=this.x,y=this.y;if(this.overlayBox){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)}}},reflow:function(){if(this.scrollerDiv){var h=/iframe/i.test(this.scrollerDiv.tagName)?this.getIframePageHeight()+1+'px':'auto';if(this.body)this.body.style.height=h;this.scrollerDiv.style.height=h;this.y.setSize(this.innerContent.offsetHeight)}},show:function(){var x=this.x,y=this.y;this.doShowHide('hidden');hs.fireEvent(this,'onBeforeExpand');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')this.iframe.style.width=(this.objectWidth-1)+'px'}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();hs.fireEvent(this,'onAfterExpand')},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(!as[current+op]&&this.slideshow&&this.slideshow.repeat){if(op==1)return as[0];else if(op==-1)return as[as.length-1]}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.expanders[this.key]=null;if(this.loading)hs.loading.style.left='-9999px'},writeCredits:function(){this.credits=hs.createElement('a',{href:hs.creditsHref,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){var next=this.a.nextSibling;while(next&&!hs.isHsAnchor(next)){if((new RegExp('highslide-'+type)).test(next.className||null)){this[type]=next.cloneNode(1);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)}}},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'){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){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){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++;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}}}if(this.outline)this.outline.table.style.zIndex=this.wrapper.style.zIndex;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);hs.fireEvent(this,'onFocus')},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);var v=hs.uaVersion;if(hs.ie&&v>=5.5&&v<7){WebCollage.handleIE6bugWhereTheTopBorderOfTheOverlayIsNotDisplayed()}},close:function(){if(this.isClosing||!this.isExpanded)return;if(!hs.fireEvent(this,'onBeforeClose'))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){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:null},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:WebCollage.HighSlide.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.fireEvent(this,'onAfterClose');hs.expanders[this.key]=null;hs.reOrder()}};hs.Ajax=function(a,content,pre){this.a=a;this.content=content;this.pre=pre};hs.Ajax.prototype={run:function(){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{this.xmlHttp=new XMLHttpRequest()}catch(e){try{this.xmlHttp=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{this.xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){this.onError()}}}var pThis=this;this.xmlHttp.onreadystatechange=function(){if(pThis.xmlHttp.readyState==4){if(pThis.id)pThis.getElementContent();else pThis.loadHTML()}};this.xmlHttp.open('POST',this.src,true);this.xmlHttp.setRequestHeader('X-Requested-With','XMLHttpRequest');this.xmlHttp.send('dummy=1')},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.xmlHttp.responseText;if(this.pre)hs.cachedGets[this.src]=s;if(!hs.ie||hs.uaVersion>=5.5){s=s.replace(/\s/g,' ').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){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){}}}else{s=s.replace(new RegExp('^.*?<body[^>]*>(.*?)</body>.*?$','i'),'$1')}}hs.getElementByClass(this.content,'DIV','highslide-body').innerHTML=s;this.onLoad();for(var x in this)this[x]=null}};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);hs.langDefaults=hs.lang;var HsExpander=hs.Expander;hs.addEventListener(window,'load',function(){if(hs.expandCursor){var sel='.highslide img',dec='cursor: url('+hs.graphicsDir+hs.expandCursor+'), pointer !important;';var style=hs.createElement('style',{type:'text/css'},null,document.getElementsByTagName('HEAD')[0]);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)}}});hs.addEventListener(window,'resize',function(){hs.page=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);
    // Highslide license key, do not remove: b2fb6f433e2445439ff08d45eb75a017

    if (typeof WebCollage == 'undefined')
      WebCollage = {plugins:{}};

    WebCollage.HighSlide = hs;

  })();


  /**
   * This function is a public one, so NO CHANGING THE INTERFACE WITHOUT BEING BACKWARD COMPATIBLE
   */
  WebCollage.wcReportEvent = function (event, parameters, callbackWhenReportingIsDone)
  {
    if (WebCollage.enableReporting)
    {
      if (typeof parameters == "object")
        parameters = WebCollage.jQuery16.extend((event == "brand-level-pageview") ? {} : {"allow-pc": "false", "allow-tc": "false"}, parameters);
      else if (typeof parameters == "undefined" && event != "brand-level-pageview")
        parameters = {"allow-pc": "false", "allow-tc": "false"};

      var reportingUrl = WebCollage.reporterRoot + "?e=" + event+"&module="+WebCollage.moduleId + "&";

      var urlFromParameters = (parameters ? parameters['url'] : null);
      var url = urlFromParameters ? urlFromParameters : WebCollage.url;
      if (url != null)
        reportingUrl += "url=" + encodeURIComponent(url)+"&";

      if (WebCollage.profilePath != null)
        reportingUrl += "profilepath=" + WebCollage.profilePath +"&";

      if (WebCollage.contextPath != null)
      reportingUrl += "contextpath=" + WebCollage.contextPath +"&";

      reportingUrl += "pageId=" + WebCollage.pageId + "&";

      reportingUrl += "partnerid=" + WebCollage.partnerId  +"&";

      if (WebCollage.wcpc != null)
        reportingUrl += "wcpc=" + WebCollage.wcpc  +"&";

      if (WebCollage.origin!=null);
        reportingUrl += "origin=" + WebCollage.origin  +"&";

      if(typeof WebCollage.channelProductId != typeof undefined)
        reportingUrl += "channel-product-id=" + encodeURIComponent(WebCollage.channelProductId)  + "&";

      if (WebCollage.tab)
        reportingUrl += "tab=" + encodeURIComponent(WebCollage.tab) + "&";

      if (WebCollage.tabCaption)
        reportingUrl += "tab-caption=" + encodeURIComponent(WebCollage.tabCaption) + "&";

      if (WebCollage.tabVar)
        reportingUrl += "tab-var=" + encodeURIComponent(WebCollage.tabVar) + "&";

      if (WebCollage.subTab)
        reportingUrl += "sub-tab=" + encodeURIComponent(WebCollage.subTab) + "&";

      if (WebCollage.tabCode)
        reportingUrl += "tab-code=" + encodeURIComponent(WebCollage.tabCode) + "&";

      reportingUrl += "containerurl=" + encodeURIComponent(WebCollage.origin == 'showcase' ? location.href : location.hostname)  +"&";

      if (WebCollage.escapedReportingFilters)
        reportingUrl += WebCollage.escapedReportingFilters;

      if (WebCollage.originRelatedParameters)
        reportingUrl += WebCollage.originRelatedParameters;

      if (reportingUrl.substr(reportingUrl.length - 1) == "&")
        reportingUrl = reportingUrl.substr(0, reportingUrl.length - 1);

      if (typeof parameters != typeof undefined)
        for(parameter in parameters)
          reportingUrl += "&" + parameter + "=" + encodeURIComponent(parameters[parameter]);

      var reportingImage = new Image(1, 1);
      var doneFunction = function() {
        if (callbackWhenReportingIsDone)
        {
          callbackWhenReportingIsDone();
          callbackWhenReportingIsDone = null;
        }
      }
      reportingImage.onload = doneFunction;
      if (callbackWhenReportingIsDone)
        window.setTimeout(doneFunction, 2000);

      if (!WebCollage.multiTenantReporter)
      {
        reportingUrl = wsmlMakeResourceUrl(reportingUrl);
      }

      reportingImage.src = reportingUrl + "&random=" + Math.random();
      if (typeof WebCollage.callThirdPartyReporting != 'undefined')
      {
        if (parameters == null)
          parameters = {};
        
        for (parameter in WebCollage)
        {
          if (typeof WebCollage[parameter] == "string")
            parameters[parameter] = WebCollage[parameter];
        }
        
        WebCollage.callThirdPartyReporting(event, parameters);
      }
    }
    else if (callbackWhenReportingIsDone)
      callbackWhenReportingIsDone();
  }

  WebCollage.SWFObject15 = function(swf, id, w, h, version, bgcolor, quality, xiRedirectUrl, redirectUrl, detectKey) {
    if (!document.getElementById) { return; }

    this.params = new Object();
    this.variables = new Object();
    this.attributes = {"id" : id};
    this.callback = function(e){};

    if(swf) {
      this.swf = swf;
    }

    if(w) {
      this.width = w;
    }

    if(h) {
      this.height = h;
    }

    if(bgcolor) {
      this.params.bgcolor = bgcolor;
    }

    this.quality = quality ? quality : 'high';
    this.addParam('quality', quality);

    if(version) {
      this.version = version;
    }

    if(detectKey) {
      this.DETECT_KEY = detectKey;
    }

    this.xiRedirectUrl = (xiRedirectUrl) ? xiRedirectUrl : window.location;

    this.redirectUrl = "";
    if(redirectUrl) {
      this.redirectUrl = redirectUrl;
    }
    
    this.wT = (typeof document.getElementsByTagName('title')[0] != "undefined") ? 
      document.getElementsByTagName('title')[0].innerHTML : "";
  }

  WebCollage.SWFObject15.prototype = {

    setAttribute: function(name, value) {
      this.attributes[name] = value;
    },

    getAttribute: function(name) {
      return this.attributes[name];
    },

    addParam: function(name, value) {
      this.params[name] = value;
    },

    getParams: function() {
      return this.params;
    },

    setParams: function(params) {
      this.params = params;
    },

    addVariable: function(name, value) {
      this.variables[name] = value;
    },

    getVariable: function(name){
      return this.variables[name];
    },

    setVariables: function(vars) {
      this.variables = vars;
    },

    getVariables: function(){
      return this.variables;
    },

    setCallback: function(callback) {
      this.callback = callback;
    },

    write : function(elementId) {
      WebCollage.SWFObject22.embedSWF(this.swf, elementId, this.width, this.height, this.version, 'expressInstall.swf', this.variables, this.params, this.attributes, this.callback);
      if (document.title)
      {
        document.title = this.wT;
      }
    }
  }

  /**
   * This function is a public one, so NO CHANGING THE INTERFACE WITHOUT BEING BACKWARD COMPATIBLE
   */
  WebCollage.wcReportVirtualPageView = function (pagePath)
  {
    WebCollage.wcReportEvent('brand-level-pageview', {'url': pagePath});
  }

  /**
   * This function is deprecated, use wcReportCustomAction instead
   */
  WebCollage.wcReportCustomEvent = function (customEventCode)
  {
    WebCollage.wcReportCustomAction(customEventCode);
  }

  WebCollage.wcReportCustomAction = function (customActionCode)
  {
    WebCollage.wcReportEvent('custom-action', {'action-name': customActionCode});
  }

  WebCollage.wcReportAssetAndRedirect = function (linkElement)
  {
    WebCollage.wcReportEvent('asset-view', {'asset': linkElement.getAttribute("data-wc-asset-path")}, function () {
      location.href = linkElement.getAttribute("href")
    });
  }

  WebCollage.wcRunJquery = function(wcFunction)
  {
    var $ = WebCollage.jQuery15;
    var jQuery =   WebCollage.jQuery15;
    wcFunction($, jQuery);
  }

  WebCollage.wcA2cOrP2bOnclick = function (href)
  {
    var isIE8orUp = false;

    WebCollage.wcRunJquery (function($, jQuery) {
      isIE8orUp = $.browser.msie && ($.browser.version >= 8);
    });

    if (!isIE8orUp)
      return true;

     window.open(href,'_blank','status=yes,toolbar=yes,menubar=yes,location=yes,scrollbars=yes,resizable=yes');
     return false;
  }

  WebCollage.wcOpenPopup = function (a,
                                     hrefPopup,
                                     hrefOverlay,
                                     width,
                                     extraWidth,
                                     height,
                                     extraHeight,
                                     windowName,
                                     renderAsOverlay,
                                     closeText,
                                     moveText,
                                     resizeText,
                                     cancelLoadingText)
  {

     //this function runs for the first time when the page is loaded. getParams returns the onclick function. When the actual link
     //is clicked, the getParams is null. That's how we know that an actual click has occurred and not simply a page load.
     if (typeof a.getParams == 'function')
      return;

     if (renderAsOverlay && (window.self == window.top)) //even if we want to render as overlay we need to make sure that the showcase is not embedded in an iframe
     {
       var nonSyndicatedHref = a.href;
       a.href = hrefOverlay;
       WebCollage.wcInsertIframe(a, true, width, height, closeText, moveText, resizeText, cancelLoadingText);
       a.href = nonSyndicatedHref;
       return false;
     }
     else
     {
       if (typeof wcProductListingPopUpHeightAddition != 'undefined')
         height += wcProductListingPopUpHeightAddition;
       else
         height += extraHeight;

       if (typeof wcProductListingPopUpWidthAddition != 'undefined')
         width += wcProductListingPopUpWidthAddition;
       else
         width += extraWidth;

       var w = window.open("", windowName, 'height=' + height  + ',width=' + width + ',status=yes,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes');
       if (w == null)
         return false;
       w.location.href = hrefPopup;
       w.focus();

       return false;

     }

  }

  WebCollage.wcOpenNonResizablePopup = function (a,
                                                 width,
                                                 height,
                                                 closeText,
                                                 moveText,
                                                 resizeText,
                                                 cancelLoadingText)
  {
   //this function runs for the first time when the page is loaded. getParams returns the onclick function. When the actual link
    //is clicked, the getParams is null. That's how we know that an actual click has occurred and not simply a page load.
    if (typeof a.getParams == 'function')
      return;

    return WebCollage.wcInsertIframe(a, false, width, height, closeText, moveText, resizeText, cancelLoadingText, 'wc-nonresizable-overlay');
  }

   WebCollage.backLink = function ()
   {
     if (window.self == window.top)
     {
       history.back();
     }
     else
     {
       WebCollage.wcRunJquery (function($, jQuery) {
         var newLocation = $('#wc-selected-sub-tab').eq(0).attr('href');

         if (newLocation == undefined)
         {
           if ($('.wc-pc-selected-tab').length > 0)
             newLocation = $('.wc-pc-selected-tab a').eq(0).attr('href');
           else if ($('.wc-pc-single-tab').length == 1)
             newLocation = $('.wc-pc-single-tab a').eq(0).attr('href');
         }

         if (newLocation != undefined)
           window.location.href = newLocation;
       });
     }

   }

   WebCollage.wcAddDimensionsToDiv = function ()
   {
      WebCollage.wcRunJquery (function($, jQuery) {
        if ($.browser.safari)
          return;

        var tabbedContentDiv = $('.wc-pc-tabbed-content');

        if (tabbedContentDiv.length > 0)
        {
           var wrappingDiv = tabbedContentDiv.parent().eq(0);
           var productContentTabDiv = $('.wc-product-content').eq(0);
           if (productContentTabDiv.length > 0 && wrappingDiv.length > 0)
           {
             var contentDimensions = WebCollage.getContentWrapperDimensionsIfContentWouldFitInWindow($);
             var width = contentDimensions.width;
             var height = contentDimensions.height;

             var extraWidth = 0;
             var productContentTabDivWidth = width;
             var isIE = $.browser.msie;
             if (isIE)
               extraWidth = 0;
             else
               productContentTabDivWidth += 20;

             var tabbedContentDivWidth = width - 2 + extraWidth;
             var tabbedContentDivStyle = 'width:' + tabbedContentDivWidth + ' !important; height:' + height + '!important; overflow:auto !important';

             tabbedContentDiv.attr('style', tabbedContentDivStyle);
             productContentTabDiv.attr('style', 'width: ' + (productContentTabDivWidth + extraWidth) + ' !important');

             if (isIE)
             {
               var pcTabsDiv = $('.wc-pc-tabs');
               if (pcTabsDiv.length > 0)
               {
                 pcTabsDiv.eq(0).attr('style', 'width: ' + tabbedContentDivWidth + "!important");
               }

               var additionalNavigationDiv = $('.wc-pc-additional-navigation');
               if (additionalNavigationDiv.length > 0)
               {
                 additionalNavigationDiv.eq(0).attr('style', 'width: ' + tabbedContentDivWidth + "!important");
               }

               window.setTimeout(function(){
                 wrappingDiv.css({'width' : width + extraWidth, 'height' : height});
               }, 1);
             }
             else
             {
               wrappingDiv.css({'width' : width + extraWidth, 'height' : height});
             }
           }
        }
        else
        {
          var singleTabDiv = $('.wc-pc-single-tab');
          if (singleTabDiv.length > 0)
          {
            var contentDimensions = WebCollage.getContentWrapperDimensionsIfContentWouldFitInWindow($);
            var width = contentDimensions.width;
            var style = "width:" + width + "!important";

            singleTabDiv.eq(0).attr('style', style);
          }

        }

      });
   }

   WebCollage.getContentWrapperDimensionsIfContentWouldFitInWindow = function ($)
   {
     var width = $(window).width() - 30;

     var tabDimensions = WebCollage.getTabsDimensions($);
     var tabHeight = 0;
     if (tabDimensions != undefined)
       tabHeight = tabDimensions.height;

     var titleDimensions = WebCollage.getTitleDimensions($);
     var titleHeight = 0;
     if (titleDimensions != undefined)
       titleHeight = titleDimensions.height;

     var height = $(window).height() - titleHeight - tabHeight - WebCollage.getAdditionalNavigationHeight($) + 1; //1 pixel is the border

     return {'width': width, 'height': height};
   }

   WebCollage.getTabsDimensions = function($)
   {
      if (arguments.callee.width != undefined)
      {
        return {'width' : arguments.callee.width, 'height' : arguments.callee.height};
      }

      var tabsWidth = undefined;
      var tabsHeight = undefined;
      var tdSeparatorFiller = $('.wc-pc-separator-filler');

      if (tdSeparatorFiller.length > 0) //multiple tab scenario
      {
        var tdStyle = tdSeparatorFiller.attr('style');
        tdSeparatorFiller.attr('style', 'width:auto !important;');

        var tabTable = $('.wc-tab-table');
        var tabTableStyle = tabTable.attr('style');
        tabTable.attr('style', 'width:auto !important;');

        tabsWidth = tabTable.get(0).offsetWidth;
        tabsHeight = tabTable.get(0).offsetHeight + 25; //+25 is the amount of pixels needed to add to tabTable's height so that no scroll bars appear.

        tabTable.attr('style', tabTableStyle);
        tdSeparatorFiller.attr('style', tdStyle);
      }
      else //single tab scenario
      {
        var singleTabDiv = $('.wc-pc-single-tab');
        if (singleTabDiv.length > 0)
        {
          var divStyle = singleTabDiv.attr('style');
          singleTabDiv.attr('style', 'float:left !important;');

          tabsWidth = singleTabDiv.get(0).offsetWidth;
          tabsHeight = singleTabDiv.get(0).offsetHeight + 25; //+25 is the amount of pixels needed to add to tabTable's height so that no scroll bars appear.

          singleTabDiv.attr('style', divStyle);
        }
        else
        {
          tabsWidth = 0;
          tabsHeight = 0;
        }
      }

    arguments.callee.width = tabsWidth;
    arguments.callee.height = tabsHeight;
    return {'width' : tabsWidth, 'height' : tabsHeight};
   }

   WebCollage.getTitleDimensions = function($)
   {
     if (arguments.callee.width != undefined)
     {
       return {'width' : arguments.callee.width, 'height' : arguments.callee.height};
     }

     var titleDiv = $('.wc-pc-title').eq(0);

     if (titleDiv.length > 0)
     {
        var titleDimensions = WebCollage.getDimensionsForElement($, titleDiv);
        titleDimensions.height += 25; //additional offset

        arguments.callee.width = titleDimensions.width;
        arguments.callee.height = titleDimensions.height;

        return titleDimensions;
     }

     return {'width' : 0, 'height' : 0};

   }

   WebCollage.getDimensionsForElement = function($, element)
   {
     var style = element.attr('style');

     element.attr('style','float:left !important');

     var width =  element.get(0).offsetWidth;
     var height = element.get(0).offsetHeight;

     if (style == undefined)
       element.removeAttr('style');
     else
       element.attr('style', style);

     return {'width' : width, 'height' : height};
   }

   WebCollage.getAdditionalNavigationHeight = function($)
   {
      var tabsHeight = 0;
      var additionalNavigationDiv = $('.wc-pc-additional-navigation');

      if (additionalNavigationDiv.length > 0)
        tabsHeight = additionalNavigationDiv.get(0).offsetHeight + 25;


     return tabsHeight;
   }

  /*The following code is used for opening popups as overlays*/
  WebCollage.isOverlayAlreadyPositioned = false;

  WebCollage.getScrollTopForWindow = function ()
  {
    var quirksModeScrollTop = document.body.scrollTop; //This will always be 0 in standard mode.
    var standardModeScrollTop = document.documentElement.scrollTop; //This will always be 0 in quirks mode.
    var scrollTop = quirksModeScrollTop >= standardModeScrollTop ? quirksModeScrollTop : standardModeScrollTop;

    return scrollTop;
  }

  WebCollage.getScrollLeftForWindow = function ()
  {
    var quirksModeScrollLeft = document.body.scrollLeft; //This will always be 0 in standard mode.
    var standardModeScrollLeft = document.documentElement.scrollLeft; //This will always be 0 in quirks mode.
    var scrollLeft = quirksModeScrollLeft >= standardModeScrollLeft ? quirksModeScrollLeft : standardModeScrollLeft;

    return scrollLeft;
  }

  WebCollage.HighSlide.Expander.prototype.onBeforeExpand = function()
  {

    //need to make sure that the overflow value is auto on html so that when the iframe moves to a place where
    //scrollbars are needed, they will show (sears is the reason for this fix).
    WebCollage.wcRunJquery (function($, jQuery) {
      var scrollTop = WebCollage.getScrollTopForWindow();
      var scrollLeft = WebCollage.getScrollLeftForWindow();

      var html = $('html');
      var overflowX = html.css('overflow-x');
      var overflowY = html.css('overflow-y');

      html.attr('xoverflow', overflowX);
      html.attr('yoverflow', overflowY);
      html.css('overflow-x', '');
      html.css('overflow-y', '');
      html.css('overflow','auto');

      if ($.browser.mozilla)
        window.scrollTo(scrollLeft, scrollTop);
    });


  }

  WebCollage.HighSlide.Expander.prototype.onAfterClose = function()
  {
    if (wcPollingTimer != undefined)
    {
      clearInterval(wcPollingTimer);
      wcPollingTimer = undefined;
    }

    WebCollage.isOverlayAlreadyPositioned = false;

    WebCollage.wcRunJquery (function($, jQuery) {
      WebCollage.doNotPassMouseEventsToDocument($);

      var scrollTop = WebCollage.getScrollTopForWindow();
      var scrollLeft = WebCollage.getScrollLeftForWindow();

      var html = $('html');

      var overflowX = html.attr('xoverflow');
      html.removeAttr('xoverflow');

      var overflowY = html.attr('yoverflow');
      html.removeAttr('yoverflow');

      html.css('overflow', '');
      html.css({'overflow-x' : overflowX, 'overflow-y' : overflowY});

      if ($.browser.mozilla)
        window.scrollTo(scrollLeft, scrollTop);

    });


  }



  WebCollage.wcInsertIframe = function(a,
                                       enableAutoResize,
                                       width,
                                       height,
                                       closeText,
                                       moveText,
                                       resizeText,
                                       cancelLoadingText,
                                       wrapperClassName)
  {
    //this function runs for the first time when the page is loaded. getParams returns the onclick function. When the actual link
    //is clicked, the getParams is null. That's how we know that an actual click has occurred and not simply a page load.
    if (typeof a.getParams == 'function')
      return;

    WebCollage.wcRunJquery (function($, jQuery) {

      WebCollage.registerCustomClose($, closeText);
      WebCollage.registerCustomMove($, moveText);
      WebCollage.registerCustomResize($, resizeText);
      WebCollage.setCancelLoadingText($, cancelLoadingText);

      WebCollage.createPositioningElement($);

      var syndicatorSpan = WebCollage.findSyndicatorSpan($);
      if (syndicatorSpan != undefined)
      {
        WebCollage.wrapWithSyndicatorIdIfNeeded($, syndicatorSpan);
        WebCollage.passMouseEventsToDocumentIfHaveSyndicatorInterference(syndicatorSpan);
      }

   });

   WebCollage.HighSlide.showCredits = false;
   WebCollage.HighSlide.allowMultipleInstances = false;

   var quirksModeScrollTop = document.body.scrollTop; //This will always be 0 in standard mode.
   var standardModeScrollTop = document.documentElement.scrollTop; //This will always be 0 in quirks mode.
   var scrollTop = quirksModeScrollTop >= standardModeScrollTop ? quirksModeScrollTop : standardModeScrollTop;

   var scrollAmount = 70 + scrollTop;  //if you change this 70 you need to change the 130 in WebCollage.adjustRequiredHeightIfNecessary to take into account this change
   var targetY = 'wc-overlay-target ' + scrollAmount + 'px';

   if (enableAutoResize)
   {
     WebCollage.startPollingForChangeInDimensions ();
     var showcaseUrl = window.location.href.split("#")[0];
     showcaseUrl = showcaseUrl.replace(/n-state/,"N_STATE"); //if n-state exists syndicator will redirect to the url found in it.

     a.href = a.href.replace(/WS_CONTAINERURL/,escape(escape(escape(escape(showcaseUrl)))));
   }

   if (width == undefined)
     width = 500;
   if (height == undefined)
     heigt = 500;
   if (wrapperClassName == undefined)
     wrapperClassName = 'wc-overlay';

   return WebCollage.HighSlide.htmlExpand(a,
                                          {objectType: 'iframe',
                                           width: width,
                                           height: height,
                                           align: 'center',
                                           targetY: targetY,
                                           outlineType: 'rounded-white',
                                           allowSizeReduction: false,
                                           preserveContent: false,
                                           wrapperClassName: wrapperClassName} );
  }

  WebCollage.findSyndicatorSpan = function ($)
  {
    var syndicatorSpan = $(".wc-module-width").eq(0).parents('span').filter(function (index) {
      var id = $(this).attr("id");

      if ((id != undefined) && (id != ""))
      {
        return $.isFunction(this.onmousemove) && $.isFunction(this.onmousedown);
      }

      return false;
  })[0];

    return syndicatorSpan;
  }

  WebCollage.passMouseEventsToDocumentIfHaveSyndicatorInterference = function(syndicatorSpan)
  {
     syndicatorSpan.oldmousedown = syndicatorSpan.onmousedown;
     syndicatorSpan.onmousedown = function() {};
     syndicatorSpan.oldmousemove = syndicatorSpan.onmousemove;
     syndicatorSpan.onmousemove = function() {};
  }

  WebCollage.doNotPassMouseEventsToDocument = function($)
  {
     var syndicatorSpan = WebCollage.findSyndicatorSpan($);

     if (syndicatorSpan == undefined)
       return;

     syndicatorSpan.onmousedown = syndicatorSpan.oldmousedown;
     syndicatorSpan.oldmousedown = function() {};
     syndicatorSpan.onmousemove = syndicatorSpan.oldmousemove;
     syndicatorSpan.oldmousemove = function() {};
  }

  WebCollage.handleIE6bugWhereTheTopBorderOfTheOverlayIsNotDisplayed = function()
  {
    WebCollage.wcRunJquery (function($, jQuery) {
       var tables = $('.highslide-container table');
       if (tables.length > 1)
       {
          var tds = tables.eq(1).find('td');
          var upperBorderDivs = tds.eq(1).find('div');
          var upperBorderInnerDiv = upperBorderDivs.eq(1);
          var upperBorderOuterDiv = upperBorderDivs.eq(0);

          var lowerBorderDivs = tds.eq(7).find('div');
          var lowerBorderInnerDiv = lowerBorderDivs.eq(1);
          var lowerBorderOuterDiv = lowerBorderDivs.eq(0);

          window.setTimeout(function(){
             var upperWidth = upperBorderInnerDiv.css('width');
             var lowerWidth = lowerBorderInnerDiv.css('width');

             upperBorderInnerDiv.css('width', '');
             upperBorderOuterDiv.css('width', '');
             lowerBorderInnerDiv.css('width', '');
             lowerBorderOuterDiv.css('width', '');

             var style = upperBorderInnerDiv.attr('style');
             style += ';WIDTH: ' + upperWidth + ' !IMPORTANT;';
             upperBorderInnerDiv.attr('style', style);

             style = upperBorderOuterDiv.attr('style');
             style += ';WIDTH: ' + tds[1].offsetWidth + 'px !IMPORTANT;';
             upperBorderOuterDiv.attr('style', style);

             style = lowerBorderInnerDiv.attr('style');
             style += ';width:' + lowerWidth + ' !IMPORTANT';
             lowerBorderInnerDiv.attr('style', style);

             style = lowerBorderOuterDiv.attr('style');
             style += ';WIDTH: ' + tds[7].offsetWidth + 'px !IMPORTANT;';
             lowerBorderOuterDiv.attr('style', style);
          },1);
       }
     });

  }

  WebCollage.wrapWithSyndicatorIdIfNeeded = function($, syndicatorSpan)
  {
    var highslideContainer = $('.highslide-container').eq(0);
    if (highslideContainer.length == 0)
    {
      WebCollage.HighSlide.init();
      highslideContainer = $('.highslide-container').eq(0);
    }

    if (highslideContainer.parent().length > 0)
    {
      var wrapperForSyndicator = $(document.createElement('div')).attr('id', syndicatorSpan.id);
      highslideContainer.wrap(wrapperForSyndicator);
    }
  }

  WebCollage.createPositioningElement = function($)
  {
    var body = $('body');
    if ($('#wc-overlay-target').length == 0)
    {
      var targetDiv = $(document.createElement('div')).attr('id', 'wc-overlay-target');
      body.prepend(targetDiv);
    }
  }


  WebCollage.setCancelLoadingText = function($, cancelLoadingText)
  {
    var a = $('.highslide-loading').eq(0);
    a.attr('title', cancelLoadingText);
    a.attr('alt', cancelLoadingText);
  }

  WebCollage.registerCustomClose = function($, closeText)
  {
    if ($('.custom-closebutton').length == 0)
    {
      if (closeText == undefined)
        closeText = 'Close Window';

      var htmlElement = '<span onclick="return WebCollage.HighSlide.close()"><a class="custom-closebutton" title="'+ closeText +'" alt="'+ closeText +'" href="javascript:void(0)"></a></span>';
      WebCollage.HighSlide.registerOverlay({
        html: htmlElement,
        position: 'top right',
        useOnHtml: true,
        fade: 2 // fading the semi-transparent overlay looks bad in IE
      });
    }
  }

  WebCollage.registerCustomMove = function($, moveText)
  {
    if ($('.custom-move').length == 0)
    {
      if (moveText == undefined)
        moveText = 'Move';

      var htmlElement = '<div class="custom-move" title="' + moveText + '" alt="'+ moveText +'"></div>';
      WebCollage.HighSlide.registerOverlay({
        html: htmlElement,
        className: 'highslide-move',
        position: 'top right',
        useOnHtml: true,
        fade: 2 // fading the semi-transparent overlay looks bad in IE
      });
    }
  }

  WebCollage.registerCustomResize = function($, resizeText)
  {
    if ($('.custom-resize').length == 0)
    {
      if (resizeText == undefined)
        resizeText = 'Resize';

      var htmlElement = '<div class="custom-resize" title="' + resizeText + '" alt="' + resizeText + '"></div>';
          WebCollage.HighSlide.registerOverlay({
            html: htmlElement,
            className: 'highslide-resize',
            position: 'bottom right',
            useOnHtml: true,
            fade: 2 // fading the semi-transparent overlay looks bad in IE
          });
    }
  }
  var wcPollingTimer = undefined;
  WebCollage.startPollingForChangeInDimensions = function ()
  {
     wcPollingTimer = window.setInterval(function(){
      try
      {
        if ((window.location.hash.length == 0) || (window.location.hash == "#w=&h=&ov=&min_w=" ))
          return;

        var hashValue = window.location.hash.substring(1);

        if ((hashValue == null) || (hashValue.length == 0))
          return;

        var dimensions = hashValue.split('&');
        if ((dimensions == null) || (dimensions.length < 4))
          return;

        var widthNameValuePair = dimensions[0].split('=');
        var heightNameValuePair = dimensions[1].split('=');
        var overflowNameValuePair = dimensions[2].split('=');
        var minWidthNameValuePair = dimensions[3].split('=');

        if ((widthNameValuePair == null) || (widthNameValuePair.length < 2) || (widthNameValuePair[1] == ""))
          return;
        if ((heightNameValuePair == null) || (heightNameValuePair.length < 2) || (heightNameValuePair[1] == ""))
          return;
        if ((overflowNameValuePair == null) || (overflowNameValuePair.length < 2) || (overflowNameValuePair[1] == ""))
          return;
        if ((minWidthNameValuePair == null) || (minWidthNameValuePair.length < 2) || (minWidthNameValuePair[1] == ""))
          return;

        if (WebCollage.resizeOverlay({'width': parseInt(widthNameValuePair[1]), 'height': parseInt(heightNameValuePair[1])}, minWidthNameValuePair[1]))
        {
         WebCollage.setOverflowValueForIframe(overflowNameValuePair[1]);
         var hashIndex = window.location.href.lastIndexOf("#");
         var newHref = window.location.href.substring(0, hashIndex) + "#w=&h=&ov=&min_w=";
         window.location.replace(newHref);
        }
      }
      catch(e){}

    }, 200);
  }

  WebCollage.setOverflowValueForIframe = function(overflowStyle)
  {
    WebCollage.wcRunJquery (function($, jQuery) {
      if ($.browser.safari)
          return;

      var iframe = $('iframe').eq(0);

      iframe.css({'overflow' : overflowStyle});

      if (overflowStyle == 'hidden')
        iframe.attr('scrolling','no');
      else
        iframe.attr('scrolling','auto');
    });
  }

  WebCollage.resizeOverlay = function(requiredIframeDimensions, minWidth)
  {
     var overlay = window.WebCollage.HighSlide.getExpander();
     if (!overlay)
       return false;

     var contractWhenMovingToSmallerTab = true;

     WebCollage.wcRunJquery (function($, jQuery) {
        var contentDiv = $(WebCollage.getActiveOverlay($)).find('.highslide-html-content');
        var currentWrapperWidth = contentDiv.get(0).offsetWidth;
        var currentWrapperHeight = contentDiv.get(0).offsetHeight;

        requiredIframeDimensions.height = WebCollage.adjustRequiredHeightIfNecessary($, overlay, requiredIframeDimensions.height);

        var iframe = $(contentDiv.get(0)).find('iframe');
        var divWrapperWidth = requiredIframeDimensions.width + (currentWrapperWidth - iframe.get(0).offsetWidth);
        var divWrapperHeight = requiredIframeDimensions.height + (currentWrapperHeight - iframe.get(0).offsetHeight);

        var resizeWidth = !WebCollage.isOverlayAlreadyPositioned || currentWrapperWidth < divWrapperWidth || contractWhenMovingToSmallerTab;
        var resizeHeight = !WebCollage.isOverlayAlreadyPositioned || currentWrapperHeight < divWrapperHeight || contractWhenMovingToSmallerTab;

        var maxDelta = Math.max(Math.abs(divWrapperWidth-currentWrapperWidth), Math.abs(divWrapperHeight-currentWrapperHeight));
        var step = 0;
        var stepWidth = 30;
        var minSmoothness = 1;
        if ($.browser.msie)
        {
          stepWidth = 250; //ie is transitions really slowly when it's resizing.
          minSmoothness = 2; //in ie when this value is 1 after the resize the content window is blank so we always need atleast 2 resizes.
        }
        var smoothness = Math.max(minSmoothness, Math.floor(maxDelta/stepWidth));
        var stepTime = 10;

        var resizeWidthTo = currentWrapperWidth;
        var resizeHeightTo = currentWrapperHeight;
        var timerId =
        setInterval(function () {
                     ++step;
                     if (step <= smoothness)
                     {
                       if (resizeWidth)
                         resizeWidthTo = (((step * divWrapperWidth) + ((smoothness-step)*currentWrapperWidth)))/smoothness;
                       if (resizeHeight)
                         resizeHeightTo = (((step * divWrapperHeight) + ((smoothness-step)*currentWrapperHeight)))/smoothness;

                       overlay.resizeTo(resizeWidthTo, resizeHeightTo);

                       if (!WebCollage.isOverlayAlreadyPositioned && resizeWidth)
                       {
                         var newXPosition = overlay.x.pos - (stepWidth/2);

                         if (newXPosition > 70)
                           overlay.moveTo(newXPosition, overlay.y.pos);
                       }
                     }
                     if (step == smoothness)
                     {
                       clearInterval(timerId);
                       WebCollage.isOverlayAlreadyPositioned = true;
                       overlay.minWidth = minWidth;
                       //overlay.x.full describes the content width when the overlay is first opened, which means the value can be very small.
                       //The overlay's minimun size is the minimum between x.full and the minWidth provided.
                       //We want minWidth to always win this battle.
                       overlay.x.full = minWidth;
                     }
                   }, stepTime);

    });
    return true;
  }

  WebCollage.adjustRequiredHeightIfNecessary = function($, overlay, height)
  {
    var viewportHeight = $(window).height();
    var maxHeight = viewportHeight - 130; //extra pixels are for border around iframe

    if (height < 540 || height < maxHeight)
      return height;

    return Math.max(maxHeight, 540);
  }

  WebCollage.getActiveOverlay = function($)
  {
    var allOverlays = $('.wc-overlay');

    if (allOverlays.length == 0)
      return undefined;

    var currentActiveOverlay = undefined;
    for (var i = 0; i < allOverlays.length; i++)
    {
      if ((allOverlays[i].id != "") &&
          (allOverlays[i].style['display'] != 'none'))
      {
        return allOverlays[i];
      }
    }
  }

  WebCollage.createFlashPreloader = function(e, $, preloaderImgSrc)
  {
    var flash = $("#" + e.id);

    var flashWidth = flash.attr("width");
    var flashHeight = flash.attr("height");

    flash.attr('style', 'visibility:hidden');
    var div = flash.parent();
    flash = flash.get(0);

    var img = $(document.createElement('img')).addClass('wc-loading-image');
    var left = (flashWidth - 48)/2;
    var top = (flashHeight - 48)/2;
    var style = 'margin-left:' + left + 'px !important; margin-top:' + top + 'px !important;';
    img.attr('style', style);
    img.attr('src', preloaderImgSrc);

    var outerIntervalId = setInterval(function() {
      if (parseInt(flash.PercentLoaded()) < 95)
      {
        div.prepend(img);

        var innerIntervalId = setInterval(function() {
        if (parseInt(flash.PercentLoaded()) >= 95)
        {
          clearInterval(innerIntervalId);
          $("#" + e.id).attr('style', 'visibility:visible !important');
          $('.wc-loading-image').remove();
        }
      }, 200);
    }
    else
    {
      $("#" + e.id).attr('style', 'visibility:visible !important');
    }
    clearInterval(outerIntervalId);
  }, 1000);
 }

 WebCollage.playFlashMovie = function(id)
 {
    var $ = WebCollage.jQuery15;
    $("#wc-flash-" + id + "-play-div").attr({style: "display:none !important"});
    $("#wc-flash-" + id + "-stop-div").attr({style: "display:block !important"});

    var errorText = "You either have JavaScript turned off or an old version of Adobe's Flash Player";
    var errorLink = $(document.createElement('a')).attr({href:'http://www.macromedia.com/go/getflashplayer/', target:'_blank'}).html('Get the latest Flash player');
    var errorDiv = $(document.createElement('div')).addClass('no-flash-error').append(errorText).append($(document.createElement('br'))).append(errorLink);
    $("#wc-flash-" + id + "-div").html(errorDiv);

    var flashWrapper = $("#wc-flash-" + id + "-div-wrapper");
    var so = new WebCollage.SWFObject15(flashWrapper.attr("wcobj"), "wc-flash-" + id + "-div", flashWrapper.attr("wcobj-width"), flashWrapper.attr("wcobj-height"), flashWrapper.attr("wcobj-version"), 'white');

    var flashvars = eval(flashWrapper.attr("wcobj-flashvars"));
    if(typeof flashvars != "undefined")
    {
      so.setVariables(flashvars);
    }

    var params = eval(flashWrapper.attr("wcobj-params"));

    if(typeof params != "undefined")
    {
      so.setParams(params);
    }

    so.addParam("allowScriptAccess", "always");
    so.addParam("base", flashWrapper.attr("wcobj-base"));

    if(flashWrapper.attr("wcobj-enable-wc-preloader") && parseInt(flashWrapper.attr("wcobj-size")) > 250)
    {
      so.setCallback(function(e){WebCollage.createFlashPreloader(e, $, flashWrapper.attr("wcobj-preloader-img"))});
    }

    so.write("wc-flash-" + id + "-div");
    WebCollage.wcReportEvent('asset-view', {'asset': flashWrapper.attr("wcobj-assetview-url")});
 }

 WebCollage.stopFlashMovie = function(id)
 {
    var $ = WebCollage.jQuery15;

    $("#wc-flash-" + id + "-stop-div").attr({style: 'display:none !important'});
    $("#wc-flash-" + id + "-play-div").attr({style: 'display:block !important'});

    var flashWrapper = $("#wc-flash-" + id + "-div-wrapper");
    var w = flashWrapper.attr("wcobj-width");
    var h = flashWrapper.attr("wcobj-height")

    var topMargin = (h - 62) / 2;
    var leftMargin = (w - 62) / 2;

    var topMarginCss = 'top:' + topMargin + ' !important; left:' + leftMargin + ' !important; position: absolute !important; z-index: 5 !important';
    var centeredThumbnail = $(document.createElement('a')).attr({href: "javascript:WebCollage.playFlashMovie(" + id + ")"}).append($(document.createElement('img')).attr({src:flashWrapper.attr("wcobj-play-img-url"), style: topMarginCss, alt:flashWrapper.attr("wcobj-play-link-text"), title:flashWrapper.attr("wcobj-play-link-text")}));

    var backgroundCss = "z-index:0 !important; width:" + w + "px !important; height:" + h + "px !important; position: absolute !important;top: 0 !important; left:0 !important;";
    var backgroundImage = $(document.createElement('img')).attr({src:flashWrapper.attr("wcobj-play-img-background-url"), style: backgroundCss});

    var flashDiv = $(document.createElement('div')).attr({id: "wc-flash-" + id + "-div"});

    $("#wc-flash-" + id + "-div-wrapper").empty();
    $("#wc-flash-" + id + "-div-wrapper").append(flashDiv);
    $("#wc-flash-" + id + "-div").append(backgroundImage);
    $("#wc-flash-" + id + "-div").append(centeredThumbnail);
 }
 
 WebCollage.stopFlashMovieWithThumbnail = function(id)
 {
    var $ = WebCollage.jQuery15;

    $("#wc-flash-" + id + "-stop-div").attr({style: 'display:none !important'});
    $("#wc-flash-" + id + "-play-div").attr({style: 'display:block !important'});

    var flashWrapper = $("#wc-flash-" + id + "-div-wrapper");
   
    var thumbnail = $(document.createElement('a')).attr({href: "javascript:WebCollage.playFlashMovie('" + id + "')"}).append($(document.createElement('img')).attr({src:flashWrapper.attr("wcobj-play-img-url"), alt:flashWrapper.attr("wcobj-play-link-text"), title:flashWrapper.attr("wcobj-play-link-text"), width:flashWrapper.attr("wcobj-width"), height:flashWrapper.attr("wcobj-height")}).addClass("wc-thumb"));

    var flashDiv = $(document.createElement('div')).attr({id: "wc-flash-" + id + "-div"});

    $("#wc-flash-" + id + "-div-wrapper").empty();
    $("#wc-flash-" + id + "-div-wrapper").append(flashDiv);
    $("#wc-flash-" + id + "-div").append(thumbnail);
 
 }

 WebCollage.handleGalleriaInSafariAndInIframeBug = function ()
 {
   WebCollage.wcRunJquery (function($, jQuery) {
     if ($.browser.safari && window.self != window.top)
         $.historyCheck = function(){};
   });
 };


 /* Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
  * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
  * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
  * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
  * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
  *
  * Version: 3.0.2
  *
  * Requires: 1.2.2+
  */

 /* Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
  * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
  * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
  * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
  * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
  *
  * Version: 3.0.2
  *
  * Requires: 1.2.2+
  */
 (function(c){var a=["DOMMouseScroll","mousewheel"];c.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var d=a.length;d;){this.addEventListener(a[--d],b,false)}}else{this.onmousewheel=b}},teardown:function(){if(this.removeEventListener){for(var d=a.length;d;){this.removeEventListener(a[--d],b,false)}}else{this.onmousewheel=null}}};c.fn.extend({mousewheel:function(d){return d?this.bind("mousewheel",d):this.trigger("mousewheel")},unmousewheel:function(d){return this.unbind("mousewheel",d)}});function b(f){var d=[].slice.call(arguments,1),g=0,e=true;f=c.event.fix(f||window.event);f.type="mousewheel";if(f.wheelDelta){g=f.wheelDelta/120}if(f.detail){g=-f.detail/3}d.unshift(f,g);return c.event.handle.apply(this,d)}})(WebCollage.jQuery16);

 /*
  * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
  * http://benalman.com/projects/jquery-bbq-plugin/
  *
  * Copyright (c) 2010 "Cowboy" Ben Alman
  * Dual licensed under the MIT and GPL licenses.
  * http://benalman.com/about/license/
  */
 (function($,p){var i,m=Array.prototype.slice,r=decodeURIComponent,a=$.param,c,l,v,b=$.bbq=$.bbq||{},q,u,j,e=$.event.special,d="hashchange",A="querystring",D="fragment",y="elemUrlAttr",g="location",k="href",t="src",x=/^.*\?|#.*$/g,w=/^.*\#/,h,C={};function E(F){return typeof F==="string"}function B(G){var F=m.call(arguments,1);return function(){return G.apply(this,F.concat(m.call(arguments)))}}function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(.*)$/:/^([^#?]*)\??([^#]*)(#?.*)/);J=K[3]||"";if(G===2&&E(I)){L=I.replace(H?w:x,"")}else{N=l(K[2]);I=E(I)?l[H?D:A](I):I;L=G===2?I:G===1?$.extend({},I,N):$.extend({},N,I);L=a(L);if(H){L=L.replace(h,r)}}O=K[1]+(H?"#":L||!K[1]?"?":"")+L+J}else{O=M(F!==i?F:p[g][k])}return O}a[A]=B(f,0,o);a[D]=c=B(f,1,n);c.noEscape=function(G){G=G||"";var F=$.map(G.split(""),encodeURIComponent);h=new RegExp(F.join("|"),"g")};c.noEscape(",/");$.deparam=l=function(I,F){var H={},G={"true":!0,"false":!1,"null":null};$.each(I.replace(/\+/g," ").split("&"),function(L,Q){var K=Q.split("="),P=r(K[0]),J,O=H,M=0,R=P.split("]["),N=R.length-1;if(/\[/.test(R[0])&&/\]$/.test(R[N])){R[N]=R[N].replace(/\]$/,"");R=R.shift().split("[").concat(R);N=R.length-1}else{N=0}if(K.length===2){J=r(K[1]);if(F){J=J&&!isNaN(J)?+J:J==="undefined"?i:G[J]!==i?G[J]:J}if(N){for(;M<=N;M++){P=R[M]===""?O.length:R[M];O=O[P]=M<N?O[P]||(R[M+1]&&isNaN(R[M+1])?{}:[]):J}}else{if($.isArray(H[P])){H[P].push(J)}else{if(H[P]!==i){H[P]=[H[P],J]}else{H[P]=J}}}}else{if(P){H[P]=F?i:""}}});return H};function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{F=E(F)?F.replace(H?w:x,""):F}return l(F,G)}l[A]=B(z,0);l[D]=v=B(z,1);$[y]||($[y]=function(F){return $.extend(C,F)})({a:k,base:k,iframe:t,img:t,input:t,form:"action",link:k,script:t});j=$[y];function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return this.each(function(){var L=$(this),J=G||j()[(this.nodeName||"").toLowerCase()]||"",K=J&&L.attr(J)||"";L.attr(J,a[I](K,H,F))})}$.fn[A]=B(s,A);$.fn[D]=B(s,D);b.pushState=q=function(I,F){if(E(I)&&/^#/.test(I)&&F===i){F=2}var H=I!==i,G=c(p[g][k],H?I:{},H?F:2);p[g][k]=G+(/#/.test(G)?"":"#")};b.getState=u=function(F,G){return F===i||typeof F==="boolean"?v(F):v(G)[F]};b.removeState=function(F){var G={};if(F!==i){G=u();$.each($.isArray(F)?F:arguments,function(I,H){delete G[H]})}q(G,2)};e[d]=$.extend(e[d],{add:function(F){var H;function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||typeof K==="boolean"?l(I,K):l(I,L)[K]};H.apply(this,arguments)}if($.isFunction(F)){H=F;return G}else{H=F.handler;F.handler=G}}})})(WebCollage.jQuery16,this);
 /*
  * jQuery hashchange event - v1.2 - 2/11/2010
  * http://benalman.com/projects/jquery-hashchange-plugin/
  *
  * Copyright (c) 2010 "Cowboy" Ben Alman
  * Dual licensed under the MIT and GPL licenses.
  * http://benalman.com/about/license/
  */
 (function($,i,b){var j,k=$.event.special,c="location",d="hashchange",l="href",f=$.browser,g=document.documentMode,h=f.msie&&(g===b||g<8),e="on"+d in i&&!h;function a(m){m=m||i[c][l];return m.replace(/^[^#]*#?(.*)$/,"$1")}$[d+"Delay"]=100;k[d]=$.extend(k[d],{setup:function(){if(e){return false}$(j.start)},teardown:function(){if(e){return false}$(j.stop)}});j=(function(){var m={},r,n,o,q;function p(){o=q=function(s){return s};if(h){n=$('<iframe src="javascript:0"/>').hide().insertAfter("body")[0].contentWindow;q=function(){return a(n.document[c][l])};o=function(u,s){if(u!==s){var t=n.document;t.open().close();t[c].hash="#"+u}};o(a())}}m.start=function(){if(r){return}var t=a();o||p();(function s(){var v=a(),u=q(t);if(v!==t){o(t=v,u);$(i).trigger(d)}else{if(u!==t){i[c][l]=i[c][l].replace(/#.*/,"")+"#"+u}}r=setTimeout(s,$[d+"Delay"])})()};m.stop=function(){if(!n){r&&clearTimeout(r);r=0}};return m})()})(WebCollage.jQuery16,this);


 /* Copyright (c) 2006 Kelvin Luck (kelvin AT kelvinluck DOT com || http://www.kelvinluck.com)
  * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
  * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
  *
  * See http://kelvinluck.com/assets/jquery/jScrollPane/
  * $Id: jScrollPane.js 33 2008-12-10 22:55:28Z kelvin.luck $
  */

 /**
  * Replace the vertical scroll bars on any matched elements with a fancy
  * styleable (via CSS) version. With JS disabled the elements will
  * gracefully degrade to the browsers own implementation of overflow:auto.
  * If the mousewheel plugin has been included on the page then the scrollable areas will also
  * respond to the mouse wheel.
  *
  * @example jQuery(".scroll-pane").jScrollPane();
  *
  * @name jScrollPane
  * @type jQuery
  * @param Object        settings        hash with options, described below.
  *                                                              scrollbarWidth  -       The width of the generated scrollbar in pixels
  *                                                              scrollbarMargin -       The amount of space to leave on the side of the scrollbar in pixels
  *                                                              wheelSpeed              -       The speed the pane will scroll in response to the mouse wheel in pixels
  *                                                              showArrows              -       Whether to display arrows for the user to scroll with
  *                                                              arrowSize               -       The height of the arrow buttons if showArrows=true
  *                                                              animateTo               -       Whether to animate when calling scrollTo and scrollBy
  *                                                              dragMinHeight   -       The minimum height to allow the drag bar to be
  *                                                              dragMaxHeight   -       The maximum height to allow the drag bar to be
  *                                                              animateInterval -       The interval in milliseconds to update an animating scrollPane (default 100)
  *                                                              animateStep             -       The amount to divide the remaining scroll distance by when animating (default 3)
  *                                                              maintainPosition-       Whether you want the contents of the scroll pane to maintain it's position when you re-initialise it - so it doesn't scroll as you add more content (default true)
  *                                                              scrollbarOnLeft -       Display the scrollbar on the left side?  (needs stylesheet changes, see examples.html)
  *                                                              reinitialiseOnImageLoad - Whether the jScrollPane should automatically re-initialise itself when any contained images are loaded
  * @return jQuery
  * @cat Plugins/jScrollPane
  * @author Kelvin Luck (kelvin AT kelvinluck DOT com || http://www.kelvinluck.com)
  */

 (function(a){a.jScrollPane={active:[]};a.fn.jScrollPane=function(c){c=a.extend({},a.fn.jScrollPane.defaults,c);var b=function(){return false};return this.each(function(){var q=a(this);q.css("overflow","hidden");var z=this;if(a(this).parent().is(".jScrollPaneContainer")){var ad=c.maintainPosition?q.position().top:0;var m=a(this).parent();var F=m.innerWidth();var ae=m.outerHeight();var n=ae;a(">.jScrollPaneTrack, >.jScrollArrowUp, >.jScrollArrowDown",m).remove();q.css({top:0})}else{var ad=0;this.originalPadding=q.css("paddingTop")+" "+q.css("paddingRight")+" "+q.css("paddingBottom")+" "+q.css("paddingLeft");this.originalSidePaddingTotal=(parseInt(q.css("paddingLeft"))||0)+(parseInt(q.css("paddingRight"))||0);var F=q.innerWidth();var ae=q.innerHeight();var n=ae;q.wrap(a("<div></div>").attr({className:"jScrollPaneContainer"}).css({height:ae+"px",width:F+"px"}));a(document).bind("emchange",function(af,ag,p){q.jScrollPane(c)})}if(c.reinitialiseOnImageLoad){var o=a.data(z,"jScrollPaneImagesToLoad")||a("img",q);var g=[];if(o.length){o.each(function(p,af){a(this).bind("load",function(){if(a.inArray(p,g)==-1){g.push(af);o=a.grep(o,function(ah,ag){return ah!=af});a.data(z,"jScrollPaneImagesToLoad",o);c.reinitialiseOnImageLoad=false;q.jScrollPane(c)}}).each(function(ag,ah){if(this.complete||this.complete===undefined){this.src=this.src}})})}}var Q=this.originalSidePaddingTotal;var N={height:"auto",width:F-c.scrollbarWidth-c.scrollbarMargin-Q+"px"};if(c.scrollbarOnLeft){N.paddingLeft=c.scrollbarMargin+c.scrollbarWidth+"px"}else{N.paddingRight=c.scrollbarMargin+"px"}q.css(N);var O=q.outerHeight();var K=ae/O;if(K<0.99){var h=q.parent();h.append(a("<div></div>").attr({className:"jScrollPaneTrack"}).css({width:c.scrollbarWidth+"px"}).append(a("<div></div>").attr({className:"jScrollPaneDrag"}).css({width:c.scrollbarWidth+"px"}).append(a("<div></div>").attr({className:"jScrollPaneDragTop"}).css({width:c.scrollbarWidth+"px"}),a("<div></div>").attr({className:"jScrollPaneDragBottom"}).css({width:c.scrollbarWidth+"px"}))));var aa=a(">.jScrollPaneTrack",h);var r=a(">.jScrollPaneTrack .jScrollPaneDrag",h);if(c.showArrows){var I;var ac;var u=null;var S;var l;var L=function(){if(S%l==0){Z(W+ac*D);if(S>0){if(l==20){l=5}else{if(l>1&&l*S>500){--l}}}}S++};var k=function(p){a("html").unbind("mouseup",k);a("html").unbind("keyup",k);I.removeClass("jScrollActiveArrowButton");clearInterval(u);u=null};var B=function(p){if(u!=null){return}if(p.type=="keydown"){a("html").bind("keyup",k)}else{a("html").bind("mouseup",k)}I.addClass("jScrollActiveArrowButton");S=0;l=20;L();u=setInterval(L,20)};h.append(a("<a></a>").attr({href:"javascript:;",className:"jScrollArrowUp"}).css({width:c.scrollbarWidth+"px"}).html("Scroll up").bind("mousedown",function(p){I=a(this);ac=-1;B(p);this.blur();return false}).bind("keydown",function(p){if(p.which!=13){return true}I=a(this);ac=-1;B(p);return false}).bind("click",b),a("<a></a>").attr({href:"javascript:;",className:"jScrollArrowDown"}).css({width:c.scrollbarWidth+"px"}).html("Scroll down").bind("mousedown",function(p){I=a(this);ac=1;B(p);this.blur();return false}).bind("keydown",function(p){if(p.which!=13){return true}I=a(this);ac=1;B(p);return false}).bind("click",b));var s=a(">.jScrollArrowUp",h);var j=a(">.jScrollArrowDown",h);if(c.arrowSize){n=ae-c.arrowSize-c.arrowSize;aa.css({height:n+"px",top:c.arrowSize+"px"})}else{var T=s.height();c.arrowSize=T;n=ae-T-j.height();aa.css({height:n+"px",top:T+"px"})}}var X=a(this).css({position:"absolute",overflow:"visible"});var d;var A;var D;var W=0;var x=K*ae/2;var C=function(af,ah){var ag=ah=="X"?"Left":"Top";return af["page"+ah]||(af["client"+ah]+(document.documentElement["scroll"+ag]||document.body["scroll"+ag]))||0};var H=function(){return false};var V=function(){P();d=r.offset(false);d.top-=W;A=n-r[0].offsetHeight;D=2*c.wheelSpeed*A/O};var e=function(p){V();x=C(p,"Y")-W-d.top;a("html").bind("mouseup",v).bind("mousemove",J);if(a.browser.msie){a("html").bind("dragstart",H).bind("selectstart",H)}return false};var v=function(){a("html").unbind("mouseup",v).unbind("mousemove",J);x=K*ae/2;if(a.browser.msie){a("html").unbind("dragstart",H).unbind("selectstart",H)}};var Z=function(af){af=af<0?0:(af>A?A:af);W=af;r.css({top:af+"px"});var ag=af/A;X.css({top:((ae-O)*ag)+"px"});q.trigger("scroll");if(c.showArrows){s[af==0?"addClass":"removeClass"]("disabled");j[af==A?"addClass":"removeClass"]("disabled")}};var J=function(p){Z(C(p,"Y")-d.top-x)};var R=Math.max(Math.min(K*(ae-c.arrowSize*2),c.dragMaxHeight),c.dragMinHeight);r.css({height:R+"px"}).bind("mousedown",e);var M;var t;var i;var U=function(){if(t>8||t%4==0){Z((W-((W-i)/2)))}t++};var ab=function(){clearInterval(M);a("html").unbind("mouseup",ab).unbind("mousemove",G)};var G=function(p){i=C(p,"Y")-d.top-x};var w=function(p){V();G(p);t=0;a("html").bind("mouseup",ab).bind("mousemove",G);M=setInterval(U,100);U()};aa.bind("mousedown",w);h.bind("mousewheel",function(af,ah){V();P();var ag=W;Z(W-ah*D);var p=ag!=W;return !p});var f;var y;function E(){var p=(f-W)/c.animateStep;if(p>1||p<-1){Z(W+p)}else{Z(f);P()}}var P=function(){if(y){clearInterval(y);delete f}};var Y=function(ag,p){if(typeof ag=="string"){$e=a(ag,q);if(!$e.length){return}ag=$e.offset().top-q.offset().top}h.scrollTop(0);P();var af=-ag/(ae-O)*A;if(p||!c.animateTo){Z(af)}else{f=af;y=setInterval(E,c.animateInterval)}};q[0].scrollTo=Y;q[0].scrollBy=function(af){var p=-parseInt(X.css("top"))||0;Y(p+af)};V();Y(-ad,true);a("*",this).bind("focus",function(ai){var ah=a(this);var ak=0;while(ah[0]!=q[0]){ak+=ah.position().top;ah=ah.offsetParent()}var p=-parseInt(X.css("top"))||0;var aj=p+ae;var ag=ak>p&&ak<aj;if(!ag){var af=ak-c.scrollbarMargin;if(ak>p){af+=a(this).height()+15+c.scrollbarMargin-ae}Y(af)}});if(location.hash&&location.hash.length>1){Y(location.hash)}a(document).bind("click",function(af){$target=a(af.target);if($target.is("a")){var p=$target.attr("href");if(p&&p.substr(0,1)=="#"&&p.length>1){setTimeout(function(){Y(p)},a.browser.safari?100:0)}}});a.jScrollPane.active.push(q[0])}else{q.css({height:ae+"px",width:F-this.originalSidePaddingTotal+"px",padding:this.originalPadding});q.parent().unbind("mousewheel")}})};a.fn.jScrollPane.defaults={scrollbarWidth:10,scrollbarMargin:5,wheelSpeed:18,showArrows:false,arrowSize:0,animateTo:false,dragMinHeight:1,dragMaxHeight:99999,animateInterval:100,animateStep:3,maintainPosition:true,scrollbarOnLeft:false,reinitialiseOnImageLoad:false};a(window).bind("unload",function(){var c=a.jScrollPane.active;for(var b=0;b<c.length;b++){c[b].scrollTo=c[b].scrollBy=null}})})(WebCollage.jQuery16);

 /*
  * from: flowplayer-3.2.2.js With WEBCOLLAGE MODIFICATIONS
  *
  * flowplayer.js 3.2.2. The Flowplayer API
  *
  * Copyright 2010 Flowplayer Oy
  *
  * This file is part of Flowplayer.
  *
  * Flowplayer is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
  * Flowplayer is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * along with Flowplayer.  If not, see <http://www.gnu.org/licenses/>.
  *
  * Date: 2010-05-20 17:15:38 +0000 (Thu, 20 May 2010)
  * Revision: 480
  */
// WebCollage Prefix Start
if (window.$f) WebCollage.old$f = window.$f;
if (window.flowplayer) WebCollage.oldFlowplayer = window.flowplayer;
//WebCollage Prefix End

(function(){function g(o){console.log("$f.fireEvent",[].slice.call(o))}function k(q){if(!q||typeof q!="object"){return q}var o=new q.constructor();for(var p in q){if(q.hasOwnProperty(p)){o[p]=k(q[p])}}return o}function m(t,q){if(!t){return}var o,p=0,r=t.length;if(r===undefined){for(o in t){if(q.call(t[o],o,t[o])===false){break}}}else{for(var s=t[0];p<r&&q.call(s,p,s)!==false;s=t[++p]){}}return t}function c(o){return document.getElementById(o)}function i(q,p,o){if(typeof p!="object"){return q}if(q&&p){m(p,function(r,s){if(!o||typeof s!="function"){q[r]=s}})}return q}function n(s){var q=s.indexOf(".");if(q!=-1){var p=s.slice(0,q)||"*";var o=s.slice(q+1,s.length);var r=[];m(document.getElementsByTagName(p),function(){if(this.className&&this.className.indexOf(o)!=-1){r.push(this)}});return r}}function f(o){o=o||window.event;if(o.preventDefault){o.stopPropagation();o.preventDefault()}else{o.returnValue=false;o.cancelBubble=true}return false}function j(q,o,p){q[o]=q[o]||[];q[o].push(p)}function e(){return"_"+(""+Math.random()).slice(2,10)}var h=function(t,r,s){var q=this,p={},u={};q.index=r;if(typeof t=="string"){t={url:t}}i(this,t,true);m(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","),function(){var v="on"+this;if(v.indexOf("*")!=-1){v=v.slice(0,v.length-1);var w="onBefore"+v.slice(2);q[w]=function(x){j(u,w,x);return q}}q[v]=function(x){j(u,v,x);return q};if(r==-1){if(q[w]){s[w]=q[w]}if(q[v]){s[v]=q[v]}}});i(this,{onCuepoint:function(x,w){if(arguments.length==1){p.embedded=[null,x];return q}if(typeof x=="number"){x=[x]}var v=e();p[v]=[x,w];if(s.isLoaded()){s._api().fp_addCuepoints(x,r,v)}return q},update:function(w){i(q,w);if(s.isLoaded()){s._api().fp_updateClip(w,r)}var v=s.getConfig();var x=(r==-1)?v.clip:v.playlist[r];i(x,w,true)},_fireEvent:function(v,y,w,A){if(v=="onLoad"){m(p,function(B,C){if(C[0]){s._api().fp_addCuepoints(C[0],r,B)}});return false}A=A||q;if(v=="onCuepoint"){var z=p[y];if(z){return z[1].call(s,A,w)}}if(y&&"onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(v)!=-1){i(A,y);if(y.metaData){if(!A.duration){A.duration=y.metaData.duration}else{A.fullDuration=y.metaData.duration}}}var x=true;m(u[v],function(){x=this.call(s,A,y,w)});return x}});if(t.onCuepoint){var o=t.onCuepoint;q.onCuepoint.apply(q,typeof o=="function"?[o]:o);delete t.onCuepoint}m(t,function(v,w){if(typeof w=="function"){j(u,v,w);delete t[v]}});if(r==-1){s.onCuepoint=this.onCuepoint}};var l=function(p,r,q,t){var o=this,s={},u=false;if(t){i(s,t)}m(r,function(v,w){if(typeof w=="function"){s[v]=w;delete r[v]}});i(this,{animate:function(y,z,x){if(!y){return o}if(typeof z=="function"){x=z;z=500}if(typeof y=="string"){var w=y;y={};y[w]=z;z=500}if(x){var v=e();s[v]=x}if(z===undefined){z=500}r=q._api().fp_animate(p,y,z,v);return o},css:function(w,x){if(x!==undefined){var v={};v[w]=x;w=v}r=q._api().fp_css(p,w);i(o,r);return o},show:function(){this.display="block";q._api().fp_showPlugin(p);return o},hide:function(){this.display="none";q._api().fp_hidePlugin(p);return o},toggle:function(){this.display=q._api().fp_togglePlugin(p);return o},fadeTo:function(y,x,w){if(typeof x=="function"){w=x;x=500}if(w){var v=e();s[v]=w}this.display=q._api().fp_fadeTo(p,y,x,v);this.opacity=y;return o},fadeIn:function(w,v){return o.fadeTo(1,w,v)},fadeOut:function(w,v){return o.fadeTo(0,w,v)},getName:function(){return p},getPlayer:function(){return q},_fireEvent:function(w,v,x){if(w=="onUpdate"){var z=q._api().fp_getPlugin(p);if(!z){return}i(o,z);delete o.methods;if(!u){m(z.methods,function(){var B=""+this;o[B]=function(){var C=[].slice.call(arguments);var D=q._api().fp_invoke(p,B,C);return D==="undefined"||D===undefined?o:D}});u=true}}var A=s[w];if(A){var y=A.apply(o,v);if(w.slice(0,1)=="_"){delete s[w]}return y}return o}})};function b(q,G,t){var w=this,v=null,D=false,u,s,F=[],y={},x={},E,r,p,C,o,A;i(w,{id:function(){return E},isLoaded:function(){return(v!==null&&v.fp_play!=undefined&&!D)},getParent:function(){return q},hide:function(H){if(H){q.style.height="0px"}if(w.isLoaded()){v.style.height="0px"}return w},show:function(){q.style.height=A+"px";if(w.isLoaded()){v.style.height=o+"px"}return w},isHidden:function(){return w.isLoaded()&&parseInt(v.style.height,10)===0},kill:function(){for(var i=0;i<a.length;++i)if(a[i]===w){delete(a[i]);for (var j=i+1;j<a.length;++j)a[j-1]=a[j];a.pop();}},load:function(J){if(!w.isLoaded()&&w._fireEvent("onBeforeLoad")!==false){var H=function(){u=q.innerHTML;if(u&&!flashembed.isSupported(G.version)){q.innerHTML=""}flashembed(q,G,{config:t});if(J){J.cached=true;j(x,"onLoad",J)}};var I=0;m(a,function(){this.unload(function(K){if(++I==a.length){H()}})})}return w},unload:function(J){if(this.isFullscreen()&&/WebKit/i.test(navigator.userAgent)){if(J){J(false)}return w}if(u.replace(/\s/g,"")!==""){if(w._fireEvent("onBeforeUnload")===false){if(J){J(false)}return w}D=true;try{if(v){v.fp_close();w._fireEvent("onUnload")}}catch(H){}var I=function(){v=null;q.innerHTML=u;D=false;if(J){J(true)}};setTimeout(I,50)}else{if(J){J(false)}}return w},getClip:function(H){if(H===undefined){H=C}return F[H]},getCommonClip:function(){return s},getPlaylist:function(){return F},getPlugin:function(H){var J=y[H];if(!J&&w.isLoaded()){var I=w._api().fp_getPlugin(H);if(I){J=new l(H,I,w);y[H]=J}}return J},getScreen:function(){return w.getPlugin("screen")},getControls:function(){return w.getPlugin("controls")._fireEvent("onUpdate")},getLogo:function(){try{return w.getPlugin("logo")._fireEvent("onUpdate")}catch(H){}},getPlay:function(){return w.getPlugin("play")._fireEvent("onUpdate")},getConfig:function(H){return H?k(t):t},getFlashParams:function(){return G},loadPlugin:function(K,J,M,L){if(typeof M=="function"){L=M;M={}}var I=L?e():"_";w._api().fp_loadPlugin(K,J,M,I);var H={};H[I]=L;var N=new l(K,null,w,H);y[K]=N;return N},getState:function(){return w.isLoaded()?v.fp_getState():-1},play:function(I,H){var J=function(){if(I!==undefined){w._api().fp_play(I,H)}else{w._api().fp_play()}};if(w.isLoaded()){J()}else{if(D){setTimeout(function(){w.play(I,H)},50)}else{w.load(function(){J()})}}return w},getVersion:function(){var I="flowplayer.js 3.2.0";if(w.isLoaded()){var H=v.fp_getVersion();H.push(I);return H}return I},_api:function(){if(!w.isLoaded()){throw"Flowplayer "+w.id()+" not loaded when calling an API method"}return v},setClip:function(H){w.setPlaylist([H]);return w},getIndex:function(){return p}});m(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","),function(){var H="on"+this;if(H.indexOf("*")!=-1){H=H.slice(0,H.length-1);var I="onBefore"+H.slice(2);w[I]=function(J){j(x,I,J);return w}}w[H]=function(J){j(x,H,J);return w}});m(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled").split(","),function(){var H=this;w[H]=function(J,I){if(!w.isLoaded()){return w}var K=null;if(J!==undefined&&I!==undefined){K=v["fp_"+H](J,I)}else{K=(J===undefined)?v["fp_"+H]():v["fp_"+H](J)}return K==="undefined"||K===undefined?w:K}});w._fireEvent=function(Q){if(typeof Q=="string"){Q=[Q]}var R=Q[0],O=Q[1],M=Q[2],L=Q[3],K=0;if(t.debug){g(Q)}if(!w.isLoaded()&&R=="onLoad"&&O=="player"){v=v||c(r);o=v.clientHeight;m(F,function(){this._fireEvent("onLoad")});m(y,function(S,T){T._fireEvent("onUpdate")});s._fireEvent("onLoad")}if(R=="onLoad"&&O!="player"){return}if(R=="onError"){if(typeof O=="string"||(typeof O=="number"&&typeof M=="number")){O=M;M=L}}if(R=="onContextMenu"){m(t.contextMenu[O],function(S,T){T.call(w)});return}if(R=="onPluginEvent"||R=="onBeforePluginEvent"){var H=O.name||O;var I=y[H];if(I){I._fireEvent("onUpdate",O);return I._fireEvent(M,Q.slice(3))}return}if(R=="onPlaylistReplace"){F=[];var N=0;m(O,function(){F.push(new h(this,N++,w))})}if(R=="onClipAdd"){if(O.isInStream){return}O=new h(O,M,w);F.splice(M,0,O);for(K=M+1;K<F.length;K++){F[K].index++}}var P=true;if(typeof O=="number"&&O<F.length){C=O;var J=F[O];if(J){P=J._fireEvent(R,M,L)}if(!J||P!==false){P=s._fireEvent(R,M,L,J)}}m(x[R],function(){P=this.call(w,O,M);if(this.cached){x[R].splice(K,1)}if(P===false){return false}K++});return P};function B(){if($f(q)){$f(q).getParent().innerHTML="";p=$f(q).getIndex();a[p]=w}else{a.push(w);p=a.length-1}A=parseInt(q.style.height,10)||q.clientHeight;E=q.id||"fp"+e();r=G.id||E+"_api";G.id=r;t.playerId=E;if(typeof t=="string"){t={clip:{url:t}}}if(typeof t.clip=="string"){t.clip={url:t.clip}}t.clip=t.clip||{};if(q.getAttribute("href",2)&&!t.clip.url){t.clip.url=q.getAttribute("href",2)}s=new h(t.clip,-1,w);t.playlist=t.playlist||[t.clip];var H=0;m(t.playlist,function(){var J=this;if(typeof J=="object"&&J.length){J={url:""+J}}m(t.clip,function(K,L){if(L!==undefined&&J[K]===undefined&&typeof L!="function"){J[K]=L}});t.playlist[H]=J;J=new h(J,H,w);F.push(J);H++});m(t,function(J,K){if(typeof K=="function"){if(s[J]){s[J](K)}else{j(x,J,K)}delete t[J]}});m(t.plugins,function(J,K){if(K){y[J]=new l(J,K,w)}});if(!t.plugins||t.plugins.controls===undefined){y.controls=new l("controls",null,w)}y.canvas=new l("canvas",null,w);function I(J){if(!w.isLoaded()&&w._fireEvent("onBeforeClick")!==false){w.load()}return f(J)}u=q.innerHTML;if(u.replace(/\s/g,"")!==""){if(q.addEventListener){q.addEventListener("click",I,false)}else{if(q.attachEvent){q.attachEvent("onclick",I)}}}else{if(q.addEventListener){q.addEventListener("click",f,false)}w.load()}}if(typeof q=="string"){var z=c(q);if(!z){throw"Flowplayer cannot access element: "+q}else{q=z;B()}}else{B()}}var a=[];function d(o){this.length=o.length;this.each=function(p){m(o,p)};this.size=function(){return o.length}}window.flowplayer=window.$f=function(){var p=null;var o=arguments[0];if(!arguments.length){m(a,function(){if(this.isLoaded()){p=this;return false}});return p||a[0]}if(arguments.length==1){if(typeof o=="number"){return a[o]}else{if(o=="*"){return new d(a)}m(a,function(){if(this.id()==o.id||this.id()==o||this.getParent()==o){p=this;return false}});return p}}if(arguments.length>1){var t=arguments[1],q=(arguments.length==3)?arguments[2]:{};if(typeof t=="string"){t={src:t}}t=i({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:true},t);if(typeof o=="string"){if(o.indexOf(".")!=-1){var s=[];m(n(o),function(){s.push(new b(this,k(t),k(q)))});return new d(s)}else{var r=c(o);return new b(r!==null?r:o,t,q)}}else{if(o){return new b(o,t,q)}}}return null};i(window.$f,{fireEvent:function(){var o=[].slice.call(arguments);var q=$f(o[0]);return q?q._fireEvent(o.slice(1)):null},addPlugin:function(o,p){b.prototype[o]=p;return $f},each:m,extend:i});if(typeof jQuery=="function"){jQuery.fn.flowplayer=function(q,p){if(!arguments.length||typeof arguments[0]=="number"){var o=[];this.each(function(){var r=$f(this);if(r){o.push(r)}});return arguments.length?o[arguments[0]]:new d(o)}return this.each(function(){$f(this,k(q),p?k(p):{})})}}})();(function(){var h=document.all,j="http://www.adobe.com/go/getflashplayer",c=typeof jQuery=="function",e=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,b={width:"100%",height:"100%",id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function i(l,f){if(f){for(key in f){if(f.hasOwnProperty(key)){l[key]=f[key]}}}return l}function a(f,n){var m=[];for(var l in f){if(f.hasOwnProperty(l)){m[l]=n(f[l])}}return m}window.flashembed=function(f,m,l){if(typeof f=="string"){f=document.getElementById(f.replace("#",""))}if(!f){return}if(typeof m=="string"){m={src:m}}return new d(f,i(i({},b),m),l)};var g=i(window.flashembed,{conf:b,getVersion:function(){var f;try{f=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(n){try{var l=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");f=l&&l.GetVariable("$version")}catch(m){}}f=e.exec(f);return f?[f[1],f[3]]:[0,0]},asString:function(l){if(l===null||l===undefined){return null}var f=typeof l;if(f=="object"&&l.push){f="array"}switch(f){case"string":l=l.replace(new RegExp('(["\\\\])',"g"),"\\$1");l=l.replace(/^\s?(\d+\.?\d+)%/,"$1pct");return'"'+l+'"';case"array":return"["+a(l,function(o){return g.asString(o)}).join(",")+"]";case"function":return'"function()"';case"object":var m=[];for(var n in l){if(l.hasOwnProperty(n)){m.push('"'+n+'":'+g.asString(l[n]))}}return"{"+m.join(",")+"}"}return String(l).replace(/\s/g," ").replace(/\'/g,'"')},getHTML:function(o,l){o=i({},o);var n='<object width="'+o.width+'" height="'+o.height+'" id="'+o.id+'" name="'+o.id+'"';if(o.cachebusting){o.src+=((o.src.indexOf("?")!=-1?"&":"?")+Math.random())}if(o.w3c||!h){n+=' data="'+o.src+'" type="application/x-shockwave-flash"'}else{n+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'}n+=">";if(o.w3c||h){n+='<param name="movie" value="'+o.src+'" />'}o.width=o.height=o.id=o.w3c=o.src=null;o.onFail=o.version=o.expressInstall=null;for(var m in o){if(o[m]){n+='<param name="'+m+'" value="'+o[m]+'" />'}}var p="";if(l){for(var f in l){if(l[f]){var q=l[f];p+=f+"="+(/function|object/.test(typeof q)?g.asString(q):q)+"&"}}p=p.slice(0,-1);n+='<param name="flashvars" value=\''+p+"' />"}n+="</object>";return n},isSupported:function(f){return k[0]>f[0]||k[0]==f[0]&&k[1]>=f[1]}});var k=g.getVersion();function d(f,n,m){if(g.isSupported(n.version)){f.innerHTML=g.getHTML(n,m)}else{if(n.expressInstall&&g.isSupported([6,65])){f.innerHTML=g.getHTML(i(n,{src:n.expressInstall}),{MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title})}else{if(!f.innerHTML.replace(/\s/g,"")){f.innerHTML="<h2>Flash version "+n.version+" or greater is required</h2><h3>"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"</h3>"+(f.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='"+j+"'>here</a></p>");if(f.tagName=="A"){f.onclick=function(){location.href=j;return false;}}}if(n.onFail){var l=n.onFail.call(this);if(typeof l=="string"){f.innerHTML=l}}}}if(h){window[n.id]=document.getElementById(n.id)}i(this,{getRoot:function(){return f},getOptions:function(){return n},getConf:function(){return m},getApi:function(){return f.firstChild}})}if(c){jQuery.tools=jQuery.tools||{version:"3.2.0"};jQuery.tools.flashembed={conf:b};jQuery.fn.flashembed=function(l,f){return this.each(function(){$(this).data("flashembed",flashembed(this,l,f))})}}})();

//WebCollage Suffix Start
WebCollage.flowplayer3_2_0 = window.$f;
if (WebCollage.old$f)
   window.$f = WebCollage.old$f;
//else    // TODO: see if we can find a better solution to the problem where the flowplayer API is using $f and fail
//  delete(window.$f);
if (WebCollage.oldFlowplayer)
   window.flowplayer = WebCollage.oldFlowplayer;
//else
//  delete(window.flowplayer);
//WebCollage Suffix End

/**
 * from: flowplayer.controls-3.0.2.js With WEBCOLLAGE MODIFICATIONS
 *
 * flowplayer.controls 3.0.2. Flowplayer JavaScript plugin.
 *
 * This file is part of Flowplayer, http://flowplayer.org
 *
 * Author: Tero Piirainen, <info@flowplayer.org>
 * Copyright (c) 2008 Flowplayer Ltd
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * SEE: http://www.opensource.org/licenses
 *
 * Date: 2008-11-25 11:29:03 -0500 (Tue, 25 Nov 2008)
 * Revision: 1424
 */

(function ($, $f){
  $f.addPlugin("controls", function(wrap, options) {


  //{{{ private functions

    function fixE(e) {
      if (typeof e == 'undefined') { e = window.event; }
      if (typeof e.layerX == 'undefined') { e.layerX = e.offsetX; }
      if (typeof e.layerY == 'undefined') { e.layerY = e.offsetY; }
      return e;
    }

    function w(e) {
      return e.clientWidth;
    }

    function offset(e) {
      return e.offsetLeft;
    }

    /* a generic dragger utility for hoirzontal dragging */
    function Draggable(o, min, max, offset) {

      var dragging = false;

      function foo() { }

      o.onDragStart = o.onDragStart || foo;
      o.onDragEnd   = o.onDragEnd    || foo;
      o.onDrag      = o.onDrag     || foo;

      function move(x) {
        // must be withing [min, max]
        if (x > max) { return false; }
        if (x < min) { return false; }
        o.style.left = x + "px";
        return true;
      }

      function end() {
        document.onmousemove = null;
        document.onmouseup   = null;
        o.onDragEnd(parseInt(o.style.left, 10));
        dragging = false;
      }

      function drag(e) {
        e = fixE(e);
        var x = e.clientX - offset;
        if (move(x)) {
          dragging = true;
          o.onDrag(x);
        }
        return false;
      }

      o.onmousedown = function(e)  {
        e = fixE(e);
        o.onDragStart(parseInt(o.style.left, 10));
        document.onmousemove    = drag;
        document.onmouseup    = end;
        return false;
      };

      this.dragTo = function(x) {
        if (move(x)) {
          o.onDragEnd(x);
        }
      };

      this.setMax = function(val) {
        max = val;
      };

      this.isDragging = function() {
        return dragging;
      };

      return this;
    }

    function extend(to, from) {
      if (from) {
        for (key in from) {
          if (key) {
            to[key] = from[key];
          }
        }
      }
    }

    function byClass(name) {
      var els = wrap.getElementsByTagName("*");
      var re = new RegExp("(^|\\s)" + name + "(\\s|$)");
      for (var i = 0; i < els.length; i++) {
        if (re.test(els[i].className)) {
          return els[i];
        }
      }
    }

    // prefix integer with zero when nessessary
    function pad(val) {
      val = parseInt(val, 10);
      return val >= 10 ? val : "0" + val;
    }

    // display seconds in hh:mm:ss format
    function toTime(sec) {

      var h = Math.floor(sec / 3600);
      var min = Math.floor(sec / 60);
      sec = sec - (min * 60);

      if (h >= 1) {
        min -= h * 60;
        return pad(h) + ":" + pad(min) + ":" + pad(sec);
      }

      return pad(min) + ":" + pad(sec);
    }

    function getTime(duration) {
      return "<strong>" + toTime(duration) + "</strong>";
    }

  //}}}


    var self = this;

    var opts = {
      playHeadClass: 'playhead',
      trackClass: 'track',
      playClass: 'play',
      pauseClass: 'pause',
      bufferClass: 'buffer',
      progressClass: 'progress',

      timeClass: 'time',
      muteClass: 'mute',
      unmuteClass: 'unmute',
      duration: 0,

      template: '<a class="play" href="javascript:void(0)">pause / play</a>' +
             '<div class="track">' +
              '<div class="buffer"></div>' +
              '<div class="progress"></div>' +
              '<div class="playhead"></div>' +
             '</div>' +
             '<div class="time"></div>' +
             '<a class="mute" href="javascript:void(0)">mute</a>'
    };

    extend(opts, options);

    if (typeof wrap == 'string') {
      wrap = document.getElementById(wrap);
    }

    if (!wrap) { return;  }

    // inner HTML
    if (!wrap.innerHTML.replace(/\s/g, '')) {
      wrap.innerHTML = opts.template;
    }

    // get elements
    var play = byClass(opts.playClass);
    var ball = byClass(opts.playHeadClass);
    var bufferBar = byClass(opts.bufferClass);
    var progressBar = byClass(opts.progressClass);
    var track = byClass(opts.trackClass);
    var time = byClass(opts.timeClass);
    var mute = byClass(opts.muteClass);

    $(play).css({left: "0px"});
    if (opts.cssUseImportant)
      $(track).attr("style", "left:" + w(play) + "px;  width:" + (w(wrap) - w(play) - w(time) - w(mute)) + "px !important");
    else
    $(track).css({left: w(play) + "px", width: (w(wrap) - w(play) - w(time) - w(mute)) + "px"});
    $(time).css({left: (w(play) +  w(track)) + "px"});
    $(mute).css({left: (w(play) +  w(track) + w(time)) + "px"})

    // initial time
    time.innerHTML = getTime(opts.duration);

    // get dimensions
    var trackWidth = w(track);
    var ballWidth = w(ball);

    // initialize draggable playhead
    var head = new Draggable(ball, 0, 0, offset(wrap) + offset(track) + (ballWidth / 2));

    // track click moves playHead
    track.onclick = function(e) {
      e = fixE(e);
      if (e.target == ball) { return false; }
      head.dragTo(e.layerX - ballWidth / 2);
    };

    play.onclick = function() {
      if (self.isLoaded()) {
        self.toggle();
      } else {
        self.play();
      }
    };

    // mute/unmute button
    mute.onclick = function() {
      if (self.getStatus().muted)  {
        self.unmute();
      } else {
        self.mute();
      }
    };

    // setup timer
    var timer = null;

    function getMax(len, total) {
      var x = parseInt(Math.min(len / total * trackWidth, trackWidth - ballWidth / 2), 10);
      return isNaN(x) ? 0 : x;
    }

    self.onStart(function(clip) {
      time.innerHTML = getTime(clip.duration || 0);
    });

    self.onBegin(function(clip) {
      play.className = opts.pauseClass;

      time.innerHTML = getTime(clip.duration || 0);

      // clear previous timer
      clearInterval(timer);

      // begin timer
      timer = setInterval(function()  {
        try
        {
          var status = self.getStatus();
        }
        catch(e)
        {
          clearInterval(timer);
          return;
        }

        if (status.time === undefined) {
          clearInterval(timer);
          return;
        }

        // buffer width
        var x = getMax(status.bufferEnd, clip.duration || 0);
        if (opts.cssUseImportant)
          $(bufferBar).attr("style", "width:" + x + "px !important");
        else
        bufferBar.style.width = x + "px";
        head.setMax(x);



        // progress width
        if (!self.isPaused() && !head.isDragging()) {
          x = getMax(status.time, clip.duration || 0);
          if (opts.cssUseImportant)
            $(progressBar).attr("style", "width:" + x + "px !important");
          else
          progressBar.style.width = x + "px";
          ball.style.left = (x -ballWidth / 2) + "px";
        }

      }, 500);
    });

    self.onStop(function(){
      clearInterval(timer);
    });

    // pause / resume states
    self.onPause(function() {
      play.className = opts.playClass;
    });

    self.onResume(function() {
      play.className = opts.pauseClass;
    });


    // mute / unmute states
    self.onMute(function() {
      mute.className = opts.unmuteClass;
    });

    self.onUnmute(function() {
      mute.className = opts.muteClass;
    });


    // clear timer when clip ends
    self.onFinish(function(clip) {
      clearInterval(timer);
      play.className = opts.playClass;
      if (opts.cssUseImportant)
        $(progressBar).attr("style", "width: 0px !important");
      else
      progressBar.style.width = "0px";
      ball.style.left = "0px";
      if (self.isLoaded()) {
        self.seek(0);
      }
    });

    self.onUnload(function() {
      time.innerHTML = getTime(opts.duration);
    });


    ball.onDragEnd = function(x) {
      var to = parseInt(x / trackWidth  * 100, 10) + "%";
      if (opts.cssUseImportant)
        $(progressBar).attr("style", "width:" + x + "px !important");
      else
      progressBar.style.width = x + "px";
      if (self.isLoaded()) {
        self.seek(to);
      }
    };

    ball.onDrag = function(x) {
      if (opts.cssUseImportant)
        $(progressBar).attr("style", "width:" + x + "px !important");
      else
      progressBar.style.width = x + "px";
    };


    // return player instance to enable plugin chaining
    return self;

  });
})(WebCollage.jQuery16, WebCollage.flowplayer3_2_0);

/*
 * Tour
 */

(function($, $f) {
  $.fn.tour = function (logicalState, settings)
  {
    var jsonAccess = null;

    if (typeof settings == "string")
    {
      jsonAccess = document.getElementsByTagName('body').item(0)[settings];
      settings = $.extend({}, jsonAccess().settings);
    }
    else if (typeof settings == "function")
    {
      $.fn.tour.parentAccess = settings;
      settings = settings().settings;
    }

    var presets = $.extend(true, {}, $.fn.tour.defaults);

    if (settings.flowPlayerControls && settings.flowPlayerControls == "embedded")
      delete(presets.flowPlayersOptions.plugins.controls);

    if (typeof settings == "object")
      settings = $.extend(true, {}, presets, settings || {});

    if ($.browser.msie && $.browser.version.split(".")[0] == "6")
    {
      (function (s)
      {
        for (var i in s)
          if (typeof s[i] == "string" && i == "src")
            s[i] = s[i].replace(/\.png$/, ".gif");
          else if (typeof s[i] == "object")
            arguments.callee(s[i]);
      })(settings);
    }

    this.addClass(settings.cssPrefix + "tour").css(
      {
        width: settings.size.width + "px",
        height: settings.size.height + "px"
      }
    );

    return this.each(function() {
      init ($(this), logicalState, settings, jsonAccess);
    });
  };

  $.fn.tour.defaults =
  {
    size: {width: 800, height: 450},
    directory: {width: 270, height: 390, left: 5, top: 25},
    view: {width: 500, height: 390, top: 25, right: 25},
    hotspotDetails: {width: 394, maxHeight: 444, minHeight: 250, sideMargin: 3},
    usage: {bottom: 10, left: 5},
    frame: {src: "res/corners/corner-${d}.png", width: 14},
    underConstruction: {src: "res/underConstruction.jpg", width: 800, height: 450},
    loading: {src: "res/loading.gif", width: 64, height: 64},
    close: {src: "res/close.gif", width: 15, height: 14},
    detailsViewHotspot: {src: "res/marker.png", width: 22, height: 22},
    line: {src: "res/lineBg.png", height: 7},
    directoryViewHotspotDigits: {src: "res/hotspotDigits.png", width: 34, height: 34, digitVariations: 3},
    navigatorSprite: {src: "res/navigatorSprite.png", width: 11, height: 11},
    mainImageMargin: 0,
    hotspotsInNavigator: 8,
    animationSpeed: {imageSwitch: 400, panAndZoom: 800},
    scripts: [],
    styles: [],
    jScrollPane: {
      showArrows:true,
      scrollbarWidth: 15,
      arrowSize: 14,
      scrollbarOnLeft:true,
      scrollbarMargin: 0
    },
    texts: {
      loading: "Loading<br>Please wait...",
      featuresList: "Feature List",
      featuresListTitle: "",
      firstTitle: "First",
      previousTitle: "Previous",
      nextTitle: "Next",
      lastTitle: "Last",
      closeTitle: "Close",
      viewImageTitle: "View ${number}",
      usageMessage: "Click a feature from the list or a number in the picture to view details"
    },
    flowPlayerParams: {
      src: "/_wc/default-defs/resources/common/flowplayer.unlimited-3.2.2.swf",
      cachebusting: false,  // TODO: remove when done debugging
      wmode: "Transparent"
    },
    flowPlayersOptions: {
      clip: {
        autoPlay: true,
        autoBuffering: true
      },
      plugins: {
        controls:  {
          url: 'flowplayer.controls-3.2.1.swf',
          right: 0,
          bottom: 0,
          width: 52,
          height: 26,
          opacity: 0.9,
          backgroundGradient: "low",

          // controlbar buttons
          all: false,
          fullscreen: true,
          tooltips: null
        }
      },
      play: {
        url: 'res/playButtonOver.png',
        width: 64,
        height: 64,
        opacity: 1.2
      }
    },
    flowPlayerControls: "html",
    cssPrefix      : "wct-"
  };

  $.fn.tour.widgetHtml = "\
    <div width='100%' height='100%' class='${css-prefix}widget'>\
      <div class='${css-prefix}outer-directory'>\
        <div>\
          <div class='${css-prefix}directory'></div>\
        </div>\
      </div>\
      <div class='${css-prefix}view-wrapper'>\
      </div>\
      <div class='${css-prefix}details-frame'>\
        <div>\
          <div>\
            <div>\
            </div>\
          </div>\
        </div>\
        <div>\
          <div>\
            <div class='${css-prefix}outer-hotspot-details'>\
              <div class='${css-prefix}hotspot-details'>\
                <div class='${css-prefix}navigator'></div>\
                <div class='${css-prefix}hotspot-media'></div>\
                <div class='${css-prefix}line'></div>\
                <div class='${css-prefix}marker'></div>\
              </div>\
            </div>\
          </div>\
        </div>\
        <div>\
          <div>\
            <div>\
            </div>\
          </div>\
        </div>\
      </div>\
      <div class='${css-prefix}usage'></div>\
    </div>";

  function init (sourceHtmlElement, logicalState, settings, jsonAccess)
  {
    var object = {
      widget : {
        widgetOuterDirectory : null,
        widgetDirectory : null,
        widgetViewWrapper : null,
        widgetDetailsFrame : null,
        widgetOuterHotspotDetails : null,
        widgetHotspotDetails : null,
        widgetNavigator : null,
        widgetHotspotMedia : null,
        widgetLine : null,
        widgetMarker : null,
        widgetUsage : null
      },

      hotspots: [],
      views: [],
      allViews: [],
      loadingView: {},
      navItems: {},
      idMap: {},
      json: null,

      state : {
        currentViewIndex: 0,
        currentState : "",
        keyboardFocus : -1
      }
    };

//** Utility functions
    function randomId (prefix)
    {
      return prefix + ("" + Math.random()).substr(2);
    }

    function scriptSrc (scriptUrl)
    {
      var randomSuffix = "";

      if (typeof settings.versionForJs != "undefined")
        if (settings.versionForJs == "randomize")
          randomSuffix = "?rnd=" + randomId("");
        else
          randomSuffix = "?rnd=" + settings.versionForJs;

      return "<script src='" + scriptUrl + randomSuffix + "'><\/script>\n";
    }

    function styleSrc (styleUrl)
    {
      return "<link rel='stylesheet' href='" + styleUrl + "'>\n";
    }

    function px (num)
    {
      return (num > 0 ? "" + Math.round(num) : "-" + Math.round(-num)) + "px";
    }

    function hsid(id)
    {
      return "hs" + (id + 1);
    }

    function freemarkerReplace (t, map)
    {
      var s = t;
      for (var k in map)
        s = s.replace(new RegExp("\\${" + k + "}", "g"), map[k]);
      return s;
    }

    function isValidString (str)
    {
      return !(typeof str == "undefined" || str == null || str == "");
    }

    function findHotspotNumberForId (id)
    {
      var idEntry = object.idMap[id];

      if (typeof idEntry == "undefined")
        return -1;

      return $.inArray(idEntry.hotspot, object.hotspots);
    }

    function findViewNumberForHotspot (hotspotNumber)
    {
      return $.inArray(object.hotspots[hotspotNumber].view, object.views);
    }

    function gotoHotspot (hotspot)
    {
      if (typeof hotspot == "string")
        updateLogicalState(hotspot);
      else
        updateLogicalState(object.hotspots[hotspot].id);
    }

    function animationOptions (duration, queue)
    {
      return {
        duration: duration,
        easing: "swing",
        queue: queue
      };
    }

    function reportEvent (event, parameters)
    {
      if (typeof settings.reportEvent === "function")
      {
        if (parameters)
          settings.reportEvent(event, parameters);
        else
          settings.reportEvent(event);
      }
    }

    function getHotspotCaption (hotspotNumber)
    {
      var views = object.json.views;

      for (var v = 0; v < views.length; ++v)
        for (var h = 0; h < views[v].hotspots.length; ++h)
          if (hotspotNumber == 0)
            return views[v].hotspots[h].caption;
          else
            --hotspotNumber;
      return "";
    }

//** Runtime functions
    function updateLogicalState (logicalState)
    {
      if (object.state.currentState == logicalState)
        return;

      if (logicalState == "")
        switchToDirectoryView();
      else
      {
        var hotspotNumber = findHotspotNumberForId(logicalState);
        if (hotspotNumber == -1)
          return;

        zoomToHotspot(hotspotNumber, true);
      }

      object.state.currentState = logicalState;

      if (typeof settings.stateChange == "function")
        settings.stateChange(logicalState);
    }

    function switchToDirectoryView ()
    {
      hideHotspotDetails();
      hideGenericMarkers();

      var callbackAfterAnimation =
      {
        complete: function () {
          object.widget.widgetOuterDirectory.show();
          if (object.widget.widgetDirectory.parent().get(0).scrollTo)
            object.widget.widgetDirectory.parent().get(0).scrollTo("tr:first");
          switchToView(0);
          object.widget.widgetUsage.show();
          showNumericMarkers();
        }
      };

      $.each(object.views, function()
        {
          if (!this.imageLoaded)
            return;

          var theImg = this.image

          var newWidth = this.sizeParams.adjustedWidth;
          var newHeight = this.sizeParams.adjustedHeight;

          theImg.animate (
            {
              width: newWidth,
              height: newHeight
            },
            animationOptions(settings.animationSpeed.panAndZoom, false)
          );

          this.div.animate (
            {
              left: Math.round((settings.view.width - this.sizeParams.adjustedWidth) / 2),
              top: Math.round((settings.view.height - this.sizeParams.adjustedHeight) / 2)
            },
            animationOptions(settings.animationSpeed.panAndZoom, false)
          );
        }
      );
      object.widget.widgetViewWrapper.animate(
        {
          right: settings.view.right
        },
        $.extend(animationOptions(settings.animationSpeed.panAndZoom, false), callbackAfterAnimation)
      );
    }

    function highlightHotspot (hotspotNumber)
    {
      var viewNumber = findViewNumberForHotspot(hotspotNumber);
      switchToView(viewNumber, settings.animationSpeed.imageSwitch);

      var variation = 0, direction = 1;
      object.hotspotTimer = setInterval(function(){
        variation += direction;
        object.hotspots[hotspotNumber].inView.image1.css({"margin-top": px(-variation * settings.directoryViewHotspotDigits.height)});
        if (variation == 0 || variation == (settings.directoryViewHotspotDigits.digitVariations - 1))
          direction *= -1;
      }, 150);
      object.hotspots[hotspotNumber].inDirectory.numberLink.addClass(settings.cssPrefix + "highlighted");
      object.hotspots[hotspotNumber].inDirectory.textLink.addClass(settings.cssPrefix + "highlighted");
    }

    function unhighlightHotspot ()
    {
      if (object.hotspotTimer)
      {
        clearInterval(object.hotspotTimer);
        delete(object.hotspotTimer);
      }
      $.each(object.hotspots, function()
        {
          this.inView.image1.css({"margin-top": px(0)});
          this.inDirectory.numberLink.removeClass(settings.cssPrefix + "highlighted");
          this.inDirectory.textLink.removeClass(settings.cssPrefix + "highlighted");
        });
    }

    // The whole mess with the nowSwitching and next is to prevent race condition when switchToView
    // is called again before it finished the previous switch, in this case when it finishes it
    // will switch to the most-lately requested view (remembered by viewNumber)
    function switchToView (viewNumber, animationSpeed)
    {
      var me = arguments.callee;

      if (typeof me.nowSwitching != "undefined" && me.nowSwitching)
      {
        me.next = viewNumber;
        return;
      }

      object.state.currentViewIndex = viewNumber;
      var view = null;
      if (object.views[viewNumber].imageLoaded)
      {
        if (!object.views[viewNumber].reported)
          reportEvent("tour-main-image-view", {asset: object.views[viewNumber].image.attr("src"), view: viewNumber + 1});
        object.views[viewNumber].reported |= true;
        view = object.views[viewNumber].div;
      }
      else
        view = object.loadingView.div;

      if (view.is(":hidden"))
      {
        me.nowSwitching = true;

        object.widget.widgetViewWrapper.find("." + settings.cssPrefix + "view:visible").animate(
          {
            opacity: "hide"
          }, animationOptions(animationSpeed, false)
        );
        view.animate(
          {
            opacity: "show"
          },
          $.extend(animationOptions(animationSpeed, false),
            {
              complete: function()
              {
                me.nowSwitching = false;
                if (typeof me.next != "undefined" && me.next != -1)
                {
                  var tmp = me.next;
                  me.next = -1;
                  me(tmp);
                }
              }
            }
          )
        );
      }
    }

    function handleKeyboardFocus (hotspotNumber)
    {
      object.state.keyboardFocus = hotspotNumber;

      unhighlightHotspot();

      if (hotspotNumber != -1)
        highlightHotspot(hotspotNumber);
    }

    function zoomToHotspot (hotspotNumber, hideDetailsWhileZooming)
    {
      if (!object.hotspots[hotspotNumber].reported)
        reportEvent("tour-hotspot-zoom", {view: findViewNumberForHotspot(hotspotNumber) + 1, hotspot: hotspotNumber + 1});
      object.hotspots[hotspotNumber].reported |= true;
      hideNumericMarkers();
      object.widget.widgetOuterDirectory.hide();
      object.widget.widgetUsage.hide();
      if (hideDetailsWhileZooming)
        hideHotspotDetails();
      hideGenericMarkers();

      var viewNumber = findViewNumberForHotspot(hotspotNumber);

      switchToView(viewNumber, settings.animationSpeed.panAndZoom);

      var hotspotData = object.hotspots[hotspotNumber].inView;
      var widgetViewWrapper = object.widget.widgetViewWrapper;

      var callbackAfterAnimation =
      {
        complete: function () {
          if (hideDetailsWhileZooming)
            showHotspotDetails(hotspotNumber, hotspotData.dir, false);
          showGenericMarker(hotspotNumber, hotspotData.dir);
          focusAndHighlightHotspotNumber(object, hotspotNumber);
        }
      };

      $.each(object.views, function()
        {
          if (!this.imageLoaded)
            return;

          var theImg = this.image

          var newWidth = this.sizeParams.originalWidth;
          var newHeight = this.sizeParams.originalHeight;

          theImg.animate (
            {
              width: newWidth,
              height: newHeight
            },
            animationOptions(settings.animationSpeed.panAndZoom, false)
          );

          var xCenter = hotspotData.x * newWidth;
          var yCenter = hotspotData.y * newHeight;

          var newLeft = (widgetViewWrapper.width() / 2) - xCenter;
          var newTop = (widgetViewWrapper.height() / 2) - yCenter;

          this.div.animate (
            {
              left: newLeft,
              top: newTop
            },
            animationOptions(settings.animationSpeed.panAndZoom, false)
          );
        }
      );

      if (hotspotData.dir == "right")
        widgetViewWrapper.animate(
          {
            right : (widgetViewWrapper.parent().width() - widgetViewWrapper.width())
          },
          $.extend(animationOptions(settings.animationSpeed.panAndZoom, false), callbackAfterAnimation)
        );
      else
        widgetViewWrapper.animate(
          {
            right : 0
          },
          $.extend(animationOptions(settings.animationSpeed.panAndZoom, false), callbackAfterAnimation)
        );
    }

    function showNumericMarkers ()
    {
      $.each(object.hotspots, function()
        {
          this.inView.a.show().css({visibility: "visible"});
        }
      );
    }

    function hideNumericMarkers ()
    {
      $.each(object.hotspots, function()
        {
          // visibility is set to hidden due to strange IE7 behavior were sometimes markers of one specific view do not disappear although their display is none
          this.inView.a.hide().css({visibility: "hidden"});
        }
      );
    }

    function focusAndHighlightHotspotNumber (object, hotspotNumber)
    {
      $.each(object.hotspots, function()
        {
          this.inNavigator.div.addClass(settings.cssPrefix + "nav-text").removeClass(settings.cssPrefix + "nav-selected");
        }
      );

      object.hotspots[hotspotNumber].inNavigator.div.addClass(settings.cssPrefix + "nav-selected").removeClass(settings.cssPrefix + "nav-text");

      var nOfLinks = object.hotspots.length;

      if(hotspotNumber > 0)
      {
        object.navItems.firstItem.img.removeClass(settings.cssPrefix + "nav-disabled").addClass(settings.cssPrefix + "nav-enabled");
        object.navItems.firstItem.a.unbind('click').click(function(){gotoHotspot(0);});
        object.navItems.previousItem.img.removeClass(settings.cssPrefix + "nav-disabled").addClass(settings.cssPrefix + "nav-enabled");
        object.navItems.previousItem.a.unbind('click').click(function(){gotoHotspot(hotspotNumber - 1);});
      }
      else
      {
        object.navItems.firstItem.img.removeClass(settings.cssPrefix + "nav-enabled").addClass(settings.cssPrefix + "nav-disabled");
        object.navItems.firstItem.a.unbind('click');
        object.navItems.previousItem.img.removeClass(settings.cssPrefix + "nav-enabled").addClass(settings.cssPrefix + "nav-disabled");
        object.navItems.previousItem.a.unbind('click');
      }
      if (hotspotNumber < nOfLinks - 1)
      {
        object.navItems.lastItem.img.removeClass(settings.cssPrefix + "nav-disabled").addClass(settings.cssPrefix + "nav-enabled");
        object.navItems.lastItem.a.unbind('click').click(function(){gotoHotspot(nOfLinks - 1);});
        object.navItems.nextItem.img.removeClass(settings.cssPrefix + "nav-disabled").addClass(settings.cssPrefix + "nav-enabled");
        object.navItems.nextItem.a.unbind('click').click(function(){gotoHotspot(hotspotNumber + 1);});
      }
      else
      {
        object.navItems.lastItem.img.removeClass(settings.cssPrefix + "nav-enabled").addClass(settings.cssPrefix + "nav-disabled");
        object.navItems.lastItem.a.unbind('click');
        object.navItems.nextItem.img.removeClass(settings.cssPrefix + "nav-enabled").addClass(settings.cssPrefix + "nav-disabled");
        object.navItems.nextItem.a.unbind('click');
      }

      var fromLink = 0
      var toLink = nOfLinks - 1;

      if (nOfLinks > settings.hotspotsInNavigator)
      {
        var leftSteps = Math.floor((settings.hotspotsInNavigator - 1) / 2);
        var rightSteps = Math.ceil((settings.hotspotsInNavigator - 1) / 2);

        if (hotspotNumber <= leftSteps)
          toLink = settings.hotspotsInNavigator - 1;
        else if (hotspotNumber >= nOfLinks - rightSteps)
          fromLink = nOfLinks - settings.hotspotsInNavigator;
        else
        {
          fromLink = hotspotNumber - leftSteps;
          toLink = hotspotNumber + rightSteps;
        }
      }

      var heightOfBar = 0;
      $.each(object.hotspots, function(index)
        {
          if (index >= fromLink  && index <= toLink)
          {
            this.inNavigator.a.css({display:"block"});
            heightOfBar = Math.max(heightOfBar, this.inNavigator.div.height());
          }
          else
            this.inNavigator.a.css({display:"none"});
        }
      );
      $.each(object.navItems, function()
        {
          if (this.img)
          {
            this.a.css("margin-top", px((heightOfBar - this.a.height()) / 2));
          }
        }
      );
    }

    function showGenericMarker (hotspotNumber, direction)
    {
      var markerHyperlinkWrapper = object.hotspots[hotspotNumber].inView.div;

      markerHyperlinkWrapper.append(object.widget.widgetLine);
      markerHyperlinkWrapper.append(object.widget.widgetMarker);
      showWidgetLine(direction);
      showWidgetMarker();
    }

    function showWidgetLine (direction)
    {
      var directionCss = {};
      directionCss[direction == "left" ? "right" : "left"] = px(0);
      directionCss[direction] = null;
      object.widget.widgetLine.css(directionCss);
      object.widget.widgetLine.show("normal");
    }

    function showWidgetMarker ()
    {
      object.widget.widgetMarker.show();
    }

    function hideGenericMarkers (hotspotNumber)
    {
      object.widget.widgetLine.hide();
      object.widget.widgetMarker.hide();
    }

    function showHotspotDetails (hotspotNumber, direction, quick)
    {
      if (quick || ($.browser.msie && parseInt($.browser.version.split(".")[0]) > 6 && parseInt($.browser.version.split(".")[0]) < 9))
        object.widget.widgetDetailsFrame.show();
      else
        object.widget.widgetDetailsFrame.fadeIn("normal");

      var dirClass = settings.cssPrefix + "hotspot-details-" + direction;

      var directionCss = {};
      directionCss[direction] = px(settings.hotspotDetails.sideMargin);
      object.widget.widgetDetailsFrame.css({left:null, right:null}).css(directionCss);
      object.widget.widgetDetailsFrame.css("height", px(settings.hotspotDetails.maxHeight))
      object.widget.widgetOuterHotspotDetails.css("height", px(settings.hotspotDetails.maxHeight - 2 * settings.frame.width));
      object.widget.widgetHotspotDetails.css("height", px(settings.hotspotDetails.maxHeight - 2 * settings.frame.width));

      object.hotspots[hotspotNumber].inDetailsView.media.inject(object.widget.widgetHotspotMedia,
                                                                object.widget.widgetHotspotMedia.width(),
                                                                Math.round((settings.hotspotDetails.maxHeight - 2 * settings.frame.width) / 2),
                                                                function(){
        hideHotspotDetails(hotspotNumber);
        showHotspotDetails(hotspotNumber, direction, true);
      });

      var widgetHotspotBody = object.hotspots[hotspotNumber].inDetailsView.div.clone().wrap($("<div><div class='" + settings.cssPrefix + "hotspot-body'></div></div>")).parent();

      widgetHotspotBody.css({overflow: "auto", "word-wrap": "break-word", position: "relative", clear: "both"}); // do not remove the position:relative, without it IE renders the font in a distorted fashion

      object.widget.widgetHotspotDetails.append(widgetHotspotBody.parent());

      var hotspotDetailsPaddingMarginAndBorderHeight = object.widget.widgetHotspotDetails.outerHeight(true) - object.widget.widgetHotspotDetails.height();
      var heightAvaiableForBody = object.widget.widgetOuterHotspotDetails.height() -
                                    (hotspotDetailsPaddingMarginAndBorderHeight +
                                     object.widget.widgetNavigator.outerHeight(true) +
                                     object.widget.widgetHotspotMedia.outerHeight(true));
      var currentBodyHeight = widgetHotspotBody.parent().outerHeight(true);
      if (currentBodyHeight > heightAvaiableForBody)
      {
        widgetHotspotBody.parent().css({height: px(heightAvaiableForBody), overflow: "hidden"});
        widgetHotspotBody.parent().jScrollPane(settings.jScrollPane);
      }
      else{
        widgetHotspotBody.css({"margin-left": px(0), "padding-left": px(0)});
        var deltaHeight = heightAvaiableForBody - currentBodyHeight;
        var newHeight = Math.max(object.widget.widgetOuterHotspotDetails.height() - deltaHeight, settings.hotspotDetails.minHeight - 2 * settings.frame.width);
        object.widget.widgetDetailsFrame.css("height", px(newHeight + 2 * settings.frame.width))
        object.widget.widgetOuterHotspotDetails.css("height", px(newHeight));
        object.widget.widgetHotspotDetails.css("height", px(newHeight));
      }
    }

    function hideHotspotDetails (hotspotNumber)
    {
      object.widget.widgetDetailsFrame.hide();
      if (typeof hotspotNumber != "undefined")
        object.hotspots[hotspotNumber].inDetailsView.media.remove();
      else
        $.each(object.hotspots, function()
          {
            this.inDetailsView.media.remove();
          }
        );
      var toRemove = object.widget.widgetHotspotDetails.find("." + settings.cssPrefix + "hotspot-body");
      if (toRemove.size() == 0)
        return;
      while (toRemove.parent().get(0) != object.widget.widgetHotspotDetails.get(0))
        toRemove = toRemove.parent();
      toRemove.remove();
    }

// media renderers here:

    object.noneMediaRenderer = function ()
    {
      var media = {
        destinationElement: null,
        handler: {
          inject : function (destinationElement, maxWidth, maxHeight)
          {
            destinationElement.hide();
            media.destinationElement = destinationElement;
          },
          remove : function ()
          {
            if (media.destinationElement)
            {
              media.destinationElement.show();
              media.destinationElement = null;
            }
          }
        }
      };
      return media.handler;
    }

    object.imageMediaRenderer = function (mediaJson, hotspotNumber, settings)
    {
      var media = {
        image: $("<img>"),
        loaded: false,
        destinationElement: null,
        readjustDetailView: null,

        handler: {
          inject : function(destinationElement, maxWidth, maxHeight, readjustDetailView)
          {
            media.destinationElement = destinationElement;
            if (!media.loaded)
            {
              var loadingImage = $("<img>").attr({
                src: settings.loading.src,
                width: settings.loading.width,
                height: settings.loading.height
              });
              var loadingDiv = $("<div>" + settings.texts.loading + "</div>").addClass(settings.cssPrefix + "loading-message");
              destinationElement.append($("<center>").append(loadingImage).append(loadingDiv));
              media.readjustDetailView = readjustDetailView;
              return;
            }
            var widthFactor = maxWidth / media.origWidth;
            var heightFactor = maxHeight / media.origHeight;
            var factor = Math.min(widthFactor, heightFactor, 1);
            media.image.attr(
              {
                width: (media.origWidth * factor),
                height: (media.origHeight * factor)
              }
            );
            destinationElement.append(media.image);
          },
          remove : function()
          {
            media.readjustDetailView = null;
            if (media.destinationElement != null)
            {
              media.destinationElement.children().remove();
              media.destinationElement = null;
            }
          }
        },

        init: function (mediaJson, hotspotNumber)
        {
          media.image.load(function()
            {
              var img = media.image.get(0);
              $.extend(media, {loaded: true, origWidth: img.width, origHeight: img.height});
              if (media.readjustDetailView)
              {
                media.readjustDetailView();
                media.readjustDetailView = null;
              }
            }
          );

          var titleAlt = isValidString(mediaJson.alt) ? mediaJson.alt : getHotspotCaption(hotspotNumber);

          media.image.attr(
            {
              title: titleAlt,
              alt: titleAlt,
              src: mediaJson.src
            }
          );
        }
      };

      media.init(mediaJson, hotspotNumber);
      return media.handler;
    }

    object.videoMediaRenderer = function (mediaJson, hotspotNumber, settings)
    {
      var media = {
        video: null,
        destinationElement: null,
        serial: 0,
        reported: false,

        handler: {
          inject: function(destinationElement, maxWidth, maxHeight)
          {
            if (!media.reported)
              reportEvent("asset-view", {asset: media.src, view: findViewNumberForHotspot(hotspotNumber) + 1, hotspot: hotspotNumber + 1});
            media.reported |= true;

            var widthFactor = maxWidth / media.origWidth;
            var heightFactor = maxHeight / media.origHeight;
            var factor = Math.min(widthFactor, heightFactor, 1);
            var videoContainer = $("<div/>").addClass(settings.cssPrefix + "hotspot-video").attr({
                id: settings.cssPrefix + "hotspot-video" + media.serial
              }).css({
                display: "block",
                width: px(media.origWidth * factor),
                height: px(media.origHeight * factor)
              });
            media.destinationElement = $(destinationElement).append(videoContainer);
            if (settings.flowPlayerControls == "html")
              media.destinationElement.append($("<div/>").addClass(settings.cssPrefix + "hotspot-video-control").attr({
                  id: settings.cssPrefix + "hotspot-video-control" + media.serial
                }).css({
                  width: px(media.origWidth * factor)
                }));
            media.player = $f(settings.cssPrefix + "hotspot-video" + media.serial, $.extend(true, {}, settings.flowPlayerParams), $.extend(true, {clip:{url:media.src}}, settings.flowPlayersOptions));
            if (settings.flowPlayerControls == "html")
              media.player.controls(settings.cssPrefix + "hotspot-video-control" + media.serial, media.duration ? {duration: media.duration} : {});
            $.each("Begin,Stop,Pause,Resume,Finish".split(","), function(){
              var actionName = this.toLowerCase();
              media.player["on" + this](function(clip){
                var status = media.player.getStatus();
                var params = {
                              asset: media.src,
                              "localtimestamp": new Date().valueOf(),
                              view: findViewNumberForHotspot(hotspotNumber) + 1,
                              hotspot: hotspotNumber + 1
                            };
                if (status.time)
                  params["videotime"] = status.time;
                if (clip && clip.duration)
                  params.duration = clip.duration;
                reportEvent("tour-video-action-" + actionName, params);
              });
            });
          },
          remove : function()
          {
            if (media.destinationElement != null)
            {
              media.player.stop();
              media.player.kill();
              media.destinationElement.find("object").remove(); // the flash object should be removed first otherwise IE8 throws an exception upon the next remove
              media.destinationElement.children().remove();
              media.destinationElement = null;
            }
          }
        },

        init: function (mediaJson, hotspotNumber)
        {
          $.extend(media,{
              origWidth: mediaJson.width,
              origHeight: mediaJson.height,
              src: mediaJson.src,
              serial: randomId("")
            }
          );
          if (typeof mediaJson.duration != "undefined")
            media.duration = mediaJson.duration;
        }
      };

      media.init(mediaJson, hotspotNumber);
      return media.handler;
    }

//** Setup functions

    function setupUnderConstruction ()
    {
      sourceHtmlElement.append($("<img>").
        attr({src: settings.underConstruction.src}).
        css({
          width: px(settings.size.width),
          height: px(settings.size.height)
        }));
    }

    function setupWidgetShortcuts (html)
    {
      object.widget.widgetOuterDirectory = html.find("." + settings.cssPrefix + "outer-directory");
      object.widget.widgetDirectory = html.find("." + settings.cssPrefix + "directory");
      object.widget.widgetViewWrapper = html.find("." + settings.cssPrefix + "view-wrapper");
      object.widget.widgetOuterHotspotDetails = html.find("." + settings.cssPrefix + "outer-hotspot-details");
      object.widget.widgetDetailsFrame = html.find("." + settings.cssPrefix + "details-frame");
      object.widget.widgetHotspotDetails = html.find("." + settings.cssPrefix + "hotspot-details");
      object.widget.widgetNavigator = html.find("." + settings.cssPrefix + "navigator");
      object.widget.widgetHotspotMedia = html.find("." + settings.cssPrefix + "hotspot-media");
      object.widget.widgetLine = html.find("." + settings.cssPrefix + "line");
      object.widget.widgetMarker = html.find("." + settings.cssPrefix + "marker");
      object.widget.widgetUsage = html.find("." + settings.cssPrefix + "usage");

      object.widget.widgetUsage.html(settings.texts.usageMessage);
    }

    function setupWidgetStyles (widgetRoot)
    {
      if ($.browser.msie)
        widgetRoot.addClass(settings.cssPrefix + "msie" + $.browser.version.split(".")[0]);
      else if ($.browser.mozilla)
        widgetRoot.addClass(settings.cssPrefix + "mozilla");
      else if ($.browser.safari)
        widgetRoot.addClass(settings.cssPrefix + "safari");

      object.widget.widgetOuterDirectory.css(
        {
          position: "absolute",
          top: px(settings.directory.top),
          left: px(settings.directory.left),
          width: px(settings.directory.width),
          height: px(settings.directory.height)
        }
      );
      object.widget.widgetDirectory.parent().css(
        {
          width: "100%",
          height: "100%"
        }
      );
      object.widget.widgetDirectory.css(
        {
          width: "auto",
          height: "auto"
        }
      );
      object.widget.widgetDetailsFrame.css(
        {
          position: "absolute",
          top: px((settings.size.height - settings.hotspotDetails.maxHeight) / 2),
          width: px((settings.hotspotDetails.width)),
          height: px((settings.hotspotDetails.maxHeight))
        }
      );

      var innerFrameDivs = object.widget.widgetDetailsFrame.find("div");
      var url = "url('" + settings.frame.src + "') ";
      var width = px(settings.hotspotDetails.width - settings.frame.width);
      var padding = px(settings.frame.width);

      innerFrameDivs.eq(0).css({background: freemarkerReplace(url, {d: "tl"}) + "no-repeat scroll 0 0 transparent",
                                "padding-left": padding,
                                width: width});

      innerFrameDivs.eq(1).css({background: freemarkerReplace(url, {d: "tr"}) + "no-repeat scroll right 0 transparent",
                                "padding-right": padding});

      innerFrameDivs.eq(2).css({background: freemarkerReplace(url, {d: "t"}) + "repeat-x scroll 0 0 transparent",
                                "padding-top": padding});

      innerFrameDivs.eq(3).css({background: freemarkerReplace(url, {d: "l"}) + "repeat-y scroll 0 0 transparent",
                                "padding-left": padding,
                                width: width});

      innerFrameDivs.eq(4).css({background: freemarkerReplace(url, {d: "r"}) + "repeat-y scroll right 0 transparent",
                                "padding-right": padding});

      innerFrameDivs.eq(5).css({overflow: "hidden"});

      innerFrameDivs.eq(11).css({background: freemarkerReplace(url, {d: "bl"}) + "no-repeat scroll 0 0 transparent",
                                "padding-left": padding,
                                width: width});

      innerFrameDivs.eq(12).css({background: freemarkerReplace(url, {d: "br"}) + "no-repeat scroll right 0 transparent",
                                "padding-right": padding});

      innerFrameDivs.eq(13).css({background: freemarkerReplace(url, {d: "b"}) + "repeat-x scroll 0 0 transparent",
                                "padding-top": padding});

      object.widget.widgetNavigator.css({
        float: "left",
        width: "100%"
      });

      object.widget.widgetHotspotMedia.css({clear: "both"});

      object.widget.widgetNavigator.css({
        float: "left",
        width: "100%"
      });

      object.widget.widgetDetailsFrame.hide();
      object.widget.widgetViewWrapper.css({
        position: "absolute",
        top: px(settings.view.top),
        right: px(settings.view.right),
        width: px(settings.view.width),
        height: px(settings.view.height)
      });

      object.widget.widgetHotspotMedia.css({width: "100%"});

      object.widget.widgetMarker.css(
        {
          position: "absolute",
          width: px(settings.detailsViewHotspot.width),
          height: px(settings.detailsViewHotspot.height),
          "margin-left": px(-settings.detailsViewHotspot.width / 2),
          "margin-top": px(-settings.detailsViewHotspot.height / 2),
          background: "url('" + settings.detailsViewHotspot.src + "')"
        }
      );

      object.widget.widgetLine.css(
        {
          position: "absolute",
          top: px(-settings.line.height / 2),
          height: px(settings.line.height),
          "line-height": px(settings.line.height),
          "font-size": px(0),
          background: "url('" + settings.line.src + "') repeat-x scroll 0 0 transparent",
          width: px((settings.size.width - settings.view.width / 2 - settings.hotspotDetails.width + 0.5 * settings.frame.width - settings.hotspotDetails.sideMargin))
        }
      );

      object.widget.widgetUsage.css({
          position: "absolute",
          bottom: settings.usage.bottom,
          left: settings.usage.left
        }
      );
    }

    function setupDirectory (json)
    {
      var directoryTable = $("<table></table>").attr({
          cellspacing: 0,
          cellpadding: 0
        }).addClass(settings.cssPrefix + "list");

      object.widget.widgetDirectory.append(directoryTable);

      var index = 0;
      var newView = false;
      for (var v = 0; v < json.views.length; ++v)
      {
        for (var h = 0; h < json.views[v].hotspots.length; ++h)
        {
          var lastInview = h == json.views[v].hotspots.length - 1;
          object.hotspots.push({reported: false});
          setupDirectoryListItem(json.views[v].hotspots[h].caption, index++, directoryTable, newView, lastInview);
          newView = false;
        }
        newView = true;
      }
    }

    function setupDirectoryListItem (listItemText, listItemIndex, directoryTable, newView, lastInview)
    {
      var directoryRow = $("<tr><td></td><td></td></tr>").addClass(settings.cssPrefix + "list-item");

      var hotspoTextLink = $("<a>" + listItemText + "</a>").attr({href: "javascript:void(0)"}).click(function(){gotoHotspot(listItemIndex);});

      directoryRow.find("td").eq(1).addClass(settings.cssPrefix + "list-item-text").append(hotspoTextLink);

      directoryTable.append(directoryRow);

      object.idMap[hsid(listItemIndex)] = {hotspot: object.hotspots[listItemIndex]};
      object.hotspots[listItemIndex].id = hsid(listItemIndex);
      object.hotspots[listItemIndex].inDirectory = {textLink: hotspoTextLink};

      var markerHyperlink = $("<a>" + (listItemIndex + 1) + "</a>");
      markerHyperlink.attr({
        href: "javascript:void(0)",
        tabIndex: -1
      }).click(function(){gotoHotspot(listItemIndex);});

      directoryRow.find("td").eq(0).addClass(settings.cssPrefix + "list-item-digit").append(markerHyperlink);

      object.hotspots[listItemIndex].inDirectory.numberLink = markerHyperlink;

      directoryRow.find("a").focus(function () {
        handleKeyboardFocus(listItemIndex);
      }).blur(function () {
        handleKeyboardFocus(-1);
      });

      if (newView)
        directoryRow.addClass(settings.cssPrefix + "list-in-new-view")
      if (lastInview)
        directoryRow.addClass(settings.cssPrefix + "list-last-in-view")

      setupHover(directoryRow.find("a"), listItemIndex);
    }

    function setupViews (json)
    {
      setupLoadingView();
      var hotspotStart = 0;
      $.each(json.views, function(viewNumber) {
        object.views.push({reported: false});
        object.allViews.push(object.views[object.views.length-1]);
        setupOneView(this, viewNumber, hotspotStart);
        hotspotStart += this.hotspots.length;
      });
      object.allViews.push(object.loadingView);
    }

    function setupLoadingView ()
    {
      var div = $("<div class='" + settings.cssPrefix + "view'></div>").css({
        position: "absolute",
        left: px(((settings.view.width - settings.loading.width) / 2)),
        top: px(((settings.view.height - settings.loading.height) / 2)),
        display: "none"
      });

      setTimeout(function(){
        if (!object.views[object.state.currentViewIndex].imageLoaded)
          div.show().animate({
            left: Math.round((settings.view.width - div.width()) / 2),
            top: Math.round((settings.view.height - div.height()) / 2)
          }, animationOptions(settings.animationSpeed.panAndZoom / 2, false));
      }, 1000);

      object.loadingView.div = div;

      object.loadingView.image = $("<img>").attr(
        {
          src: settings.loading.src,
          width: settings.loading.width,
          height: settings.loading.height
        }
      );
      object.loadingView.sizeParams = {
          originalWidth: settings.loading.width,
          originalHeight: settings.loading.height,
          adjustedWidth: settings.loading.width,
          adjustedHeight: settings.loading.height
      };
      var loadingDiv = $("<div>" + settings.texts.loading + "</div>").addClass(settings.cssPrefix + "loading-message");
      object.loadingView.imageLoaded = true;
      object.loadingView.div.append(object.loadingView.image.wrap("<center>").parent()).append(loadingDiv);
      object.widget.widgetViewWrapper.append(object.loadingView.div);
    }

    function setupOneView (viewJson, viewNumber, hotspotStart)
    {
      var view = $("<div class='" + settings.cssPrefix + "view'></div>");
      view.css({
        position: "absolute",
        left: px(((settings.view.width - settings.loading.width) / 2)),
        top: px(((settings.view.height - settings.loading.height) / 2))
      });
      object.views[viewNumber].div = view;
      view.hide();
      object.widget.widgetViewWrapper.append(view);

      setupViewMainImage(viewJson.image, view, viewNumber);
      setupViewHotspots(viewJson.hotspots, view, viewNumber, hotspotStart);
    }

    function imageLoaded (object, viewNumber, theImage)
    {
      var rawImage = theImage.get(0);

      var ratio = calculateZoomOutRatio(rawImage);

      object.views[viewNumber].sizeParams = {
          originalWidth: rawImage.width,
          originalHeight: rawImage.height,
          adjustedWidth: rawImage.width * ratio,
          adjustedHeight: rawImage.height * ratio
      };

      theImage.attr(
        {
          width: object.views[viewNumber].sizeParams.adjustedWidth,
          height: object.views[viewNumber].sizeParams.adjustedHeight
        }
      )

      object.views[viewNumber].imageLoaded = true;

      object.views[viewNumber].div.css({
        left: px((settings.view.width - object.views[viewNumber].sizeParams.adjustedWidth) / 2),
        top: px((settings.view.height - object.views[viewNumber].sizeParams.adjustedHeight) / 2)
      });

      $.each(object.hotspots, function()
        {
          if (this.viewNumber == viewNumber)
            this.inView.div.show();
        }
      );
      object.views[viewNumber].div.append(theImage);

      if (object.state.currentViewIndex == viewNumber)
        if (object.state.currentState == "")
          switchToView(viewNumber, settings.animationSpeed.imageSwitch);
        else
          zoomToHotspot(findHotspotNumberForId(object.state.currentState), false);
    }

    function setupViewMainImage (imageJson, view, viewNumber)
    {
      var cleanDomImage = $("<img/>");

      cleanDomImage.load(function()
        {
          imageLoaded(object, viewNumber, cleanDomImage);
        }
      );

      var titleAlt = imageJson.alt ? imageJson.alt : freemarkerReplace(settings.texts.viewImageTitle, {number: viewNumber + 1});

      cleanDomImage.attr({
        title: titleAlt,
        alt: titleAlt
      });

      if ($.browser.msie)
        setTimeout(function(){cleanDomImage.attr("src", imageJson.src);}, 100);
      else
        cleanDomImage.attr("src", imageJson.src);

      object.views[viewNumber].image = cleanDomImage;
    }

    function calculateZoomOutRatio (goodImg)
    {
      var imageWidth = goodImg.width;
      var imageHeight = goodImg.height;

      var viewWidth = object.widget.widgetViewWrapper.width() - 2 * settings.mainImageMargin;
      var viewHeight = object.widget.widgetViewWrapper.height() - 2 * settings.mainImageMargin;

      var wRatio = viewWidth / imageWidth;
      var hRatio = viewHeight / imageHeight;

      var ratio = (wRatio < hRatio) ? wRatio : hRatio;

      return ratio < 1 ? ratio : 1;
    }

    function setupViewHotspots (hotspotsJason, view, viewNumber, hotspotStart)
    {
      $.each (hotspotsJason, function () {
        object.hotspots[hotspotStart].viewNumber = viewNumber;
        object.hotspots[hotspotStart].view = object.views[viewNumber];
        setupAddHotspot(view, this, hotspotStart++);
      });
    }

    function setupAddHotspot (view, hotspotJson, markerNumber)
    {
      var xPercent = "" + (hotspotJson.x * 100) + "%";
      var yPercent = "" + (hotspotJson.y * 100) + "%";

      var markerHyperlink = $("<a></a>");
      markerHyperlink.attr({
        href: "javascript:void(0)",
        tabIndex: -1
      }).click(function(){gotoHotspot(markerNumber);});
      setupHover(markerHyperlink, markerNumber);
      setupAddPrettyMarker(markerHyperlink, markerNumber, hotspotJson.caption);

      markerHyperlinkWrapper = $("<div></div>");

      markerHyperlinkWrapper.css({
        position: "absolute",
        top: yPercent,
        left: xPercent
      }).hide();

      markerHyperlinkWrapper.append(markerHyperlink);

      view.append(markerHyperlinkWrapper)

      var images = markerHyperlink.find("img");
      object.hotspots[markerNumber].inView = {
        image1: images.eq(0),
        div: markerHyperlinkWrapper,
        a: markerHyperlink,
        dir: hotspotJson.direction,
        x: hotspotJson.x,
        y: hotspotJson.y
      };
    }

    function setupAddPrettyMarker (hyperlink, markerNumber, caption)
    {
      var img = $("<img>").attr({
        src : settings.directoryViewHotspotDigits.src,
        alt : (markerNumber + 1),
        title: caption
      }).css({
        "margin-left" : px(-settings.directoryViewHotspotDigits.width * markerNumber)
      });

      hyperlink.css({
        top: px(-settings.directoryViewHotspotDigits.height / 2),
        left: px(-settings.directoryViewHotspotDigits.width / 2),
        width: px(settings.directoryViewHotspotDigits.width),
        height: px(settings.directoryViewHotspotDigits.height),
        overflow: "hidden",
        position: "absolute"
      }).append(img);
    }

    function setupHover (item, hotspotNumber)
    {
      item.hover(
        function ()
        {
          if (object.state.keyboardFocus != -1)
            unhighlightHotspot();

          highlightHotspot(hotspotNumber);
        },
        function ()
        {
          unhighlightHotspot();

          if (object.state.keyboardFocus != -1)
            highlightHotspot(object.state.keyboardFocus);
        }
      );
    }

    function setupNavigator (json)
    {
      object.navItems.home =
        setupNavigatorTextLink(object, settings.texts.featuresList, "", settings.texts.featuresListTitle, settings.cssPrefix + "nav-home");
      object.navItems.firstItem =
        setupNavigatorImageLink(object, 0, 0, settings.texts.firstTitle, settings.cssPrefix + "nav-first");
      object.navItems.previousItem =
        setupNavigatorImageLink(object, 1, "", settings.texts.previousTitle, settings.cssPrefix + "nav-hotspot-previous");
      var i = 0;
      for (var v = 0; v < json.views.length; ++v)
        for (var h = 0; h < json.views[v].hotspots.length; ++h, ++i)
        {
          object.hotspots[i].inNavigator =
            setupNavigatorTextLink(object, "" + (i + 1), i, json.views[v].hotspots[h].caption, settings.cssPrefix + "nav-hotspot");
        }
      object.navItems.nextItem =
        setupNavigatorImageLink(object, 2, "", settings.texts.nextTitle, settings.cssPrefix + "nav-hotspot-next");
      object.navItems.lastItem =
        setupNavigatorImageLink(object, 3, object.hotspots.length - 1, settings.texts.lastTitle, settings.cssPrefix + "nav-last");
      object.navItems.close =
        setupNavigatorCloseButton(object, "", settings.texts.closeTitle, settings.cssPrefix + "nav-close");
    }

    function setupNavATag (hs)
    {
      var a = $("<a></a>").attr({href : "javascript:void(0)"}).css({
        overflow: "hidden",
        position: "relative",
        display: "block",
        "float": "left"
      }).click(function(){gotoHotspot(hs);});
      return a;
    }

    function setupNavigatorTextLink (object, linkText, hs, title, cssClass)
    {
      var a = setupNavATag(hs);
      a.addClass(cssClass);

      var div = $("<div>" + linkText + "</div>");
      div.attr({
        title: title
      });
      div.addClass(settings.cssPrefix + "nav-text")
      div.css({"white-space": "nowrap"});
      a.append(div);
      object.widget.widgetNavigator.append(a);
      return {a: a, div: div};
    }

    function setupNavigatorImageLink (object, itemNumberInSprite, hs, title, cssClass)
    {
      var a = setupNavATag(hs);
      a.addClass(cssClass);
      a.css({width: px(settings.navigatorSprite.width), height: px(settings.navigatorSprite.height)});

      var img = $("<img>");
      img.attr({
        title: title,
        src: settings.navigatorSprite.src
      });
      img.css({
        "margin-left": -(settings.navigatorSprite.width) * itemNumberInSprite,
        position: "absolute"
      });
      a.append(img);
      object.widget.widgetNavigator.append(a);
      return {a: a, img:img};
    }

    function setupNavigatorCloseButton (object, hs, title, cssClass)
    {
      var a = setupNavATag(hs);
      a.addClass(cssClass);
      a.css({width: px(settings.close.width), height: px(settings.close.height), "float": "right"});

      var img = $("<img>");
      img.attr({
        title: title,
        src: settings.close.src
      });
      img.css({
        position: "absolute"
      });
      a.append(img);
      object.widget.widgetNavigator.append(a);
      return {a: a, img:img};
    }

    function setupHotspotDetails (json)
    {
      var index = 0;
      for (var v = 0; v < json.views.length; ++v)
        for (var h = 0; h < json.views[v].hotspots.length; ++h, ++index)
        {
          object.hotspots[index].inDetailsView = {div: $(json.views[v].hotspots[h].description).prepend("<h3>" +(index+1) + ". " + json.views[v].hotspots[h].caption + "</h3>")};
          var mediaJson = json.views[v].hotspots[h].media;
          var renderer = mediaJson.type + "MediaRenderer";
          object.hotspots[index].inDetailsView.media = object[renderer](mediaJson, index, settings);
        }
    }

//** init
    function init ()
    {
      if (object.json.views.length == 0)
      {
        setupUnderConstruction();
        return;
      }

      var widgetRoot = $(freemarkerReplace($.fn.tour.widgetHtml, {"css-prefix": settings.cssPrefix})).css({
        width: "100%",
        height: "100%",
        position: "relative",
        overflow: "hidden",
        visibility: "inherit"
      });

      setupWidgetShortcuts(widgetRoot);
      setupWidgetStyles(widgetRoot);

      setupDirectory(object.json);
      setupViews(object.json);
      setupNavigator(object.json);
      setupHotspotDetails(object.json);

      sourceHtmlElement.append(widgetRoot);
      object.widget.widgetDirectory.parent().jScrollPane(settings.jScrollPane);

      updateLogicalState(logicalState);
    }

//** JSON convertion functions
    function convertToJson (sourceHtmlElement)
    {
      var rv = {views: []};
      $("table." + settings.cssPrefix + "data>tbody>tr", sourceHtmlElement).each(function()
      {
        rv.views.push(convertViewToJson($(this)));
      });
      return rv;
    }

    function convertViewToJson (viewHtml)
    {
      var rv = {image: convertViewImageToJason($("th>img", viewHtml)), hotspots: []};
      $("td>div", viewHtml).each(function()
      {
        rv.hotspots.push(convertHotspotToJson($(this)));
      });
      return rv;
    }

    function convertViewImageToJason (imageHtml)
    {
      var rv = {};
      rv.src = imageHtml.attr("src");
      if (imageHtml.attr("alt"))
        rv.alt = imageHtml.attr("alt");
      if (imageHtml.attr("width"))
        rv.width = 1 * imageHtml.attr("width");
      if (imageHtml.attr("height"))
        rv.height = 1 * imageHtml.attr("height");
      return rv;
    }

    function convertHotspotToJson (hotspotHtml)
    {
      var rv = {
        caption: $("h3", hotspotHtml).eq(0).text(),
        direction: hotspotHtml.attr("data-dir"),
        x: 1 * hotspotHtml.attr("data-x"),
        y: 1 * hotspotHtml.attr("data-y"),
        description: "<div><div>" + hotspotHtml.children("div." + settings.cssPrefix + "description").html() + "</div></div>",
        media: convertMediaToJason(hotspotHtml.children("div." + settings.cssPrefix + "media"))
      };
      return rv;
    }

    function convertMediaToJason (mediaHtml)
    {
      if (mediaHtml.size() == 0)
        return {type: "none"};

      var rv = {type: mediaHtml.attr("type")};

      mediaHtml = $("img,wcvideo", mediaHtml).eq(0);

      $.extend(rv, {
        width: 1 * mediaHtml.attr("width"),
        height: 1 * mediaHtml.attr("height"),
        src: mediaHtml.attr("src")
      });

      if (mediaHtml.attr("alt"))
        rv.alt = mediaHtml.attr("alt");

      if (rv.type == "video" && mediaHtml.attr("duration"))
        rv.duration = 1 * mediaHtml.attr("duration");

      return rv;
    }

    function prepareForIframeInjection (container, settingsOverride)
    {
      var body = $("body").get(0);
      var rv = null;

      if (typeof container == "string" && typeof body[container] == "function")
      {
        var origRv = body[container]();
        rv = {
          json: origRv.json,
          settings: $.extend({}, origRv.settings, settingsOverride),
          accessId: origRv.accessId + "inFrame",
          origContainer: origRv.origContainer
        };
      }
      else
      {
        rv = {
          json: object.json,
          settings: $.extend({}, settings, settingsOverride),
          accessId: container.attr("id"),
          origContainer: container
        };
      }

      body[rv.accessId] = function(){
        return rv;
      };

      return rv.accessId;
    }

    function putInIframe (logicalState, container, tourAccess)
    {
      var theFrame = $("<iframe frameBorder=\"0\" scrolling=\"no\">").attr({
        width: settings.size.width,
        height: settings.size.height
      }).css({
        border: 0,
        overflow: "hidden"
      });

      container.append(theFrame);

//      theFrame.get(0).contentWindow.onunload = function() // TODO: works only for firefox - reloads the tour when the iframe is reloaded due to disconnection from the dom
//      {
//        theFrame.remove();
//        setTimeout(function(){putInIframe (logicalState, container, tourAccess);}, 100);
//      };

      var doc = null;
      var domainSetter = "";
      function f1()
      {
        try
        {
          doc = theFrame.get(0).contentWindow.document;
        }
        catch (e)
        {
          domainSetter = "document.domain='" + container.get(0).document.domain + "';"
          theFrame.get(0).src = "javascript:void((function(){document.open();" + domainSetter + "document.write('<!DOCTYPE html>');document.close();})())";
          doc = theFrame.get(0).contentWindow.document;
        }
        doc.close();
        doc.open();
        var html = "<!DOCTYPE HTML\">\n<html style='margin:0;padding:0;overflow:hidden'>\n<head>\n";
        html += "<script>\n\
                    WebCollageTourLoad = function ($){\n\
                      $(function()\n\
                      {\n" + domainSetter + "\
                        var tourAccess = window.parent.document.getElementsByTagName('body').item(0)['" + tourAccess + "'];\n\
                        $('div#" + settings.cssPrefix + "tour').tour('" + logicalState + "', tourAccess);\n\
                      });\n\
                    };\n\
                  <\/script>\n";
  
        $.each(settings.styles, function(){html += styleSrc(this);})
        $.each(settings.scripts, function(){html += scriptSrc(this);})
  
        html += "</head>\n<body style='margin:0;padding:0'>\n<div id='" + settings.cssPrefix + "tour'></div>\n</body>\n</html>";
        doc.write(html);
        doc.close();
      }
      try
      {
        f1();
      }
      catch (e)
      {
        // for some browsers (IE6 included) the contentWindow should not yet be accessed immedietly after setting its src
        // so we need to relinquish control back to the browser and then retry
        setTimeout(f1, 0);  
      }
    }

// Init code

    if (jsonAccess)
      object.json = jsonAccess().json;
    else if ($.fn.tour.parentAccess)
      object.json = $.fn.tour.parentAccess().json;
    else if (typeof settings.json != "undefined")
      object.json = settings.json;
    else
    {
      object.json = convertToJson(sourceHtmlElement);
      sourceHtmlElement.children().remove();
    }

    if (settings.prepareJsonOnly)
    {
      prepareForIframeInjection(sourceHtmlElement, {prepareJsonOnly: false});
      return sourceHtmlElement;
    }
    else if (settings.inIframe)
    {
      if (jsonAccess)
        putInIframe(logicalState, sourceHtmlElement, prepareForIframeInjection(jsonAccess().accessId, {inIframe:false}));
      else
        putInIframe(logicalState, sourceHtmlElement, prepareForIframeInjection(sourceHtmlElement, {inIframe:false}));
      return sourceHtmlElement;
    }

    if ($.fn.tour.parentAccess)
      $.fn.tour.parentAccess().origContainer.get(0).tourTo = function(logicalState)
      {
        updateLogicalState(logicalState);
      };
    else
      sourceHtmlElement[0].tourTo = function(logicalState)
      {
        updateLogicalState(logicalState);
      };

    init();

    return sourceHtmlElement;
  }

  if (typeof WebCollageTourLoad == "function")
    WebCollageTourLoad($);

}) (WebCollage.jQuery16, WebCollage.flowplayer3_2_0);
}

