/*

  Author: Nathan Sudell (nathan@marscomputers.co.uk)
  Last Updated: 2009-02-03
  Version: 1.0
  
  Description: Collection of js files required by trek america websites
  
  Change Log:
  
  2009-02-03: Created.
  
  
  Currently:
 
  mootools-1.2-more.js - accordion
  mootools.accordion-fix.js
  clientcide-trunk-767.compressed.js - cnet extensions
  HistoryManager.js - for accordion tabs
  moopop_mars.js
  js.js - menu
  initial-selection.js - menu
  js-sub.js - tabs
  xml.js
  ip_currency.js
  ip_country.js
  
*/
////////////////////////////////////////////////////////////////////////////////////////////

//MooTools More, <http://mootools.net/more>. Copyright (c) 2006-2009 Aaron Newton <http://clientcide.com/>, Valerio Proietti <http://mad4milk.net> & the MooTools team <http://mootools.net/developers>, MIT Style License.

MooTools.More={version:"1.2.4.4",build:"6f6057dc645fdb7547689183b2311063bd653ddf"};(function(){var a={language:"en-US",languages:{"en-US":{}},cascades:["en-US"]};
var b;MooTools.lang=new Events();$extend(MooTools.lang,{setLanguage:function(c){if(!a.languages[c]){return this;}a.language=c;this.load();this.fireEvent("langChange",c);
return this;},load:function(){var c=this.cascade(this.getCurrentLanguage());b={};$each(c,function(e,d){b[d]=this.lambda(e);},this);},getCurrentLanguage:function(){return a.language;
},addLanguage:function(c){a.languages[c]=a.languages[c]||{};return this;},cascade:function(e){var c=(a.languages[e]||{}).cascades||[];c.combine(a.cascades);
c.erase(e).push(e);var d=c.map(function(f){return a.languages[f];},this);return $merge.apply(this,d);},lambda:function(c){(c||{}).get=function(e,d){return $lambda(c[e]).apply(this,$splat(d));
};return c;},get:function(e,d,c){if(b&&b[e]){return(d?b[e].get(d,c):b[e]);}},set:function(d,e,c){this.addLanguage(d);langData=a.languages[d];if(!langData[e]){langData[e]={};
}$extend(langData[e],c);if(d==this.getCurrentLanguage()){this.load();this.fireEvent("langChange",d);}return this;},list:function(){return Hash.getKeys(a.languages);
}});})();Class.refactor=function(b,a){$each(a,function(e,d){var c=b.prototype[d];if(c&&(c=c._origin)&&typeof e=="function"){b.implement(d,function(){var f=this.previous;
this.previous=c;var g=e.apply(this,arguments);this.previous=f;return g;});}else{b.implement(d,e);}});return b;};Array.implement({min:function(){return Math.min.apply(null,this);
},max:function(){return Math.max.apply(null,this);},average:function(){return this.length?this.sum()/this.length:0;},sum:function(){var a=0,b=this.length;
if(b){do{a+=this[--b];}while(b);}return a;},unique:function(){return[].combine(this);},shuffle:function(){for(var b=this.length;b&&--b;){var a=this[b],c=Math.floor(Math.random()*(b+1));
this[b]=this[c];this[c]=a;}return this;}});(function(){var i=this.Date;if(!i.now){i.now=$time;}i.Methods={ms:"Milliseconds",year:"FullYear",min:"Minutes",mo:"Month",sec:"Seconds",hr:"Hours"};
["Date","Day","FullYear","Hours","Milliseconds","Minutes","Month","Seconds","Time","TimezoneOffset","Week","Timezone","GMTOffset","DayOfYear","LastMonth","LastDayOfMonth","UTCDate","UTCDay","UTCFullYear","AMPM","Ordinal","UTCHours","UTCMilliseconds","UTCMinutes","UTCMonth","UTCSeconds"].each(function(p){i.Methods[p.toLowerCase()]=p;
});var d=function(q,p){return new Array(p-String(q).length+1).join("0")+q;};i.implement({set:function(t,r){switch($type(t)){case"object":for(var s in t){this.set(s,t[s]);
}break;case"string":t=t.toLowerCase();var q=i.Methods;if(q[t]){this["set"+q[t]](r);}}return this;},get:function(q){q=q.toLowerCase();var p=i.Methods;if(p[q]){return this["get"+p[q]]();
}return null;},clone:function(){return new i(this.get("time"));},increment:function(p,r){p=p||"day";r=$pick(r,1);switch(p){case"year":return this.increment("month",r*12);
case"month":var q=this.get("date");this.set("date",1).set("mo",this.get("mo")+r);return this.set("date",q.min(this.get("lastdayofmonth")));case"week":return this.increment("day",r*7);
case"day":return this.set("date",this.get("date")+r);}if(!i.units[p]){throw new Error(p+" is not a supported interval");}return this.set("time",this.get("time")+r*i.units[p]());
},decrement:function(p,q){return this.increment(p,-1*$pick(q,1));},isLeapYear:function(){return i.isLeapYear(this.get("year"));},clearTime:function(){return this.set({hr:0,min:0,sec:0,ms:0});
},diff:function(q,p){if($type(q)=="string"){q=i.parse(q);}return((q-this)/i.units[p||"day"](3,3)).toInt();},getLastDayOfMonth:function(){return i.daysInMonth(this.get("mo"),this.get("year"));
},getDayOfYear:function(){return(i.UTC(this.get("year"),this.get("mo"),this.get("date")+1)-i.UTC(this.get("year"),0,1))/i.units.day();},getWeek:function(){return(this.get("dayofyear")/7).ceil();
},getOrdinal:function(p){return i.getMsg("ordinal",p||this.get("date"));},getTimezone:function(){return this.toString().replace(/^.*? ([A-Z]{3}).[0-9]{4}.*$/,"$1").replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,"$1$2$3");
},getGMTOffset:function(){var p=this.get("timezoneOffset");return((p>0)?"-":"+")+d((p.abs()/60).floor(),2)+d(p%60,2);},setAMPM:function(p){p=p.toUpperCase();
var q=this.get("hr");if(q>11&&p=="AM"){return this.decrement("hour",12);}else{if(q<12&&p=="PM"){return this.increment("hour",12);}}return this;},getAMPM:function(){return(this.get("hr")<12)?"AM":"PM";
},parse:function(p){this.set("time",i.parse(p));return this;},isValid:function(p){return !!(p||this).valueOf();},format:function(p){if(!this.isValid()){return"invalid date";
}p=p||"%x %X";p=k[p.toLowerCase()]||p;var q=this;return p.replace(/%([a-z%])/gi,function(s,r){switch(r){case"a":return i.getMsg("days")[q.get("day")].substr(0,3);
case"A":return i.getMsg("days")[q.get("day")];case"b":return i.getMsg("months")[q.get("month")].substr(0,3);case"B":return i.getMsg("months")[q.get("month")];
case"c":return q.toString();case"d":return d(q.get("date"),2);case"H":return d(q.get("hr"),2);case"I":return((q.get("hr")%12)||12);case"j":return d(q.get("dayofyear"),3);
case"m":return d((q.get("mo")+1),2);case"M":return d(q.get("min"),2);case"o":return q.get("ordinal");case"p":return i.getMsg(q.get("ampm"));case"S":return d(q.get("seconds"),2);
case"U":return d(q.get("week"),2);case"w":return q.get("day");case"x":return q.format(i.getMsg("shortDate"));case"X":return q.format(i.getMsg("shortTime"));
case"y":return q.get("year").toString().substr(2);case"Y":return q.get("year");case"T":return q.get("GMTOffset");case"Z":return q.get("Timezone");}return r;
});},toISOString:function(){return this.format("iso8601");}});i.alias("toISOString","toJSON");i.alias("diff","compare");i.alias("format","strftime");var k={db:"%Y-%m-%d %H:%M:%S",compact:"%Y%m%dT%H%M%S",iso8601:"%Y-%m-%dT%H:%M:%S%T",rfc822:"%a, %d %b %Y %H:%M:%S %Z","short":"%d %b %H:%M","long":"%B %d, %Y %H:%M"};
var g=[];var e=i.parse;var n=function(s,u,r){var q=-1;var t=i.getMsg(s+"s");switch($type(u)){case"object":q=t[u.get(s)];break;case"number":q=t[month-1];
if(!q){throw new Error("Invalid "+s+" index: "+index);}break;case"string":var p=t.filter(function(v){return this.test(v);},new RegExp("^"+u,"i"));if(!p.length){throw new Error("Invalid "+s+" string");
}if(p.length>1){throw new Error("Ambiguous "+s);}q=p[0];}return(r)?t.indexOf(q):q;};i.extend({getMsg:function(q,p){return MooTools.lang.get("Date",q,p);
},units:{ms:$lambda(1),second:$lambda(1000),minute:$lambda(60000),hour:$lambda(3600000),day:$lambda(86400000),week:$lambda(608400000),month:function(q,p){var r=new i;
return i.daysInMonth($pick(q,r.get("mo")),$pick(p,r.get("year")))*86400000;},year:function(p){p=p||new i().get("year");return i.isLeapYear(p)?31622400000:31536000000;
}},daysInMonth:function(q,p){return[31,i.isLeapYear(p)?29:28,31,30,31,30,31,31,30,31,30,31][q];},isLeapYear:function(p){return((p%4===0)&&(p%100!==0))||(p%400===0);
},parse:function(r){var q=$type(r);if(q=="number"){return new i(r);}if(q!="string"){return r;}r=r.clean();if(!r.length){return null;}var p;g.some(function(t){var s=t.re.exec(r);
return(s)?(p=t.handler(s)):false;});return p||new i(e(r));},parseDay:function(p,q){return n("day",p,q);},parseMonth:function(q,p){return n("month",q,p);
},parseUTC:function(q){var p=new i(q);var r=i.UTC(p.get("year"),p.get("mo"),p.get("date"),p.get("hr"),p.get("min"),p.get("sec"));return new i(r);},orderIndex:function(p){return i.getMsg("dateOrder").indexOf(p)+1;
},defineFormat:function(p,q){k[p]=q;},defineFormats:function(p){for(var q in p){i.defineFormat(q,p[q]);}},parsePatterns:g,defineParser:function(p){g.push((p.re&&p.handler)?p:l(p));
},defineParsers:function(){Array.flatten(arguments).each(i.defineParser);},define2DigitYearStart:function(p){h=p%100;m=p-h;}});var m=1900;var h=70;var j=function(p){return new RegExp("(?:"+i.getMsg(p).map(function(q){return q.substr(0,3);
}).join("|")+")[a-z]*");};var a=function(p){switch(p){case"x":return((i.orderIndex("month")==1)?"%m[.-/]%d":"%d[.-/]%m")+"([.-/]%y)?";case"X":return"%H([.:]%M)?([.:]%S([.:]%s)?)? ?%p? ?%T?";
}return null;};var o={d:/[0-2]?[0-9]|3[01]/,H:/[01]?[0-9]|2[0-3]/,I:/0?[1-9]|1[0-2]/,M:/[0-5]?\d/,s:/\d+/,o:/[a-z]*/,p:/[ap]\.?m\.?/,y:/\d{2}|\d{4}/,Y:/\d{4}/,T:/Z|[+-]\d{2}(?::?\d{2})?/};
o.m=o.I;o.S=o.M;var c;var b=function(p){c=p;o.a=o.A=j("days");o.b=o.B=j("months");g.each(function(r,q){if(r.format){g[q]=l(r.format);}});};var l=function(r){if(!c){return{format:r};
}var p=[];var q=(r.source||r).replace(/%([a-z])/gi,function(t,s){return a(s)||t;}).replace(/\((?!\?)/g,"(?:").replace(/ (?!\?|\*)/g,",? ").replace(/%([a-z%])/gi,function(t,s){var u=o[s];
if(!u){return s;}p.push(s);return"("+u.source+")";}).replace(/\[a-z\]/gi,"[a-z\\u00c0-\\uffff]");return{format:r,re:new RegExp("^"+q+"$","i"),handler:function(u){u=u.slice(1).associate(p);
var s=new i().clearTime();if("d" in u){f.call(s,"d",1);}if("m" in u||"b" in u||"B" in u){f.call(s,"m",1);}for(var t in u){f.call(s,t,u[t]);}return s;}};
};var f=function(p,q){if(!q){return this;}switch(p){case"a":case"A":return this.set("day",i.parseDay(q,true));case"b":case"B":return this.set("mo",i.parseMonth(q,true));
case"d":return this.set("date",q);case"H":case"I":return this.set("hr",q);case"m":return this.set("mo",q-1);case"M":return this.set("min",q);case"p":return this.set("ampm",q.replace(/\./g,""));
case"S":return this.set("sec",q);case"s":return this.set("ms",("0."+q)*1000);case"w":return this.set("day",q);case"Y":return this.set("year",q);case"y":q=+q;
if(q<100){q+=m+(q<h?100:0);}return this.set("year",q);case"T":if(q=="Z"){q="+00";}var r=q.match(/([+-])(\d{2}):?(\d{2})?/);r=(r[1]+"1")*(r[2]*60+(+r[3]||0))+this.getTimezoneOffset();
return this.set("time",this-r*60000);}return this;};i.defineParsers("%Y([-./]%m([-./]%d((T| )%X)?)?)?","%Y%m%d(T%H(%M%S?)?)?","%x( %X)?","%d%o( %b( %Y)?)?( %X)?","%b( %d%o)?( %Y)?( %X)?","%Y %b( %d%o( %X)?)?","%o %b %d %X %T %Y");
MooTools.lang.addEvent("langChange",function(p){if(MooTools.lang.get("Date")){b(p);}}).fireEvent("langChange",MooTools.lang.getCurrentLanguage());})();
Date.implement({timeDiffInWords:function(a){return Date.distanceOfTimeInWords(this,a||new Date);},timeDiff:function(g,b){if(g==null){g=new Date;}var f=((g-this)/1000).toInt();
if(!f){return"0s";}var a={s:60,m:60,h:24,d:365,y:0};var e,d=[];for(var c in a){if(!f){break;}if((e=a[c])){d.unshift((f%e)+c);f=(f/e).toInt();}else{d.unshift(f+c);
}}return d.join(b||":");}});Date.alias("timeDiffInWords","timeAgoInWords");Date.extend({distanceOfTimeInWords:function(b,a){return Date.getTimePhrase(((a-b)/1000).toInt());
},getTimePhrase:function(f){var d=(f<0)?"Until":"Ago";if(f<0){f*=-1;}var b={minute:60,hour:60,day:24,week:7,month:52/12,year:12,eon:Infinity};var e="lessThanMinute";
for(var c in b){var a=b[c];if(f<1.5*a){if(f>0.75*a){e=c;}break;}f/=a;e=c+"s";}return Date.getMsg(e+d).substitute({delta:f.round()});}});Date.defineParsers({re:/^(?:tod|tom|yes)/i,handler:function(a){var b=new Date().clearTime();
switch(a[0]){case"tom":return b.increment();case"yes":return b.decrement();default:return b;}}},{re:/^(next|last) ([a-z]+)$/i,handler:function(e){var f=new Date().clearTime();
var b=f.getDay();var c=Date.parseDay(e[2],true);var a=c-b;if(c<=b){a+=7;}if(e[1]=="last"){a-=7;}return f.set("date",f.getDate()+a);}});String.implement({parseQueryString:function(){var b=this.split(/[&;]/),a={};
if(b.length){b.each(function(g){var c=g.indexOf("="),d=c<0?[""]:g.substr(0,c).match(/[^\]\[]+/g),e=decodeURIComponent(g.substr(c+1)),f=a;d.each(function(j,h){var k=f[j];
if(h<d.length-1){f=f[j]=k||{};}else{if($type(k)=="array"){k.push(e);}else{f[j]=$defined(k)?[k,e]:e;}}});});}return a;},cleanQueryString:function(a){return this.split("&").filter(function(e){var b=e.indexOf("="),c=b<0?"":e.substr(0,b),d=e.substr(b+1);
return a?a.run([c,d]):$chk(d);}).join("&");}});var URI=new Class({Implements:Options,options:{},regex:/^(?:(\w+):)?(?:\/\/(?:(?:([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)?(\.\.?$|(?:[^?#\/]*\/)*)([^?#]*)(?:\?([^#]*))?(?:#(.*))?/,parts:["scheme","user","password","host","port","directory","file","query","fragment"],schemes:{http:80,https:443,ftp:21,rtsp:554,mms:1755,file:0},initialize:function(b,a){this.setOptions(a);
var c=this.options.base||URI.base;if(!b){b=c;}if(b&&b.parsed){this.parsed=$unlink(b.parsed);}else{this.set("value",b.href||b.toString(),c?new URI(c):false);
}},parse:function(c,b){var a=c.match(this.regex);if(!a){return false;}a.shift();return this.merge(a.associate(this.parts),b);},merge:function(b,a){if((!b||!b.scheme)&&(!a||!a.scheme)){return false;
}if(a){this.parts.every(function(c){if(b[c]){return false;}b[c]=a[c]||"";return true;});}b.port=b.port||this.schemes[b.scheme.toLowerCase()];b.directory=b.directory?this.parseDirectory(b.directory,a?a.directory:""):"/";
return b;},parseDirectory:function(b,c){b=(b.substr(0,1)=="/"?"":(c||"/"))+b;if(!b.test(URI.regs.directoryDot)){return b;}var a=[];b.replace(URI.regs.endSlash,"").split("/").each(function(d){if(d==".."&&a.length>0){a.pop();
}else{if(d!="."){a.push(d);}}});return a.join("/")+"/";},combine:function(a){return a.value||a.scheme+"://"+(a.user?a.user+(a.password?":"+a.password:"")+"@":"")+(a.host||"")+(a.port&&a.port!=this.schemes[a.scheme]?":"+a.port:"")+(a.directory||"/")+(a.file||"")+(a.query?"?"+a.query:"")+(a.fragment?"#"+a.fragment:"");
},set:function(b,d,c){if(b=="value"){var a=d.match(URI.regs.scheme);if(a){a=a[1];}if(a&&!$defined(this.schemes[a.toLowerCase()])){this.parsed={scheme:a,value:d};
}else{this.parsed=this.parse(d,(c||this).parsed)||(a?{scheme:a,value:d}:{value:d});}}else{if(b=="data"){this.setData(d);}else{this.parsed[b]=d;}}return this;
},get:function(a,b){switch(a){case"value":return this.combine(this.parsed,b?b.parsed:false);case"data":return this.getData();}return this.parsed[a]||"";
},go:function(){document.location.href=this.toString();},toURI:function(){return this;},getData:function(c,b){var a=this.get(b||"query");if(!$chk(a)){return c?null:{};
}var d=a.parseQueryString();return c?d[c]:d;},setData:function(a,c,b){if(typeof a=="string"){data=this.getData();data[arguments[0]]=arguments[1];a=data;
}else{if(c){a=$merge(this.getData(),a);}}return this.set(b||"query",Hash.toQueryString(a));},clearData:function(a){return this.set(a||"query","");}});URI.prototype.toString=URI.prototype.valueOf=function(){return this.get("value");
};URI.regs={endSlash:/\/$/,scheme:/^(\w+):/,directoryDot:/\.\/|\.$/};URI.base=new URI(document.getElements("base[href]",true).getLast(),{base:document.location});
String.implement({toURI:function(a){return new URI(this,a);}});URI=Class.refactor(URI,{combine:function(f,e){if(!e||f.scheme!=e.scheme||f.host!=e.host||f.port!=e.port){return this.previous.apply(this,arguments);
}var a=f.file+(f.query?"?"+f.query:"")+(f.fragment?"#"+f.fragment:"");if(!e.directory){return(f.directory||(f.file?"":"./"))+a;}var d=e.directory.split("/"),c=f.directory.split("/"),g="",h;
var b=0;for(h=0;h<d.length&&h<c.length&&d[h]==c[h];h++){}for(b=0;b<d.length-h-1;b++){g+="../";}for(b=h;b<c.length-1;b++){g+=c[b]+"/";}return(g||(f.file?"":"./"))+a;
},toAbsolute:function(a){a=new URI(a);if(a){a.set("directory","").set("file","");}return this.toRelative(a);},toRelative:function(a){return this.get("value",new URI(a));
}});Element.implement({measure:function(e){var g=function(h){return !!(!h||h.offsetHeight||h.offsetWidth);};if(g(this)){return e.apply(this);}var d=this.getParent(),f=[],b=[];
while(!g(d)&&d!=document.body){b.push(d.expose());d=d.getParent();}var c=this.expose();var a=e.apply(this);c();b.each(function(h){h();});return a;},expose:function(){if(this.getStyle("display")!="none"){return $empty;
}var a=this.style.cssText;this.setStyles({display:"block",position:"absolute",visibility:"hidden"});return function(){this.style.cssText=a;}.bind(this);
},getDimensions:function(a){a=$merge({computeSize:false},a);var f={};var d=function(g,e){return(e.computeSize)?g.getComputedSize(e):g.getSize();};var b=this.getParent("body");
if(b&&this.getStyle("display")=="none"){f=this.measure(function(){return d(this,a);});}else{if(b){try{f=d(this,a);}catch(c){}}else{f={x:0,y:0};}}return $chk(f.x)?$extend(f,{width:f.x,height:f.y}):$extend(f,{x:f.width,y:f.height});
},getComputedSize:function(a){a=$merge({styles:["padding","border"],plains:{height:["top","bottom"],width:["left","right"]},mode:"both"},a);var c={width:0,height:0};
switch(a.mode){case"vertical":delete c.width;delete a.plains.width;break;case"horizontal":delete c.height;delete a.plains.height;break;}var b=[];$each(a.plains,function(g,f){g.each(function(h){a.styles.each(function(i){b.push((i=="border")?i+"-"+h+"-width":i+"-"+h);
});});});var e={};b.each(function(f){e[f]=this.getComputedStyle(f);},this);var d=[];$each(a.plains,function(g,f){var h=f.capitalize();c["total"+h]=c["computed"+h]=0;
g.each(function(i){c["computed"+i.capitalize()]=0;b.each(function(k,j){if(k.test(i)){e[k]=e[k].toInt()||0;c["total"+h]=c["total"+h]+e[k];c["computed"+i.capitalize()]=c["computed"+i.capitalize()]+e[k];
}if(k.test(i)&&f!=k&&(k.test("border")||k.test("padding"))&&!d.contains(k)){d.push(k);c["computed"+h]=c["computed"+h]-e[k];}});});});["Width","Height"].each(function(g){var f=g.toLowerCase();
if(!$chk(c[f])){return;}c[f]=c[f]+this["offset"+g]+c["computed"+g];c["total"+g]=c[f]+c["total"+g];delete c["computed"+g];},this);return $extend(e,c);}});
Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(b,a){this.elements=this.subject=$$(b);this.parent(a);},compute:function(g,h,j){var c={};for(var d in g){var a=g[d],e=h[d],f=c[d]={};
for(var b in a){f[b]=this.parent(a[b],e[b],j);}}return c;},set:function(b){for(var c in b){var a=b[c];for(var d in a){this.render(this.elements[c],d,a[d],this.options.unit);
}}return this;},start:function(c){if(!this.check(c)){return this;}var h={},j={};for(var d in c){var f=c[d],a=h[d]={},g=j[d]={};for(var b in f){var e=this.prepare(this.elements[d],b,f[b]);
a[b]=e.from;g[b]=e.to;}}return this.parent(h,j);}});Fx.Accordion=new Class({Extends:Fx.Elements,options:{display:0,show:false,height:true,width:false,opacity:true,alwaysHide:false,trigger:"click",initialDisplayFx:true,returnHeightToAuto:true},initialize:function(){var c=Array.link(arguments,{container:Element.type,options:Object.type,togglers:$defined,elements:$defined});
this.parent(c.elements,c.options);this.togglers=$$(c.togglers);this.previous=-1;this.internalChain=new Chain();if(this.options.alwaysHide){this.options.wait=true;
}if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show;}if(this.options.start){this.options.display=false;this.options.show=false;
}this.effects={};if(this.options.opacity){this.effects.opacity="fullOpacity";}if(this.options.width){this.effects.width=this.options.fixedWidth?"fullWidth":"offsetWidth";
}if(this.options.height){this.effects.height=this.options.fixedHeight?"fullHeight":"scrollHeight";}for(var b=0,a=this.togglers.length;b<a;b++){this.addSection(this.togglers[b],this.elements[b]);
}this.elements.each(function(e,d){if(this.options.show===d){this.fireEvent("active",[this.togglers[d],e]);}else{for(var f in this.effects){e.setStyle(f,0);
}}},this);if($chk(this.options.display)||this.options.initialDisplayFx===false){this.display(this.options.display,this.options.initialDisplayFx);}if(this.options.fixedHeight!==false){this.options.returnHeightToAuto=false;
}this.addEvent("complete",this.internalChain.callChain.bind(this.internalChain));},addSection:function(e,c){e=document.id(e);c=document.id(c);var f=this.togglers.contains(e);
this.togglers.include(e);this.elements.include(c);var a=this.togglers.indexOf(e);var b=this.display.bind(this,a);e.store("accordion:display",b);e.addEvent(this.options.trigger,b);
if(this.options.height){c.setStyles({"padding-top":0,"border-top":"none","padding-bottom":0,"border-bottom":"none"});}if(this.options.width){c.setStyles({"padding-left":0,"border-left":"none","padding-right":0,"border-right":"none"});
}c.fullOpacity=1;if(this.options.fixedWidth){c.fullWidth=this.options.fixedWidth;}if(this.options.fixedHeight){c.fullHeight=this.options.fixedHeight;}c.setStyle("overflow","hidden");
if(!f){for(var d in this.effects){c.setStyle(d,0);}}return this;},detach:function(){this.togglers.each(function(a){a.removeEvent(this.options.trigger,a.retrieve("accordion:display"));
},this);},display:function(a,b){if(!this.check(a,b)){return this;}b=$pick(b,true);if(this.options.returnHeightToAuto){var d=this.elements[this.previous];
if(d&&!this.selfHidden){for(var c in this.effects){d.setStyle(c,d[this.effects[c]]);}}}a=($type(a)=="element")?this.elements.indexOf(a):a;if((this.timer&&this.options.wait)||(a===this.previous&&!this.options.alwaysHide)){return this;
}this.previous=a;var e={};this.elements.each(function(h,g){e[g]={};var f;if(g!=a){f=true;}else{if(this.options.alwaysHide&&((h.offsetHeight>0&&this.options.height)||h.offsetWidth>0&&this.options.width)){f=true;
this.selfHidden=true;}}this.fireEvent(f?"background":"active",[this.togglers[g],h]);for(var j in this.effects){e[g][j]=f?0:h[this.effects[j]];}},this);
this.internalChain.chain(function(){if(this.options.returnHeightToAuto&&!this.selfHidden){var f=this.elements[a];if(f){f.setStyle("height","auto");}}}.bind(this));
return b?this.start(e):this.set(e);}});var Accordion=new Class({Extends:Fx.Accordion,initialize:function(){this.parent.apply(this,arguments);var a=Array.link(arguments,{container:Element.type});
this.container=a.container;},addSection:function(c,b,e){c=document.id(c);b=document.id(b);var d=this.togglers.contains(c);var a=this.togglers.length;if(a&&(!d||e)){e=$pick(e,a-1);
c.inject(this.togglers[e],"before");b.inject(c,"after");}else{if(this.container&&!d){c.inject(this.container);b.inject(this.container);}}return this.parent.apply(this,arguments);
}});Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(b,a){this.element=this.subject=document.id(b);this.parent(a);
var d=this.cancel.bind(this,false);if($type(this.element)!="element"){this.element=document.id(this.element.getDocument().body);}var c=this.element;if(this.options.wheelStops){this.addEvent("start",function(){c.addEvent("mousewheel",d);
},true);this.addEvent("complete",function(){c.removeEvent("mousewheel",d);},true);}},set:function(){var a=Array.flatten(arguments);if(Browser.Engine.gecko){a=[Math.round(a[0]),Math.round(a[1])];
}this.element.scrollTo(a[0],a[1]);},compute:function(c,b,a){return[0,1].map(function(d){return Fx.compute(c[d],b[d],a);});},start:function(c,g){if(!this.check(c,g)){return this;
}var e=this.element.getScrollSize(),b=this.element.getScroll(),d={x:c,y:g};for(var f in d){var a=e[f];if($chk(d[f])){d[f]=($type(d[f])=="number")?d[f]:a;
}else{d[f]=b[f];}d[f]+=this.options.offset[f];}return this.parent([b.x,b.y],[d.x,d.y]);},toTop:function(){return this.start(false,0);},toLeft:function(){return this.start(0,false);
},toRight:function(){return this.start("right",false);},toBottom:function(){return this.start(false,"bottom");},toElement:function(b){var a=document.id(b).getPosition(this.element);
return this.start(a.x,a.y);},scrollIntoView:function(c,e,d){e=e?$splat(e):["x","y"];var h={};c=document.id(c);var f=c.getPosition(this.element);var i=c.getSize();
var g=this.element.getScroll();var a=this.element.getSize();var b={x:f.x+i.x,y:f.y+i.y};["x","y"].each(function(j){if(e.contains(j)){if(b[j]>g[j]+a[j]){h[j]=b[j]-a[j];
}if(f[j]<g[j]){h[j]=f[j];}}if(h[j]==null){h[j]=g[j];}if(d&&d[j]){h[j]=h[j]+d[j];}},this);if(h.x!=g.x||h.y!=g.y){this.start(h.x,h.y);}return this;},scrollToCenter:function(c,e,d){e=e?$splat(e):["x","y"];
c=$(c);var h={},f=c.getPosition(this.element),i=c.getSize(),g=this.element.getScroll(),a=this.element.getSize(),b={x:f.x+i.x,y:f.y+i.y};["x","y"].each(function(j){if(e.contains(j)){h[j]=f[j]-(a[j]-i[j])/2;
}if(h[j]==null){h[j]=g[j];}if(d&&d[j]){h[j]=h[j]+d[j];}},this);if(h.x!=g.x||h.y!=g.y){this.start(h.x,h.y);}return this;}});MooTools.lang.set("en-US","Date",{months:["January","February","March","April","May","June","July","August","September","October","November","December"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dateOrder:["month","date","year"],shortDate:"%m/%d/%Y",shortTime:"%I:%M%p",AM:"AM",PM:"PM",ordinal:function(a){return(a>3&&a<21)?"th":["th","st","nd","rd","th"][Math.min(a%10,4)];
},lessThanMinuteAgo:"less than a minute ago",minuteAgo:"about a minute ago",minutesAgo:"{delta} minutes ago",hourAgo:"about an hour ago",hoursAgo:"about {delta} hours ago",dayAgo:"1 day ago",daysAgo:"{delta} days ago",weekAgo:"1 week ago",weeksAgo:"{delta} weeks ago",monthAgo:"1 month ago",monthsAgo:"{delta} months ago",yearAgo:"1 year ago",yearsAgo:"{delta} years ago",lessThanMinuteUntil:"less than a minute from now",minuteUntil:"about a minute from now",minutesUntil:"{delta} minutes from now",hourUntil:"about an hour from now",hoursUntil:"about {delta} hours from now",dayUntil:"1 day from now",daysUntil:"{delta} days from now",weekUntil:"1 week from now",weeksUntil:"{delta} weeks from now",monthUntil:"1 month from now",monthsUntil:"{delta} months from now",yearUntil:"1 year from now",yearsUntil:"{delta} years from now"});


////////////////////////////////////////////////////////////////////////////////////////////

// FILE: mootools.accordion-fix.js

Accordion.prototype.rerender = function() {
  
    /**
     * Get currently displayed element
     */
     
    index = this.previous;
    el    = this.elements[index];
    
    /**
     * Collect elements display information
     */
     
    var obj = {};
        obj[index] = {};
        
    for (var fx in this.effects) obj[index][fx] = el[this.effects[fx]];
    
    /**
     * Rerender the element in accordion
     */
     
    return this.start(obj);
}

////////////////////////////////////////////////////////////////////////////////////////////

/*MooTools, My Object Oriented Javascript Tools. Copyright (c) 2006-2007 Valerio Proietti, <http://mad4milk.net>, MIT Style License.||Clientcide Copyright (c) 2006-2008, http://www.clientcide.com/wiki/cnet-libraries#license*/

$extend(Browser,{getHost:function(url){url=$pick(url,window.location.href);var host=url;if(url.test('http://')){url=url.substring(url.indexOf('http://')+7,url.length);if(url.test(':'))url=url.substring(0,url.indexOf(":"));if(url.test('/'))return url.substring(0,url.indexOf('/'));return url}return false},getQueryStringValue:function(key,url){try{return Browser.getQueryStringValues(url)[key]}catch(e){return null}},getQueryStringValues:function(url){var qs=$pick(url,window.location.search,'').split('?')[1];if(!$chk(qs))return{};if(qs.test('#'))qs=qs.substring(0,qs.indexOf('#'));try{if(qs)return qs.parseQuery()}catch(e){return null}return{}},getPort:function(url){url=$pick(url,window.location.href);var re=new RegExp(':([0-9]{4})');var m=re.exec(url);if(m==null)return false;else{var port=false;m.each(function(val){if($chk(parseInt(val)))port=val})}return port},redraw:function(element){var n=document.createTextNode(' ');this.adopt(n);(function(){n.dispose()}).delay(1);return this}});window.addEvent('domready',function(){var count=0;function setQs(){function retry(){count++;if(count<20)setQs.delay(50)};try{if(!Browser.getQueryStringValues())retry();else Browser.qs=Browser.getQueryStringValues()}catch(e){retry()}}setQs()});Hash.implement({getFromPath:function(notation){var source=this.getClean();notation.replace(/\[([^\]]+)\]|\.([^.[]+)|[^[.]+/g,function(match){if(!source)return;var prop=arguments[2]||arguments[1]||arguments[0];source=(prop in source)?source[prop]:null;return match});return source},cleanValues:function(method){method=method||$defined;this.each(function(v,k){if(!method(v))this.erase(k)},this);return this},run:function(){var args=$arguments;this.each(function(v,k){if($type(v)=="function")v.run(args)})}});String.implement({stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'')},parseQuery:function(encodeKeys,encodeValues){encodeKeys=$pick(encodeKeys,true);encodeValues=$pick(encodeValues,true);var vars=this.split(/[&;]/);var rs={};if(vars.length)vars.each(function(val){var keys=val.split('=');if(keys.length&&keys.length==2){rs[(encodeKeys)?encodeURIComponent(keys[0]):keys[0]]=(encodeValues)?encodeURIComponent(keys[1]):keys[1]}});return rs},tidy:function(){var txt=this.toString();$each({"[\xa0\u2002\u2003\u2009]":" ","\xb7":"*","[\u2018\u2019]":"'","[\u201c\u201d]":'"',"\u2026":"...","\u2013":"-","\u2014":"--","\uFFFD":"&raquo;"},function(value,key){txt=txt.replace(new RegExp(key,'g'),value)});return txt},cleanQueryString:function(method){return this.split("&").filter(method||function(set){return $chk(set.split("=")[1])}).join("&")},findAllEmails:function(){return this.match(new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?","gi"))||[]}});

////////////////////////////////////////////////////////////////////////////////////////////

/**
 * HistoryManager
 * 
 * Observes back/forward button usage and saves states
 * for registered modules into the hash. This allows to
 * bookmark specific states for an application.
 * 
 * @version   1.0rc2
 * 
 * @see     Events, Options
 * 
 * @license   MIT License
 * @author    Harald Kirschner <mail [at] digitarald.de>
 * @copyright 2007 Author
 *
 * @modify    2008.11.29 by Ruslan Suhar (xplay@yandex.ru)
 */
 
 /*
 
 EDITED BY NATHAN: window.ie updated to Browser.Engine.trident, and iframe styles fixed.
 
 */
  
var HistoryManagerX = new Class({
  
  Implements: [Events, Options],

  /**
   * Default options - Can be overridden with setOptions
   * 
   * observeDelay: Duration for checking the state, default 100ms
   * stateSeparator: Seperator for module-state join, default ';'
   * iframeSrc: Scr for IE6/7 iframe, must exist on server!
   * onStart: Fires on start
   * onRegister: Fires on register
   * onUnregister: Fires on unregister
   * onUpdate: Fires when state changes from ...
   * onStateChange: ... module changes
   * onObserverChange: ... history change
   */
  options: {
    /*onStart: $empty,
    onRegister: $empty,
    onUnregister: $empty,
    onStart: $empty,
    onUpdate: $empty,
    onStateChange: $empty,
    onObserverChange: $empty,*/
    observeDelay: 100,
    stateSeparator: ';',
    iframeSrc: 'blank.html'
  },

  /**
   * Default options for register
   * 
   * defaults: Default values array, initially empty.
   * regexpParams: When regexp is a String, this is the second argument for new RegExp.
   * skipDefaultMatch: default true; When true onGenerate is not called when current values are similar to the default values.
   */
  dataOptions: {
    skipDefaultMatch: true,
    defaults: [],
    regexpParams: ''
  },

  /**
   * Constructur - Class.initialize
   * 
   * Options:
   *  - observeDelay: duration in ms, default 100 - BackBuddy observe the hash for changes periodical
   *  - stateSeparator: char, default ';' - Separator for multiple module-states in the hash
   *  - iframeSrc: string, default 'blank.html' - File for the iframe (IE6/7), must exist on the server!
   *  - Events: onStart, onRegister, onStart, onUpdate, onStateChange, onObserverChange
   * 
   * @return  this
   * 
   * @param {Object} options
   */
  initialize: function(options) {
    /**
     *
     * Problem: double click of back button on first page in IE.
     *
     * A fix for IE: a blank # and no # are different in IE. Original pages have
     * no #, but backpage to original = blank #. Make original reload to blank # so that backpage
     * really is to same page.
     *
     */
    if (Browser.Engine.trident) {
      if (window.location.hash == '') {
        window.location.replace('#');
      }
    }

    this.setOptions(options || {});
    if (this.modules) return this;
    this.modules = $H({});
    this.count = history.length;
    this.states = [];
    this.states[this.count] = this.getHash();
    this.state = null;
    return this;
  },

  /**
   * Start - Check hash and start observer
   * 
   * Call start after registering ALL modules. This start the observer,
   * reads the state from the hash and calls onMatch for effected modules.
   * 
   * @return  this
   * 
   */
  start: function() {
    this.observe.periodical(this.options.observeDelay, this);
    this.started = true;
    this.observe();
    this.update();
    this.fireEvent('onStart', [this.state]);
    return this;
  },

  /**
   * Registers a module
   * 
   * @return  {Object} Object with shortcuts for setValues, setValue, generate and unregister
   * 
   * @param {String} Module key
   * @param {RegExp}/{String} Regular expression that matches the string updated from onGenerate
   * @param {Function} Will be called when the regexp matches, with the new values as argument.
   * @param {Function} Should return the string for the state string, values are first argument
   * @param {Array} default values, the input values given to onMatch and onGenerate will be complemented with these
   * @param {Object} (optional) options
   */
  register: function(key, defaults, onMatch, onGenerate, regexp, options) {
    if (!this.modules) this.initialize();
    var data = $merge(this.dataOptions, options || {}, {
      defaults: defaults,
      onMatch: onMatch,
      onGenerate: onGenerate,
      regexp: regexp
    });
    data.regexp = data.regexp || key + '-([\\w_-]*)';
    if (typeof data.regexp == 'string') data.regexp = new RegExp(data.regexp, data.regexpParams);
    data.onGenerate = data.onGenerate || function(values) { return key + '-' + values[0]; };

    data.values = data.defaults.slice();
    this.modules.set(key, data);
    this.fireEvent('onUnregister', [key, data]);
    return {
      setValues: function(values) {
        return this.setValues(key, values);
      }.bind(this),
      setValue: function(index, value) {
        return this.setValue(key, index, value);
      }.bind(this),
      generate: function(values) {
        return this.generate(key, values);
      }.bind(this),
      unregister: function() {
        return this.unregister(key);
      }.bind(this)
    };
  },

  /**
   * unregister - Removes an module from the
   * 
   * @param {String} Module key
   */
  unregister: function(key) {
    this.fireEvent('onRegister', [key]);
    this.modules.remove(key);
  },

  /**
   * setValues - Set all values new, updates new state
   * 
   * @param {String} Module key
   * @param {Object} Complete values
   */
  setValues: function(key, values) {
    var data = this.modules.get(key);
    if (!data || data.values.isSimilar(values)) return this;
    data.values = values;
    this.update();
    return this;
  },

  /**
   * setValue - Set one value, updates new state
   * 
   * @param {String} Module key
   * @param {Number} Value index
   * @param {Object} Value
   */
  setValue: function(key, index, value) {
    var data = this.modules.get(key);
    if (!data || data.values[index] == value) return this;
    data.values[index] = value;
    this.update();
    return this;
  },

  /**
   * generate - Generates a hash from the given
   * 
   * @param {String} Module key
   * @param {Number} Value index
   * @param {Object} Value
   */
  generate: function(key, values) {
    var data = this.modules.get(key);
    var current = data.values.slice();
    data.values = values;
    var state = this.generateState();
    data.values = current;
    return '#' + state;
  },

  observe: function() {
    if (this.timeout) return;
    var state = this.getState();
    if (this.state == state) return;
    if ((Browser.Engine.trident || window.webkit419) && (this.state !== null)) this.setState(state, true);
    else this.state = state;
    this.modules.each(function(data, key) {
      var bits = state.match(data.regexp);
      if (bits) {
        bits.splice(0, 1);
        bits.complement(data.defaults);
        if (!bits.isSimilar(data.defaults)) data.values = bits;
      } else data.values = data.defaults.slice();
      data.onMatch(data.values, data.defaults);
    });
    this.fireEvent('onStateChange', [state]).fireEvent('onObserverChange', [state]);
  },

  generateState: function() {
    var state = [];
    this.modules.each(function(data, key) {
      if (data.skipDefaultMatch && data.values.isSimilar(data.defaults)) return;
      state.push(data.onGenerate(data.values));
    });
    return state.join(this.options.stateSeparator);
  },

  update: function() {
    if (!this.started) return this;
    var state = this.generateState();
    if ((!this.state && !state) || (this.state == state)) return this;
    this.setState(state);
    this.fireEvent('onStateChange', [state]).fireEvent('onUpdate', [state]);
    return this;
  },

  observeTimeout: function() {
    if (this.timeout) this.timeout = $clear(this.timeout);
    else this.timeout = this.observeTimeout.delay(200, this);
  },

  getHash: function() {
    var href = top.location.href;
    var pos = href.indexOf('#') + 1;
    return (pos) ? href.substr(pos) : '';
  },

  getState: function() {
    var state = this.getHash();
    if (this.iframe) {
      var doc = this.iframe.contentWindow.document;
      if (doc && doc.body.id == 'state') {
        eval("state_obj = "+doc.body.innerText);
        var istate = state_obj.state;
        if (this.state == state) return istate;
        this.istateOld = true;
      } else return this.istate;
    }
    if (window.webkit419 && history.length != this.count) {
      this.count = history.length;
      return $pick(this.states[this.count - 1], state);
    }
    return state;
  },

  setState: function(state, fix) {
    state = $pick(state, '');
    if (window.webkit419) {
      if (!this.form) this.form = new Element('form', {method: 'get'}).injectInside(document.body);
      this.count = history.length;
      this.states[this.count] = state;
      this.observeTimeout();
      this.form.setProperty('action', '#' + state).submit();
    } else  {
      if (Browser.Engine.trident) {
        top.location.replace('#'+(state || ''));
      } else {
        top.location.hash = state || '#';
      }
    }
    if (Browser.Engine.trident && (!fix || this.istateOld)) {
      if (!this.iframe) {
        this.iframe = new Element('iframe', {
          src: this.options.iframeSrc,
          styles: {'display':'none'}
        }).injectInside(document.body);
        this.istate = this.state;
        this.iframe.contentWindow.document.location.reload(true);
      }
      try {
      now = new Date();
        var doc = this.iframe.contentWindow.document;
        doc.open();
        doc.write('<html><body id="state">{"state":"' + state +'","time":"'+ now.toUTCString()+'"}</body></html>');
        doc.close();
        this.istateOld = false;
      } catch(e) {};
    }
    this.state = state;
  },

  implement: $extend
});


/**
 * Extends Array with 2 helpers: isSimilar(array) and complement(array)
 * 
 */
Array.implement({

  /**
   * isSimilar - Returns true for similar arrays, type-insensitive
   * 
   * @example
   *  [1].isSimilar(['1']) == true
   *  [1, 2].isSimilar([1, false]) == false
   *  
   * @return  {Boolean}
   * @param {Object} Array
   */
  isSimilar: function(array) {
    return (this.toString() == array.toString());
  },

  /**
   * complement - Fills up empty array values from another array, length is the same
   * 
   * @example
   *  [1, null].complement([3, 4]) == [1, 4]
   *  [undefined, '1'].complement([2, 3, 4]) == [2, '1']

   * @return  {Array} this
   * @param {Object} Array
   */
  complement: function(array) {
    for (var i = 0, j = this.length; i < j; i++) this[i] = $pick(this[i], array[i] || null);
    return this;
  }
});

var HistoryManager;
window.addEvent('domready', function(){
  // RUN ONlY WHEN NECESSARY....
  //HistoryManager = new HistoryManagerX();
});

////////////////////////////////////////////////////////////////////////////////////////////

/*
  moopop: unobtrusive javascript popups via late binding using mootools 1.2
  
  copyright (c) 2007-2008 by gonchuki - http://blog.gonchuki.com
  
  version:  1.1
  released: June 23, 2008
  
  This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.
    http://creativecommons.org/licenses/by-sa/3.0/
*/

/*

Hacked by Nathan (nathan@marscomputers.co.uk) so popups are always resizable)

*/

var moopop={width:0,height:0,captureByRel:function(attrVal,parent){this.capture((parent||document).getElements('a[rel*='+(attrVal||'popup')+']'));},capture:function(el,width,height){if($defined(width)&&$defined(height)){this.width=width;this.height=height;}
switch($type(el)){case'string':el=$$(el);case'element':case'array':$splat(el).each(this.add_pop_to,this);}
this.width=null;this.height=null;},add_pop_to:function(el){el.addEvent('click',function(e){e.stop();this.popup(el);}.bind(this));var size=el.get('rel').match(/\[(\d+),\s*(\d+)/)||['',this.width,this.height];var resizable=el.get('rel').match(/,(r)/)||[];if(size[1])el.store('popupprops','width='+size[1]+', height='+size[2]+', scrollbars=yes, resizable=yes');},popup:function(el){window.open(el.get('href'),el.get('name')||'',el.retrieve('popupprops')||'');}};window.addEvent('domready',function(){moopop.captureByRel('popup');});

////////////////////////////////////////////////////////////////////////////////////////////

// FILE: js.js

window.addEvent('domready', function() {

  // Menu action
	$$('#navigation-ul').getChildren('li').each(function(element) {
		element.addEvent('click', function(e) {
		  // If top level item has a url, use that
		  // Otherwise navigate to url of first item
      subMenus = $(this).getChildren('ul');
			if (e.target.tagName != "A" && subMenus.length > 0) {
			  subMenuItems = subMenus[0].getChildren('li');
			  anchors = subMenuItems[0].getChildren('a');
			  if (anchors.length > 0) {			  
  				window.location = anchors[0].getProperty('href');
  				return false;
        }
			}

			return true;
		});
	});
	
});

////////////////////////////////////////////////////////////////////////////////////////////

// FILE: initial-selection.js

window.addEvent('domready', function() {

  /**
   * RETRIEVE BASE URL
   */
  base_url = $(document).getElement('base');
  if (base_url) { 
    base_url = encodeURI(base_url.getProperty('href').toLowerCase());
    }

  /**
   * RETRIEVE CURRENT PAGE'S URL
   */
  page_url = document.URL.toLowerCase();

  /**
   * REMOVE # SECTION OF URL
   */
  hash = page_url.indexOf('#');
  if (hash > 0) {
    page_url = page_url.substring(0,hash)
  }
  
  /**
   * CHECK ALL MENU LIST ITEMS FOR URL
   */
  $$('#navigation-ul li a').each(function(_a) {

    link_url = encodeURI(_a.getProperty('href'));
    link_url = (link_url) ? link_url.toLowerCase() : '';
    
    /**
     * CHECK FOR BASE URL, ADD IF MISSING ADD
     */
    if (base_url) {
      if (link_url.indexOf(base_url) < 0) {
        link_url = base_url+link_url;
      }
    }

    if (link_url == page_url) { 
      _ul  = _a.getParent().getParent().getProperty('id');    
      if (_ul == 'navigation-ul') {
        /* Top level li. Add class to this li. */
        _a.getParent().addClass('over');
        _a.getParent().addClass('active');
      } else {
        /* Sub li. Add class to top level */
        _a.getParent().getParent().getParent().addClass('over');
        _a.getParent().getParent().getParent().addClass('active');
      }
      _a.getParent().addClass('current-page');
    }
  });

});

////////////////////////////////////////////////////////////////////////////////////////////

// FILE: js-sub.js

var tabs;

Accordion = new Class({

  Extends: Accordion,
  
  Implements: Options,
 
  options: {
    id: null,
    useHistory: false
  },
 
  initialize: function(togglers, elements, options) {
    this.setOptions(options);
    this.id = $pick(this.options.id, 'accordion-' + (Accordion.count++));
    if (this.options.useHistory) {
    
      this.history = HistoryManager.register(
        this.id,
        [0],
        function(args) { this.display(args[0],true); }.bind(this),
        false,
        false);
        
      values = new Array();
      for (i=1;i<=togglers.length-1;i++) {
        values[i-1] = i
      }
      this.history.setValues(values);
      
    }

    return this.parent(togglers, elements, options);
  },
 
  display: function(index,hm) {
  /*
    if (this.history && (!hm))
    {
        //if (index > 0) {
        var tab = (this.options.show)?this.options.show:0;
          if (Browser.Engine.trident &&  (window.location.hash == '#')) {
                HistoryManager.setState(this.id+'-'+tab);
              }
          HistoryManager.setState(this.id+'-'+index);
        //} else {
        //  HistoryManager.setState();
        //}
    }
    */
    this.parent(index);
  }
 
});
 
window.addEvent('domready', function() {

  if ($$('.subnavigation li').length > 0) {
                                   
    HistoryManager = new HistoryManagerX();

    var options =  {
      'id'   : 'tour-info',
      'duration' : 300,
      'opacity': false,
      'useHistory' : true,
      'alwaysHide' : false,
      onActive: function(toggle) {

        toggle.addClass('selected');
        tab_pos = toggle.getCoordinates();

        /*
           Scroll the tab to the top of the page, so our loaded
           content is in view
        */
        /*
        if (!initial) window.scrollTo(0,(tab_pos.top-10));
        initial = false;
        */

      },
      onBackground: function(toggle) {
        toggle.removeClass('selected');
      } 
    } 


    var initial_tab = Browser.getQueryStringValue('view')?Browser.getQueryStringValue('view').toInt():0;

    /* If a tab has been specified in the querystring, scroll straight to it. */
    if (initial_tab != 0) {
      //alert(initial_tab);
      options['show'] = initial_tab;
      options['display'] = initial_tab;
    }

    tabs = new Accordion($$('.subnavigation li'), $$('.toggle'),options);
     
    $$('.tab-tour-content').setStyles({position:'absolute',top:'0px'});

    HistoryManager.start();
    
  }

});

////////////////////////////////////////////////////////////////////////////////////////////

// FILE: xml.js

function injectScript(url) {
  var head   = window.document.getElementsByTagName('head')[0];
  var script = window.document.createElement('script');
  
  script.setAttribute('src',url);
  
  head.appendChild(script);
}

var XML = function() {
  this._instanceId  = XML.prototype._newInstance(this);
  this._instance    = null;
  this._newInstance = null;
}; 

XML.prototype = {
  //_instanceId:     null,
  _instance:       new Array(),
  _newInstance:    function(ref) {
      var newId = XML.prototype._instance.length;
      XML.prototype._instance[newId] = ref;
      return newId;
    },
  _callback:       null,
  doc:             null,
  string:          '',    
  onParseSuccess:  function() {}, 
  parseFromString: function(xml_string) {
      if (xml_string == '') { xml_string = this.string; }
      var output_doc
      if (window.DOMParser) {
        var parser = new DOMParser();
        output_doc = parser.parseFromString(xml_string,"text/xml");
      } else if (window.ActiveXObject) {
        output_doc        = new ActiveXObject("Microsoft.XMLDOM");
        output_doc.async  = false;
        output_doc.loadXML(xml_string);
      }
      this.doc = output_doc;
      if (this._callback != null) {
        this._callback.onParseSuccess(this.doc);
      } else {
        this.onParseSuccess(this.doc);
        this.onParseSuccess = function() {};
      }
      return output_doc;  
    },
  loadRemote:      function(url,settings) {
      var delimiter = (url.indexOf('?') == -1) ? '?' : '&';
      
      url += delimiter;
      url += 'callback=XML.prototype._instance['+this._instanceId+'].parseFromString';

      if (settings) {
        if (settings.onSuccess) { this.onParseSuccess = settings.onSuccess; }
        if (settings.callback) { this._callback = settings.callback; }
      }
      
      injectScript(url);
    }
    
}

////////////////////////////////////////////////////////////////////////////////////////////

// FILE: ip_currency.js
setCurrency = function(c) {
  currencyElements = $(document).getElements('.ip_currency');
  
  if (currencyElements.length > 0) {
  
    currency_override = Browser.getQueryStringValue('currency');
    if (currency_override > "") {
      c = currency_override;
    }
    
    txt = MooTools.lang.get('priceLoader')
  
    if (c=="ALL") {
      c="GBP";
    }
    
    currencyFormat = txt['priceFormat'+c];
  
  	currencyElements.each(function(e){
  		value = e.getProperty(c.toLowerCase());
  		e.set('html',currencyFormat.replace('#price#',value))
  	});
	}
}

window.addEvent('load',function(){
	injectScript("https://www.trekam.net/trek/API/IP_Currency.asp?brand="+this.brand+"&callback=setCurrency")
});

////////////////////////////////////////////////////////////////////////////////////////////

// FILE: ip_country.js

var ip_country_match = false;
var ip_country = null;

setCountry = function(c) {

  country_override = Browser.getQueryStringValue('country');
  if (country_override > "") c = country_override;
  
  ip_country = c;
  
  $$('.ip_controlled').each(function(e){
    ip_country_match = false;

    e.getElements('span').each(function(e){
      value = e.getProperty('countries');

      if (value == "OTHER") {
        if (ip_country_match) e.destroy();
      } else {
        value = eval('["'+value.replace(',','","')+'"]');
        if (value.indexOf(c) == -1) {
          e.destroy();
        } else {
          ip_country_match = true;
        }
      }
    })
  });
  
}

window.addEvent('load',function(){
  injectScript("https://www.trekam.net/trek/API/ip_country.asp?callback=setCountry")
});

// Switch to booking tab using js, not url.
window.addEvent('domready', function() {
  $$(".book-now-btn").addEvent('click',function() {
     tabs.display(2);
     return false;
  });
})
