// script.aculo.us builder.js v1.8.1, Thu Jan 03 22:07:12 -0500 2008

// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

var Builder = {
  NODEMAP: {
    AREA: 'map',
    CAPTION: 'table',
    COL: 'table',
    COLGROUP: 'table',
    LEGEND: 'fieldset',
    OPTGROUP: 'select',
    OPTION: 'select',
    PARAM: 'object',
    TBODY: 'table',
    TD: 'table',
    TFOOT: 'table',
    TH: 'table',
    THEAD: 'table',
    TR: 'table'
  },
  // note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken,
  //       due to a Firefox bug
  node: function(elementName) {
    elementName = elementName.toUpperCase();
    
    // try innerHTML approach
    var parentTag = this.NODEMAP[elementName] || 'div';
    var parentElement = document.createElement(parentTag);
    try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
      parentElement.innerHTML = "<" + elementName + "></" + elementName + ">";
    } catch(e) {}
    var element = parentElement.firstChild || null;
      
    // see if browser added wrapping tags
    if(element && (element.tagName.toUpperCase() != elementName))
      element = element.getElementsByTagName(elementName)[0];
    
    // fallback to createElement approach
    if(!element) element = document.createElement(elementName);
    
    // abort if nothing could be created
    if(!element) return;

    // attributes (or text)
    if(arguments[1])
      if(this._isStringOrNumber(arguments[1]) ||
        (arguments[1] instanceof Array) ||
        arguments[1].tagName) {
          this._children(element, arguments[1]);
        } else {
          var attrs = this._attributes(arguments[1]);
          if(attrs.length) {
            try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
              parentElement.innerHTML = "<" +elementName + " " +
                attrs + "></" + elementName + ">";
            } catch(e) {}
            element = parentElement.firstChild || null;
            // workaround firefox 1.0.X bug
            if(!element) {
              element = document.createElement(elementName);
              for(attr in arguments[1]) 
                element[attr == 'class' ? 'className' : attr] = arguments[1][attr];
            }
            if(element.tagName.toUpperCase() != elementName)
              element = parentElement.getElementsByTagName(elementName)[0];
          }
        } 

    // text, or array of children
    if(arguments[2])
      this._children(element, arguments[2]);

     return element;
  },
  _text: function(text) {
     return document.createTextNode(text);
  },

  ATTR_MAP: {
    'className': 'class',
    'htmlFor': 'for'
  },

  _attributes: function(attributes) {
    var attrs = [];
    for(attribute in attributes)
      attrs.push((attribute in this.ATTR_MAP ? this.ATTR_MAP[attribute] : attribute) +
          '="' + attributes[attribute].toString().escapeHTML().gsub(/"/,'&quot;') + '"');
    return attrs.join(" ");
  },
  _children: function(element, children) {
    if(children.tagName) {
      element.appendChild(children);
      return;
    }
    if(typeof children=='object') { // array can hold nodes and text
      children.flatten().each( function(e) {
        if(typeof e=='object')
          element.appendChild(e)
        else
          if(Builder._isStringOrNumber(e))
            element.appendChild(Builder._text(e));
      });
    } else
      if(Builder._isStringOrNumber(children))
        element.appendChild(Builder._text(children));
  },
  _isStringOrNumber: function(param) {
    return(typeof param=='string' || typeof param=='number');
  },
  build: function(html) {
    var element = this.node('div');
    $(element).update(html.strip());
    return element.down();
  },
  dump: function(scope) { 
    if(typeof scope != 'object' && typeof scope != 'function') scope = window; //global scope 
  
    var tags = ("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY " +
      "BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET " +
      "FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+
      "KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+
      "PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+
      "TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);
  
    tags.each( function(tag){ 
      scope[tag] = function() { 
        return Builder.node.apply(Builder, [tag].concat($A(arguments)));  
      } 
    });
  }
}



// LIGHTBOX VS ADMIN

// add rel="lightbox[gallery]"
document.observe('dom:loaded', function () { 
	$$('#left a[class^=lightbox]').each(function(s) { 
		s.rel = 'lightbox[gallery]'; 
	});
});

// remove class="lightbox[gallery]" so CSS wont show icon.
document.observe('dom:loaded', function () { 
	 $$('#left a[class^=lightbox] img').each(function(c) { 
	 	 		c.up().addClassName('no_css');
	 });
});


// SIFR

/*=:project
    scalable Inman Flash Replacement (sIFR) version 3, beta 2

  =:file
    Copyright: 2006 Mark Wubben.
    Author: Mark Wubben, <http://novemberborn.net/>

  =:history
    * IFR: Shaun Inman
    * sIFR 1: Mike Davidson, Shaun Inman and Tomas Jogin
    * sIFR 2: Mike Davidson, Shaun Inman, Tomas Jogin and Mark Wubben

  =:license
    This software is licensed and provided under the CC-GNU LGPL.
    See <http://creativecommons.org/licenses/LGPL/2.1/>    
*/

var parseSelector=(function(){var _1=/\s*,\s*/;var _2=/\s*([\s>+~(),]|^|$)\s*/g;var _3=/([\s>+~,]|[^(]\+|^)([#.:@])/g;var _4=/^[^\s>+~]/;var _5=/[\s#.:>+~()@]|[^\s#.:>+~()@]+/g;function parseSelector(_6,_7){_7=_7||document.documentElement;var _8=_6.split(_1),_9=[];for(var i=0;i<_8.length;i++){var _b=[_7],_c=toStream(_8[i]);for(var j=0;j<_c.length;){var _e=_c[j++],_f=_c[j++],_10="";if(_c[j]=="("){while(_c[j++]!=")"&&j<_c.length){_10+=_c[j]}_10=_10.slice(0,-1)}_b=select(_b,_e,_f,_10)}_9=_9.concat(_b)}return _9}function toStream(_11){var _12=_11.replace(_2,"$1").replace(_3,"$1*$2");if(_4.test(_12)){_12=" "+_12}return _12.match(_5)||[]}function select(_13,_14,_15,_16){return (parseSelector.selectors[_14])?parseSelector.selectors[_14](_13,_15,_16):[]}var _17={toArray:function(_18){var a=[];for(var i=0;i<_18.length;i++){a.push(_18[i])}return a}};var dom={isTag:function(_1c,tag){return (tag=="*")||(tag.toLowerCase()==_1c.nodeName.toLowerCase())},previousSiblingElement:function(_1e){do{_1e=_1e.previousSibling}while(_1e&&_1e.nodeType!=1);return _1e},nextSiblingElement:function(_1f){do{_1f=_1f.nextSibling}while(_1f&&_1f.nodeType!=1);return _1f},hasClass:function(_20,_21){return (_21.className||"").match("(^|\\s)"+_20+"(\\s|$)")},getByTag:function(tag,_23){return _23.getElementsByTagName(tag)}};var _24={"#":function(_25,_26){for(var i=0;i<_25.length;i++){if(_25[i].getAttribute("id")==_26){return [_25[i]]}}return []}," ":function(_28,_29){var _2a=[];for(var i=0;i<_28.length;i++){_2a=_2a.concat(_17.toArray(dom.getByTag(_29,_28[i])))}return _2a},">":function(_2c,_2d){var _2e=[];for(var i=0,_30;i<_2c.length;i++){_30=_2c[i];for(var j=0,_32;j<_30.childNodes.length;j++){_32=_30.childNodes[j];if(_32.nodeType==1&&dom.isTag(_32,_2d)){_2e.push(_32)}}}return _2e},".":function(_33,_34){var _35=[];for(var i=0,_37;i<_33.length;i++){_37=_33[i];if(dom.hasClass([_34],_37)){_35.push(_37)}}return _35},":":function(_38,_39,_3a){return (parseSelector.pseudoClasses[_39])?parseSelector.pseudoClasses[_39](_38,_3a):[]}};parseSelector.selectors=_24;parseSelector.pseudoClasses={};parseSelector.util=_17;parseSelector.dom=dom;return parseSelector})();
var sIFR=new function(){var _3b=this;var _3c="sIFR-active";var _3d="sIFR-unloading";var _3e="sIFR-replaced";var _3f="sIFR-flash";var _40="sIFR-ignore";var _41="sIFR-alternate";var _42="sIFR-class";var _43="sIFR-layout";var _44="sIFR-fixfocus";var _45="sIFR-dummy";var _46="sIFR-zoomdetect";var _47=6;var _48=126;var _49=8;var _4a="SIFR-PREFETCHED";var _4b=[];var _4c=5;var _4d="beta2";this.isActive=false;this.isEnabled=true;this.preserveSingleWhitespace=false;this.fixWrap=true;this.fixHover=true;this.autoInitialize=true;this.setPrefetchCookie=true;this.cookiePath="/";this.domains=[];this.fromLocal=false;this.forceClear=false;this.forceWidth=true;this.fitExactly=false;this.forceTextTransform=true;this.useDomLoaded=true;this.useStyleCheck=false;this.hasFlashClassSet=false;this.repaintOnResize=true;this.callbacks=[];var _4e=0;var _4f=false,_50=false;var dom=new function(){var _52="http://www.w3.org/1999/xhtml";this.getBody=function(){var _53=document.getElementsByTagName("body");if(_53.length==1){return _53[0]}return null};this.addClass=function(_54,_55){if(_55){_55.className=((_55.className||"")==""?"":_55.className+" ")+_54}};this.removeClass=function(_56,_57){if(_57){_57.className=_57.className.replace(new RegExp("(^|\\s)"+_56+"(\\s|$)"),"").replace(/^\s+|(\s)\s+/g,"$1")}};this.hasClass=function(_58,_59){return new RegExp("(^|\\s)"+_58+"(\\s|$)").test(_59.className)};this.hasOneOfClassses=function(_5a,_5b){for(var i=0;i<_5a.length;i++){if(this.hasClass(_5a[i],_5b)){return true}}return false};this.create=function(_5d){if(document.createElementNS){return document.createElementNS(_52,_5d)}return document.createElement(_5d)};this.nodeFromHtml=function(_5e){var _5f=this.create("div");_5f.innerHTML=_5e;return _5f.firstChild};this.getComputedStyle=function(_60,_61){var _62;if(document.defaultView&&document.defaultView.getComputedStyle){_62=document.defaultView.getComputedStyle(_60,null)[_61]}else{if(_60.currentStyle){_62=_60.currentStyle[_61]}}return _62||""};this.getStyleAsInt=function(_63,_64,_65){var _66=this.getComputedStyle(_63,_64);if(_65&&!/px$/.test(_66)){return 0}_66=parseInt(_66);return isNaN(_66)?0:_66};this.getWidthFromStyle=function(_67){var _68=this.getStyleAsInt(_67,"width",ua.ie);if(_68==0){var _69=this.getStyleAsInt(_67,"paddingRight",true);var _6a=this.getStyleAsInt(_67,"paddingLeft",true);var _6b=this.getStyleAsInt(_67,"borderRightWidth",true);var _6c=this.getStyleAsInt(_67,"borderLeftWidth",true);_68=_67.offsetWidth-_6a-_69-_6c-_6b}return _68};this.blurElement=function(_6d){if(ua.gecko){_6d.blur();return}var _6e=dom.create("input");_6e.style.width="0px";_6e.style.height="0px";_6d.parentNode.appendChild(_6e);_6e.focus();_6e.blur();_6e.parentNode.removeChild(_6e)};this.getDimensions=function(_6f){var _70=_6f.offsetWidth;var _71=_6f.offsetHeight;if(_70==0||_71==0){for(var i=0;i<_6f.childNodes.length;i++){var _73=_6f.childNodes[i];if(_73.nodeType!=1){continue}_70=Math.max(_70,_73.offsetWidth);_71=Math.max(_71,_73.offsetHeight)}}return {width:_70,height:_71}};this.contentIsLink=function(_74){var _75=false;for(var i=0;i<_74.childNodes.length;i++){var _77=_74.childNodes[i];if(_77.nodeType==3&&!_77.nodeValue.match(/^\s*$/)){return false}else{if(_77.nodeType!=1){continue}}var _78=_77.nodeName.toLowerCase()=="a";if(!_78){return false}else{_75=true}}return _75};var dom=this;this.swf={create:function(_7a,_7b,id,_7d,_7e,src,_80,_81,_82){var obj=_7a.object(_7b,id,src,_7d,_7e);return _7a.params(obj,"flashvars",_80,"wmode",_81,"bgcolor",_82,"allowScriptAccess","always","quality","best")},ie:{object:function(_84,id,src,_87,_88){return "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" id=\""+id+"\" width=\""+_87+"\" height=\""+_88+"\" class=\""+_3f+"\">"+"<param name=\"movie\" value=\""+src+"\"></param></object>"+"<scr"+"ipt event=FSCommand(info,args) for="+id+">"+id+"_DoFSCommand(info, args);"+"</"+"script>"},params:function(obj){var _8a="";for(var i=1;i<arguments.length;i+=2){_8a+="<param name=\""+arguments[i]+"\" value=\""+arguments[i+1]+"\"></param>"}return obj.replace(/(<\/object>)/,_8a+"$1")},insert:function(_8c,_8d){_8c.innerHTML=_8d}},other:{object:function(_8e,id,src,_91,_92){var obj=dom.create("object");var _94=["type","application/x-shockwave-flash","id",id,"name",id,"data",src,"width",_91,"height",_92];while(_94.length){obj.setAttribute(_94.shift(),_94.shift())}obj.className=_3f;if(!_8e){return obj}var _95=dom.create("div");_95.className=_44;_95.appendChild(obj);return _95},params:function(obj){for(var i=1;i<arguments.length;i+=2){if(arguments[i]=="name"){continue}var _98=dom.create("param");_98.setAttribute("name",arguments[i]);_98.setAttribute("value",arguments[i+1]);obj.appendChild(_98)}return obj},insert:function(_99,_9a){while(_99.firstChild){_99.removeChild(_99.firstChild)}_99.appendChild(_9a)}}}};this.dom=dom;var ua=new function(){var ua=navigator.userAgent.toLowerCase();var _9d=(navigator.product||"").toLowerCase();this.macintosh=ua.indexOf("mac")>-1;this.windows=ua.indexOf("windows")>-1;this.quicktime=false;this.opera=ua.indexOf("opera")>-1;this.konqueror=_9d.indexOf("konqueror")>-1;this.ie=false/*@cc_on||true@*/;this.ieSupported=this.ie&&!/ppc|smartphone|iemobile|msie\s5\.5/.test(ua)/*@cc_on&&@_jscript_version>=5.5@*/;this.ieWin=this.ie&&this.windows/*@cc_on&&@_jscript_version>=5.1@*/;this.windows=this.windows&&(!this.ie||this.ieWin);this.ieMac=this.ie&&this.macintosh/*@cc_on&&@_jscript_version<5.1@*/;this.macintosh=this.macintosh&&(!this.ie||this.ieMac);this.safari=ua.indexOf("safari")>-1;this.webkit=ua.indexOf("applewebkit")>-1&&!this.konqueror;this.khtml=this.webkit||this.konqueror;this.gecko=!this.webkit&&_9d=="gecko";this.ieVersion=this.ie&&/.*msie\s(\d\.\d)/.exec(ua)?parseFloat(RegExp.$1):0;this.operaVersion=this.opera&&/.*opera(\s|\/)(\d+\.\d+)/.exec(ua)?parseFloat(RegExp.$2):0;this.webkitVersion=this.webkit&&/.*applewebkit\/(\d+).*/.exec(ua)?parseFloat(RegExp.$1):0;this.geckoBuildDate=this.gecko&&/.*gecko\/(\d{8}).*/.exec(ua)?parseFloat(RegExp.$1):0;this.konquerorMajor=this.konqueror&&/.*konqueror\/(\d).*/.exec(ua)?parseFloat(RegExp.$1):0;this.konquerorMinor=this.konqueror&&/.*khtml\/\d\.(\d).*/.exec(ua)?parseFloat(RegExp.$1):0;this.konquerorSmall=this.konqueror&&/.*khtml\/\d\.\d\.(\d).*/.exec(ua)?parseFloat(RegExp.$1):0;this.flashVersion=0;if(this.ieWin){var axo;var _9f=false;try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(e){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");this.flashVersion=6;axo.AllowScriptAccess="always"}catch(e){_9f=this.flashVersion==6}if(!_9f){try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(e){}}}if(!_9f&&axo){this.flashVersion=parseFloat(/([\d,?]+)/.exec(axo.GetVariable("$version"))[1].replace(/,/g,"."))}}else{if(navigator.plugins&&navigator.plugins["Shockwave Flash"]){var _a0=navigator.plugins["Shockwave Flash"];this.flashVersion=parseFloat(/(\d+\.?\d*)/.exec(_a0.description)[1]);var i=0;while(this.flashVersion>=_49&&i<navigator.mimeTypes.length){var _a2=navigator.mimeTypes[i];if(_a2.type=="application/x-shockwave-flash"&&_a2.enabledPlugin.description.toLowerCase().indexOf("quicktime")>-1){this.flashVersion=0;this.quicktime=true}i++}}}this.flash=this.flashVersion>=_49;this.transparencySupport=this.macintosh||this.windows;this.computedStyleSupport=this.ie||document.defaultView&&document.defaultView.getComputedStyle&&(!this.gecko||this.geckoBuildDate>=20030624);this.requiresPrefetch=this.ieWin||this.khtml;this.fixFocus=this.gecko&&this.windows&&this.geckoBuildDate>20061206;this.nativeDomLoaded=this.gecko||this.webkit&&this.webkitVersion>=525||this.konqueror&&this.konquerorMajor>3||this.opera;this.mustCheckStyle=this.khtml||this.opera;this.forcePageLoad=this.webkit&&this.webkit<523;this.properDocument=typeof (document.location)=="object";this.supported=this.flash&&this.properDocument&&(!this.ie||this.ieSupported)&&(!this.opera)&&(!this.webkit||this.webkitVersion>=412)&&(!this.konqueror)&&this.computedStyleSupport&&(!this.gecko||this.geckoBuildDate>20040804)};this.ua=ua;var _a3=new function(){var _a4={leading:true,"margin-left":true,"margin-right":true,"text-indent":true};var _a5=" ";function capitalize($){return $.toUpperCase()}this.normalize=function(str){if(_3b.preserveSingleWhitespace){return str.replace(/\s/g,_a5)}return str.replace(/(\n|\r)+/g,_a5).replace(/(\s)\s+/g,"$1").replace(/\xA0/,_a5)};this.textTransform=function(_a8,str){switch(_a8){case "uppercase":str=str.toUpperCase();break;case "lowercase":str=str.toLowerCase();break;case "capitalize":var _aa=str;str=str.replace(/^\w|\s\w/g,capitalize);if(str.indexOf("function capitalize")!=-1){var _ab=_aa.replace(/(^|\s)(\w)/g,"$1$1$2$2").split(/^\w|\s\w/g);str="";for(var i=0;i<_ab.length;i++){str+=_ab[i].charAt(0).toUpperCase()+_ab[i].substring(1)}}break}return str};this.toHexString=function(str){if(typeof (str)!="string"||!str.charAt(0)=="#"||str.length!=4&&str.length!=7){return str}str=str.replace(/#/,"");if(str.length==3){str=str.replace(/(.)(.)(.)/,"$1$1$2$2$3$3")}return "0x"+str};this.toJson=function(obj){var _af="";switch(typeof (obj)){case "string":_af="\""+obj+"\"";break;case "number":case "boolean":_af=obj.toString();break;case "object":_af=[];for(var _b0 in obj){if(obj[_b0]==Object.prototype[_b0]){continue}_af.push("\""+_b0+"\":"+_a3.toJson(obj[_b0]))}_af="{"+_af.join(",")+"}";break}return _af};this.convertCssArg=function(arg){if(!arg){return {}}if(typeof (arg)=="object"){if(arg.constructor==Array){arg=arg.join("")}else{return arg}}var obj={};var _b3=arg.split("}");for(var i=0;i<_b3.length;i++){var $=_b3[i].match(/([^\s{]+)\s*\{(.+)\s*;?\s*/);if(!$||$.length!=3){continue}if(!obj[$[1]]){obj[$[1]]={}}var _b6=$[2].split(";");for(var j=0;j<_b6.length;j++){var $2=_b6[j].match(/\s*([^:\s]+)\s*\:\s*([^;]+)/);if(!$2||$2.length!=3){continue}obj[$[1]][$2[1]]=$2[2].replace(/\s+$/,"")}}return obj};this.extractFromCss=function(css,_ba,_bb,_bc){var _bd=null;if(css&&css[_ba]&&css[_ba][_bb]){_bd=css[_ba][_bb];if(_bc){delete css[_ba][_bb]}}return _bd};this.cssToString=function(arg){var css=[];for(var _c0 in arg){var _c1=arg[_c0];if(_c1==Object.prototype[_c0]){continue}css.push(_c0,"{");for(var _c2 in _c1){if(_c1[_c2]==Object.prototype[_c2]){continue}var _c3=_c1[_c2];if(_a4[_c2]){_c3=parseInt(_c3,10)}css.push(_c2,":",_c3,";")}css.push("}")}return css.join("")};this.bind=function(_c4,_c5){return function(){_c4[_c5].apply(_c4,arguments)}};this.escape=function(str){return escape(str).replace(/\+/g,"%2B")};this.copyProperties=function(_c7,to){for(var _c9 in _c7){if(to[_c9]===undefined){to[_c9]=_c7[_c9]}}return to};this.domain=function(){var _ca="";try{_ca=document.domain}catch(e){}return _ca};this.domainMatches=function(_cb,_cc){if(_cc=="*"||_cc==_cb){return true}var _cd=_cc.lastIndexOf("*");if(_cd>-1){_cc=_cc.substr(_cd+1);var _ce=_cb.lastIndexOf(_cc);if(_ce>-1&&(_ce+_cc.length)==_cb.length){return true}}return false};this.uriEncode=function(s){return encodeURI(decodeURIComponent(s))}};this.util=_a3;var _d0={};_d0.fragmentIdentifier=new function(){this.fix=true;var _d1;this.cache=function(){_d1=document.title};function doFix(){document.title=_d1}this.restore=function(){if(this.fix){setTimeout(doFix,0)}}};this.hacks=_d0;_d0.pageLoad=new function(){var _d2=null;function pollLoad(){try{if(ua.ie||document.readyState!="loaded"&&document.readyState!="complete"){document.documentElement.doScroll("left")}}catch(e){return setTimeout(pollLoad,10)}afterDomLoad()}function afterDomLoad(){if(_3b.useStyleCheck){checkStyle()}else{if(!ua.mustCheckStyle){fire(null,true)}}}function checkStyle(){_d2=dom.create("div");_d2.className=_45;dom.getBody().appendChild(_d2);pollStyle()}function pollStyle(){if(dom.getComputedStyle(_d2,"marginLeft")=="42px"){afterStyle()}else{setTimeout(pollStyle,10)}}function afterStyle(){if(_d2&&_d2.parentNode){_d2.parentNode.removeChild(_d2)}_d2=null;fire(null,true)}function fire(evt,_d4){_3b.initialize(_d4);if(evt&&evt.type=="load"){if(document.removeEventListener){document.removeEventListener("DOMContentLoaded",fire,false)}if(window.removeEventListener){window.removeEventListener("load",fire,false)}}}this.attach=function(){if(window.addEventListener){window.addEventListener("load",fire,false)}else{window.attachEvent("onload",fire)}if(!_3b.useDomLoaded||ua.forcePageLoad||ua.ie&&window.top!=window){return}if(ua.nativeDomLoaded){document.addEventListener("DOMContentLoaded",afterDomLoad,false)}else{if(ua.ie||ua.khtml){pollLoad()}}}};_d0.zoom=new function(){var _d5,_d6;function detect(){if(_d5.offsetLeft!=_d6){_d6=_d5.offsetLeft;resize(null,true)}}this.init=function(){if(!ua.ie||ua.ieVersion<7){return}_d5=dom.create("div");_d5.className=_46;_d5.style.cssText="display:block;width:auto;position:absolute;left:10%;top:-100px;";dom.getBody().appendChild(_d5);_d6=_d5.offsetLeft;setInterval(detect,200)}};this.errors={};var _d7={kwargs:[],replaceAll:function(_d8){for(var i=0;i<this.kwargs.length;i++){_3b.replace(this.kwargs[i])}if(!_d8){this.kwargs=[]}}};function isValidDomain(){if(_3b.domains.length==0){return true}var _da=_a3.domain();for(var i=0;i<_3b.domains.length;i++){var _dc=_3b.domains[i];if(_a3.domainMatches(_da,_dc)){return true}}return false}function isFile(){if(!_3b.fromLocal&&document.location.protocol=="file:"){if(_3b.debug){_3b.errors.fire("isFile")}return true}return false}function resize(evt,_de){var _df=_de?{}:resize.viewport;resize.viewport={width:window.innerWidth||document.documentElement.clientWidth||dom.getBody().clientWidth,height:window.innerHeight||document.documentElement.clientHeight||dom.getBody().clientHeight};if(_df&&resize.viewport.width==_df.width&&resize.viewport.height==_df.height){return}if(resize.timer){clearTimeout(resize.timer)}resize.timer=setTimeout(function(){delete resize.timer;for(var i=0;i<_3b.callbacks.length;i++){_3b.callbacks[i].resize()}},200)}function scale(){for(var i=0;i<_3b.callbacks.length;i++){_3b.callbacks[i].call("scale")}}this.activate=function(){if(!ua.supported||!this.isEnabled||this.isActive||!isValidDomain()||isFile()){return}if(arguments.length>0){this.prefetch.apply(this,arguments)}this.isActive=true;this.setFlashClass();_d0.fragmentIdentifier.fix=ua.ieWin&&_d0.fragmentIdentifier.fix&&window.location.hash!="";if(_d0.fragmentIdentifier.fix){_d0.fragmentIdentifier.cache()}if(!this.autoInitialize){return}_d0.pageLoad.attach();if(ua.ie){window.attachEvent("onunload",function(){dom.addClass(_3d,document.documentElement)})}};this.setFlashClass=function(){if(this.hasFlashClassSet){return}dom.addClass(_3c,dom.getBody()||document.documentElement);this.hasFlashClassSet=true};this.removeFlashClass=function(){if(!this.hasFlashClassSet){return}dom.removeClass(_3c,dom.getBody());dom.removeClass(_3c,document.documentElement);this.hasFlashClassSet=false};this.initialize=function(_e2){if(!this.isActive||!this.isEnabled){return}if(_50){if(!_e2){_d7.replaceAll(false)}return}_50=true;_d7.replaceAll(_e2);if(_3b.repaintOnResize){if(window.addEventListener){window.addEventListener("resize",resize,false);window.addEventListener("scroll",scale,false)}else{window.attachEvent("onresize",resize);window.attachEvent("onscroll",scale)}_d0.zoom.init()}clearPrefetch()};function getSource(src){if(typeof (src)!="string"){if(src.src){src=src.src}if(typeof (src)!="string"){var _e4=[];for(var _e5 in src){if(src[_e5]!=Object.prototype[_e5]){_e4.push(_e5)}}_e4.sort().reverse();var _e6="";var i=-1;while(!_e6&&++i<_e4.length){if(parseFloat(_e4[i])<=ua.flashVersion){_e6=src[_e4[i]]}}src=_e6}}if(!src&&_3b.debug){_3b.errors.fire("getSource")}if(ua.ie&&src.charAt(0)=="/"){src=window.location.toString().replace(/([^:]+)(:\/?\/?)([^\/]+).*/,"$1$2$3")+src}return src}this.prefetch=function(){if((!ua.requiresPrefetch&&!this.isActive)||!ua.supported||!this.isEnabled||!isValidDomain()){return}if(this.setPrefetchCookie&&new RegExp(";?"+_4a+"=true;?").test(document.cookie)){return}try{_4f=true;if(ua.ieWin){prefetchIexplore(arguments)}else{prefetchLight(arguments)}if(this.setPrefetchCookie){document.cookie=_4a+"=true;path="+this.cookiePath}}catch(e){if(_3b.debug){throw e}}};function prefetchIexplore(_e8){for(var i=0;i<_e8.length;i++){document.write("<script defer type=\"sifr/prefetch\" src=\""+getSource(_e8[i])+"\"></script>")}}function prefetchLight(_ea){for(var i=0;i<_ea.length;i++){new Image().src=getSource(_ea[i])}}function clearPrefetch(){if(!ua.ieWin||!_4f){return}try{var _ec=document.getElementsByTagName("script");for(var i=_ec.length-1;i>=0;i--){var _ee=_ec[i];if(_ee.type=="sifr/prefetch"){_ee.parentNode.removeChild(_ee)}}}catch(e){}}function getRatio(_ef,_f0){for(var i=0;i<_f0.length;i+=2){if(_ef<=_f0[i]){return _f0[i+1]}}return _f0[_f0.length-1]||1}function getFilters(obj){var _f3=[];for(var _f4 in obj){if(obj[_f4]==Object.prototype[_f4]){continue}var _f5=obj[_f4];_f4=[_f4.replace(/filter/i,"")+"Filter"];for(var _f6 in _f5){if(_f5[_f6]==Object.prototype[_f6]){continue}_f4.push(_f6+":"+_a3.escape(_a3.toJson(_a3.toHexString(_f5[_f6]))))}_f3.push(_f4.join(","))}return _a3.escape(_f3.join(";"))}function calculate(_f7){var _f8,_f9;if(!ua.ie){_f8=dom.getStyleAsInt(_f7,"lineHeight");_f9=Math.floor(dom.getStyleAsInt(_f7,"height")/_f8)}else{if(ua.ie){var _fa=dom.getComputedStyle(_f7,"fontSize");if(_fa.indexOf("px")>0){_f8=parseInt(_fa)}else{var _fb=_f7.innerHTML;_f7.style.visibility="visible";_f7.style.overflow="visible";_f7.style.position="static";_f7.style.zoom="normal";_f7.style.writingMode="lr-tb";_f7.style.width=_f7.style.height="auto";_f7.style.maxWidth=_f7.style.maxHeight=_f7.style.styleFloat="none";var _fc=_f7;var _fd=_f7.currentStyle.hasLayout;if(_fd){_f7.innerHTML="<div class=\""+_43+"\">X<br />X<br />X</div>";_fc=_f7.firstChild}else{_f7.innerHTML="X<br />X<br />X"}var _fe=_fc.getClientRects();_f8=_fe[1].bottom-_fe[1].top;_f8=Math.ceil(_f8*0.8);if(_fd){_f7.innerHTML="<div class=\""+_43+"\">"+_fb+"</div>";_fc=_f7.firstChild}else{_f7.innerHTML=_fb}_fe=_fc.getClientRects();_f9=_fe.length;if(_fd){_f7.innerHTML=_fb}_f7.style.visibility=_f7.style.width=_f7.style.height=_f7.style.maxWidth=_f7.style.maxHeight=_f7.style.overflow=_f7.style.styleFloat=_f7.style.position=_f7.style.zoom=_f7.style.writingMode=""}}}return {lineHeight:_f8,lines:_f9}}this.replace=function(_ff,_100){if(!ua.supported){return}if(_100){_ff=_a3.copyProperties(_ff,_100)}if(!_50){return _d7.kwargs.push(_ff)}if(_3b.onReplacementStart){_3b.onReplacementStart(_ff)}var _101=_ff.elements;if(!_101&&parseSelector){_101=parseSelector(_ff.selector)}if(_101.length==0){return}var src=getSource(_ff.src);var css=_a3.convertCssArg(_ff.css);var _104=getFilters(_ff.filters);var _105=(_ff.forceClear==null)?_3b.forceClear:_ff.forceClear;var _106=(_ff.fitExactly==null)?_3b.fitExactly:_ff.fitExactly;var _107=_106||(_ff.forceWidth==null?_3b.forceWidth:_ff.forceWidth);var _108=!!(_ff.preventWrap&&!_ff.forceSingleLine);var _109=parseInt(_a3.extractFromCss(css,".sIFR-root","leading"))||0;var _10a=_a3.extractFromCss(css,".sIFR-root","font-size",true)||0;var _10b=_a3.extractFromCss(css,".sIFR-root","background-color",true)||"#FFFFFF";var _10c=_a3.extractFromCss(css,".sIFR-root","kerning",true)||"";var _10d=_ff.gridFitType||_a3.extractFromCss(css,".sIFR-root","text-align")=="right"?"subpixel":"pixel";var _10e=_3b.forceTextTransform?_a3.extractFromCss(css,".sIFR-root","text-transform",true)||"none":"none";var _10f=_a3.extractFromCss(css,".sIFR-root","opacity",true)||"100";var _110=_a3.extractFromCss(css,".sIFR-root","cursor",true)||"default";var _111=_ff.pixelFont||false;var _112=_ff.ratios||_4b;var _113=parseInt(_ff.tuneHeight)||0;var _114=!!_ff.onRelease||!!_ff.onRollOver||!!_ff.onRollOut;if(parseInt(_10a).toString()!=_10a&&_10a.indexOf("px")==-1){_10a=0}else{_10a=parseInt(_10a)}if(parseFloat(_10f)<1){_10f=100*parseFloat(_10f)}var _115="";if(_106){_a3.extractFromCss(css,".sIFR-root","text-align",true)}if(!_ff.modifyCss){_115=_a3.cssToString(css)}var _116=_ff.wmode||"";if(!_116){if(_ff.transparent){_116="transparent"}else{if(_ff.opaque){_116="opaque"}}}if(_116=="transparent"){if(!ua.transparencySupport){_116="opaque"}else{_10b="transparent"}}for(var i=0;i<_101.length;i++){var node=_101[i];if(dom.hasOneOfClassses([_3e,_40,_41],node)){continue}var _119=dom.getDimensions(node);var _11a=_119.height;var _11b=_119.width;var _11c=dom.getComputedStyle(node,"display");if(!_11a||!_11b||_11c==null||_11c=="none"){continue}if(_105&&ua.gecko){node.style.clear="both"}var html=null;if(_3b.fixWrap&&ua.ie&&_11c=="block"){html=node.innerHTML;node.innerHTML="X"}_11b=dom.getWidthFromStyle(node);if(html&&_3b.fixWrap&&ua.ie){node.innerHTML=html}var _11e,_11f;if(!_10a){var _120=calculate(node);_11e=Math.min(_48,Math.max(_47,_120.lineHeight));if(_111){_11e=Math.max(8,8*Math.round(_11e/8))}_11f=_120.lines;if(isNaN(_11f)||!isFinite(_11f)||_11f==0){_11f=1}if(_11f>1&&_109){_11a+=Math.round((_11f-1)*_109)}}else{_11e=_10a;_11f=1}_11a=Math.round(_11f*_11e);if(_105&&ua.gecko){node.style.clear=""}var _121=dom.create("span");_121.className=_41;var _122=node.cloneNode(true);node.parentNode.appendChild(_122);for(var j=0,l=_122.childNodes.length;j<l;j++){_121.appendChild(_122.childNodes[j].cloneNode(true))}if(_ff.modifyContent){_ff.modifyContent(_122,_ff.selector)}if(_ff.modifyCss){_115=_ff.modifyCss(css,_122,_ff.selector)}var _125=_3b.fixHover&&dom.contentIsLink(_122);var _126=handleContent(_122,_10e,_ff.uriEncode);_122.parentNode.removeChild(_122);if(_ff.modifyContentString){_126.text=_ff.modifyContentString(_126.text,_ff.selector)}if(_126.text==""){continue}var _127=Math.round(_11f*getRatio(_11e,_112)*_11e)+_4c+_113;var _128=_107?_11b:"100%";var vars=["content="+_a3.escape(_126.text),"antialiastype="+(_ff.antiAliasType||""),"width="+_11b,"height="+_11a,"renderheight="+_127,"fitexactly="+_106,"tunewidth="+(_ff.tuneWidth||0),"tuneheight="+_113,"offsetleft="+(_ff.offsetLeft||""),"offsettop="+(_ff.offsetTop||""),"thickness="+(_ff.thickness||""),"sharpness="+(_ff.sharpness||""),"kerning="+_10c,"gridfittype="+_10d,"flashfilters="+_104,"opacity="+_10f,"blendmode="+(_ff.blendMode||""),"size="+_11e,"css="+_a3.escape(_115),"selectable="+(_ff.selectable==null?"true":_ff.selectable),"fixhover="+_125,"preventwrap="+_108,"forcesingleline="+(_ff.forceSingleLine===true),"link="+_a3.escape(_126.primaryLink[0]||""),"target="+_a3.escape(_126.primaryLink[1]||""),"events="+_114,"cursor="+_110,"version="+_4d];var _12a=encodeVars(vars);var _12b="sIFR_callback_"+_4e++;var _12c=new CallbackInfo(_12b,vars,_107,{onReplacement:_ff.onReplacement,onRollOver:_ff.onRollOver,onRollOut:_ff.onRollOut,onRelease:_ff.onRelease});window[_12b+"_DoFSCommand"]=(function(_12d){return function(info,arg){_12d.handle(info,arg)}})(_12c);_121.setAttribute("id",_12b+"_alternate");var _130=ua.ie?dom.swf.ie:dom.swf.other;var _131=dom.swf.create(_130,ua.fixFocus&&_ff.fixFocus,_12b,_128,_127,src,_12a,_116,_10b);_130.insert(node,_131);_12c.html=_131;_3b.callbacks.push(_12c);if(_ff.selector){if(!_3b.callbacks[_ff.selector]){_3b.callbacks[_ff.selector]=[_12c]}else{_3b.callbacks[_ff.selector].push(_12c)}}node.appendChild(_121);dom.addClass(_3e,node)}_d0.fragmentIdentifier.restore()};this.getCallbackByFlashElement=function(node){for(var i=0;i<_3b.callbacks.length;i++){if(_3b.callbacks[i].id==node.getAttribute("id")){return _3b.callbacks[i]}}};this.redraw=function(){for(var i=0;i<_3b.callbacks.length;i++){_3b.callbacks[i].resetMovie()}};function encodeVars(vars){return vars.join("&").replace(/%/g,"%25")}function handleContent(_136,_137,_138){_138=_138||_a3.uriEncode;var _139=[],_13a=[],_13b=[];var _13c=_136.childNodes;var i=0;while(i<_13c.length){var node=_13c[i];if(node.nodeType==3){var text=_a3.normalize(node.nodeValue);text=_a3.textTransform(_137,text);text=text.replace(/</g,"&lt;");_13a.push(text)}if(node.nodeType==1){var _140=[];var _141=node.nodeName.toLowerCase();var _142=node.className||"";if(/\s+/.test(_142)){if(_142.indexOf(_42)>-1){_142=_142.match("(\\s|^)"+_42+"-([^\\s$]*)(\\s|$)")[2]}else{_142=_142.match(/^([^\s]+)/)[1]}}if(_142!=""){_140.push("class=\""+_142+"\"")}if(_141=="a"){var href=_138(node.getAttribute("href")||"");var _144=node.getAttribute("target")||"";_140.push("href=\""+href+"\"","target=\""+_144+"\"");if(_13b.length==0){_13b=[href,_144]}}_13a.push("<"+_141+(_140.length>0?" ":"")+_140.join(" ")+">");if(node.hasChildNodes()){_139.push(i);i=0;_13c=node.childNodes;continue}else{if(!/^(br|img)$/i.test(node.nodeName)){_13a.push("</",node.nodeName.toLowerCase(),">")}}}if(_139.length>0&&!node.nextSibling){do{i=_139.pop();_13c=node.parentNode.parentNode.childNodes;node=_13c[i];if(node){_13a.push("</",node.nodeName.toLowerCase(),">")}}while(i==_13c.length-1&&_139.length>0)}i++}return {text:_13a.join("").replace(/\n|\r/g,""),primaryLink:_13b}}function CallbackInfo(id,vars,_147,_148){this.id=id;this.vars=vars;this._events=_148;this._forceWidth=_147;this._firedReplacementEvent=!(_148.onReplacement!=null);this.html=null}CallbackInfo.prototype.getFlashElement=function(){return document.getElementById(this.id)};CallbackInfo.prototype.available=function(){var _149=this.getFlashElement();return _149&&_149.parentNode};CallbackInfo.prototype.handle=function(info,arg){if(!this.available()){return}switch(/(FSCommand\:)?(.+)/.exec(info)[2]){case "resize":var _14c=this.getFlashElement();var $=arg.split(/\:|,/);_14c.setAttribute($[0],$[1]);if($.length>2){_14c.style[$[2]]=$[3]+"px"}if(ua.khtml){var _14e=_14c.offsetHeight}if(!this._firedReplacementEvent){this._events.onReplacement(this);this._firedReplacementEvent=true}break;case "resetmovie":this.resetMovie();break;case "blur":dom.blurElement(this.getFlashElement());break;case "event":if(this._events[arg]){this._events[arg](this)}break;default:if(this.debugHandler&&/(FSCommand\:)?debug/.test(info)){this.debugHandler(info,arg)}}};CallbackInfo.prototype.call=function(type,_150){if(!this.available()){return false}var _151=this.getFlashElement();try{_151.SetVariable("callbackType",type);_151.SetVariable("callbackValue",_150);_151.SetVariable("callbackTrigger",true)}catch(e){return false}return true};CallbackInfo.prototype.replaceText=function(_152,_153){var _154=_a3.escape(_152);this.updateVars("content",_154);if(this.call("replacetext",_154)){var node=this.getAlternate();if(_153){while(node.firstChild){node.removeChild(node.firstChild)}for(var i=0;i<_153.length;i++){node.appendChild(_153[i])}}else{try{node.innerHTML=_152}catch(e){}}return true}return false};CallbackInfo.prototype.updateVars=function(name,_158){for(var i=0;i<this.vars.length;i++){if(this.vars[i].split("=")[0]==name){this.vars[i]=name+"="+_158;break}}};CallbackInfo.prototype.resetMovie=function(){if(!this.available()){return}var _15a=this.getFlashElement();var node=_15a.parentNode;var vars=encodeVars(this.vars);if(ua.ie){this.html=this.html.replace(/(flashvars(=|\"\svalue=)\")[^\"]+/,"$1"+vars);node.replaceChild(dom.nodeFromHtml(this.html),_15a)}else{var _15d=this.html.getElementsByTagName("param");for(var i=0;i<_15d.length;i++){if(_15d[i].getAttribute("name")=="flashvars"){_15d[i].setAttribute("value",vars);break}}node.replaceChild(this.html.cloneNode(true),_15a)}};CallbackInfo.prototype.resize=function(){if(!this.available()){return}var _15f=this.getFlashElement();var _160=_15f.parentNode;var _161=_15f.offsetWidth;var _162=_15f.getAttribute("width");var _163=_15f.getAttribute("height");_15f.style.width="0px";_15f.style.height="0px";_15f.parentNode.style.minHeight=_163;var _164=this.getAlternate().childNodes;var _165=[];for(var i=0;i<_164.length;i++){var node=_164[i].cloneNode(true);_165.push(node);_160.appendChild(node)}var _168=dom.getWidthFromStyle(_160);for(var i=0;i<_165.length;i++){_160.removeChild(_165[i])}_15f.style.width=_15f.style.height=_15f.parentNode.style.minHeight="";_15f.setAttribute("width",this._forceWidth?_168:_162);_15f.setAttribute("height",_163);if(_168!=_161){this.call("resize",_168)}else{this.call("scale")}};CallbackInfo.prototype.changeCSS=function(css){css=_a3.escape(_a3.cssToString(_a3.convertCssArg(css)));this.updateVars("css",css);return this.call("changecss",css)};CallbackInfo.prototype.getAlternate=function(){return document.getElementById(this.id+"_alternate")}};



//	Lightbox v2.04 modified by Martin

LightboxOptions = Object.extend({
    fileLoadingImage:        '/images/loading.gif',     
    fileBottomNavCloseImage: '/images/closelabel.gif',

    overlayOpacity: 0.8,   // controls transparency of shadow overlay

    animate: false,         // toggles resizing animations
    resizeSpeed: 7,        // controls the speed of the image resizing animations (1=slowest and 10=fastest)

    borderSize: 10,         //if you adjust the padding in the CSS, you will need to update this variable

	disableKeyboardNav: true,
	// When grouping images this is used to write: Image # of #.
	// Change it for non-english localization
	labelImage: "Image",
	labelOf: "of"
}, window.LightboxOptions || {});

// -----------------------------------------------------------------------------------

var Lightbox = Class.create();

Lightbox.prototype = {
    imageArray: [],
    activeImage: undefined,
    
    // initialize()
    // Constructor runs on completion of the DOM loading. Calls updateImageList and then
    // the function inserts html at the bottom of the page which is used to display the shadow 
    // overlay and the image container.
    //
    initialize: function() {    
        
        this.updateImageList();
        
        this.keyboardAction = this.keyboardAction.bindAsEventListener(this);

        if (LightboxOptions.resizeSpeed > 10) LightboxOptions.resizeSpeed = 10;
        if (LightboxOptions.resizeSpeed < 1)  LightboxOptions.resizeSpeed = 1;

	    this.resizeDuration = LightboxOptions.animate ? ((11 - LightboxOptions.resizeSpeed) * 0.15) : 0;
	    this.overlayDuration = LightboxOptions.animate ? 0.2 : 0;  // shadow fade in/out duration

        // When Lightbox starts it will resize itself from 250 by 250 to the current image dimension.
        // If animations are turned off, it will be hidden as to prevent a flicker of a
        // white 250 by 250 box.
        var size = (LightboxOptions.animate ? 250 : 1) + 'px';
        

        // Code inserts html at the bottom of the page that looks similar to this:
        //
        //  <div id="overlay"></div>
        //  <div id="lightbox">
        //      <div id="outerImageContainer">
        //          <div id="imageContainer">
        //              <img id="lightboxImage">
        //              <div style="" id="hoverNav">
        //                  <a href="#" id="prevLink"></a>
        //                  <a href="#" id="nextLink"></a>
        //              </div>
        //              <div id="loading">
        //                  <a href="#" id="loadingLink">
        //                      <img src="images/loading.gif">
        //                  </a>
        //              </div>
        //          </div>
        //      </div>
        //      <div id="imageDataContainer">
        //          <div id="imageData">
        //              <div id="imageDetails">
        //                  <span id="caption"></span>
        //                  <span id="numberDisplay"></span>
        //              </div>
        //              <div id="bottomNav">
        //                  <a href="#" id="bottomNavClose">
        //                      <img src="images/close.gif">
        //                  </a>
        //              </div>
        //          </div>
        //      </div>
        //  </div>


        var objBody = $$('body')[0];

		objBody.appendChild(Builder.node('div',{id:'overlay'}));
	
        objBody.appendChild(Builder.node('div',{id:'lightbox'}, [
            Builder.node('div',{id:'outerImageContainer'}, 
                Builder.node('div',{id:'imageContainer'}, [
                    Builder.node('img',{id:'lightboxImage'}), 
                    Builder.node('div',{id:'hoverNav'}, [
                        Builder.node('a',{id:'prevLink', href: '#' }),
                        Builder.node('a',{id:'nextLink', href: '#' })
                    ]),
                    Builder.node('div',{id:'loading'}, 
                        Builder.node('a',{id:'loadingLink', href: '#' }, 
                            Builder.node('img', {src: LightboxOptions.fileLoadingImage})
                        )
                    )
                ])
            ),
            Builder.node('div', {id:'imageDataContainer'},
                Builder.node('div',{id:'imageData'}, [
                    Builder.node('div',{id:'imageDetails'}, [
                        Builder.node('span',{id:'caption'}),
                        Builder.node('span',{id:'numberDisplay'})
                    ]),
                    Builder.node('div',{id:'bottomNav'},
                        Builder.node('a',{id:'bottomNavClose', href: '#' },
                            Builder.node('img', { src: LightboxOptions.fileBottomNavCloseImage })
                        )
                    )
                ])
            )
        ]));


		$('overlay').hide().observe('click', (function() { this.end(); }).bind(this));
		$('outerImageContainer').setStyle({ width: size, height: size });
		$('prevLink').observe('click', (function(event) { event.stop(); this.changeImage(this.activeImage - 1); }).bindAsEventListener(this));
		$('nextLink').observe('click', (function(event) { event.stop(); this.changeImage(this.activeImage + 1); }).bindAsEventListener(this));
		$('loadingLink').observe('click', (function(event) { event.stop(); this.end(); }).bind(this));
		$('lightbox').hide().observe('click', (function(event) { event.stop(); this.end(); }).bind(this));

        var th = this;
        (function(){
            var ids = 
                'overlay lightbox outerImageContainer imageContainer lightboxImage hoverNav prevLink nextLink loading loadingLink ' + 
                'imageDataContainer imageData imageDetails caption numberDisplay bottomNav bottomNavClose';   
            $w(ids).each(function(id){ th[id] = $(id); });
        }).defer();
    },

    //
    // updateImageList()
    // Loops through anchor tags looking for 'lightbox' references and applies onclick
    // events to appropriate links. You can rerun after dynamically adding images w/ajax.
    //
    updateImageList: function() {   
        this.updateImageList = Prototype.emptyFunction;
		
        document.observe('click', (function(event){
            var target = event.findElement('a[rel^=lightbox]') || event.findElement('area[rel^=lightbox]');
            if (target) {
                event.stop();
                this.start(target);
            }
        }).bind(this));
    },
    
    //
    //  start()
    //  Display overlay and lightbox. If image is part of a set, add siblings to imageArray.
    //
    start: function(imageLink) {    

        $$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'hidden' });

        // stretch overlay to fill page and fade in
        var arrayPageSize = this.getPageSize();
        $('overlay').setStyle({ width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px' });

        new Effect.Appear(this.overlay, { duration: this.overlayDuration, from: 0.0, to: LightboxOptions.overlayOpacity });

        this.imageArray = [];
        var imageNum = 0;       

        if ((imageLink.rel == 'lightbox')){
            // if image is NOT part of a set, add single image to imageArray
            this.imageArray.push([imageLink.href, imageLink.title]);         
        } else {
            // if image is part of a set..
            this.imageArray = 
                $$(imageLink.tagName + '[href][rel="' + imageLink.rel + '"]').
                collect(function(anchor){ return [anchor.href, anchor.title]; }).
                uniq();
            
            while (this.imageArray[imageNum][0] != imageLink.href) { imageNum++; }
        }

        // calculate top and left offset for the lightbox 
        var arrayPageScroll = document.viewport.getScrollOffsets();
        var lightboxTop = arrayPageScroll[1] + (document.viewport.getHeight() / 10);
        var lightboxLeft = arrayPageScroll[0];
        this.lightbox.setStyle({ top: lightboxTop + 'px', left: lightboxLeft + 'px' }).show();
        
        this.changeImage(imageNum);
    },

    //
    //  changeImage()
    //  Hide most elements and preload image in preparation for resizing image container.
    //
    changeImage: function(imageNum) {   
        
        this.activeImage = imageNum; // update global var

        // hide elements during transition
        if (LightboxOptions.animate) this.loading.show();
        this.lightboxImage.hide();
        this.hoverNav.hide();
        this.prevLink.hide();
        this.nextLink.hide();
		// HACK: Opera9 does not currently support scriptaculous opacity and appear fx
        this.imageDataContainer.setStyle({opacity: .0001});
        this.numberDisplay.hide();      
        
        var imgPreloader = new Image();
        
        // once image is preloaded, resize image container


        imgPreloader.onload = (function(){
            this.lightboxImage.src = this.imageArray[this.activeImage][0];
            this.resizeImageContainer(imgPreloader.width, imgPreloader.height);
        }).bind(this);
        imgPreloader.src = this.imageArray[this.activeImage][0];
    },

    //
    //  resizeImageContainer()
    //
    resizeImageContainer: function(imgWidth, imgHeight) {

        // get current width and height
        var widthCurrent  = this.outerImageContainer.getWidth();
        var heightCurrent = this.outerImageContainer.getHeight();

        // get new width and height
        var widthNew  = (imgWidth  + LightboxOptions.borderSize * 2);
        var heightNew = (imgHeight + LightboxOptions.borderSize * 2);

        // scalars based on change from old to new
        var xScale = (widthNew  / widthCurrent)  * 100;
        var yScale = (heightNew / heightCurrent) * 100;

        // calculate size difference between new and old image, and resize if necessary
        var wDiff = widthCurrent - widthNew;
        var hDiff = heightCurrent - heightNew;

        if (hDiff != 0) new Effect.Scale(this.outerImageContainer, yScale, {scaleX: false, duration: this.resizeDuration, queue: 'front'}); 
        if (wDiff != 0) new Effect.Scale(this.outerImageContainer, xScale, {scaleY: false, duration: this.resizeDuration, delay: this.resizeDuration}); 

        // if new and old image are same size and no scaling transition is necessary, 
        // do a quick pause to prevent image flicker.
        var timeout = 0;
        if ((hDiff == 0) && (wDiff == 0)){
            timeout = 100;
            if (Prototype.Browser.IE) timeout = 250;   
        }

        (function(){
            this.prevLink.setStyle({ height: imgHeight + 'px' });
            this.nextLink.setStyle({ height: imgHeight + 'px' });
            this.imageDataContainer.setStyle({ width: widthNew + 'px' });

            this.showImage();
        }).bind(this).delay(timeout / 1000);
    },
    
    //
    //  showImage()
    //  Display image and begin preloading neighbors.
    //
    showImage: function(){
        this.loading.hide();
        new Effect.Appear(this.lightboxImage, { 
            duration: this.resizeDuration, 
            queue: 'end'
        });
        this.preloadNeighborImages();
    },

    //
    //  updateDetails()
    //  Display caption, image number, and bottom nav.
    //


    //
    //  enableKeyboardNav()
    //
    enableKeyboardNav: function() {
        document.observe('keydown', this.keyboardAction); 
    },

    //
    //  disableKeyboardNav()
    //
    disableKeyboardNav: function() {
        document.stopObserving('keydown', this.keyboardAction); 
    },

    //
    //  keyboardAction()
    //
    keyboardAction: function(event) {
        var keycode = event.keyCode;

        var escapeKey;
        if (event.DOM_VK_ESCAPE) {  // mozilla
            escapeKey = event.DOM_VK_ESCAPE;
        } else { // ie
            escapeKey = 27;
        }

        var key = String.fromCharCode(keycode).toLowerCase();
        
        if (key.match(/x|o|c/) || (keycode == escapeKey)){ // close lightbox
            this.end();
        } else if ((key == 'p') || (keycode == 37)){ // display previous image
            if (this.activeImage != 0){
                this.disableKeyboardNav();
                this.changeImage(this.activeImage - 1);
            }
        } else if ((key == 'n') || (keycode == 39)){ // display next image
            if (this.activeImage != (this.imageArray.length - 1)){
                this.disableKeyboardNav();
                this.changeImage(this.activeImage + 1);
            }
        }
    },

    //
    //  preloadNeighborImages()
    //  Preload previous and next images.
    //
    preloadNeighborImages: function(){
        var preloadNextImage, preloadPrevImage;
        if (this.imageArray.length > this.activeImage + 1){
            preloadNextImage = new Image();
            preloadNextImage.src = this.imageArray[this.activeImage + 1][0];
        }
        if (this.activeImage > 0){
            preloadPrevImage = new Image();
            preloadPrevImage.src = this.imageArray[this.activeImage - 1][0];
        }
    
    },

    //
    //  end()
    //
    end: function() {
        this.disableKeyboardNav();
        this.lightbox.hide();
        new Effect.Fade(this.overlay, { duration: this.overlayDuration });
        $$('select', 'object', 'embed').each(function(node){ node.style.visibility = 'visible' });
    },

    //
    //  getPageSize()
    //
    getPageSize: function() {
	        
	     var xScroll, yScroll;
		
		if (window.innerHeight && window.scrollMaxY) {	
			xScroll = window.innerWidth + window.scrollMaxX;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}
		
		var windowWidth, windowHeight;
		
		if (self.innerHeight) {	// all except Explorer
			if(document.documentElement.clientWidth){
				windowWidth = document.documentElement.clientWidth; 
			} else {
				windowWidth = self.innerWidth;
			}
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) { // other Explorers
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	
		
		// for small pages with total height less then height of the viewport
		if(yScroll < windowHeight){
			pageHeight = windowHeight;
		} else { 
			pageHeight = yScroll;
		}
	
		// for small pages with total width less then width of the viewport
		if(xScroll < windowWidth){	
			pageWidth = xScroll;		
		} else {
			pageWidth = windowWidth;
		}

		return [pageWidth,pageHeight];
	}
}

document.observe('dom:loaded', function () { new Lightbox(); });



/*	SWFObject v2.0 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007 Geoff Stearns, Michael Williams, and Bobby van der Sluis
	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var Z="undefined",P="object",B="Shockwave Flash",h="ShockwaveFlash.ShockwaveFlash",W="application/x-shockwave-flash",K="SWFObjectExprInst",G=window,g=document,N=navigator,f=[],H=[],Q=null,L=null,T=null,S=false,C=false;var a=function(){var l=typeof g.getElementById!=Z&&typeof g.getElementsByTagName!=Z&&typeof g.createElement!=Z&&typeof g.appendChild!=Z&&typeof g.replaceChild!=Z&&typeof g.removeChild!=Z&&typeof g.cloneNode!=Z,t=[0,0,0],n=null;if(typeof N.plugins!=Z&&typeof N.plugins[B]==P){n=N.plugins[B].description;if(n){n=n.replace(/^.*\s+(\S+\s+\S+$)/,"$1");t[0]=parseInt(n.replace(/^(.*)\..*$/,"$1"),10);t[1]=parseInt(n.replace(/^.*\.(.*)\s.*$/,"$1"),10);t[2]=/r/.test(n)?parseInt(n.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof G.ActiveXObject!=Z){var o=null,s=false;try{o=new ActiveXObject(h+".7")}catch(k){try{o=new ActiveXObject(h+".6");t=[6,0,21];o.AllowScriptAccess="always"}catch(k){if(t[0]==6){s=true}}if(!s){try{o=new ActiveXObject(h)}catch(k){}}}if(!s&&o){try{n=o.GetVariable("$version");if(n){n=n.split(" ")[1].split(",");t=[parseInt(n[0],10),parseInt(n[1],10),parseInt(n[2],10)]}}catch(k){}}}}var v=N.userAgent.toLowerCase(),j=N.platform.toLowerCase(),r=/webkit/.test(v)?parseFloat(v.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,i=false,q=j?/win/.test(j):/win/.test(v),m=j?/mac/.test(j):/mac/.test(v);/*@cc_on i=true;@if(@_win32)q=true;@elif(@_mac)m=true;@end@*/return{w3cdom:l,pv:t,webkit:r,ie:i,win:q,mac:m}}();var e=function(){if(!a.w3cdom){return }J(I);if(a.ie&&a.win){try{g.write("<script id=__ie_ondomload defer=true src=//:><\/script>");var i=c("__ie_ondomload");if(i){i.onreadystatechange=function(){if(this.readyState=="complete"){this.parentNode.removeChild(this);V()}}}}catch(j){}}if(a.webkit&&typeof g.readyState!=Z){Q=setInterval(function(){if(/loaded|complete/.test(g.readyState)){V()}},10)}if(typeof g.addEventListener!=Z){g.addEventListener("DOMContentLoaded",V,null)}M(V)}();function V(){if(S){return }if(a.ie&&a.win){var m=Y("span");try{var l=g.getElementsByTagName("body")[0].appendChild(m);l.parentNode.removeChild(l)}catch(n){return }}S=true;if(Q){clearInterval(Q);Q=null}var j=f.length;for(var k=0;k<j;k++){f[k]()}}function J(i){if(S){i()}else{f[f.length]=i}}function M(j){if(typeof G.addEventListener!=Z){G.addEventListener("load",j,false)}else{if(typeof g.addEventListener!=Z){g.addEventListener("load",j,false)}else{if(typeof G.attachEvent!=Z){G.attachEvent("onload",j)}else{if(typeof G.onload=="function"){var i=G.onload;G.onload=function(){i();j()}}else{G.onload=j}}}}}function I(){var l=H.length;for(var j=0;j<l;j++){var m=H[j].id;if(a.pv[0]>0){var k=c(m);if(k){H[j].width=k.getAttribute("width")?k.getAttribute("width"):"0";H[j].height=k.getAttribute("height")?k.getAttribute("height"):"0";if(O(H[j].swfVersion)){if(a.webkit&&a.webkit<312){U(k)}X(m,true)}else{if(H[j].expressInstall&&!C&&O("6.0.65")&&(a.win||a.mac)){D(H[j])}else{d(k)}}}}else{X(m,true)}}}function U(m){var k=m.getElementsByTagName(P)[0];if(k){var p=Y("embed"),r=k.attributes;if(r){var o=r.length;for(var n=0;n<o;n++){if(r[n].nodeName.toLowerCase()=="data"){p.setAttribute("src",r[n].nodeValue)}else{p.setAttribute(r[n].nodeName,r[n].nodeValue)}}}var q=k.childNodes;if(q){var s=q.length;for(var l=0;l<s;l++){if(q[l].nodeType==1&&q[l].nodeName.toLowerCase()=="param"){p.setAttribute(q[l].getAttribute("name"),q[l].getAttribute("value"))}}}m.parentNode.replaceChild(p,m)}}function F(i){if(a.ie&&a.win&&O("8.0.0")){G.attachEvent("onunload",function(){var k=c(i);if(k){for(var j in k){if(typeof k[j]=="function"){k[j]=function(){}}}k.parentNode.removeChild(k)}})}}function D(j){C=true;var o=c(j.id);if(o){if(j.altContentId){var l=c(j.altContentId);if(l){L=l;T=j.altContentId}}else{L=b(o)}if(!(/%$/.test(j.width))&&parseInt(j.width,10)<310){j.width="310"}if(!(/%$/.test(j.height))&&parseInt(j.height,10)<137){j.height="137"}g.title=g.title.slice(0,47)+" - Flash Player Installation";var n=a.ie&&a.win?"ActiveX":"PlugIn",k=g.title,m="MMredirectURL="+G.location+"&MMplayerType="+n+"&MMdoctitle="+k,p=j.id;if(a.ie&&a.win&&o.readyState!=4){var i=Y("div");p+="SWFObjectNew";i.setAttribute("id",p);o.parentNode.insertBefore(i,o);o.style.display="none";G.attachEvent("onload",function(){o.parentNode.removeChild(o)})}R({data:j.expressInstall,id:K,width:j.width,height:j.height},{flashvars:m},p)}}function d(j){if(a.ie&&a.win&&j.readyState!=4){var i=Y("div");j.parentNode.insertBefore(i,j);i.parentNode.replaceChild(b(j),i);j.style.display="none";G.attachEvent("onload",function(){j.parentNode.removeChild(j)})}else{j.parentNode.replaceChild(b(j),j)}}function b(n){var m=Y("div");if(a.win&&a.ie){m.innerHTML=n.innerHTML}else{var k=n.getElementsByTagName(P)[0];if(k){var o=k.childNodes;if(o){var j=o.length;for(var l=0;l<j;l++){if(!(o[l].nodeType==1&&o[l].nodeName.toLowerCase()=="param")&&!(o[l].nodeType==8)){m.appendChild(o[l].cloneNode(true))}}}}}return m}function R(AE,AC,q){var p,t=c(q);if(typeof AE.id==Z){AE.id=q}if(a.ie&&a.win){var AD="";for(var z in AE){if(AE[z]!=Object.prototype[z]){if(z=="data"){AC.movie=AE[z]}else{if(z.toLowerCase()=="styleclass"){AD+=' class="'+AE[z]+'"'}else{if(z!="classid"){AD+=" "+z+'="'+AE[z]+'"'}}}}}var AB="";for(var y in AC){if(AC[y]!=Object.prototype[y]){AB+='<param name="'+y+'" value="'+AC[y]+'" />'}}t.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AD+">"+AB+"</object>";F(AE.id);p=c(AE.id)}else{if(a.webkit&&a.webkit<312){var AA=Y("embed");AA.setAttribute("type",W);for(var x in AE){if(AE[x]!=Object.prototype[x]){if(x=="data"){AA.setAttribute("src",AE[x])}else{if(x.toLowerCase()=="styleclass"){AA.setAttribute("class",AE[x])}else{if(x!="classid"){AA.setAttribute(x,AE[x])}}}}}for(var w in AC){if(AC[w]!=Object.prototype[w]){if(w!="movie"){AA.setAttribute(w,AC[w])}}}t.parentNode.replaceChild(AA,t);p=AA}else{var s=Y(P);s.setAttribute("type",W);for(var v in AE){if(AE[v]!=Object.prototype[v]){if(v.toLowerCase()=="styleclass"){s.setAttribute("class",AE[v])}else{if(v!="classid"){s.setAttribute(v,AE[v])}}}}for(var u in AC){if(AC[u]!=Object.prototype[u]&&u!="movie"){E(s,u,AC[u])}}t.parentNode.replaceChild(s,t);p=s}}return p}function E(k,i,j){var l=Y("param");l.setAttribute("name",i);l.setAttribute("value",j);k.appendChild(l)}function c(i){return g.getElementById(i)}function Y(i){return g.createElement(i)}function O(k){var j=a.pv,i=k.split(".");i[0]=parseInt(i[0],10);i[1]=parseInt(i[1],10);i[2]=parseInt(i[2],10);return(j[0]>i[0]||(j[0]==i[0]&&j[1]>i[1])||(j[0]==i[0]&&j[1]==i[1]&&j[2]>=i[2]))?true:false}function A(m,j){if(a.ie&&a.mac){return }var l=g.getElementsByTagName("head")[0],k=Y("style");k.setAttribute("type","text/css");k.setAttribute("media","screen");if(!(a.ie&&a.win)&&typeof g.createTextNode!=Z){k.appendChild(g.createTextNode(m+" {"+j+"}"))}l.appendChild(k);if(a.ie&&a.win&&typeof g.styleSheets!=Z&&g.styleSheets.length>0){var i=g.styleSheets[g.styleSheets.length-1];if(typeof i.addRule==P){i.addRule(m,j)}}}function X(k,i){var j=i?"visible":"hidden";if(S){c(k).style.visibility=j}else{A("#"+k,"visibility:"+j)}}return{registerObject:function(l,i,k){if(!a.w3cdom||!l||!i){return }var j={};j.id=l;j.swfVersion=i;j.expressInstall=k?k:false;H[H.length]=j;X(l,false)},getObjectById:function(l){var i=null;if(a.w3cdom&&S){var j=c(l);if(j){var k=j.getElementsByTagName(P)[0];if(!k||(k&&typeof j.SetVariable!=Z)){i=j}else{if(typeof k.SetVariable!=Z){i=k}}}}return i},embedSWF:function(n,u,r,t,j,m,k,p,s){if(!a.w3cdom||!n||!u||!r||!t||!j){return }r+="";t+="";if(O(j)){X(u,false);var q=(typeof s==P)?s:{};q.data=n;q.width=r;q.height=t;var o=(typeof p==P)?p:{};if(typeof k==P){for(var l in k){if(k[l]!=Object.prototype[l]){if(typeof o.flashvars!=Z){o.flashvars+="&"+l+"="+k[l]}else{o.flashvars=l+"="+k[l]}}}}J(function(){R(q,o,u);if(q.id==u){X(u,true)}})}else{if(m&&!C&&O("6.0.65")&&(a.win||a.mac)){X(u,false);J(function(){var i={};i.id=i.altContentId=u;i.width=r;i.height=t;i.expressInstall=m;D(i)})}}},getFlashPlayerVersion:function(){return{major:a.pv[0],minor:a.pv[1],release:a.pv[2]}},hasFlashPlayerVersion:O,createSWF:function(k,j,i){if(a.w3cdom&&S){return R(k,j,i)}else{return undefined}},createCSS:function(j,i){if(a.w3cdom){A(j,i)}},addDomLoadEvent:J,addLoadEvent:M,getQueryParamValue:function(m){var l=g.location.search||g.location.hash;if(m==null){return l}if(l){var k=l.substring(1).split("&");for(var j=0;j<k.length;j++){if(k[j].substring(0,k[j].indexOf("="))==m){return k[j].substring((k[j].indexOf("=")+1))}}}return""},expressInstallCallback:function(){if(C&&L){var i=c(K);if(i){i.parentNode.replaceChild(L,i);if(T){X(T,true);if(a.ie&&a.win){L.style.display="block"}}L=null;T=null;C=false}}}}}();



// show_start - shows full
function show_start (obj) {
	$$('#start-presentation li').each(function(s) { 
			s.className = (s == obj) ? 'active' : ''; 
	});
	return false;
}


// clear email field
var clearEmail = false;
clearField = function(e) {
	if(clearEmail == false) {
		$(e).value = '';
		clearEmail = true;
	}
}