// js/lib/yui/yahoo/yahoo-min.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{isArray:function(B){if(B){var A=YAHOO.lang;return A.isNumber(B.length)&&A.isFunction(B.splice);}return false;},isBoolean:function(A){return typeof A==="boolean";},isFunction:function(A){return typeof A==="function";},isNull:function(A){return A===null;},isNumber:function(A){return typeof A==="number"&&isFinite(A);},isObject:function(A){return(A&&(typeof A==="object"||YAHOO.lang.isFunction(A)))||false;},isString:function(A){return typeof A==="string";},isUndefined:function(A){return typeof A==="undefined";},hasOwnProperty:function(A,B){if(Object.prototype.hasOwnProperty){return A.hasOwnProperty(B);}return !YAHOO.lang.isUndefined(A[B])&&A.constructor.prototype[B]!==A[B];},_IEEnumFix:function(C,B){if(YAHOO.env.ua.ie){var E=["toString","valueOf"],A;for(A=0;A<E.length;A=A+1){var F=E[A],D=B[F];if(YAHOO.lang.isFunction(D)&&D!=Object.prototype[F]){C[F]=D;}}}},extend:function(D,E,C){if(!E||!D){throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");}var B=function(){};B.prototype=E.prototype;D.prototype=new B();D.prototype.constructor=D;D.superclass=E.prototype;if(E.prototype.constructor==Object.prototype.constructor){E.prototype.constructor=E;}if(C){for(var A in C){D.prototype[A]=C[A];}YAHOO.lang._IEEnumFix(D.prototype,C);}},augmentObject:function(E,D){if(!D||!E){throw new Error("Absorb failed, verify dependencies.");}var A=arguments,C,F,B=A[2];if(B&&B!==true){for(C=2;C<A.length;C=C+1){E[A[C]]=D[A[C]];}}else{for(F in D){if(B||!E[F]){E[F]=D[F];}}YAHOO.lang._IEEnumFix(E,D);}},augmentProto:function(D,C){if(!C||!D){throw new Error("Augment failed, verify dependencies.");}var A=[D.prototype,C.prototype];for(var B=2;B<arguments.length;B=B+1){A.push(arguments[B]);}YAHOO.lang.augmentObject.apply(this,A);},dump:function(A,G){var C=YAHOO.lang,D,F,I=[],J="{...}",B="f(){...}",H=", ",E=" => ";if(!C.isObject(A)){return A+"";}else{if(A instanceof Date||("nodeType" in A&&"tagName" in A)){return A;}else{if(C.isFunction(A)){return B;}}}G=(C.isNumber(G))?G:3;if(C.isArray(A)){I.push("[");for(D=0,F=A.length;D<F;D=D+1){if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}if(I.length>1){I.pop();}I.push("]");}else{I.push("{");for(D in A){if(C.hasOwnProperty(A,D)){I.push(D+E);if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}}if(I.length>1){I.pop();}I.push("}");}return I.join("");},substitute:function(Q,B,J){var G,F,E,M,N,P,D=YAHOO.lang,L=[],C,H="dump",K=" ",A="{",O="}";for(;;){G=Q.lastIndexOf(A);if(G<0){break;}F=Q.indexOf(O,G);if(G+1>=F){break;}C=Q.substring(G+1,F);M=C;P=null;E=M.indexOf(K);if(E>-1){P=M.substring(E+1);M=M.substring(0,E);}N=B[M];if(J){N=J(M,N,P);}if(D.isObject(N)){if(D.isArray(N)){N=D.dump(N,parseInt(P,10));}else{P=P||"";var I=P.indexOf(H);if(I>-1){P=P.substring(4);}if(N.toString===Object.prototype.toString||I>-1){N=D.dump(N,parseInt(P,10));}else{N=N.toString();}}}else{if(!D.isString(N)&&!D.isNumber(N)){N="~-"+L.length+"-~";L[L.length]=C;}}Q=Q.substring(0,G)+N+Q.substring(F+1);}for(G=L.length-1;G>=0;G=G-1){Q=Q.replace(new RegExp("~-"+G+"-~"),"{"+L[G]+"}","g");}return Q;},trim:function(A){try{return A.replace(/^\s+|\s+$/g,"");}catch(B){return A;}},merge:function(){var D={},B=arguments;for(var C=0,A=B.length;C<A;C=C+1){YAHOO.lang.augmentObject(D,B[C],true);}return D;},later:function(H,B,I,D,E){H=H||0;B=B||{};var C=I,G=D,F,A;if(YAHOO.lang.isString(I)){C=B[I];}if(!C){throw new TypeError("method undefined");}if(!YAHOO.lang.isArray(G)){G=[D];}F=function(){C.apply(B,G);};A=(E)?setInterval(F,H):setTimeout(F,H);return{interval:E,cancel:function(){if(this.interval){clearInterval(A);}else{clearTimeout(A);}}};},isValue:function(B){var A=YAHOO.lang;return(A.isObject(B)||A.isString(B)||A.isNumber(B)||A.isBoolean(B));}};YAHOO.util.Lang=YAHOO.lang;YAHOO.lang.augment=YAHOO.lang.augmentProto;YAHOO.augment=YAHOO.lang.augmentProto;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.5.0",build:"895"});
// js/lib/yui/cookie/cookie-beta-min.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
YAHOO.namespace("util");YAHOO.util.Cookie={_createCookieString:function(B,D,C,A){var F=YAHOO.lang;var E=encodeURIComponent(B)+"="+(C?encodeURIComponent(D):D);if(F.isObject(A)){if(A.expires instanceof Date){E+="; expires="+A.expires.toGMTString();}if(F.isString(A.path)&&A.path!=""){E+="; path="+A.path;}if(F.isString(A.domain)&&A.domain!=""){E+="; domain="+A.domain;}if(A.secure===true){E+="; secure";}}return E;},_createCookieHashString:function(B){var D=YAHOO.lang;if(!D.isObject(B)){throw new TypeError("Cookie._createCookieHashString(): Argument must be an object.");}var C=new Array();for(var A in B){if(D.hasOwnProperty(B,A)&&!D.isFunction(B[A])&&!D.isUndefined(B[A])){C.push(encodeURIComponent(A)+"="+encodeURIComponent(String(B[A])));}}return C.join("&");},_parseCookieHash:function(E){var D=E.split("&");var F=null;var C=new Object();for(var B=0,A=D.length;B<A;B++){F=D[B].split("=");C[F[0]]=F[1];}return C;},_parseCookieString:function(E){var C=new Object();if(YAHOO.lang.isString(E)&&E.length>0){if(/[^=]+=[^=;]?(?:; [^=]+=[^=]?)?/.test(E)){var G=E.split(/;\s/g);var F=null;var D=null;for(var B=0,A=G.length;B<A;B++){F=decodeURIComponent(G[B].match(/([a-z]+)=/i)[1]);D=decodeURIComponent(G[B].substring(F.length+1));C[F]=D;}}}return C;},get:function(A,B){var D=YAHOO.lang;var C=this._parseCookieString(document.cookie);if(!D.isString(A)||A===""){throw new TypeError("Cookie.get(): Cookie name must be a non-empty string.");}if(D.isUndefined(C[A])){return null;}if(!D.isFunction(B)){return C[A];}else{return B(C[A]);}},getSub:function(A,C,B){var E=YAHOO.lang;var D=this.getSubs(A);if(D!==null){if(!E.isString(C)||C===""){throw new TypeError("Cookie.getSub(): Subcookie name must be a non-empty string.");}if(E.isUndefined(D[C])){return null;}if(!E.isFunction(B)){return D[C];}else{return B(D[C]);}}else{return null;}},getSubs:function(A){return this.get(A,this._parseCookieHash);},remove:function(B,A){if(!YAHOO.lang.isString(B)||B===""){throw new TypeError("Cookie.remove(): Cookie name must be a non-empty string.");}A=A||{};A.expires=new Date(0);return this.set(B,"",A);},set:function(B,C,A){var E=YAHOO.lang;if(!E.isString(B)){throw new TypeError("Cookie.set(): Cookie name must be a string.");}if(E.isUndefined(C)){throw new TypeError("Cookie.set(): Value cannot be undefined.");}var D=this._createCookieString(B,C,true,A);document.cookie=D;return D;},setSub:function(B,D,C,A){var F=YAHOO.lang;if(!F.isString(B)||B===""){throw new TypeError("Cookie.setSub(): Cookie name must be a non-empty string.");}if(!F.isString(D)||D===""){throw new TypeError("Cookie.setSub(): Subcookie name must be a non-empty string.");}if(F.isUndefined(C)){throw new TypeError("Cookie.setSub(): Subcookie value cannot be undefined.");}var E=this.getSubs(B);if(!F.isObject(E)){E=new Object();}E[D]=C;return this.setSubs(B,E,A);},setSubs:function(B,C,A){var E=YAHOO.lang;if(!E.isString(B)){throw new TypeError("Cookie.setSubs(): Cookie name must be a string.");}if(!E.isObject(C)){throw new TypeError("Cookie.setSubs(): Cookie value must be an object.");}var D=this._createCookieString(B,this._createCookieHashString(C),false,A);document.cookie=D;return D;}};YAHOO.register("cookie",YAHOO.util.Cookie,{version:"2.5.0",build:"895"});
// js/lib/yui/event/event-min.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){var D=this.subscribers.length;if(!D&&this.silent){return true;}var H=[],F=true,C,I=false;for(C=0;C<arguments.length;++C){H.push(arguments[C]);}if(!this.silent){}for(C=0;C<D;++C){var L=this.subscribers[C];if(!L){I=true;}else{if(!this.silent){}var K=L.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var A=null;if(H.length>0){A=H[0];}try{F=L.fn.call(K,A,L.obj);}catch(E){this.lastError=E;}}else{try{F=L.fn.call(K,this.type,H,L.obj);}catch(G){this.lastError=G;}}if(false===F){if(!this.silent){}return false;}}}if(I){var J=[],B=this.subscribers;for(C=0,D=B.length;C<D;C=C+1){J.push(B[C]);}this.subscribers=J;}return true;},unsubscribeAll:function(){for(var B=0,A=this.subscribers.length;B<A;++B){this._delete(A-1-B);}this.subscribers=[];return B;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers[A]=null;},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,startInterval:function(){if(!this._interval){var K=this;var L=function(){K._tryPreloadAttach();};this._interval=setInterval(L,this.POLL_INTERVAL);}},onAvailable:function(P,M,Q,O,N){var K=(YAHOO.lang.isString(P))?[P]:P;for(var L=0;L<K.length;L=L+1){F.push({id:K[L],fn:M,obj:Q,override:O,checkReady:N});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(M,K,N,L){this.onAvailable(M,K,N,L,true);},onDOMReady:function(K,M,L){if(this.DOMReady){setTimeout(function(){var N=window;if(L){if(L===true){N=M;}else{N=L;}}K.call(N,"DOMReady",[],M);},0);}else{this.DOMReadyEvent.subscribe(K,M,L);}},addListener:function(M,K,V,Q,L){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var R=0,T=M.length;R<T;++R){W=this.on(M[R],K,V,Q,L)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var P=this.getEl(M);if(P){M=P;}else{this.onAvailable(M,function(){YAHOO.util.Event.on(M,K,V,Q,L);});return true;}}}if(!M){return false;}if("unload"==K&&Q!==this){J[J.length]=[M,K,V,Q,L];return true;}var Y=M;if(L){if(L===true){Y=Q;}else{Y=L;}}var N=function(Z){return V.call(Y,YAHOO.util.Event.getEvent(Z,M),Q);};var X=[M,K,V,N,Y,Q,L];var S=I.length;I[S]=X;if(this.useLegacyEvent(M,K)){var O=this.getLegacyIndex(M,K);if(O==-1||M!=G[O][0]){O=G.length;B[M.id+K]=O;G[O]=[M,K,M["on"+K]];E[O]=[];M["on"+K]=function(Z){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(Z),O);};}E[O].push(X);}else{try{this._simpleAdd(M,K,N,false);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}}return true;},fireLegacyEvent:function(O,M){var Q=true,K,S,R,T,P;S=E[M];for(var L=0,N=S.length;L<N;++L){R=S[L];if(R&&R[this.WFN]){T=R[this.ADJ_SCOPE];P=R[this.WFN].call(T,O);Q=(Q&&P);}}K=G[M];if(K&&K[2]){K[2](O);}return Q;},getLegacyIndex:function(L,M){var K=this.generateId(L)+M;if(typeof B[K]=="undefined"){return -1;}else{return B[K];}},useLegacyEvent:function(L,M){if(this.webkit&&("click"==M||"dblclick"==M)){var K=parseInt(this.webkit,10);if(!isNaN(K)&&K<418){return true;}}return false;},removeListener:function(L,K,T){var O,R,V;if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var U=true;for(O=0,R=L.length;O<R;++O){U=(this.removeListener(L[O],K,T)&&U);}return U;}}if(!T||!T.call){return this.purgeElement(L,false,K);}if("unload"==K){for(O=0,R=J.length;O<R;O++){V=J[O];if(V&&V[0]==L&&V[1]==K&&V[2]==T){J[O]=null;return true;}}return false;}var P=null;var Q=arguments[3];if("undefined"===typeof Q){Q=this._getCacheIndex(L,K,T);}if(Q>=0){P=I[Q];}if(!L||!P){return false;}if(this.useLegacyEvent(L,K)){var N=this.getLegacyIndex(L,K);var M=E[N];if(M){for(O=0,R=M.length;O<R;++O){V=M[O];if(V&&V[this.EL]==L&&V[this.TYPE]==K&&V[this.FN]==T){M[O]=null;break;}}}}else{try{this._simpleRemove(L,K,P[this.WFN],false);}catch(S){this.lastError=S;return false;}}delete I[Q][this.WFN];delete I[Q][this.FN];I[Q]=null;return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;
},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;}else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in D)){K=D[K];}return K;},_getCacheIndex:function(O,P,N){for(var M=0,L=I.length;M<L;++M){var K=I[M];if(K&&K[this.FN]==N&&K[this.EL]==O&&K[this.TYPE]==P){return M;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+A;++A;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(L){if(!H){H=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(this.locked){return false;}if(this.isIE){if(!this.DOMReady){this.startInterval();return false;}}this.locked=true;var P=!H;if(!P){P=(C>0);}var O=[];var Q=function(S,T){var R=S;if(T.override){if(T.override===true){R=T.obj;}else{R=T.override;}}T.fn.call(R,T.obj);};var L,K,N,M;for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&!N.checkReady){M=this.getEl(N.id);if(M){Q(M,N);F[L]=null;}else{O.push(N);}}}for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&N.checkReady){M=this.getEl(N.id);if(M){if(H||M.nextSibling){Q(M,N);F[L]=null;}}else{O.push(N);}}}C=(O.length===0)?0:C-1;if(P){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;return true;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=0,K=Q.length;N<K;++N){var L=Q[N];this.removeListener(M,L.type,L.fn,L.index);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[I,J];}else{if(K==="unload"){L=[J];}else{L=[I];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T&&T.length>0){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(R){var Q=YAHOO.util.Event,O,N,L,K,M;for(O=0,K=J.length;O<K;++O){L=J[O];if(L){var P=window;if(L[Q.ADJ_SCOPE]){if(L[Q.ADJ_SCOPE]===true){P=L[Q.UNLOAD_OBJ];}else{P=L[Q.ADJ_SCOPE];}}L[Q.FN].call(P,Q.getEvent(R,L[Q.EL]),L[Q.UNLOAD_OBJ]);J[O]=null;L=null;P=null;}}J=null;if(I&&I.length>0){N=I.length;while(N){M=N-1;L=I[M];if(L){Q.removeListener(L[Q.EL],L[Q.TYPE],L[Q.FN],M);}N--;}L=null;}G=null;Q._simpleRemove(window,"unload",Q._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;
/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);EU._dri=setInterval(function(){var n=document.createElement("p");try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){n=null;}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);
var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.5.0",build:"895"});
// js/lib/yui/yahoo-dom-event/yahoo-dom-event.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{isArray:function(B){if(B){var A=YAHOO.lang;return A.isNumber(B.length)&&A.isFunction(B.splice);}return false;},isBoolean:function(A){return typeof A==="boolean";},isFunction:function(A){return typeof A==="function";},isNull:function(A){return A===null;},isNumber:function(A){return typeof A==="number"&&isFinite(A);},isObject:function(A){return(A&&(typeof A==="object"||YAHOO.lang.isFunction(A)))||false;},isString:function(A){return typeof A==="string";},isUndefined:function(A){return typeof A==="undefined";},hasOwnProperty:function(A,B){if(Object.prototype.hasOwnProperty){return A.hasOwnProperty(B);}return !YAHOO.lang.isUndefined(A[B])&&A.constructor.prototype[B]!==A[B];},_IEEnumFix:function(C,B){if(YAHOO.env.ua.ie){var E=["toString","valueOf"],A;for(A=0;A<E.length;A=A+1){var F=E[A],D=B[F];if(YAHOO.lang.isFunction(D)&&D!=Object.prototype[F]){C[F]=D;}}}},extend:function(D,E,C){if(!E||!D){throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");}var B=function(){};B.prototype=E.prototype;D.prototype=new B();D.prototype.constructor=D;D.superclass=E.prototype;if(E.prototype.constructor==Object.prototype.constructor){E.prototype.constructor=E;}if(C){for(var A in C){D.prototype[A]=C[A];}YAHOO.lang._IEEnumFix(D.prototype,C);}},augmentObject:function(E,D){if(!D||!E){throw new Error("Absorb failed, verify dependencies.");}var A=arguments,C,F,B=A[2];if(B&&B!==true){for(C=2;C<A.length;C=C+1){E[A[C]]=D[A[C]];}}else{for(F in D){if(B||!E[F]){E[F]=D[F];}}YAHOO.lang._IEEnumFix(E,D);}},augmentProto:function(D,C){if(!C||!D){throw new Error("Augment failed, verify dependencies.");}var A=[D.prototype,C.prototype];for(var B=2;B<arguments.length;B=B+1){A.push(arguments[B]);}YAHOO.lang.augmentObject.apply(this,A);},dump:function(A,G){var C=YAHOO.lang,D,F,I=[],J="{...}",B="f(){...}",H=", ",E=" => ";if(!C.isObject(A)){return A+"";}else{if(A instanceof Date||("nodeType" in A&&"tagName" in A)){return A;}else{if(C.isFunction(A)){return B;}}}G=(C.isNumber(G))?G:3;if(C.isArray(A)){I.push("[");for(D=0,F=A.length;D<F;D=D+1){if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}if(I.length>1){I.pop();}I.push("]");}else{I.push("{");for(D in A){if(C.hasOwnProperty(A,D)){I.push(D+E);if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}}if(I.length>1){I.pop();}I.push("}");}return I.join("");},substitute:function(Q,B,J){var G,F,E,M,N,P,D=YAHOO.lang,L=[],C,H="dump",K=" ",A="{",O="}";for(;;){G=Q.lastIndexOf(A);if(G<0){break;}F=Q.indexOf(O,G);if(G+1>=F){break;}C=Q.substring(G+1,F);M=C;P=null;E=M.indexOf(K);if(E>-1){P=M.substring(E+1);M=M.substring(0,E);}N=B[M];if(J){N=J(M,N,P);}if(D.isObject(N)){if(D.isArray(N)){N=D.dump(N,parseInt(P,10));}else{P=P||"";var I=P.indexOf(H);if(I>-1){P=P.substring(4);}if(N.toString===Object.prototype.toString||I>-1){N=D.dump(N,parseInt(P,10));}else{N=N.toString();}}}else{if(!D.isString(N)&&!D.isNumber(N)){N="~-"+L.length+"-~";L[L.length]=C;}}Q=Q.substring(0,G)+N+Q.substring(F+1);}for(G=L.length-1;G>=0;G=G-1){Q=Q.replace(new RegExp("~-"+G+"-~"),"{"+L[G]+"}","g");}return Q;},trim:function(A){try{return A.replace(/^\s+|\s+$/g,"");}catch(B){return A;}},merge:function(){var D={},B=arguments;for(var C=0,A=B.length;C<A;C=C+1){YAHOO.lang.augmentObject(D,B[C],true);}return D;},later:function(H,B,I,D,E){H=H||0;B=B||{};var C=I,G=D,F,A;if(YAHOO.lang.isString(I)){C=B[I];}if(!C){throw new TypeError("method undefined");}if(!YAHOO.lang.isArray(G)){G=[D];}F=function(){C.apply(B,G);};A=(E)?setInterval(F,H):setTimeout(F,H);return{interval:E,cancel:function(){if(this.interval){clearInterval(A);}else{clearTimeout(A);}}};},isValue:function(B){var A=YAHOO.lang;return(A.isObject(B)||A.isString(B)||A.isNumber(B)||A.isBoolean(B));}};YAHOO.util.Lang=YAHOO.lang;YAHOO.lang.augment=YAHOO.lang.augmentProto;YAHOO.augment=YAHOO.lang.augmentProto;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.5.0",build:"895"});(function(){var B=YAHOO.util,K,I,J={},F={},M=window.document;YAHOO.env._id_counter=YAHOO.env._id_counter||0;var C=YAHOO.env.ua.opera,L=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,G=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i};var N=function(P){if(!E.HYPHEN.test(P)){return P;}if(J[P]){return J[P];}var Q=P;while(E.HYPHEN.exec(Q)){Q=Q.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}J[P]=Q;return Q;};var O=function(Q){var P=F[Q];if(!P){P=new RegExp("(?:^|\\s+)"+Q+"(?:\\s+|$)");F[Q]=P;}return P;};if(M.defaultView&&M.defaultView.getComputedStyle){K=function(P,S){var R=null;if(S=="float"){S="cssFloat";}var Q=M.defaultView.getComputedStyle(P,"");if(Q){R=Q[N(S)];}return P.style[S]||R;};}else{if(M.documentElement.currentStyle&&G){K=function(P,R){switch(N(R)){case"opacity":var T=100;try{T=P.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(S){try{T=P.filters("alpha").opacity;}catch(S){}}return T/100;case"float":R="styleFloat";default:var Q=P.currentStyle?P.currentStyle[R]:null;return(P.style[R]||Q);}};}else{K=function(P,Q){return P.style[Q];};}}if(G){I=function(P,Q,R){switch(Q){case"opacity":if(YAHOO.lang.isString(P.style.filter)){P.style.filter="alpha(opacity="+R*100+")";if(!P.currentStyle||!P.currentStyle.hasLayout){P.style.zoom=1;}}break;case"float":Q="styleFloat";default:P.style[Q]=R;}};}else{I=function(P,Q,R){if(Q=="float"){Q="cssFloat";}P.style[Q]=R;};}var D=function(P,Q){return P&&P.nodeType==1&&(!Q||Q(P));};YAHOO.util.Dom={get:function(R){if(R&&(R.nodeType||R.item)){return R;}if(YAHOO.lang.isString(R)||!R){return M.getElementById(R);}if(R.length!==undefined){var S=[];for(var Q=0,P=R.length;Q<P;++Q){S[S.length]=B.Dom.get(R[Q]);}return S;}return R;},getStyle:function(P,R){R=N(R);var Q=function(S){return K(S,R);};return B.Dom.batch(P,Q,B.Dom,true);},setStyle:function(P,R,S){R=N(R);var Q=function(T){I(T,R,S);};B.Dom.batch(P,Q,B.Dom,true);},getXY:function(P){var Q=function(R){if((R.parentNode===null||R.offsetParent===null||this.getStyle(R,"display")=="none")&&R!=R.ownerDocument.body){return false;}return H(R);};return B.Dom.batch(P,Q,B.Dom,true);},getX:function(P){var Q=function(R){return B.Dom.getXY(R)[0];};return B.Dom.batch(P,Q,B.Dom,true);},getY:function(P){var Q=function(R){return B.Dom.getXY(R)[1];};return B.Dom.batch(P,Q,B.Dom,true);},setXY:function(P,S,R){var Q=function(V){var U=this.getStyle(V,"position");if(U=="static"){this.setStyle(V,"position","relative");U="relative";}var X=this.getXY(V);if(X===false){return false;}var W=[parseInt(this.getStyle(V,"left"),10),parseInt(this.getStyle(V,"top"),10)];if(isNaN(W[0])){W[0]=(U=="relative")?0:V.offsetLeft;}if(isNaN(W[1])){W[1]=(U=="relative")?0:V.offsetTop;}if(S[0]!==null){V.style.left=S[0]-X[0]+W[0]+"px";}if(S[1]!==null){V.style.top=S[1]-X[1]+W[1]+"px";}if(!R){var T=this.getXY(V);if((S[0]!==null&&T[0]!=S[0])||(S[1]!==null&&T[1]!=S[1])){this.setXY(V,S,true);}}};B.Dom.batch(P,Q,B.Dom,true);},setX:function(Q,P){B.Dom.setXY(Q,[P,null]);},setY:function(P,Q){B.Dom.setXY(P,[null,Q]);},getRegion:function(P){var Q=function(R){if((R.parentNode===null||R.offsetParent===null||this.getStyle(R,"display")=="none")&&R!=M.body){return false;}var S=B.Region.getRegion(R);return S;};return B.Dom.batch(P,Q,B.Dom,true);},getClientWidth:function(){return B.Dom.getViewportWidth();},getClientHeight:function(){return B.Dom.getViewportHeight();},getElementsByClassName:function(T,X,U,V){X=X||"*";U=(U)?B.Dom.get(U):null||M;if(!U){return[];}var Q=[],P=U.getElementsByTagName(X),W=O(T);for(var R=0,S=P.length;R<S;++R){if(W.test(P[R].className)){Q[Q.length]=P[R];if(V){V.call(P[R],P[R]);}}}return Q;},hasClass:function(R,Q){var P=O(Q);var S=function(T){return P.test(T.className);};return B.Dom.batch(R,S,B.Dom,true);},addClass:function(Q,P){var R=function(S){if(this.hasClass(S,P)){return false;}S.className=YAHOO.lang.trim([S.className,P].join(" "));return true;};return B.Dom.batch(Q,R,B.Dom,true);},removeClass:function(R,Q){var P=O(Q);var S=function(T){if(!Q||!this.hasClass(T,Q)){return false;}var U=T.className;T.className=U.replace(P," ");if(this.hasClass(T,Q)){this.removeClass(T,Q);}T.className=YAHOO.lang.trim(T.className);return true;};return B.Dom.batch(R,S,B.Dom,true);},replaceClass:function(S,Q,P){if(!P||Q===P){return false;}var R=O(Q);var T=function(U){if(!this.hasClass(U,Q)){this.addClass(U,P);return true;}U.className=U.className.replace(R," "+P+" ");if(this.hasClass(U,Q)){this.replaceClass(U,Q,P);}U.className=YAHOO.lang.trim(U.className);return true;};return B.Dom.batch(S,T,B.Dom,true);},generateId:function(P,R){R=R||"yui-gen";var Q=function(S){if(S&&S.id){return S.id;}var T=R+YAHOO.env._id_counter++;if(S){S.id=T;}return T;};return B.Dom.batch(P,Q,B.Dom,true)||Q.apply(B.Dom,arguments);},isAncestor:function(P,Q){P=B.Dom.get(P);Q=B.Dom.get(Q);if(!P||!Q){return false;}if(P.contains&&Q.nodeType&&!L){return P.contains(Q);}else{if(P.compareDocumentPosition&&Q.nodeType){return !!(P.compareDocumentPosition(Q)&16);}else{if(Q.nodeType){return !!this.getAncestorBy(Q,function(R){return R==P;});}}}return false;},inDocument:function(P){return this.isAncestor(M.documentElement,P);},getElementsBy:function(W,Q,R,T){Q=Q||"*";R=(R)?B.Dom.get(R):null||M;if(!R){return[];}var S=[],V=R.getElementsByTagName(Q);for(var U=0,P=V.length;U<P;++U){if(W(V[U])){S[S.length]=V[U];if(T){T(V[U]);}}}return S;},batch:function(T,W,V,R){T=(T&&(T.tagName||T.item))?T:B.Dom.get(T);if(!T||!W){return false;}var S=(R)?V:window;if(T.tagName||T.length===undefined){return W.call(S,T,V);}var U=[];for(var Q=0,P=T.length;Q<P;++Q){U[U.length]=W.call(S,T[Q],V);}return U;},getDocumentHeight:function(){var Q=(M.compatMode!="CSS1Compat")?M.body.scrollHeight:M.documentElement.scrollHeight;var P=Math.max(Q,B.Dom.getViewportHeight());return P;},getDocumentWidth:function(){var Q=(M.compatMode!="CSS1Compat")?M.body.scrollWidth:M.documentElement.scrollWidth;var P=Math.max(Q,B.Dom.getViewportWidth());return P;},getViewportHeight:function(){var P=self.innerHeight;var Q=M.compatMode;if((Q||G)&&!C){P=(Q=="CSS1Compat")?M.documentElement.clientHeight:M.body.clientHeight;
}return P;},getViewportWidth:function(){var P=self.innerWidth;var Q=M.compatMode;if(Q||G){P=(Q=="CSS1Compat")?M.documentElement.clientWidth:M.body.clientWidth;}return P;},getAncestorBy:function(P,Q){while(P=P.parentNode){if(D(P,Q)){return P;}}return null;},getAncestorByClassName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return B.Dom.hasClass(S,P);};return B.Dom.getAncestorBy(Q,R);},getAncestorByTagName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return S.tagName&&S.tagName.toUpperCase()==P.toUpperCase();};return B.Dom.getAncestorBy(Q,R);},getPreviousSiblingBy:function(P,Q){while(P){P=P.previousSibling;if(D(P,Q)){return P;}}return null;},getPreviousSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getPreviousSiblingBy(P);},getNextSiblingBy:function(P,Q){while(P){P=P.nextSibling;if(D(P,Q)){return P;}}return null;},getNextSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getNextSiblingBy(P);},getFirstChildBy:function(P,R){var Q=(D(P.firstChild,R))?P.firstChild:null;return Q||B.Dom.getNextSiblingBy(P.firstChild,R);},getFirstChild:function(P,Q){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getFirstChildBy(P);},getLastChildBy:function(P,R){if(!P){return null;}var Q=(D(P.lastChild,R))?P.lastChild:null;return Q||B.Dom.getPreviousSiblingBy(P.lastChild,R);},getLastChild:function(P){P=B.Dom.get(P);return B.Dom.getLastChildBy(P);},getChildrenBy:function(Q,S){var R=B.Dom.getFirstChildBy(Q,S);var P=R?[R]:[];B.Dom.getNextSiblingBy(R,function(T){if(!S||S(T)){P[P.length]=T;}return false;});return P;},getChildren:function(P){P=B.Dom.get(P);if(!P){}return B.Dom.getChildrenBy(P);},getDocumentScrollLeft:function(P){P=P||M;return Math.max(P.documentElement.scrollLeft,P.body.scrollLeft);},getDocumentScrollTop:function(P){P=P||M;return Math.max(P.documentElement.scrollTop,P.body.scrollTop);},insertBefore:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}return P.parentNode.insertBefore(Q,P);},insertAfter:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}if(P.nextSibling){return P.parentNode.insertBefore(Q,P.nextSibling);}else{return P.parentNode.appendChild(Q);}},getClientRegion:function(){var R=B.Dom.getDocumentScrollTop(),Q=B.Dom.getDocumentScrollLeft(),S=B.Dom.getViewportWidth()+Q,P=B.Dom.getViewportHeight()+R;return new B.Region(R,S,P,Q);}};var H=function(){if(M.documentElement.getBoundingClientRect){return function(Q){var R=Q.getBoundingClientRect();var P=Q.ownerDocument;return[R.left+B.Dom.getDocumentScrollLeft(P),R.top+B.Dom.getDocumentScrollTop(P)];};}else{return function(R){var S=[R.offsetLeft,R.offsetTop];var Q=R.offsetParent;var P=(L&&B.Dom.getStyle(R,"position")=="absolute"&&R.offsetParent==R.ownerDocument.body);if(Q!=R){while(Q){S[0]+=Q.offsetLeft;S[1]+=Q.offsetTop;if(!P&&L&&B.Dom.getStyle(Q,"position")=="absolute"){P=true;}Q=Q.offsetParent;}}if(P){S[0]-=R.ownerDocument.body.offsetLeft;S[1]-=R.ownerDocument.body.offsetTop;}Q=R.parentNode;while(Q.tagName&&!E.ROOT_TAG.test(Q.tagName)){if(B.Dom.getStyle(Q,"display").search(/^inline|table-row.*$/i)){S[0]-=Q.scrollLeft;S[1]-=Q.scrollTop;}Q=Q.parentNode;}return S;};}}();})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this[0]=B;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top);var D=Math.min(this.right,E.right);var A=Math.min(this.bottom,E.bottom);var B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top);var D=Math.max(this.right,E.right);var A=Math.max(this.bottom,E.bottom);var B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D);var C=F[1];var E=F[0]+D.offsetWidth;var A=F[1]+D.offsetHeight;var B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}this.x=this.right=this.left=this[0]=A;this.y=this.top=this.bottom=this[1]=B;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.5.0",build:"895"});YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){var D=this.subscribers.length;if(!D&&this.silent){return true;}var H=[],F=true,C,I=false;for(C=0;C<arguments.length;++C){H.push(arguments[C]);}if(!this.silent){}for(C=0;C<D;++C){var L=this.subscribers[C];if(!L){I=true;}else{if(!this.silent){}var K=L.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var A=null;if(H.length>0){A=H[0];}try{F=L.fn.call(K,A,L.obj);}catch(E){this.lastError=E;}}else{try{F=L.fn.call(K,this.type,H,L.obj);}catch(G){this.lastError=G;}}if(false===F){if(!this.silent){}return false;}}}if(I){var J=[],B=this.subscribers;for(C=0,D=B.length;C<D;C=C+1){J.push(B[C]);}this.subscribers=J;}return true;},unsubscribeAll:function(){for(var B=0,A=this.subscribers.length;B<A;++B){this._delete(A-1-B);}this.subscribers=[];return B;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers[A]=null;},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,startInterval:function(){if(!this._interval){var K=this;var L=function(){K._tryPreloadAttach();};this._interval=setInterval(L,this.POLL_INTERVAL);}},onAvailable:function(P,M,Q,O,N){var K=(YAHOO.lang.isString(P))?[P]:P;for(var L=0;L<K.length;L=L+1){F.push({id:K[L],fn:M,obj:Q,override:O,checkReady:N});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(M,K,N,L){this.onAvailable(M,K,N,L,true);},onDOMReady:function(K,M,L){if(this.DOMReady){setTimeout(function(){var N=window;if(L){if(L===true){N=M;}else{N=L;}}K.call(N,"DOMReady",[],M);},0);}else{this.DOMReadyEvent.subscribe(K,M,L);}},addListener:function(M,K,V,Q,L){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var R=0,T=M.length;R<T;++R){W=this.on(M[R],K,V,Q,L)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var P=this.getEl(M);if(P){M=P;}else{this.onAvailable(M,function(){YAHOO.util.Event.on(M,K,V,Q,L);});return true;}}}if(!M){return false;}if("unload"==K&&Q!==this){J[J.length]=[M,K,V,Q,L];return true;}var Y=M;if(L){if(L===true){Y=Q;}else{Y=L;}}var N=function(Z){return V.call(Y,YAHOO.util.Event.getEvent(Z,M),Q);};var X=[M,K,V,N,Y,Q,L];var S=I.length;I[S]=X;if(this.useLegacyEvent(M,K)){var O=this.getLegacyIndex(M,K);if(O==-1||M!=G[O][0]){O=G.length;B[M.id+K]=O;G[O]=[M,K,M["on"+K]];E[O]=[];M["on"+K]=function(Z){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(Z),O);};}E[O].push(X);}else{try{this._simpleAdd(M,K,N,false);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}}return true;},fireLegacyEvent:function(O,M){var Q=true,K,S,R,T,P;S=E[M];for(var L=0,N=S.length;L<N;++L){R=S[L];if(R&&R[this.WFN]){T=R[this.ADJ_SCOPE];P=R[this.WFN].call(T,O);Q=(Q&&P);}}K=G[M];if(K&&K[2]){K[2](O);}return Q;},getLegacyIndex:function(L,M){var K=this.generateId(L)+M;if(typeof B[K]=="undefined"){return -1;}else{return B[K];}},useLegacyEvent:function(L,M){if(this.webkit&&("click"==M||"dblclick"==M)){var K=parseInt(this.webkit,10);if(!isNaN(K)&&K<418){return true;}}return false;},removeListener:function(L,K,T){var O,R,V;if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var U=true;for(O=0,R=L.length;O<R;++O){U=(this.removeListener(L[O],K,T)&&U);}return U;}}if(!T||!T.call){return this.purgeElement(L,false,K);}if("unload"==K){for(O=0,R=J.length;O<R;O++){V=J[O];if(V&&V[0]==L&&V[1]==K&&V[2]==T){J[O]=null;return true;}}return false;}var P=null;var Q=arguments[3];if("undefined"===typeof Q){Q=this._getCacheIndex(L,K,T);}if(Q>=0){P=I[Q];}if(!L||!P){return false;}if(this.useLegacyEvent(L,K)){var N=this.getLegacyIndex(L,K);var M=E[N];if(M){for(O=0,R=M.length;O<R;++O){V=M[O];if(V&&V[this.EL]==L&&V[this.TYPE]==K&&V[this.FN]==T){M[O]=null;break;}}}}else{try{this._simpleRemove(L,K,P[this.WFN],false);}catch(S){this.lastError=S;return false;}}delete I[Q][this.WFN];delete I[Q][this.FN];I[Q]=null;return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;
},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;}else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in D)){K=D[K];}return K;},_getCacheIndex:function(O,P,N){for(var M=0,L=I.length;M<L;++M){var K=I[M];if(K&&K[this.FN]==N&&K[this.EL]==O&&K[this.TYPE]==P){return M;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+A;++A;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(L){if(!H){H=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(this.locked){return false;}if(this.isIE){if(!this.DOMReady){this.startInterval();return false;}}this.locked=true;var P=!H;if(!P){P=(C>0);}var O=[];var Q=function(S,T){var R=S;if(T.override){if(T.override===true){R=T.obj;}else{R=T.override;}}T.fn.call(R,T.obj);};var L,K,N,M;for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&!N.checkReady){M=this.getEl(N.id);if(M){Q(M,N);F[L]=null;}else{O.push(N);}}}for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&N.checkReady){M=this.getEl(N.id);if(M){if(H||M.nextSibling){Q(M,N);F[L]=null;}}else{O.push(N);}}}C=(O.length===0)?0:C-1;if(P){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;return true;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=0,K=Q.length;N<K;++N){var L=Q[N];this.removeListener(M,L.type,L.fn,L.index);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[I,J];}else{if(K==="unload"){L=[J];}else{L=[I];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T&&T.length>0){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(R){var Q=YAHOO.util.Event,O,N,L,K,M;for(O=0,K=J.length;O<K;++O){L=J[O];if(L){var P=window;if(L[Q.ADJ_SCOPE]){if(L[Q.ADJ_SCOPE]===true){P=L[Q.UNLOAD_OBJ];}else{P=L[Q.ADJ_SCOPE];}}L[Q.FN].call(P,Q.getEvent(R,L[Q.EL]),L[Q.UNLOAD_OBJ]);J[O]=null;L=null;P=null;}}J=null;if(I&&I.length>0){N=I.length;while(N){M=N-1;L=I[M];if(L){Q.removeListener(L[Q.EL],L[Q.TYPE],L[Q.FN],M);}N--;}L=null;}G=null;Q._simpleRemove(window,"unload",Q._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;
/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);EU._dri=setInterval(function(){var n=document.createElement("p");try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){n=null;}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);
var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.5.0",build:"895"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.5.0", build: "895"});

// js/lib/yui/element/element-beta-min.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
YAHOO.util.Attribute=function(B,A){if(A){this.owner=A;this.configure(B,true);}};YAHOO.util.Attribute.prototype={name:undefined,value:null,owner:null,readOnly:false,writeOnce:false,_initialConfig:null,_written:false,method:null,validator:null,getValue:function(){return this.value;},setValue:function(F,B){var E;var A=this.owner;var C=this.name;var D={type:C,prevValue:this.getValue(),newValue:F};if(this.readOnly||(this.writeOnce&&this._written)){return false;}if(this.validator&&!this.validator.call(A,F)){return false;}if(!B){E=A.fireBeforeChangeEvent(D);if(E===false){return false;}}if(this.method){this.method.call(A,F);}this.value=F;this._written=true;D.type=C;if(!B){this.owner.fireChangeEvent(D);}return true;},configure:function(B,C){B=B||{};this._written=false;this._initialConfig=this._initialConfig||{};for(var A in B){if(A&&YAHOO.lang.hasOwnProperty(B,A)){this[A]=B[A];if(C){this._initialConfig[A]=B[A];}}}},resetValue:function(){return this.setValue(this._initialConfig.value);},resetConfig:function(){this.configure(this._initialConfig);},refresh:function(A){this.setValue(this.value,A);}};(function(){var A=YAHOO.util.Lang;YAHOO.util.AttributeProvider=function(){};YAHOO.util.AttributeProvider.prototype={_configs:null,get:function(C){this._configs=this._configs||{};var B=this._configs[C];if(!B){return undefined;}return B.value;},set:function(D,E,B){this._configs=this._configs||{};var C=this._configs[D];if(!C){return false;}return C.setValue(E,B);},getAttributeKeys:function(){this._configs=this._configs;var D=[];var B;for(var C in this._configs){B=this._configs[C];if(A.hasOwnProperty(this._configs,C)&&!A.isUndefined(B)){D[D.length]=C;}}return D;},setAttributes:function(D,B){for(var C in D){if(A.hasOwnProperty(D,C)){this.set(C,D[C],B);}}},resetValue:function(C,B){this._configs=this._configs||{};if(this._configs[C]){this.set(C,this._configs[C]._initialConfig.value,B);return true;}return false;},refresh:function(E,C){this._configs=this._configs;E=((A.isString(E))?[E]:E)||this.getAttributeKeys();for(var D=0,B=E.length;D<B;++D){if(this._configs[E[D]]&&!A.isUndefined(this._configs[E[D]].value)&&!A.isNull(this._configs[E[D]].value)){this._configs[E[D]].refresh(C);}}},register:function(B,C){this.setAttributeConfig(B,C);},getAttributeConfig:function(C){this._configs=this._configs||{};var B=this._configs[C]||{};var D={};for(C in B){if(A.hasOwnProperty(B,C)){D[C]=B[C];}}return D;},setAttributeConfig:function(B,C,D){this._configs=this._configs||{};C=C||{};if(!this._configs[B]){C.name=B;this._configs[B]=this.createAttribute(C);}else{this._configs[B].configure(C,D);}},configureAttribute:function(B,C,D){this.setAttributeConfig(B,C,D);},resetAttributeConfig:function(B){this._configs=this._configs||{};this._configs[B].resetConfig();},subscribe:function(B,C){this._events=this._events||{};if(!(B in this._events)){this._events[B]=this.createEvent(B);}YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){this.subscribe.apply(this,arguments);},addListener:function(){this.subscribe.apply(this,arguments);},fireBeforeChangeEvent:function(C){var B="before";B+=C.type.charAt(0).toUpperCase()+C.type.substr(1)+"Change";C.type=B;return this.fireEvent(C.type,C);},fireChangeEvent:function(B){B.type+="Change";return this.fireEvent(B.type,B);},createAttribute:function(B){return new YAHOO.util.Attribute(B,this);}};YAHOO.augment(YAHOO.util.AttributeProvider,YAHOO.util.EventProvider);})();(function(){var D=YAHOO.util.Dom,F=YAHOO.util.AttributeProvider;YAHOO.util.Element=function(G,H){if(arguments.length){this.init(G,H);}};YAHOO.util.Element.prototype={DOM_EVENTS:null,appendChild:function(G){G=G.get?G.get("element"):G;this.get("element").appendChild(G);},getElementsByTagName:function(G){return this.get("element").getElementsByTagName(G);},hasChildNodes:function(){return this.get("element").hasChildNodes();},insertBefore:function(G,H){G=G.get?G.get("element"):G;H=(H&&H.get)?H.get("element"):H;this.get("element").insertBefore(G,H);},removeChild:function(G){G=G.get?G.get("element"):G;this.get("element").removeChild(G);return true;},replaceChild:function(G,H){G=G.get?G.get("element"):G;H=H.get?H.get("element"):H;return this.get("element").replaceChild(G,H);},initAttributes:function(G){},addListener:function(K,J,L,I){var H=this.get("element");I=I||this;H=this.get("id")||H;var G=this;if(!this._events[K]){if(this.DOM_EVENTS[K]){YAHOO.util.Event.addListener(H,K,function(M){if(M.srcElement&&!M.target){M.target=M.srcElement;}G.fireEvent(K,M);},L,I);}this.createEvent(K,this);}YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){this.addListener.apply(this,arguments);},subscribe:function(){this.addListener.apply(this,arguments);},removeListener:function(H,G){this.unsubscribe.apply(this,arguments);},addClass:function(G){D.addClass(this.get("element"),G);},getElementsByClassName:function(H,G){return D.getElementsByClassName(H,G,this.get("element"));},hasClass:function(G){return D.hasClass(this.get("element"),G);},removeClass:function(G){return D.removeClass(this.get("element"),G);},replaceClass:function(H,G){return D.replaceClass(this.get("element"),H,G);},setStyle:function(I,H){var G=this.get("element");if(!G){return this._queue[this._queue.length]=["setStyle",arguments];}return D.setStyle(G,I,H);},getStyle:function(G){return D.getStyle(this.get("element"),G);},fireQueue:function(){var H=this._queue;for(var I=0,G=H.length;I<G;++I){this[H[I][0]].apply(this,H[I][1]);}},appendTo:function(H,I){H=(H.get)?H.get("element"):D.get(H);this.fireEvent("beforeAppendTo",{type:"beforeAppendTo",target:H});I=(I&&I.get)?I.get("element"):D.get(I);var G=this.get("element");if(!G){return false;}if(!H){return false;}if(G.parent!=H){if(I){H.insertBefore(G,I);}else{H.appendChild(G);}}this.fireEvent("appendTo",{type:"appendTo",target:H});},get:function(G){var I=this._configs||{};var H=I.element;if(H&&!I[G]&&!YAHOO.lang.isUndefined(H.value[G])){return H.value[G];}return F.prototype.get.call(this,G);},setAttributes:function(L,H){var K=this.get("element");
for(var J in L){if(!this._configs[J]&&!YAHOO.lang.isUndefined(K[J])){this.setAttributeConfig(J);}}for(var I=0,G=this._configOrder.length;I<G;++I){if(L[this._configOrder[I]]!==undefined){this.set(this._configOrder[I],L[this._configOrder[I]],H);}}},set:function(H,J,G){var I=this.get("element");if(!I){this._queue[this._queue.length]=["set",arguments];if(this._configs[H]){this._configs[H].value=J;}return ;}if(!this._configs[H]&&!YAHOO.lang.isUndefined(I[H])){C.call(this,H);}return F.prototype.set.apply(this,arguments);},setAttributeConfig:function(G,I,J){var H=this.get("element");if(H&&!this._configs[G]&&!YAHOO.lang.isUndefined(H[G])){C.call(this,G,I);}else{F.prototype.setAttributeConfig.apply(this,arguments);}this._configOrder.push(G);},getAttributeKeys:function(){var H=this.get("element");var I=F.prototype.getAttributeKeys.call(this);for(var G in H){if(!this._configs[G]){I[G]=I[G]||H[G];}}return I;},createEvent:function(H,G){this._events[H]=true;F.prototype.createEvent.apply(this,arguments);},init:function(H,G){A.apply(this,arguments);}};var A=function(H,G){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};this._configOrder=[];G=G||{};G.element=G.element||H||null;this.DOM_EVENTS={"click":true,"dblclick":true,"keydown":true,"keypress":true,"keyup":true,"mousedown":true,"mousemove":true,"mouseout":true,"mouseover":true,"mouseup":true,"focus":true,"blur":true,"submit":true};var I=false;if(YAHOO.lang.isString(H)){C.call(this,"id",{value:G.element});}if(D.get(H)){I=true;E.call(this,G);B.call(this,G);}YAHOO.util.Event.onAvailable(G.element,function(){if(!I){E.call(this,G);}this.fireEvent("available",{type:"available",target:G.element});},this,true);YAHOO.util.Event.onContentReady(G.element,function(){if(!I){B.call(this,G);}this.fireEvent("contentReady",{type:"contentReady",target:G.element});},this,true);};var E=function(G){this.setAttributeConfig("element",{value:D.get(G.element),readOnly:true});};var B=function(G){this.initAttributes(G);this.setAttributes(G,true);this.fireQueue();};var C=function(G,I){var H=this.get("element");I=I||{};I.name=G;I.method=I.method||function(J){H[G]=J;};I.value=I.value||H[G];this._configs[G]=new YAHOO.util.Attribute(I,this);};YAHOO.augment(YAHOO.util.Element,F);})();YAHOO.register("element",YAHOO.util.Element,{version:"2.5.0",build:"895"});
// js/lib/yui/animation/animation-min.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
(function(){var B=YAHOO.util;var A=function(D,C,E,F){if(!D){}this.init(D,C,E,F);};A.NAME="Anim";A.prototype={toString:function(){var C=this.getEl()||{};var D=C.id||C.tagName;return(this.constructor.NAME+": "+D);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(C,E,D){return this.method(this.currentFrame,E,D-E,this.totalFrames);},setAttribute:function(C,E,D){if(this.patterns.noNegatives.test(C)){E=(E>0)?E:0;}B.Dom.setStyle(this.getEl(),C,E+D);},getAttribute:function(C){var E=this.getEl();var G=B.Dom.getStyle(E,C);if(G!=="auto"&&!this.patterns.offsetUnit.test(G)){return parseFloat(G);}var D=this.patterns.offsetAttribute.exec(C)||[];var H=!!(D[3]);var F=!!(D[2]);if(F||(B.Dom.getStyle(E,"position")=="absolute"&&H)){G=E["offset"+D[0].charAt(0).toUpperCase()+D[0].substr(1)];}else{G=0;}return G;},getDefaultUnit:function(C){if(this.patterns.defaultUnit.test(C)){return"px";}return"";},setRuntimeAttribute:function(D){var I;var E;var F=this.attributes;this.runtimeAttributes[D]={};var H=function(J){return(typeof J!=="undefined");};if(!H(F[D]["to"])&&!H(F[D]["by"])){return false;}I=(H(F[D]["from"]))?F[D]["from"]:this.getAttribute(D);if(H(F[D]["to"])){E=F[D]["to"];}else{if(H(F[D]["by"])){if(I.constructor==Array){E=[];for(var G=0,C=I.length;G<C;++G){E[G]=I[G]+F[D]["by"][G]*1;}}else{E=I+F[D]["by"]*1;}}}this.runtimeAttributes[D].start=I;this.runtimeAttributes[D].end=E;this.runtimeAttributes[D].unit=(H(F[D].unit))?F[D]["unit"]:this.getDefaultUnit(D);return true;},init:function(E,J,I,C){var D=false;var F=null;var H=0;E=B.Dom.get(E);this.attributes=J||{};this.duration=!YAHOO.lang.isUndefined(I)?I:1;this.method=C||B.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=B.AnimMgr.fps;this.setEl=function(M){E=B.Dom.get(M);};this.getEl=function(){return E;};this.isAnimated=function(){return D;};this.getStartTime=function(){return F;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(B.AnimMgr.fps*this.duration):this.duration;if(this.duration===0&&this.useSeconds){this.totalFrames=1;}B.AnimMgr.registerElement(this);return true;};this.stop=function(M){if(!this.isAnimated()){return false;}if(M){this.currentFrame=this.totalFrames;this._onTween.fire();}B.AnimMgr.stop(this);};var L=function(){this.onStart.fire();this.runtimeAttributes={};for(var M in this.attributes){this.setRuntimeAttribute(M);}D=true;H=0;F=new Date();};var K=function(){var O={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};O.toString=function(){return("duration: "+O.duration+", currentFrame: "+O.currentFrame);};this.onTween.fire(O);var N=this.runtimeAttributes;for(var M in N){this.setAttribute(M,this.doMethod(M,N[M].start,N[M].end),N[M].unit);}H+=1;};var G=function(){var M=(new Date()-F)/1000;var N={duration:M,frames:H,fps:H/M};N.toString=function(){return("duration: "+N.duration+", frames: "+N.frames+", fps: "+N.fps);};D=false;H=0;this.onComplete.fire(N);};this._onStart=new B.CustomEvent("_start",this,true);this.onStart=new B.CustomEvent("start",this);this.onTween=new B.CustomEvent("tween",this);this._onTween=new B.CustomEvent("_tween",this,true);this.onComplete=new B.CustomEvent("complete",this);this._onComplete=new B.CustomEvent("_complete",this,true);this._onStart.subscribe(L);this._onTween.subscribe(K);this._onComplete.subscribe(G);}};B.Anim=A;})();YAHOO.util.AnimMgr=new function(){var C=null;var B=[];var A=0;this.fps=1000;this.delay=1;this.registerElement=function(F){B[B.length]=F;A+=1;F._onStart.fire();this.start();};this.unRegister=function(G,F){F=F||E(G);if(!G.isAnimated()||F==-1){return false;}G._onComplete.fire();B.splice(F,1);A-=1;if(A<=0){this.stop();}return true;};this.start=function(){if(C===null){C=setInterval(this.run,this.delay);}};this.stop=function(H){if(!H){clearInterval(C);for(var G=0,F=B.length;G<F;++G){this.unRegister(B[0],0);}B=[];C=null;A=0;}else{this.unRegister(H);}};this.run=function(){for(var H=0,F=B.length;H<F;++H){var G=B[H];if(!G||!G.isAnimated()){continue;}if(G.currentFrame<G.totalFrames||G.totalFrames===null){G.currentFrame+=1;if(G.useSeconds){D(G);}G._onTween.fire();}else{YAHOO.util.AnimMgr.stop(G,H);}}};var E=function(H){for(var G=0,F=B.length;G<F;++G){if(B[G]==H){return G;}}return -1;};var D=function(G){var J=G.totalFrames;var I=G.currentFrame;var H=(G.currentFrame*G.duration*1000/G.totalFrames);var F=(new Date()-G.getStartTime());var K=0;if(F<G.duration*1000){K=Math.round((F/H-1)*G.currentFrame);}else{K=J-(I+1);}if(K>0&&isFinite(K)){if(G.currentFrame+K>=J){K=J-(I+1);}G.currentFrame+=K;}};};YAHOO.util.Bezier=new function(){this.getPosition=function(E,D){var F=E.length;var C=[];for(var B=0;B<F;++B){C[B]=[E[B][0],E[B][1]];}for(var A=1;A<F;++A){for(B=0;B<F-A;++B){C[B][0]=(1-D)*C[B][0]+D*C[parseInt(B+1,10)][0];C[B][1]=(1-D)*C[B][1]+D*C[parseInt(B+1,10)][1];}}return[C[0][0],C[0][1]];};};(function(){var A=function(F,E,G,H){A.superclass.constructor.call(this,F,E,G,H);};A.NAME="ColorAnim";var C=YAHOO.util;YAHOO.extend(A,C.Anim);var D=A.superclass;var B=A.prototype;B.patterns.color=/color$/i;B.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;B.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;B.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;B.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;B.parseColor=function(E){if(E.length==3){return E;}var F=this.patterns.hex.exec(E);if(F&&F.length==4){return[parseInt(F[1],16),parseInt(F[2],16),parseInt(F[3],16)];}F=this.patterns.rgb.exec(E);if(F&&F.length==4){return[parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10)];}F=this.patterns.hex3.exec(E);if(F&&F.length==4){return[parseInt(F[1]+F[1],16),parseInt(F[2]+F[2],16),parseInt(F[3]+F[3],16)];}return null;};B.getAttribute=function(E){var G=this.getEl();if(this.patterns.color.test(E)){var H=YAHOO.util.Dom.getStyle(G,E);
if(this.patterns.transparent.test(H)){var F=G.parentNode;H=C.Dom.getStyle(F,E);while(F&&this.patterns.transparent.test(H)){F=F.parentNode;H=C.Dom.getStyle(F,E);if(F.tagName.toUpperCase()=="HTML"){H="#fff";}}}}else{H=D.getAttribute.call(this,E);}return H;};B.doMethod=function(F,J,G){var I;if(this.patterns.color.test(F)){I=[];for(var H=0,E=J.length;H<E;++H){I[H]=D.doMethod.call(this,F,J[H],G[H]);}I="rgb("+Math.floor(I[0])+","+Math.floor(I[1])+","+Math.floor(I[2])+")";}else{I=D.doMethod.call(this,F,J,G);}return I;};B.setRuntimeAttribute=function(F){D.setRuntimeAttribute.call(this,F);if(this.patterns.color.test(F)){var H=this.attributes;var J=this.parseColor(this.runtimeAttributes[F].start);var G=this.parseColor(this.runtimeAttributes[F].end);if(typeof H[F]["to"]==="undefined"&&typeof H[F]["by"]!=="undefined"){G=this.parseColor(H[F].by);for(var I=0,E=J.length;I<E;++I){G[I]=J[I]+G[I];}}this.runtimeAttributes[F].start=J;this.runtimeAttributes[F].end=G;}};C.ColorAnim=A;})();
/*
TERMS OF USE - EASING EQUATIONS
Open source under the BSD License.
Copyright 2001 Robert Penner All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
 * Neither the name of the author nor the names of contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
YAHOO.util.Easing={easeNone:function(B,A,D,C){return D*B/C+A;},easeIn:function(B,A,D,C){return D*(B/=C)*B+A;},easeOut:function(B,A,D,C){return -D*(B/=C)*(B-2)+A;},easeBoth:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B+A;}return -D/2*((--B)*(B-2)-1)+A;},easeInStrong:function(B,A,D,C){return D*(B/=C)*B*B*B+A;},easeOutStrong:function(B,A,D,C){return -D*((B=B/C-1)*B*B*B-1)+A;},easeBothStrong:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B*B*B+A;}return -D/2*((B-=2)*B*B*B-2)+A;},elasticIn:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return -(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;},elasticOut:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return B*Math.pow(2,-10*C)*Math.sin((C*F-D)*(2*Math.PI)/E)+G+A;},elasticBoth:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F/2)==2){return A+G;}if(!E){E=F*(0.3*1.5);}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}if(C<1){return -0.5*(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;}return B*Math.pow(2,-10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E)*0.5+G+A;},backIn:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*(B/=D)*B*((C+1)*B-C)+A;},backOut:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*((B=B/D-1)*B*((C+1)*B+C)+1)+A;},backBoth:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}if((B/=D/2)<1){return E/2*(B*B*(((C*=(1.525))+1)*B-C))+A;}return E/2*((B-=2)*B*(((C*=(1.525))+1)*B+C)+2)+A;},bounceIn:function(B,A,D,C){return D-YAHOO.util.Easing.bounceOut(C-B,0,D,C)+A;},bounceOut:function(B,A,D,C){if((B/=C)<(1/2.75)){return D*(7.5625*B*B)+A;}else{if(B<(2/2.75)){return D*(7.5625*(B-=(1.5/2.75))*B+0.75)+A;}else{if(B<(2.5/2.75)){return D*(7.5625*(B-=(2.25/2.75))*B+0.9375)+A;}}}return D*(7.5625*(B-=(2.625/2.75))*B+0.984375)+A;},bounceBoth:function(B,A,D,C){if(B<C/2){return YAHOO.util.Easing.bounceIn(B*2,0,D,C)*0.5+A;}return YAHOO.util.Easing.bounceOut(B*2-C,0,D,C)*0.5+D*0.5+A;}};(function(){var A=function(H,G,I,J){if(H){A.superclass.constructor.call(this,H,G,I,J);}};A.NAME="Motion";var E=YAHOO.util;YAHOO.extend(A,E.ColorAnim);var F=A.superclass;var C=A.prototype;C.patterns.points=/^points$/i;C.setAttribute=function(G,I,H){if(this.patterns.points.test(G)){H=H||"px";F.setAttribute.call(this,"left",I[0],H);F.setAttribute.call(this,"top",I[1],H);}else{F.setAttribute.call(this,G,I,H);}};C.getAttribute=function(G){if(this.patterns.points.test(G)){var H=[F.getAttribute.call(this,"left"),F.getAttribute.call(this,"top")];}else{H=F.getAttribute.call(this,G);}return H;};C.doMethod=function(G,K,H){var J=null;if(this.patterns.points.test(G)){var I=this.method(this.currentFrame,0,100,this.totalFrames)/100;J=E.Bezier.getPosition(this.runtimeAttributes[G],I);}else{J=F.doMethod.call(this,G,K,H);}return J;};C.setRuntimeAttribute=function(P){if(this.patterns.points.test(P)){var H=this.getEl();var J=this.attributes;var G;var L=J["points"]["control"]||[];var I;var M,O;if(L.length>0&&!(L[0] instanceof Array)){L=[L];}else{var K=[];for(M=0,O=L.length;M<O;++M){K[M]=L[M];}L=K;}if(E.Dom.getStyle(H,"position")=="static"){E.Dom.setStyle(H,"position","relative");}if(D(J["points"]["from"])){E.Dom.setXY(H,J["points"]["from"]);}else{E.Dom.setXY(H,E.Dom.getXY(H));}G=this.getAttribute("points");if(D(J["points"]["to"])){I=B.call(this,J["points"]["to"],G);
var N=E.Dom.getXY(this.getEl());for(M=0,O=L.length;M<O;++M){L[M]=B.call(this,L[M],G);}}else{if(D(J["points"]["by"])){I=[G[0]+J["points"]["by"][0],G[1]+J["points"]["by"][1]];for(M=0,O=L.length;M<O;++M){L[M]=[G[0]+L[M][0],G[1]+L[M][1]];}}}this.runtimeAttributes[P]=[G];if(L.length>0){this.runtimeAttributes[P]=this.runtimeAttributes[P].concat(L);}this.runtimeAttributes[P][this.runtimeAttributes[P].length]=I;}else{F.setRuntimeAttribute.call(this,P);}};var B=function(G,I){var H=E.Dom.getXY(this.getEl());G=[G[0]-H[0]+I[0],G[1]-H[1]+I[1]];return G;};var D=function(G){return(typeof G!=="undefined");};E.Motion=A;})();(function(){var D=function(F,E,G,H){if(F){D.superclass.constructor.call(this,F,E,G,H);}};D.NAME="Scroll";var B=YAHOO.util;YAHOO.extend(D,B.ColorAnim);var C=D.superclass;var A=D.prototype;A.doMethod=function(E,H,F){var G=null;if(E=="scroll"){G=[this.method(this.currentFrame,H[0],F[0]-H[0],this.totalFrames),this.method(this.currentFrame,H[1],F[1]-H[1],this.totalFrames)];}else{G=C.doMethod.call(this,E,H,F);}return G;};A.getAttribute=function(E){var G=null;var F=this.getEl();if(E=="scroll"){G=[F.scrollLeft,F.scrollTop];}else{G=C.getAttribute.call(this,E);}return G;};A.setAttribute=function(E,H,G){var F=this.getEl();if(E=="scroll"){F.scrollLeft=H[0];F.scrollTop=H[1];}else{C.setAttribute.call(this,E,H,G);}};B.Scroll=D;})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.5.0",build:"895"});
// js/lib/yui/connection/connection-min.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
YAHOO.util.Connect={_msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",_default_form_header:"application/x-www-form-urlencoded",_use_default_xhr_header:true,_default_xhr_header:"XMLHttpRequest",_has_default_headers:true,_default_headers:{},_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,_submitElementValue:null,_hasSubmitListener:(function(){if(YAHOO.util.Event){YAHOO.util.Event.addListener(document,"click",function(B){var A=YAHOO.util.Event.getTarget(B);if(A.nodeName.toLowerCase()=="input"&&(A.type&&A.type.toLowerCase()=="submit")){YAHOO.util.Connect._submitElementValue=encodeURIComponent(A.name)+"="+encodeURIComponent(A.value);}});return true;}return false;})(),startEvent:new YAHOO.util.CustomEvent("start"),completeEvent:new YAHOO.util.CustomEvent("complete"),successEvent:new YAHOO.util.CustomEvent("success"),failureEvent:new YAHOO.util.CustomEvent("failure"),uploadEvent:new YAHOO.util.CustomEvent("upload"),abortEvent:new YAHOO.util.CustomEvent("abort"),_customEvents:{onStart:["startEvent","start"],onComplete:["completeEvent","complete"],onSuccess:["successEvent","success"],onFailure:["failureEvent","failure"],onUpload:["uploadEvent","upload"],onAbort:["abortEvent","abort"]},setProgId:function(A){this._msxml_progid.unshift(A);},setDefaultPostHeader:function(A){if(typeof A=="string"){this._default_post_header=A;}else{if(typeof A=="boolean"){this._use_default_post_header=A;}}},setDefaultXhrHeader:function(A){if(typeof A=="string"){this._default_xhr_header=A;}else{this._use_default_xhr_header=A;}},setPollingInterval:function(A){if(typeof A=="number"&&isFinite(A)){this._polling_interval=A;}},createXhrObject:function(E){var D,A;try{A=new XMLHttpRequest();D={conn:A,tId:E};}catch(C){for(var B=0;B<this._msxml_progid.length;++B){try{A=new ActiveXObject(this._msxml_progid[B]);D={conn:A,tId:E};break;}catch(C){}}}finally{return D;}},getConnectionObject:function(A){var C;var D=this._transaction_id;try{if(!A){C=this.createXhrObject(D);}else{C={};C.tId=D;C.isUpload=true;}if(C){this._transaction_id++;}}catch(B){}finally{return C;}},asyncRequest:function(F,C,E,A){var D=(this._isFileUpload)?this.getConnectionObject(true):this.getConnectionObject();var B=(E&&E.argument)?E.argument:null;if(!D){return null;}else{if(E&&E.customevents){this.initCustomEvents(D,E);}if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(D,E,C,A);return D;}if(F.toUpperCase()=="GET"){if(this._sFormData.length!==0){C+=((C.indexOf("?")==-1)?"?":"&")+this._sFormData;}}else{if(F.toUpperCase()=="POST"){A=A?this._sFormData+"&"+A:this._sFormData;}}}if(F.toUpperCase()=="GET"&&(E&&E.cache===false)){C+=((C.indexOf("?")==-1)?"?":"&")+"rnd="+new Date().valueOf().toString();}D.conn.open(F,C,true);if(this._use_default_xhr_header){if(!this._default_headers["X-Requested-With"]){this.initHeader("X-Requested-With",this._default_xhr_header,true);}}if((F.toUpperCase()=="POST"&&this._use_default_post_header)&&this._isFormSubmit===false){this.initHeader("Content-Type",this._default_post_header);}if(this._has_default_headers||this._has_http_headers){this.setHeader(D);}this.handleReadyState(D,E);D.conn.send(A||"");if(this._isFormSubmit===true){this.resetFormState();}this.startEvent.fire(D,B);if(D.startEvent){D.startEvent.fire(D,B);}return D;}},initCustomEvents:function(A,C){for(var B in C.customevents){if(this._customEvents[B][0]){A[this._customEvents[B][0]]=new YAHOO.util.CustomEvent(this._customEvents[B][1],(C.scope)?C.scope:null);A[this._customEvents[B][0]].subscribe(C.customevents[B]);}}},handleReadyState:function(C,D){var B=this;var A=(D&&D.argument)?D.argument:null;if(D&&D.timeout){this._timeOut[C.tId]=window.setTimeout(function(){B.abort(C,D,true);},D.timeout);}this._poll[C.tId]=window.setInterval(function(){if(C.conn&&C.conn.readyState===4){window.clearInterval(B._poll[C.tId]);delete B._poll[C.tId];if(D&&D.timeout){window.clearTimeout(B._timeOut[C.tId]);delete B._timeOut[C.tId];}B.completeEvent.fire(C,A);if(C.completeEvent){C.completeEvent.fire(C,A);}B.handleTransactionResponse(C,D);}},this._polling_interval);},handleTransactionResponse:function(F,G,A){var D,C;var B=(G&&G.argument)?G.argument:null;try{if(F.conn.status!==undefined&&F.conn.status!==0){D=F.conn.status;}else{D=13030;}}catch(E){D=13030;}if(D>=200&&D<300||D===1223){C=this.createResponseObject(F,B);if(G&&G.success){if(!G.scope){G.success(C);}else{G.success.apply(G.scope,[C]);}}this.successEvent.fire(C);if(F.successEvent){F.successEvent.fire(C);}}else{switch(D){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:C=this.createExceptionObject(F.tId,B,(A?A:false));if(G&&G.failure){if(!G.scope){G.failure(C);}else{G.failure.apply(G.scope,[C]);}}break;default:C=this.createResponseObject(F,B);if(G&&G.failure){if(!G.scope){G.failure(C);}else{G.failure.apply(G.scope,[C]);}}}this.failureEvent.fire(C);if(F.failureEvent){F.failureEvent.fire(C);}}this.releaseObject(F);C=null;},createResponseObject:function(A,G){var D={};var I={};try{var C=A.conn.getAllResponseHeaders();var F=C.split("\n");for(var E=0;E<F.length;E++){var B=F[E].indexOf(":");if(B!=-1){I[F[E].substring(0,B)]=F[E].substring(B+2);}}}catch(H){}D.tId=A.tId;D.status=(A.conn.status==1223)?204:A.conn.status;D.statusText=(A.conn.status==1223)?"No Content":A.conn.statusText;D.getResponseHeader=I;D.getAllResponseHeaders=C;D.responseText=A.conn.responseText;D.responseXML=A.conn.responseXML;if(G){D.argument=G;}return D;},createExceptionObject:function(H,D,A){var F=0;var G="communication failure";var C=-1;var B="transaction aborted";var E={};E.tId=H;if(A){E.status=C;E.statusText=B;}else{E.status=F;E.statusText=G;}if(D){E.argument=D;}return E;},initHeader:function(A,D,C){var B=(C)?this._default_headers:this._http_headers;B[A]=D;if(C){this._has_default_headers=true;}else{this._has_http_headers=true;
}},setHeader:function(A){if(this._has_default_headers){for(var B in this._default_headers){if(YAHOO.lang.hasOwnProperty(this._default_headers,B)){A.conn.setRequestHeader(B,this._default_headers[B]);}}}if(this._has_http_headers){for(var B in this._http_headers){if(YAHOO.lang.hasOwnProperty(this._http_headers,B)){A.conn.setRequestHeader(B,this._http_headers[B]);}}delete this._http_headers;this._http_headers={};this._has_http_headers=false;}},resetDefaultHeaders:function(){delete this._default_headers;this._default_headers={};this._has_default_headers=false;},setForm:function(K,E,B){this.resetFormState();var J;if(typeof K=="string"){J=(document.getElementById(K)||document.forms[K]);}else{if(typeof K=="object"){J=K;}else{return ;}}if(E){var F=this.createFrame((window.location.href.toLowerCase().indexOf("https")===0||B)?true:false);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=J;return ;}var A,I,G,L;var H=false;for(var D=0;D<J.elements.length;D++){A=J.elements[D];L=A.disabled;I=A.name;G=A.value;if(!L&&I){switch(A.type){case"select-one":case"select-multiple":for(var C=0;C<A.options.length;C++){if(A.options[C].selected){if(window.ActiveXObject){this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(A.options[C].attributes["value"].specified?A.options[C].value:A.options[C].text)+"&";}else{this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(A.options[C].hasAttribute("value")?A.options[C].value:A.options[C].text)+"&";}}}break;case"radio":case"checkbox":if(A.checked){this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}break;case"file":case undefined:case"reset":case"button":break;case"submit":if(H===false){if(this._hasSubmitListener&&this._submitElementValue){this._sFormData+=this._submitElementValue+"&";}else{this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}H=true;}break;default:this._sFormData+=encodeURIComponent(I)+"="+encodeURIComponent(G)+"&";}}}this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);this.initHeader("Content-Type",this._default_form_header);return this._sFormData;},resetFormState:function(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";},createFrame:function(A){var B="yuiIO"+this._transaction_id;var C;if(window.ActiveXObject){C=document.createElement("<iframe id=\""+B+"\" name=\""+B+"\" />");if(typeof A=="boolean"){C.src="javascript:false";}}else{C=document.createElement("iframe");C.id=B;C.name=B;}C.style.position="absolute";C.style.top="-1000px";C.style.left="-1000px";document.body.appendChild(C);},appendPostData:function(A){var D=[];var B=A.split("&");for(var C=0;C<B.length;C++){var E=B[C].indexOf("=");if(E!=-1){D[C]=document.createElement("input");D[C].type="hidden";D[C].name=B[C].substring(0,E);D[C].value=B[C].substring(E+1);this._formNode.appendChild(D[C]);}}return D;},uploadFile:function(D,M,E,C){var N=this;var H="yuiIO"+D.tId;var I="multipart/form-data";var K=document.getElementById(H);var J=(M&&M.argument)?M.argument:null;var B={action:this._formNode.getAttribute("action"),method:this._formNode.getAttribute("method"),target:this._formNode.getAttribute("target")};this._formNode.setAttribute("action",E);this._formNode.setAttribute("method","POST");this._formNode.setAttribute("target",H);if(this._formNode.encoding){this._formNode.setAttribute("encoding",I);}else{this._formNode.setAttribute("enctype",I);}if(C){var L=this.appendPostData(C);}this._formNode.submit();this.startEvent.fire(D,J);if(D.startEvent){D.startEvent.fire(D,J);}if(M&&M.timeout){this._timeOut[D.tId]=window.setTimeout(function(){N.abort(D,M,true);},M.timeout);}if(L&&L.length>0){for(var G=0;G<L.length;G++){this._formNode.removeChild(L[G]);}}for(var A in B){if(YAHOO.lang.hasOwnProperty(B,A)){if(B[A]){this._formNode.setAttribute(A,B[A]);}else{this._formNode.removeAttribute(A);}}}this.resetFormState();var F=function(){if(M&&M.timeout){window.clearTimeout(N._timeOut[D.tId]);delete N._timeOut[D.tId];}N.completeEvent.fire(D,J);if(D.completeEvent){D.completeEvent.fire(D,J);}var P={};P.tId=D.tId;P.argument=M.argument;try{P.responseText=K.contentWindow.document.body?K.contentWindow.document.body.innerHTML:K.contentWindow.document.documentElement.textContent;P.responseXML=K.contentWindow.document.XMLDocument?K.contentWindow.document.XMLDocument:K.contentWindow.document;}catch(O){}if(M&&M.upload){if(!M.scope){M.upload(P);}else{M.upload.apply(M.scope,[P]);}}N.uploadEvent.fire(P);if(D.uploadEvent){D.uploadEvent.fire(P);}YAHOO.util.Event.removeListener(K,"load",F);setTimeout(function(){document.body.removeChild(K);N.releaseObject(D);},100);};YAHOO.util.Event.addListener(K,"load",F);},abort:function(E,G,A){var D;var B=(G&&G.argument)?G.argument:null;if(E&&E.conn){if(this.isCallInProgress(E)){E.conn.abort();window.clearInterval(this._poll[E.tId]);delete this._poll[E.tId];if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{if(E&&E.isUpload===true){var C="yuiIO"+E.tId;var F=document.getElementById(C);if(F){YAHOO.util.Event.removeListener(F,"load");document.body.removeChild(F);if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{D=false;}}if(D===true){this.abortEvent.fire(E,B);if(E.abortEvent){E.abortEvent.fire(E,B);}this.handleTransactionResponse(E,G,true);}return D;},isCallInProgress:function(B){if(B&&B.conn){return B.conn.readyState!==4&&B.conn.readyState!==0;}else{if(B&&B.isUpload===true){var A="yuiIO"+B.tId;return document.getElementById(A)?true:false;}else{return false;}}},releaseObject:function(A){if(A&&A.conn){A.conn=null;A=null;}}};YAHOO.register("connection",YAHOO.util.Connect,{version:"2.5.0",build:"895"});
// js/lib/yui/json/json-min.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
YAHOO.namespace("lang");YAHOO.lang.JSON={_ESCAPES:/\\./g,_VALUES:/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,_BRACKETS:/(?:^|:|,)(?:\s*\[)+/g,_INVALID:/^[\],:{}\s]*$/,_SPECIAL_CHARS:/["\\\x00-\x1f]/g,_PARSE_DATE:/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/,_CHARS:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},_applyFilter:function(C,B){var A=function(E,D){var F,G;if(D&&typeof D==="object"){for(F in D){if(YAHOO.lang.hasOwnProperty(D,F)){G=A(F,D[F]);if(G===undefined){delete D[F];}else{D[F]=G;}}}}return B(E,D);};if(YAHOO.lang.isFunction(B)){A("",C);}return C;},isValid:function(A){if(!YAHOO.lang.isString(A)){return false;}return this._INVALID.test(A.replace(this._ESCAPES,"@").replace(this._VALUES,"]").replace(this._BRACKETS,""));},dateToString:function(B){function A(C){return C<10?"0"+C:C;}return'"'+B.getUTCFullYear()+"-"+A(B.getUTCMonth()+1)+"-"+A(B.getUTCDate())+"T"+A(B.getUTCHours())+":"+A(B.getUTCMinutes())+":"+A(B.getUTCSeconds())+'Z"';},stringToDate:function(B){if(this._PARSE_DATE.test(B)){var A=new Date();A.setUTCFullYear(RegExp.$1,(RegExp.$2|0)-1,RegExp.$3);A.setUTCHours(RegExp.$4,RegExp.$5,RegExp.$6);return A;}},parse:function(s,filter){if(this.isValid(s)){return this._applyFilter(eval("("+s+")"),filter);}throw new SyntaxError("parseJSON");},stringify:function(C,K,F){var E=YAHOO.lang,H=E.JSON,D=H._CHARS,A=this._SPECIAL_CHARS,B=[];var I=function(N){if(!D[N]){var J=N.charCodeAt();D[N]="\\u00"+Math.floor(J/16).toString(16)+(J%16).toString(16);}return D[N];};var M=function(J){return'"'+J.replace(A,I)+'"';};var L=this.dateToString;var G=function(J,T,R){var W=typeof J,P,Q,O,N,U,V,S;if(W==="string"){return M(J);}if(W==="boolean"||J instanceof Boolean){return String(J);}if(W==="number"||J instanceof Number){return isFinite(J)?String(J):"null";}if(J instanceof Date){return L(J);}if(E.isArray(J)){for(P=B.length-1;P>=0;--P){if(B[P]===J){return"null";}}B[B.length]=J;S=[];if(R>0){for(P=J.length-1;P>=0;--P){S[P]=G(J[P],T,R-1);}}B.pop();return"["+S.join(",")+"]";}if(W==="object"&&J){for(P=B.length-1;P>=0;--P){if(B[P]===J){return"null";}}B[B.length]=J;S=[];if(R>0){if(T){for(P=0,O=0,Q=T.length;P<Q;++P){U=J[T[P]];V=typeof U;if(V!=="undefined"&&V!=="function"){S[O++]=M(T[P])+":"+G(U,T,R-1);}}}else{O=0;for(N in J){if(typeof N==="string"&&E.hasOwnProperty(J,N)){U=J[N];V=typeof U;if(V!=="undefined"&&V!=="function"){S[O++]=M(N)+":"+G(U,T,R-1);}}}}}B.pop();return"{"+S.join(",")+"}";}return"null";};F=F>=0?F:1/0;return G(C,K,F);}};YAHOO.register("json",YAHOO.lang.JSON,{version:"2.5.0",build:"895"});
// js/lib/yui/history/history-min.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
YAHOO.util.History=(function(){var C=null;var K=null;var F=false;var D=[];var B=[];function I(){var M,L;L=window.location.href;M=L.indexOf("#");return M>=0?L.substr(M+1):null;}function A(){var M,N,O=[],L=[];for(M in D){if(YAHOO.lang.hasOwnProperty(D,M)){N=D[M];O.push(M+"="+N.initialState);L.push(M+"="+N.currentState);}}K.value=O.join("&")+"|"+L.join("&");if(YAHOO.env.ua.webkit){K.value+="|"+B.join(",");}}function H(L){var Q,R,M,O,P,T,S,N;if(!L){for(M in D){if(YAHOO.lang.hasOwnProperty(D,M)){O=D[M];O.currentState=O.initialState;O.onStateChange(unescape(O.currentState));}}return ;}P=[];T=L.split("&");for(Q=0,R=T.length;Q<R;Q++){S=T[Q].split("=");if(S.length===2){M=S[0];N=S[1];P[M]=N;}}for(M in D){if(YAHOO.lang.hasOwnProperty(D,M)){O=D[M];N=P[M];if(!N||O.currentState!==N){O.currentState=N||O.initialState;O.onStateChange(unescape(O.currentState));}}}}function J(O){var L,N;L="<html><body><div id=\"state\">"+O+"</div></body></html>";try{N=C.contentWindow.document;N.open();N.write(L);N.close();return true;}catch(M){return false;}}function G(){var O,L,N,M;if(!C.contentWindow||!C.contentWindow.document){setTimeout(G,10);return ;}O=C.contentWindow.document;L=O.getElementById("state");N=L?L.innerText:null;M=I();setInterval(function(){var U,Q,R,S,T,P;O=C.contentWindow.document;L=O.getElementById("state");U=L?L.innerText:null;T=I();if(U!==N){N=U;H(N);if(!N){Q=[];for(R in D){if(YAHOO.lang.hasOwnProperty(D,R)){S=D[R];Q.push(R+"="+S.initialState);}}T=Q.join("&");}else{T=N;}window.location.hash=T;M=T;A();}else{if(T!==M){M=T;J(T);}}},50);F=true;YAHOO.util.History.onLoadEvent.fire();}function E(){var S,U,Q,W,M,O,V,P,T,N,L,R;Q=K.value.split("|");if(Q.length>1){V=Q[0].split("&");for(S=0,U=V.length;S<U;S++){W=V[S].split("=");if(W.length===2){M=W[0];P=W[1];O=D[M];if(O){O.initialState=P;}}}T=Q[1].split("&");for(S=0,U=T.length;S<U;S++){W=T[S].split("=");if(W.length>=2){M=W[0];N=W[1];O=D[M];if(O){O.currentState=N;}}}}if(Q.length>2){B=Q[2].split(",");}if(YAHOO.env.ua.ie){G();}else{L=history.length;R=I();setInterval(function(){var Z,X,Y;X=I();Y=history.length;if(X!==R){R=X;L=Y;H(R);A();}else{if(Y!==L&&YAHOO.env.ua.webkit){R=X;L=Y;Z=B[L-1];H(Z);A();}}},50);F=true;YAHOO.util.History.onLoadEvent.fire();}}return{onLoadEvent:new YAHOO.util.CustomEvent("onLoad"),onReady:function(M,N,L){if(F){setTimeout(function(){var O=window;if(L){if(L===true){O=N;}else{O=L;}}M.call(O,"onLoad",[],N);},0);}else{YAHOO.util.History.onLoadEvent.subscribe(M,N,L);}},register:function(O,L,Q,R,N){var P,M;if(typeof O!=="string"||YAHOO.lang.trim(O)===""||typeof L!=="string"||typeof Q!=="function"){throw new Error("Missing or invalid argument");}if(D[O]){return ;}if(F){throw new Error("All modules must be registered before calling YAHOO.util.History.initialize");}O=escape(O);L=escape(L);P=null;if(N===true){P=R;}else{P=N;}M=function(S){return Q.call(P,S,R);};D[O]={name:O,initialState:L,currentState:L,onStateChange:M};},initialize:function(L,M){if(F){return ;}if(YAHOO.env.ua.opera){throw new Error("Unsupported browser");}if(typeof L==="string"){L=document.getElementById(L);}if(!L||L.tagName!=="TEXTAREA"&&(L.tagName!=="INPUT"||L.type!=="hidden"&&L.type!=="text")){throw new Error("Missing or invalid argument");}K=L;if(YAHOO.env.ua.ie){if(typeof M==="string"){M=document.getElementById(M);}if(!M||M.tagName!=="IFRAME"){throw new Error("Missing or invalid argument");}C=M;}YAHOO.util.Event.onDOMReady(E);},navigate:function(M,N){var L;if(typeof M!=="string"||typeof N!=="string"){throw new Error("Missing or invalid argument");}L={};L[M]=N;return YAHOO.util.History.multiNavigate(L);},multiNavigate:function(M){var L,N,P,O,Q;if(typeof M!=="object"){throw new Error("Missing or invalid argument");}if(!F){throw new Error("The Browser History Manager is not initialized");}for(N in M){if(!D[N]){throw new Error("The following module has not been registered: "+N);}}L=[];for(N in D){if(YAHOO.lang.hasOwnProperty(D,N)){P=D[N];if(YAHOO.lang.hasOwnProperty(M,N)){O=M[N];}else{O=P.currentState;}N=escape(N);O=escape(O);L.push(N+"="+O);}}Q=L.join("&");if(YAHOO.env.ua.ie){return J(Q);}else{window.location.hash=Q;if(YAHOO.env.ua.webkit){B[history.length]=Q;A();}return true;}},getCurrentState:function(L){var M;if(typeof L!=="string"){throw new Error("Missing or invalid argument");}if(!F){throw new Error("The Browser History Manager is not initialized");}M=D[L];if(!M){throw new Error("No such registered module: "+L);}return unescape(M.currentState);},getBookmarkedState:function(Q){var P,M,L,S,N,R,O;if(typeof Q!=="string"){throw new Error("Missing or invalid argument");}L=window.location.href.indexOf("#");S=L>=0?window.location.href.substr(L+1):window.location.href;N=S.split("&");for(P=0,M=N.length;P<M;P++){R=N[P].split("=");if(R.length===2){O=R[0];if(O===Q){return unescape(R[1]);}}}return null;},getQueryStringParameter:function(Q,N){var O,M,L,S,R,P;N=N||window.location.href;L=N.indexOf("?");S=L>=0?N.substr(L+1):N;L=S.lastIndexOf("#");S=L>=0?S.substr(0,L):S;R=S.split("&");for(O=0,M=R.length;O<M;O++){P=R[O].split("=");if(P.length>=2){if(P[0]===Q){return unescape(P[1]);}}}return null;}};})();YAHOO.register("history",YAHOO.util.History,{version:"2.5.0",build:"895"});
// js/lib/yui/dragdrop/dragdrop-min.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var A=YAHOO.util.Event;return{ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,interactionInfo:null,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(D,C){for(var E in this.ids){for(var B in this.ids[E]){var F=this.ids[E][B];if(!this.isTypeOfDD(F)){continue;}F[D].apply(F,C);}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true);},_onResize:function(B){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,fromTimeout:false,regDragDrop:function(C,B){if(!this.initialized){this.init();}if(!this.ids[B]){this.ids[B]={};}this.ids[B][C.id]=C;},removeDDFromGroup:function(D,B){if(!this.ids[B]){this.ids[B]={};}var C=this.ids[B];if(C&&C[D.id]){delete C[D.id];}},_remove:function(C){for(var B in C.groups){if(B&&this.ids[B][C.id]){delete this.ids[B][C.id];}}delete this.handleIds[C.id];},regHandle:function(C,B){if(!this.handleIds[C]){this.handleIds[C]={};}this.handleIds[C][B]=B;},isDragDrop:function(B){return(this.getDDById(B))?true:false;},getRelated:function(G,C){var F=[];for(var E in G.groups){for(var D in this.ids[E]){var B=this.ids[E][D];if(!this.isTypeOfDD(B)){continue;}if(!C||B.isTarget){F[F.length]=B;}}}return F;},isLegalTarget:function(F,E){var C=this.getRelated(F,true);for(var D=0,B=C.length;D<B;++D){if(C[D].id==E.id){return true;}}return false;},isTypeOfDD:function(B){return(B&&B.__ygDragDrop);},isHandle:function(C,B){return(this.handleIds[C]&&this.handleIds[C][B]);},getDDById:function(C){for(var B in this.ids){if(this.ids[B][C]){return this.ids[B][C];}}return null;},handleMouseDown:function(D,C){this.currentTarget=YAHOO.util.Event.getTarget(D);this.dragCurrent=C;var B=C.getEl();this.startX=YAHOO.util.Event.getPageX(D);this.startY=YAHOO.util.Event.getPageY(D);this.deltaX=this.startX-B.offsetLeft;this.deltaY=this.startY-B.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var E=YAHOO.util.DDM;E.startDrag(E.startX,E.startY);E.fromTimeout=true;},this.clickTimeThresh);},startDrag:function(B,D){clearTimeout(this.clickTimeout);var C=this.dragCurrent;if(C&&C.events.b4StartDrag){C.b4StartDrag(B,D);C.fireEvent("b4StartDragEvent",{x:B,y:D});}if(C&&C.events.startDrag){C.startDrag(B,D);C.fireEvent("startDragEvent",{x:B,y:D});}this.dragThreshMet=true;},handleMouseUp:function(B){if(this.dragCurrent){clearTimeout(this.clickTimeout);if(this.dragThreshMet){if(this.fromTimeout){this.handleMouseMove(B);}this.fromTimeout=false;this.fireEvents(B,true);}else{}this.stopDrag(B);this.stopEvent(B);}},stopEvent:function(B){if(this.stopPropagation){YAHOO.util.Event.stopPropagation(B);}if(this.preventDefault){YAHOO.util.Event.preventDefault(B);}},stopDrag:function(D,C){var B=this.dragCurrent;if(B&&!C){if(this.dragThreshMet){if(B.events.b4EndDrag){B.b4EndDrag(D);B.fireEvent("b4EndDragEvent",{e:D});}if(B.events.endDrag){B.endDrag(D);B.fireEvent("endDragEvent",{e:D});}}if(B.events.mouseUp){B.onMouseUp(D);B.fireEvent("mouseUpEvent",{e:D});}}this.dragCurrent=null;this.dragOvers={};},handleMouseMove:function(E){var B=this.dragCurrent;if(B){if(YAHOO.util.Event.isIE&&!E.button){this.stopEvent(E);return this.handleMouseUp(E);}else{if(E.clientX<0||E.clientY<0){}}if(!this.dragThreshMet){var D=Math.abs(this.startX-YAHOO.util.Event.getPageX(E));var C=Math.abs(this.startY-YAHOO.util.Event.getPageY(E));if(D>this.clickPixelThresh||C>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(B&&B.events.b4Drag){B.b4Drag(E);B.fireEvent("b4DragEvent",{e:E});}if(B&&B.events.drag){B.onDrag(E);B.fireEvent("dragEvent",{e:E});}if(B){this.fireEvents(E,false);}}this.stopEvent(E);}},fireEvents:function(U,K){var Z=this.dragCurrent;if(!Z||Z.isLocked()||Z.dragOnly){return ;}var M=YAHOO.util.Event.getPageX(U),L=YAHOO.util.Event.getPageY(U),O=new YAHOO.util.Point(M,L),J=Z.getTargetCoord(O.x,O.y),E=Z.getDragEl(),D=["out","over","drop","enter"],T=new YAHOO.util.Region(J.y,J.x+E.offsetWidth,J.y+E.offsetHeight,J.x),H=[],C={},P=[],a={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var R in this.dragOvers){var c=this.dragOvers[R];if(!this.isTypeOfDD(c)){continue;}if(!this.isOverTarget(O,c,this.mode,T)){a.outEvts.push(c);}H[R]=true;delete this.dragOvers[R];}for(var Q in Z.groups){if("string"!=typeof Q){continue;}for(R in this.ids[Q]){var F=this.ids[Q][R];if(!this.isTypeOfDD(F)){continue;}if(F.isTarget&&!F.isLocked()&&F!=Z){if(this.isOverTarget(O,F,this.mode,T)){C[Q]=true;if(K){a.dropEvts.push(F);}else{if(!H[F.id]){a.enterEvts.push(F);}else{a.overEvts.push(F);}this.dragOvers[F.id]=F;}}}}}this.interactionInfo={out:a.outEvts,enter:a.enterEvts,over:a.overEvts,drop:a.dropEvts,point:O,draggedRegion:T,sourceRegion:this.locationCache[Z.id],validDrop:K};for(var B in C){P.push(B);}if(K&&!a.dropEvts.length){this.interactionInfo.validDrop=false;if(Z.events.invalidDrop){Z.onInvalidDrop(U);Z.fireEvent("invalidDropEvent",{e:U});}}for(R=0;R<D.length;R++){var X=null;if(a[D[R]+"Evts"]){X=a[D[R]+"Evts"];}if(X&&X.length){var G=D[R].charAt(0).toUpperCase()+D[R].substr(1),W="onDrag"+G,I="b4Drag"+G,N="drag"+G+"Event",V="drag"+G;if(this.mode){if(Z.events[I]){Z[I](U,X,P);Z.fireEvent(I+"Event",{event:U,info:X,group:P});}if(Z.events[V]){Z[W](U,X,P);Z.fireEvent(N,{event:U,info:X,group:P});}}else{for(var Y=0,S=X.length;Y<S;++Y){if(Z.events[I]){Z[I](U,X[Y].id,P[0]);Z.fireEvent(I+"Event",{event:U,info:X[Y].id,group:P[0]});}if(Z.events[V]){Z[W](U,X[Y].id,P[0]);Z.fireEvent(N,{event:U,info:X[Y].id,group:P[0]});}}}}}},getBestMatch:function(D){var F=null;
var C=D.length;if(C==1){F=D[0];}else{for(var E=0;E<C;++E){var B=D[E];if(this.mode==this.INTERSECT&&B.cursorIsOver){F=B;break;}else{if(!F||!F.overlap||(B.overlap&&F.overlap.getArea()<B.overlap.getArea())){F=B;}}}}return F;},refreshCache:function(C){var E=C||this.ids;for(var B in E){if("string"!=typeof B){continue;}for(var D in this.ids[B]){var F=this.ids[B][D];if(this.isTypeOfDD(F)){var G=this.getLocation(F);if(G){this.locationCache[F.id]=G;}else{delete this.locationCache[F.id];}}}}},verifyEl:function(C){try{if(C){var B=C.offsetParent;if(B){return true;}}}catch(D){}return false;},getLocation:function(G){if(!this.isTypeOfDD(G)){return null;}var E=G.getEl(),J,D,C,L,K,M,B,I,F;try{J=YAHOO.util.Dom.getXY(E);}catch(H){}if(!J){return null;}D=J[0];C=D+E.offsetWidth;L=J[1];K=L+E.offsetHeight;M=L-G.padding[0];B=C+G.padding[1];I=K+G.padding[2];F=D-G.padding[3];return new YAHOO.util.Region(M,B,I,F);},isOverTarget:function(J,B,D,E){var F=this.locationCache[B.id];if(!F||!this.useCache){F=this.getLocation(B);this.locationCache[B.id]=F;}if(!F){return false;}B.cursorIsOver=F.contains(J);var I=this.dragCurrent;if(!I||(!D&&!I.constrainX&&!I.constrainY)){return B.cursorIsOver;}B.overlap=null;if(!E){var G=I.getTargetCoord(J.x,J.y);var C=I.getDragEl();E=new YAHOO.util.Region(G.y,G.x+C.offsetWidth,G.y+C.offsetHeight,G.x);}var H=E.intersect(F);if(H){B.overlap=H;return(D)?true:B.cursorIsOver;}else{return false;}},_onUnload:function(C,B){this.unregAll();},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null;}this._execOnAll("unreg",[]);this.ids={};},elementCache:{},getElWrapper:function(C){var B=this.elementCache[C];if(!B||!B.el){B=this.elementCache[C]=new this.ElementWrapper(YAHOO.util.Dom.get(C));}return B;},getElement:function(B){return YAHOO.util.Dom.get(B);},getCss:function(C){var B=YAHOO.util.Dom.get(C);return(B)?B.style:null;},ElementWrapper:function(B){this.el=B||null;this.id=this.el&&B.id;this.css=this.el&&B.style;},getPosX:function(B){return YAHOO.util.Dom.getX(B);},getPosY:function(B){return YAHOO.util.Dom.getY(B);},swapNode:function(D,B){if(D.swapNode){D.swapNode(B);}else{var E=B.parentNode;var C=B.nextSibling;if(C==D){E.insertBefore(D,B);}else{if(B==D.nextSibling){E.insertBefore(B,D);}else{D.parentNode.replaceChild(B,D);E.insertBefore(D,C);}}}},getScroll:function(){var D,B,E=document.documentElement,C=document.body;if(E&&(E.scrollTop||E.scrollLeft)){D=E.scrollTop;B=E.scrollLeft;}else{if(C){D=C.scrollTop;B=C.scrollLeft;}else{}}return{top:D,left:B};},getStyle:function(C,B){return YAHOO.util.Dom.getStyle(C,B);},getScrollTop:function(){return this.getScroll().top;},getScrollLeft:function(){return this.getScroll().left;},moveToEl:function(B,D){var C=YAHOO.util.Dom.getXY(D);YAHOO.util.Dom.setXY(B,C);},getClientHeight:function(){return YAHOO.util.Dom.getViewportHeight();},getClientWidth:function(){return YAHOO.util.Dom.getViewportWidth();},numericSort:function(C,B){return(C-B);},_timeoutCount:0,_addListeners:function(){var B=YAHOO.util.DDM;if(YAHOO.util.Event&&document){B._onLoad();}else{if(B._timeoutCount>2000){}else{setTimeout(B._addListeners,10);if(document&&document.body){B._timeoutCount+=1;}}}},handleWasClicked:function(B,D){if(this.isHandle(D,B.id)){return true;}else{var C=B.parentNode;while(C){if(this.isHandle(D,C.id)){return true;}else{C=C.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments);},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:function(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);}return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);},handleOnAvailable:function(){this.available=true;
this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return ;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(H,G){var D=H.which||H.button;if(this.primaryButtonOnly&&D>1){return ;}if(this.isLocked()){return ;}var C=this.b4MouseDown(H);if(this.events.b4MouseDown){C=this.fireEvent("b4MouseDownEvent",H);}var E=this.onMouseDown(H);if(this.events.mouseDown){E=this.fireEvent("mouseDownEvent",H);}if((C===false)||(E===false)){return ;}this.DDM.refreshCache(this.groups);var F=new YAHOO.util.Point(A.getPageX(H),A.getPageY(H));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(F,this)){}else{if(this.clickValidator(H)){this.setStartPosition();this.DDM.handleMouseDown(H,this);this.DDM.stopEvent(H);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(C<this.minX){C=this.minX;}if(C>this.maxX){C=this.maxX;}}if(this.constrainY){if(F<this.minY){F=this.minY;}if(F>this.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E<C;++E){if(this.invalidHandleClasses[E]==D){delete this.invalidHandleClasses[E];}}},isValidHandleChild:function(F){var E=true;var H;try{H=F.nodeName.toUpperCase();}catch(G){H=F.nodeName;}E=E&&!this.invalidHandleTypes[H];E=E&&!this.invalidHandleIds[F.id];for(var D=0,C=this.invalidHandleClasses.length;E&&D<C;++D){E=!B.hasClass(F,this.invalidHandleClasses[D]);}return E;},setXTicks:function(F,C){this.xTicks=[];this.xTickSize=C;var E={};for(var D=this.initPageX;D>=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;if(D){this.setYTicks(this.initPageY,D);}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D<C;++D){var E=D+1;if(F[E]&&F[E]>=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");
YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G<C){window.scrollTo(D,N+A);}if(I<N&&N>0&&I-N<C){window.scrollTo(D,N-A);}if(M>B&&F<C){window.scrollTo(D+A,N);}if(J<D&&D>0&&J-D<C){window.scrollTo(D-A,N);}}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(A){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},b4Drag:function(A){this.setDragElPos(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame();}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this,A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame();},50);return ;}var G=this.getDragEl(),E=YAHOO.util.Dom;if(!G){G=document.createElement("div");G.id=this.dragElId;var D=G.style;D.position="absolute";D.visibility="hidden";D.cursor="move";D.border="2px solid #aaa";D.zIndex=999;D.height="25px";D.width="25px";var C=document.createElement("div");E.setStyle(C,"height","100%");E.setStyle(C,"width","100%");E.setStyle(C,"background-color","#ccc");E.setStyle(C,"opacity","0");G.appendChild(C);if(YAHOO.env.ua.ie){var F=document.createElement("iframe");F.setAttribute("src","about:blank");F.setAttribute("scrolling","no");F.setAttribute("frameborder","0");G.insertBefore(F,G.firstChild);E.setStyle(F,"height","100%");E.setStyle(F,"width","100%");E.setStyle(F,"position","absolute");E.setStyle(F,"top","0");E.setStyle(F,"left","0");E.setStyle(F,"opacity","0");E.setStyle(F,"zIndex","-1");E.setStyle(F.nextSibling,"zIndex","2");}A.insertBefore(G,A.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2));}this.setDragElPos(E,D);YAHOO.util.Dom.setStyle(A,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var H=YAHOO.util.Dom;var B=this.getEl();var C=this.getDragEl();var G=parseInt(H.getStyle(C,"borderTopWidth"),10);var I=parseInt(H.getStyle(C,"borderRightWidth"),10);var F=parseInt(H.getStyle(C,"borderBottomWidth"),10);var D=parseInt(H.getStyle(C,"borderLeftWidth"),10);if(isNaN(G)){G=0;}if(isNaN(I)){I=0;}if(isNaN(F)){F=0;}if(isNaN(D)){D=0;}var E=Math.max(0,B.offsetWidth-I-D);var A=Math.max(0,B.offsetHeight-G-F);H.setStyle(C,"width",E+"px");H.setStyle(C,"height",A+"px");}},b4MouseDown:function(B){this.setStartPosition();var A=YAHOO.util.Event.getPageX(B);var C=YAHOO.util.Event.getPageY(B);this.autoOffset(A,C);},b4StartDrag:function(A,B){this.showFrame(A,B);},b4EndDrag:function(A){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(D){var C=YAHOO.util.Dom;var B=this.getEl();var A=this.getDragEl();C.setStyle(A,"visibility","");C.setStyle(B,"visibility","hidden");YAHOO.util.DDM.moveToEl(B,A);C.setStyle(A,"visibility","hidden");C.setStyle(B,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.5.0",build:"895"});
// js/lib/yui/logger/logger-min.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
YAHOO.widget.LogMsg=function(A){if(A&&(A.constructor==Object)){for(var B in A){this[B]=A[B];}}};YAHOO.widget.LogMsg.prototype.msg=null;YAHOO.widget.LogMsg.prototype.time=null;YAHOO.widget.LogMsg.prototype.category=null;YAHOO.widget.LogMsg.prototype.source=null;YAHOO.widget.LogMsg.prototype.sourceDetail=null;YAHOO.widget.LogWriter=function(A){if(!A){YAHOO.log("Could not instantiate LogWriter due to invalid source.","error","LogWriter");return ;}this._source=A;};YAHOO.widget.LogWriter.prototype.toString=function(){return"LogWriter "+this._sSource;};YAHOO.widget.LogWriter.prototype.log=function(A,B){YAHOO.widget.Logger.log(A,B,this._source);};YAHOO.widget.LogWriter.prototype.getSource=function(){return this._sSource;};YAHOO.widget.LogWriter.prototype.setSource=function(A){if(!A){YAHOO.log("Could not set source due to invalid source.","error",this.toString());return ;}else{this._sSource=A;}};YAHOO.widget.LogWriter.prototype._source=null;YAHOO.widget.LogReader=function(B,A){this._sName=YAHOO.widget.LogReader._index;YAHOO.widget.LogReader._index++;this._buffer=[];this._filterCheckboxes={};this._lastTime=YAHOO.widget.Logger.getStartTime();if(A&&(A.constructor==Object)){for(var C in A){this[C]=A[C];}}this._initContainerEl(B);if(!this._elContainer){YAHOO.log("Could not instantiate LogReader due to an invalid container element "+B,"error",this.toString());return ;}this._initHeaderEl();this._initConsoleEl();this._initFooterEl();this._initDragDrop();this._initCategories();this._initSources();YAHOO.widget.Logger.newLogEvent.subscribe(this._onNewLog,this);YAHOO.widget.Logger.logResetEvent.subscribe(this._onReset,this);YAHOO.widget.Logger.categoryCreateEvent.subscribe(this._onCategoryCreate,this);YAHOO.widget.Logger.sourceCreateEvent.subscribe(this._onSourceCreate,this);this._filterLogs();YAHOO.log("LogReader initialized",null,this.toString());};YAHOO.widget.LogReader.prototype.logReaderEnabled=true;YAHOO.widget.LogReader.prototype.width=null;YAHOO.widget.LogReader.prototype.height=null;YAHOO.widget.LogReader.prototype.top=null;YAHOO.widget.LogReader.prototype.left=null;YAHOO.widget.LogReader.prototype.right=null;YAHOO.widget.LogReader.prototype.bottom=null;YAHOO.widget.LogReader.prototype.fontSize=null;YAHOO.widget.LogReader.prototype.footerEnabled=true;YAHOO.widget.LogReader.prototype.verboseOutput=true;YAHOO.widget.LogReader.prototype.newestOnTop=true;YAHOO.widget.LogReader.prototype.outputBuffer=100;YAHOO.widget.LogReader.prototype.thresholdMax=500;YAHOO.widget.LogReader.prototype.thresholdMin=100;YAHOO.widget.LogReader.prototype.isCollapsed=false;YAHOO.widget.LogReader.prototype.isPaused=false;YAHOO.widget.LogReader.prototype.draggable=true;YAHOO.widget.LogReader.prototype.toString=function(){return"LogReader instance"+this._sName;};YAHOO.widget.LogReader.prototype.pause=function(){this.isPaused=true;this._btnPause.value="Resume";this._timeout=null;this.logReaderEnabled=false;};YAHOO.widget.LogReader.prototype.resume=function(){this.isPaused=false;this._btnPause.value="Pause";this.logReaderEnabled=true;this._printBuffer();};YAHOO.widget.LogReader.prototype.hide=function(){this._elContainer.style.display="none";};YAHOO.widget.LogReader.prototype.show=function(){this._elContainer.style.display="block";};YAHOO.widget.LogReader.prototype.collapse=function(){this._elConsole.style.display="none";if(this._elFt){this._elFt.style.display="none";}this._btnCollapse.value="Expand";this.isCollapsed=true;};YAHOO.widget.LogReader.prototype.expand=function(){this._elConsole.style.display="block";if(this._elFt){this._elFt.style.display="block";}this._btnCollapse.value="Collapse";this.isCollapsed=false;};YAHOO.widget.LogReader.prototype.getCheckbox=function(A){return this._filterCheckboxes[A];};YAHOO.widget.LogReader.prototype.getCategories=function(){return this._categoryFilters;};YAHOO.widget.LogReader.prototype.showCategory=function(B){var D=this._categoryFilters;if(D.indexOf){if(D.indexOf(B)>-1){return ;}}else{for(var A=0;A<D.length;A++){if(D[A]===B){return ;}}}this._categoryFilters.push(B);this._filterLogs();var C=this.getCheckbox(B);if(C){C.checked=true;}};YAHOO.widget.LogReader.prototype.hideCategory=function(B){var D=this._categoryFilters;for(var A=0;A<D.length;A++){if(B==D[A]){D.splice(A,1);break;}}this._filterLogs();var C=this.getCheckbox(B);if(C){C.checked=false;}};YAHOO.widget.LogReader.prototype.getSources=function(){return this._sourceFilters;};YAHOO.widget.LogReader.prototype.showSource=function(A){var D=this._sourceFilters;if(D.indexOf){if(D.indexOf(A)>-1){return ;}}else{for(var B=0;B<D.length;B++){if(A==D[B]){return ;}}}D.push(A);this._filterLogs();var C=this.getCheckbox(A);if(C){C.checked=true;}};YAHOO.widget.LogReader.prototype.hideSource=function(A){var D=this._sourceFilters;for(var B=0;B<D.length;B++){if(A==D[B]){D.splice(B,1);break;}}this._filterLogs();var C=this.getCheckbox(A);if(C){C.checked=false;}};YAHOO.widget.LogReader.prototype.clearConsole=function(){this._timeout=null;this._buffer=[];this._consoleMsgCount=0;var A=this._elConsole;while(A.hasChildNodes()){A.removeChild(A.firstChild);}};YAHOO.widget.LogReader.prototype.setTitle=function(A){this._title.innerHTML=this.html2Text(A);};YAHOO.widget.LogReader.prototype.getLastTime=function(){return this._lastTime;};YAHOO.widget.LogReader.prototype.formatMsg=function(D){var E=D.category;var L=E.substring(0,4).toUpperCase();var I=D.time;var J;if(I.toLocaleTimeString){J=I.toLocaleTimeString();}else{J=I.toString();}var B=I.getTime();var F=YAHOO.widget.Logger.getStartTime();var C=B-F;var N=B-this.getLastTime();var A=D.source;var M=D.sourceDetail;var K=(M)?A+" "+M:A;var H=this.html2Text(YAHOO.lang.dump(D.msg));var G=(this.verboseOutput)?["<pre class=\"yui-log-verbose\"><p><span class='",E,"'>",L,"</span> ",C,"ms (+",N,") ",J,": ","</p><p>",K,": </p><p>",H,"</p></pre>"]:["<pre><p><span class='",E,"'>",L,"</span> ",C,"ms (+",N,") ",J,": ",K,": ",H,"</p></pre>"];return G.join("");};YAHOO.widget.LogReader.prototype.html2Text=function(A){if(A){A+="";return A.replace(/&/g,"&#38;").replace(/</g,"&#60;").replace(/>/g,"&#62;");
}return"";};YAHOO.widget.LogReader._index=0;YAHOO.widget.LogReader.prototype._sName=null;YAHOO.widget.LogReader.prototype._buffer=null;YAHOO.widget.LogReader.prototype._consoleMsgCount=0;YAHOO.widget.LogReader.prototype._lastTime=null;YAHOO.widget.LogReader.prototype._timeout=null;YAHOO.widget.LogReader.prototype._filterCheckboxes=null;YAHOO.widget.LogReader.prototype._categoryFilters=null;YAHOO.widget.LogReader.prototype._sourceFilters=null;YAHOO.widget.LogReader.prototype._elContainer=null;YAHOO.widget.LogReader.prototype._elHd=null;YAHOO.widget.LogReader.prototype._elCollapse=null;YAHOO.widget.LogReader.prototype._btnCollapse=null;YAHOO.widget.LogReader.prototype._title=null;YAHOO.widget.LogReader.prototype._elConsole=null;YAHOO.widget.LogReader.prototype._elFt=null;YAHOO.widget.LogReader.prototype._elBtns=null;YAHOO.widget.LogReader.prototype._elCategoryFilters=null;YAHOO.widget.LogReader.prototype._elSourceFilters=null;YAHOO.widget.LogReader.prototype._btnPause=null;YAHOO.widget.LogReader.prototype._btnClear=null;YAHOO.widget.LogReader.prototype._initContainerEl=function(B){B=YAHOO.util.Dom.get(B);if(B&&B.tagName&&(B.tagName.toLowerCase()=="div")){this._elContainer=B;YAHOO.util.Dom.addClass(this._elContainer,"yui-log");}else{this._elContainer=document.body.appendChild(document.createElement("div"));YAHOO.util.Dom.addClass(this._elContainer,"yui-log");YAHOO.util.Dom.addClass(this._elContainer,"yui-log-container");var A=this._elContainer.style;if(this.width){A.width=this.width;}if(this.right){A.right=this.right;}if(this.top){A.top=this.top;}if(this.left){A.left=this.left;A.right="auto";}if(this.bottom){A.bottom=this.bottom;A.top="auto";}if(this.fontSize){A.fontSize=this.fontSize;}if(navigator.userAgent.toLowerCase().indexOf("opera")!=-1){document.body.style+="";}}};YAHOO.widget.LogReader.prototype._initHeaderEl=function(){var A=this;if(this._elHd){YAHOO.util.Event.purgeElement(this._elHd,true);this._elHd.innerHTML="";}this._elHd=this._elContainer.appendChild(document.createElement("div"));this._elHd.id="yui-log-hd"+this._sName;this._elHd.className="yui-log-hd";this._elCollapse=this._elHd.appendChild(document.createElement("div"));this._elCollapse.className="yui-log-btns";this._btnCollapse=document.createElement("input");this._btnCollapse.type="button";this._btnCollapse.className="yui-log-button";this._btnCollapse.value="Collapse";this._btnCollapse=this._elCollapse.appendChild(this._btnCollapse);YAHOO.util.Event.addListener(A._btnCollapse,"click",A._onClickCollapseBtn,A);this._title=this._elHd.appendChild(document.createElement("h4"));this._title.innerHTML="Logger Console";};YAHOO.widget.LogReader.prototype._initConsoleEl=function(){if(this._elConsole){YAHOO.util.Event.purgeElement(this._elConsole,true);this._elConsole.innerHTML="";}this._elConsole=this._elContainer.appendChild(document.createElement("div"));this._elConsole.className="yui-log-bd";if(this.height){this._elConsole.style.height=this.height;}};YAHOO.widget.LogReader.prototype._initFooterEl=function(){var A=this;if(this.footerEnabled){if(this._elFt){YAHOO.util.Event.purgeElement(this._elFt,true);this._elFt.innerHTML="";}this._elFt=this._elContainer.appendChild(document.createElement("div"));this._elFt.className="yui-log-ft";this._elBtns=this._elFt.appendChild(document.createElement("div"));this._elBtns.className="yui-log-btns";this._btnPause=document.createElement("input");this._btnPause.type="button";this._btnPause.className="yui-log-button";this._btnPause.value="Pause";this._btnPause=this._elBtns.appendChild(this._btnPause);YAHOO.util.Event.addListener(A._btnPause,"click",A._onClickPauseBtn,A);this._btnClear=document.createElement("input");this._btnClear.type="button";this._btnClear.className="yui-log-button";this._btnClear.value="Clear";this._btnClear=this._elBtns.appendChild(this._btnClear);YAHOO.util.Event.addListener(A._btnClear,"click",A._onClickClearBtn,A);this._elCategoryFilters=this._elFt.appendChild(document.createElement("div"));this._elCategoryFilters.className="yui-log-categoryfilters";this._elSourceFilters=this._elFt.appendChild(document.createElement("div"));this._elSourceFilters.className="yui-log-sourcefilters";}};YAHOO.widget.LogReader.prototype._initDragDrop=function(){if(YAHOO.util.DD&&this.draggable&&this._elHd){var A=new YAHOO.util.DD(this._elContainer);A.setHandleElId(this._elHd.id);this._elHd.style.cursor="move";}};YAHOO.widget.LogReader.prototype._initCategories=function(){this._categoryFilters=[];var C=YAHOO.widget.Logger.categories;for(var A=0;A<C.length;A++){var B=C[A];this._categoryFilters.push(B);if(this._elCategoryFilters){this._createCategoryCheckbox(B);}}};YAHOO.widget.LogReader.prototype._initSources=function(){this._sourceFilters=[];var C=YAHOO.widget.Logger.sources;for(var B=0;B<C.length;B++){var A=C[B];this._sourceFilters.push(A);if(this._elSourceFilters){this._createSourceCheckbox(A);}}};YAHOO.widget.LogReader.prototype._createCategoryCheckbox=function(B){var A=this;if(this._elFt){var E=this._elCategoryFilters;var D=E.appendChild(document.createElement("span"));D.className="yui-log-filtergrp";var C=document.createElement("input");C.id="yui-log-filter-"+B+this._sName;C.className="yui-log-filter-"+B;C.type="checkbox";C.category=B;C=D.appendChild(C);C.checked=true;YAHOO.util.Event.addListener(C,"click",A._onCheckCategory,A);var F=D.appendChild(document.createElement("label"));F.htmlFor=C.id;F.className=B;F.innerHTML=B;this._filterCheckboxes[B]=C;}};YAHOO.widget.LogReader.prototype._createSourceCheckbox=function(A){var D=this;if(this._elFt){var F=this._elSourceFilters;var E=F.appendChild(document.createElement("span"));E.className="yui-log-filtergrp";var C=document.createElement("input");C.id="yui-log-filter"+A+this._sName;C.className="yui-log-filter"+A;C.type="checkbox";C.source=A;C=E.appendChild(C);C.checked=true;YAHOO.util.Event.addListener(C,"click",D._onCheckSource,D);var B=E.appendChild(document.createElement("label"));B.htmlFor=C.id;B.className=A;B.innerHTML=A;this._filterCheckboxes[A]=C;
}};YAHOO.widget.LogReader.prototype._filterLogs=function(){if(this._elConsole!==null){this.clearConsole();this._printToConsole(YAHOO.widget.Logger.getStack());}};YAHOO.widget.LogReader.prototype._printBuffer=function(){this._timeout=null;if(this._elConsole!==null){var B=this.thresholdMax;B=(B&&!isNaN(B))?B:500;if(this._consoleMsgCount<B){var A=[];for(var C=0;C<this._buffer.length;C++){A[C]=this._buffer[C];}this._buffer=[];this._printToConsole(A);}else{this._filterLogs();}if(!this.newestOnTop){this._elConsole.scrollTop=this._elConsole.scrollHeight;}}};YAHOO.widget.LogReader.prototype._printToConsole=function(J){var B=J.length;var O=this.thresholdMin;if(isNaN(O)||(O>this.thresholdMax)){O=0;}var L=(B>O)?(B-O):0;var C=this._sourceFilters.length;var M=this._categoryFilters.length;for(var I=L;I<B;I++){var F=false;var K=false;var N=J[I];var A=N.source;var D=N.category;for(var H=0;H<C;H++){if(A==this._sourceFilters[H]){K=true;break;}}if(K){for(var G=0;G<M;G++){if(D==this._categoryFilters[G]){F=true;break;}}}if(F){var E=this.formatMsg(N);if(this.newestOnTop){this._elConsole.innerHTML=E+this._elConsole.innerHTML;}else{this._elConsole.innerHTML+=E;}this._consoleMsgCount++;this._lastTime=N.time.getTime();}}};YAHOO.widget.LogReader.prototype._onCategoryCreate=function(D,C,A){var B=C[0];A._categoryFilters.push(B);if(A._elFt){A._createCategoryCheckbox(B);}};YAHOO.widget.LogReader.prototype._onSourceCreate=function(D,C,A){var B=C[0];A._sourceFilters.push(B);if(A._elFt){A._createSourceCheckbox(B);}};YAHOO.widget.LogReader.prototype._onCheckCategory=function(A,B){var C=this.category;if(!this.checked){B.hideCategory(C);}else{B.showCategory(C);}};YAHOO.widget.LogReader.prototype._onCheckSource=function(A,B){var C=this.source;if(!this.checked){B.hideSource(C);}else{B.showSource(C);}};YAHOO.widget.LogReader.prototype._onClickCollapseBtn=function(A,B){if(!B.isCollapsed){B.collapse();}else{B.expand();}};YAHOO.widget.LogReader.prototype._onClickPauseBtn=function(A,B){if(!B.isPaused){B.pause();}else{B.resume();}};YAHOO.widget.LogReader.prototype._onClickClearBtn=function(A,B){B.clearConsole();};YAHOO.widget.LogReader.prototype._onNewLog=function(D,C,A){var B=C[0];A._buffer.push(B);if(A.logReaderEnabled===true&&A._timeout===null){A._timeout=setTimeout(function(){A._printBuffer();},A.outputBuffer);}};YAHOO.widget.LogReader.prototype._onReset=function(C,B,A){A._filterLogs();};if(!YAHOO.widget.Logger){YAHOO.widget.Logger={loggerEnabled:true,_browserConsoleEnabled:false,categories:["info","warn","error","time","window"],sources:["global"],_stack:[],maxStackEntries:2500,_startTime:new Date().getTime(),_lastTime:null,_windowErrorsHandled:false,_origOnWindowError:null};YAHOO.widget.Logger.log=function(B,F,G){if(this.loggerEnabled){if(!F){F="info";}else{F=F.toLocaleLowerCase();if(this._isNewCategory(F)){this._createNewCategory(F);}}var C="global";var A=null;if(G){var D=G.indexOf(" ");if(D>0){C=G.substring(0,D);A=G.substring(D,G.length);}else{C=G;}if(this._isNewSource(C)){this._createNewSource(C);}}var H=new Date();var J=new YAHOO.widget.LogMsg({msg:B,time:H,category:F,source:C,sourceDetail:A});var I=this._stack;var E=this.maxStackEntries;if(E&&!isNaN(E)&&(I.length>=E)){I.shift();}I.push(J);this.newLogEvent.fire(J);if(this._browserConsoleEnabled){this._printToBrowserConsole(J);}return true;}else{return false;}};YAHOO.widget.Logger.reset=function(){this._stack=[];this._startTime=new Date().getTime();this.loggerEnabled=true;this.log("Logger reset");this.logResetEvent.fire();};YAHOO.widget.Logger.getStack=function(){return this._stack;};YAHOO.widget.Logger.getStartTime=function(){return this._startTime;};YAHOO.widget.Logger.disableBrowserConsole=function(){YAHOO.log("Logger output to the function console.log() has been disabled.");this._browserConsoleEnabled=false;};YAHOO.widget.Logger.enableBrowserConsole=function(){this._browserConsoleEnabled=true;YAHOO.log("Logger output to the function console.log() has been enabled.");};YAHOO.widget.Logger.handleWindowErrors=function(){if(!YAHOO.widget.Logger._windowErrorsHandled){if(window.error){YAHOO.widget.Logger._origOnWindowError=window.onerror;}window.onerror=YAHOO.widget.Logger._onWindowError;YAHOO.widget.Logger._windowErrorsHandled=true;YAHOO.log("Logger handling of window.onerror has been enabled.");}else{YAHOO.log("Logger handling of window.onerror had already been enabled.");}};YAHOO.widget.Logger.unhandleWindowErrors=function(){if(YAHOO.widget.Logger._windowErrorsHandled){if(YAHOO.widget.Logger._origOnWindowError){window.onerror=YAHOO.widget.Logger._origOnWindowError;YAHOO.widget.Logger._origOnWindowError=null;}else{window.onerror=null;}YAHOO.widget.Logger._windowErrorsHandled=false;YAHOO.log("Logger handling of window.onerror has been disabled.");}else{YAHOO.log("Logger handling of window.onerror had already been disabled.");}};YAHOO.widget.Logger.categoryCreateEvent=new YAHOO.util.CustomEvent("categoryCreate",this,true);YAHOO.widget.Logger.sourceCreateEvent=new YAHOO.util.CustomEvent("sourceCreate",this,true);YAHOO.widget.Logger.newLogEvent=new YAHOO.util.CustomEvent("newLog",this,true);YAHOO.widget.Logger.logResetEvent=new YAHOO.util.CustomEvent("logReset",this,true);YAHOO.widget.Logger._createNewCategory=function(A){this.categories.push(A);this.categoryCreateEvent.fire(A);};YAHOO.widget.Logger._isNewCategory=function(B){for(var A=0;A<this.categories.length;A++){if(B==this.categories[A]){return false;}}return true;};YAHOO.widget.Logger._createNewSource=function(A){this.sources.push(A);this.sourceCreateEvent.fire(A);};YAHOO.widget.Logger._isNewSource=function(A){if(A){for(var B=0;B<this.sources.length;B++){if(A==this.sources[B]){return false;}}return true;}};YAHOO.widget.Logger._printToBrowserConsole=function(C){if(window.console&&console.log){var E=C.category;var D=C.category.substring(0,4).toUpperCase();var G=C.time;var F;if(G.toLocaleTimeString){F=G.toLocaleTimeString();}else{F=G.toString();}var H=G.getTime();var B=(YAHOO.widget.Logger._lastTime)?(H-YAHOO.widget.Logger._lastTime):0;
YAHOO.widget.Logger._lastTime=H;var A=F+" ("+B+"ms): "+C.source+": "+C.msg;console.log(A);}};YAHOO.widget.Logger._onWindowError=function(A,C,B){try{YAHOO.widget.Logger.log(A+" ("+C+", line "+B+")","window");if(YAHOO.widget.Logger._origOnWindowError){YAHOO.widget.Logger._origOnWindowError();}}catch(D){return false;}};YAHOO.widget.Logger.log("Logger initialized");}YAHOO.register("logger",YAHOO.widget.Logger,{version:"2.5.0",build:"895"});
// js/lib/deconcept/swfobject.js
/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007-2008 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 b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();
// js/lib/techtribe/core.js
var TECHTRIBE =
{
	Common:
	{
		getElementsByClassName: function(needle) {
		   	var s = document.getElementsByTagName('*'), i = s.length, r = [], e, c;
		    needle = ' ' + needle + ' ';
		    while(i--)
		    {
		        e = s.item(i);
				if (e.className) {
		            c = ' ' + e.className + ' ';
		            if (c.indexOf(needle) != -1){
						r.push(e);
					}
		        }
		    }
		    return r;
		}
	},

	TransparantFix:
	{
		init: function() {
			this.fixDocumentPNG();
			this.fixDocumentBgPNG();
		},

		fixDocumentPNG: function() {
			var arVersion = navigator.appVersion.split("MSIE");
			var version = parseFloat(arVersion[1]);
			if(version >= 5.5 && version < 7) {
				var imgs = document.getElementsByTagName("img");
		  		for(var i=0;i<imgs.length;i++)
				{
		  			var img = imgs[i];
					if(img.className != "notTransparent"){
			  			img.style.width = img.width + "px";
						img.style.height = img.height + "px";
						img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + img.src + "\', sizingMethod='crop');";
			          	img.src = "img/trans.gif";
					}
		  		}
			}
		},

		fixDocumentBgPNG: function() {
			var arVersion = navigator.appVersion.split("MSIE");
			var version = parseFloat(arVersion[1]);
		 	if(version >= 5.5 && version < 7) {
		  	var imgs = TECHTRIBE.Common.getElementsByClassName("bgTransparant");
				for (var i = 0; i < imgs.length; i++)
				{
					var imgUrl = TECHTRIBE.Utils.getStyle(imgs[i], "backgroundImage");
					if(imgUrl){
						var imgUrlStripped = Techtribe.Utils.stripImgUrl(imgUrl);
						imgs[i].style.backgroundImage = "none";
						imgs[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + imgUrlStripped + "\', sizingMethod='crop');";
					}
		  	}
		  }
		},

		fixSinglePNG: function(el) {
			var arVersion = navigator.appVersion.split("MSIE");
			var version = parseFloat(arVersion[1]);
		  if(version >= 5.5 && version < 7 && document.body.filters) {
				el.style.width = el.width + "px";
				el.style.height = el.height + "px";
				el.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + el.src + "\', sizingMethod='crop');";
		      	el.src = "img/trans.gif";
		  }
		},

		fixSingleBgPNG: function(el) {
			var arVersion = navigator.appVersion.split("MSIE");
			var version = parseFloat(arVersion[1]);
		  if(version >= 5.5 && version < 7 && document.body.filters) {
				var imgUrl = TECHTRIBE.Utils.getStyle(el, "backgroundImage");
				if(imgUrl){
					var imgUrlStripped = TECHTRIBE.Utils.stripImgUrl(imgUrl);
					el.style.background = "none";
					el.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + imgUrlStripped + "\', sizingMethod='crop');";
				}
		  }
		}
	},

	Utils:
	{
		//Gets Opacity
		getOpacity: function(imageobject) {
			if(imageobject.filters) {
				if(imageobject.filters['alpha']){
					return imageobject.filters['alpha'].opacity;
				}
			} else if(imageobject.style.MozOpacity) {
				return imageobject.style.MozOpacity * 100;
			}
			return null;
		},

		//Sets Opacity
		setOpacity: function(imageobject, value) {
			imageobject.style.opacity = value/10;
			imageobject.style.filter = 'alpha(opacity=' + value*10 + ')';
		},
	
		getParameter: function(queryString, param) {
			if(queryString.indexOf("&") == -1){
				var paramArr = queryString.split("=");
				if(paramArr[0] == param){
					return paramArr[1];
				} else {
					return "";
				}
			} else {
				var paramsArr = queryString.split("&");
				for(var i=0;i<paramsArr.length;i++)
				{
					var paramArr = paramsArr[i].split("=");
					if(paramArr[0] == param){
						return paramArr[1];
					}
				}
				return "";
			}
		},

		//Creates Div or Img element
		createElement: function(parent, el, elClass, id, innerValue, src, width, height) {
			if (el == "IMG"){			
				var element = document.createElement(el);
				if (id){element.id = id;}
				element.src = src;
				var appendedEl;
				if(parent){appendedEl = parent.appendChild(element);}			
				if (width){appendedEl.width = width;}
				if (height){appendedEl.height = height;}
				if (elClass){appendedEl.className = elClass;}
				if(appendedEl){
					return appendedEl;	
				}			
				return element;
			} else {
				var element = document.createElement(el);
				if (id){element.id = id;}
				if(parent){appendedEl = parent.appendChild(element);}	
				if (innerValue){appendedEl.innerHTML = innerValue;}
				if (elClass){appendedEl.className = elClass;}
				if(appendedEl){
					return appendedEl;	
				}			
				return element;
			}
		},

		//Returns a number from a "value"px string
		stripValuePx: function(value) {
			return parseInt(value.substr(0, value.indexOf("px")));
		},

		stripImgUrl: function(value) {
			return value.substring(5, (value.length - 2));
		},

		//get styles from HTML objects
		getStyle: function(x,styleProp){
		    if(!x){
		        return false;
		    }
		    if(x.currentStyle){
		        var y = x.currentStyle[styleProp];
		    } else if(window.getComputedStyle){
		        var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
		    }
		    return y;
		},

		//Returns Boolean if obj is Array
		isArray: function(obj){
			try{
				if(obj.constructor.toString().indexOf("Array") == -1){
					return false;
				} else {
					return true;
				}				
			} catch(e){
				return false;
			}		      
		},

		//Convert RGB to HEX values
		rgbConvert: function(str){
		   str = str.replace(/rgb\(|\)/g, "").split(",");
		   str[0] = parseInt(str[0], 10).toString(16).toLowerCase();
		   str[1] = parseInt(str[1], 10).toString(16).toLowerCase();
		   str[2] = parseInt(str[2], 10).toString(16).toLowerCase();
		   str[0] = (str[0].length == 1) ? '0' + str[0] : str[0];
		   str[1] = (str[1].length == 1) ? '0' + str[1] : str[1];
		   str[2] = (str[2].length == 1) ? '0' + str[2] : str[2];
		   return ('#' + str.join(""));
		}
	},

	XML:
	{
		//returns textNode of given elementNode
		getXmlNodeValue: function(xmlNode) {
			if(xmlNode.textContent) {return xmlNode.textContent;}
			else if(xmlNode.text){return xmlNode.text;}
			else if(xmlNode.firstChild.nodeValue){return xmlNode.firstChild.nodeValue;}
			else {return null;}
		},

		//returns all childeren of given parentNode
		childElements: function(parentNode) {
			var l= new Array();
			for (var i= 0; i<parentNode.childNodes.length; i++)
				if (parentNode.childNodes[i].nodeType==1){
				l[l.length]= parentNode.childNodes[i];
			}
			if (l.length){return l;}
			else{return false;}
		},

		//returns correct elements
		returnElements: function(parentNode, tagname) {
			var l= new Array();
			for (var i= 0; i<parentNode.childNodes.length; i++)
				if ((parentNode.childNodes[i].nodeType==1) && (parentNode.childNodes[i].tagName == tagname)){
				l[l.length]= parentNode.childNodes[i];
			}
			if (l.length){return l;}
			else{return false;}
		}
	},

	Delegate:
	{
		create: function(aObject, aFunction){
			if(arguments.length > 2){
				var params = new Array();
				for(var i=2;i<arguments.length;++i)
				{
					params.push(arguments[i]);
				}
				return function() { return aFunction.apply(aObject, params); }
		    } else {
				return function() { return aFunction.apply(aObject, arguments); }
			}		      
	
		}	
	},

	Geom:
	{
		Point2d: function(x, y)
		{
			this.x = x;
			this.y = y;
		}
	},

	Easing:
	{
		expoEaseIn: function (t, b, c, d) {
			return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
		},

		expoEaseBoth: function (t, b, c, d) {
			if (t==0) return b;
			if (t==d) return b+c;
			if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
			return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
		},

	    expoEaseOut: function (t, b, c, d) {
			return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	    }
	}
}
// js/AchmeaMain.js
/*
 * Copyright (c) 2008, Techtribe B.V.
 * Url: http://www.techtribe.nl
 * Author: Remon de Boer
 * 
 * ACHMEA packages
 */
var ACHMEA =
{
	mainModel: null,
	mainView: null,
	mainController: null,

	//Kickstarter
	init: function(){
		setFlash();
		this.mainModel = ACHMEA.model.MainModel.getInstance();
		this.mainView = new ACHMEA.view.View();
		this.mainController = new ACHMEA.controller.Controller();
	},
	
	navigateTo: function(linkID){	
		this.mainController.stateController.navigateTo(linkID);
	},
	
	//ACHMEA.model package
	model:
	{		
	},

	//ACHMEA.view package
	view:
	{
		ui:
		{			
		}
	},
	
	//ACHMEA.controller package	
	controller:
	{		
	},
	
	//ACHMEA.components package
	components:
	{			
	},		
	
	//ACHMEA.events package
	events:
	{
	},
	
	//ACHMEA.vo package	
	vo:
	{		
	}	
}
// js/model/AchmeaModel.js
/*
 * Copyright (c) 2008, Techtribe B.V.
 * Url: http://www.techtribe.nl
 * Author: Remon de Boer
 * 
 * ACHMEA.model.MainModel
 */
function MainModel() {

}

MainModel.prototype =
{	
	//Application Constants
	BASIC_DATA_PATH: "/achmea/verzekeren/ajax",
	VERZEKEREN_DATA_PATH: "/achmea/verzekeren/ajaxverzekeren",
	SEARCH_DATA_PATH: "/consumenten/zoeken",	
	GENERATED_IMG_PATH: "/achmea/generated-images/",
	
	//Application Load Constants
	ANIMATING_UP: "animatingUp",
	ANIMATING_DOWN: "animatingDown",	
	LOADING_CONTENT: "loadingContent",
	LOADING_COMPLETE: "loadingComplete",
	ON_HOME: "onHome",	
	
	//Application variables
	activeLinkId: null,
	queryString: null,
	isConsumer: null,
	homeLinkID: "/d/home",
	appLoadState: "loadingComplete",
	gateIsDown: false,
	mainNavLoaded: false,
	themeNavLoaded: false,
	contentGateLoaded: true,
	businessMoodPix: null,
	consumerMoodPix: null,	
	consumerNavLinkIDs: new Array(),	
	businessNavLinkIDs: new Array(),
	
	setIsConsumer: function(value){
		if(this.isConsumer !== value){
			this.isConsumer = value;
			if(value){
				YAHOO.util.Cookie.set("isConsumer", "1", {expires: new Date("January 12, 2025")}); 
			} else {
				YAHOO.util.Cookie.set("isConsumer", "0", {expires: new Date("January 12, 2025")});  
			}
			var commonEvents = ACHMEA.events.CommonEvents.getInstance();
			commonEvents.categorieChangeEvent.fire();
		}		
	},
	
	isHome: function(){
		if(this.homeLinkID == this.activeLinkId){
			return true;
		} else {
			return false;
		}
	},
	
	isAConsumer: function(linkID){
		var isConsumer = false;
		for(var i=0;i<this.consumerNavLinkIDs.length;i++)
		{
			var consumerLinkID = this.consumerNavLinkIDs[i];
			if(consumerLinkID == linkID){
				isConsumer = true;
				break
			}
		}
		return isConsumer;
	},
	
	isABusiness: function(linkID){
		var isBusiness = false;
		for(var i=0;i<this.businessNavLinkIDs.length;i++)
		{
			var businessLinkID = this.businessNavLinkIDs[i];
			if(businessLinkID == linkID){
				isBusiness = true;
				break;
			}
		}
		return isBusiness;
	},
	
	setMainNavLoaded: function(){	
		if(!this.mainNavLoaded){
			this.mainNavLoaded = true;
			this.checkLoadProgress();
		}		
	},
	
	setThemeNavLoaded: function(){
		if(!this.themeNavLoaded){
			this.themeNavLoaded = true;
			this.checkLoadProgress();
		}
	},	
	
	setContentGateLoaded: function(){
		if(!this.contentGateLoaded){	
			this.contentGateLoaded = true;
			this.checkLoadProgress();
		}
	},		
	
	checkLoadProgress: function(){
		if((this.mainNavLoaded) && (this.themeNavLoaded) && (this.contentGateLoaded)){
			var commonEvents = ACHMEA.events.CommonEvents.getInstance();
			commonEvents.appLoadCompleteEvent.fire();
		}
	},

	addConsumerLinkID: function(linkID){
		this.consumerNavLinkIDs.push(linkID);
	},
	
	addBusinessLinkID: function(linkID){
		this.businessNavLinkIDs.push(linkID);
	},	
	
	//View Objects
	contentGateView: null,
	mainNavView: null,
	themeNavView: null,	
	
	//Controller Objects
	stateController: null,
	connectionManager: null,
	
	//Data Objects
	mainNavData: null,	
	themeNavData: null,
	metaNavData: null,	
	newsBlockData: null,
	
	//MainModel instance
	instance: null
}
MainModel.getInstance = function(){
    if(this.instance == null) {
        this.instance = new MainModel();
    }
    return this.instance;
}
ACHMEA.model.MainModel = MainModel;



/*
 *** ACHMEA.model.MainNavModel ***
 */
function MainNavModel(){
}

MainNavModel.prototype =
{
	LEVEL_SETTINGS_1: {width: 160, height: 48, containerHeight: 22},
	LEVEL_SETTINGS_2: {width: 160, height: 40, containerHeight: 17},
	LEVEL_SETTINGS_3: {width: 160, height: 30, containerHeight: 15},
	
	mainNavItemVOs: new Array(),
	activeMainNavItemVOs: new Array(),
	excludedMainNavItemVOs: new Array(),
	activeMainNavItemVO: 0,

	setMainNavItemVO: function(mainNavItemVO){
		this.mainNavItemVOs[mainNavItemVO.id] = mainNavItemVO;
	},
	
	getMainNavItemVOByID: function(id){
		return this.mainNavItemVOs[id];
	},
	
	getActiveMainNavItems: function(){
		return this.activeMainNavItemVOs;
	},	
	
	getExcludedMainNavItems: function(){
		return this.excludedMainNavItemVOs;
	},	
	
	addActiveMainNavItemVO: function(mainNavItemVO1){
		var isAlreadyIn = false;
		for(var i=0;i<this.activeMainNavItemVOs;i++)
		{
			var mainNavItemVO2 = this.activeMainNavItemVOs[i];
			if(mainNavItemVO1 == mainNavItemVO2){
				isAlreadyIn = true;
			}
		}
		if(!isAlreadyIn){
			this.activeMainNavItemVOs.push(mainNavItemVO1);			
		}
	},
	
	deleteActiveMainNavItemVO: function(mainNavItemVO1){
		var atIndex = -1;
		for(var i=0;i<this.activeMainNavItemVOs.length;i++)
		{
			var mainNavItemVO2 = this.activeMainNavItemVOs[i];
			if(mainNavItemVO1 == mainNavItemVO2){
				atIndex = i;
			}
		}
		if(atIndex >= 0){
			this.activeMainNavItemVOs.splice(atIndex, 1);			
		}		
	}
}
ACHMEA.model.MainNavModel = MainNavModel;



/*
 *** ACHMEA.model.ThemeNavModel ***
 */
function ThemeNavModel() {
}

ThemeNavModel.prototype =
{
	themeNavLocked: false,
	colorPalette: ["#C78D28", "#818639", "#C15E85", "#585B8B", "#C78D28", "#818639", "#C15E85", "#585B8B"],
	consumerNavCollection: null,
	businessNavCollection: null,	
	themeNavItemsByID: new Array(),
	themeCloudItemsByID: new Array(),
	themeCloudItemsByParentID: new Array(),
	linkHashMap: new Array(),
	selectedThemeNavItemID: null,
	activeThemeNavID: null,
	animatedThemeNavID: 0,
	
	addThemeNavItem: function(themeNavItem){
		this.themeNavItemsByID[themeNavItem.id] = themeNavItem;
	},
	
	addThemeCloudItem: function(themeCloudItem, parentID){
		this.themeCloudItemsByID[themeCloudItem.id] = themeCloudItem;
		if(typeof(this.themeCloudItemsByParentID[parentID]) == "undefined"){
			this.themeCloudItemsByParentID[parentID] = {themeCloudItems: [themeCloudItem]};
		} else {
			this.themeCloudItemsByParentID[parentID].themeCloudItems.push(themeCloudItem);
		}
	},
	
	addLink: function(key, value){
		this.linkHashMap[key] = value;
	},
	
	getThemeNavItemByID: function(id){
		return this.themeNavItemsByID[id];
	},
	
	getThemeCloudItemByID: function(id){
		return this.themeCloudItemsById[id];
	},
	
	getThemeCloudItemByParentID: function(id){
		return this.themeCloudItemsByParentID[id].themeCloudItems;
	},
	
	getLink: function(key){
		return this.linkHashMap[key];
	},
	
	lock: function(){
		this.themeNavLocked = true;
	},
	
	unlock: function(){
		this.themeNavLocked = false;		
	},
	
	isLocked: function(){
		return this.themeNavLocked;
	}
}
ACHMEA.model.ThemeNavModel = ThemeNavModel;



/*
 *** ACHMEA.model.MetaNavModel ***
 */
function MetaNavModel() {
}

MetaNavModel.prototype =
{
	addMetaNavItem: function(themeNavItem){
		this.themeNavItemsByID[themeNavItem.id] = themeNavItem;
	},

	addLink: function(key, value){
		this.linkHashMap[key] = value;
	}
}
ACHMEA.model.MetaNavModel = MetaNavModel;



/*
 *** ACHMEA.model.ToolbarModel ***
 */
function ToolbarModel() {
	this.init();
}

ToolbarModel.prototype =
{
	ITEM_TYPE_REACTIONS: "reactions",
	ITEM_TYPE_REACT: "react",
	ITEM_TYPE_FORWARD: "forward",
	ITEM_TYPE_PRINT: "print",
	ITEM_TYPE_BOOKMARK: "bookmark",
	toolbarItems: null,
	
	 init: function(){
	 	this.toolbarItems = new Array();
	 },
	
	addToolbarItem: function(id, item){
		this.toolbarItems[id] = item;
	},
	
	getToolbarItemByID: function(id){
		return this.toolbarItems[id];
	}
}
ACHMEA.model.ToolbarModel = ToolbarModel;
// js/view/AchmeaView.js
/*
 * Copyright (c) 2008, Techtribe B.V.
 * Url: http://www.techtribe.nl
 * Author: Remon de Boer
 * 
 * ACHMEA.view.View
 */
var View = function() {		
	this.init();
}

View.prototype =
{	
	commonEvents: null,
	loadWrapperMain: null,
	startupAllowed: false,
	wantToStartUp: false,
	loadWrapperMain: null,
	mainNavigation: null,
	themeNavigation: null,
	aboutAchmeaView: null,
	contentGateView: null,
	searchView: null,
	newsBlocksView: null,
	metaNavigation: null,
	loaderFlash: null,
	
	init: function(){			
		try{
			document.execCommand("BackgroundImageCache",false,true);
		} catch(e){			
		}
		this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
		this.setListeners();
		this.setElements();
		this.contentGateView = new ACHMEA.view.ContentGateView(this);
		this.searchView = new ACHMEA.view.SearchView();
		this.aboutAchmeaView = new ACHMEA.view.AboutAchmeaView();
		this.newsBlocksView = new ACHMEA.view.NewsBlocksView();	
		this.mainNavigation = new ACHMEA.view.MainNavView();
		this.themeNavigation = new ACHMEA.view.ThemeNavView(this.aboutAchmeaView);
		this.metaNavigation = new ACHMEA.view.MetaNavView();
	},
	
	setListeners: function(){
		var callback1 = TECHTRIBE.Delegate.create(this, this.applicationLoadedHandler);
		this.commonEvents.appLoadCompleteEvent.subscribe(callback1);
	},
	
	setElements: function(){
		this.loadWrapperMain = YAHOO.util.Dom.get("loadWrapperMain");
	},
	
	applicationLoadedHandler: function(){				
		TECHTRIBE.TransparantFix.init();		
	},
	
	startUp: function(){
		if(swfobject.hasFlashPlayerVersion("9.0.0")){
			YAHOO.util.Dom.setStyle(YAHOO.util.Dom.get("loadContainerMain"), "background", "none");
			YAHOO.util.Dom.get("loadContainerMain").stopLoading("ACHMEA.mainView.startUpFinished");
		} else {
			YAHOO.util.Dom.setStyle(this.loadWrapperMain, "display", "none");	
		}
	},
	
	startUpFinished: function(){
		YAHOO.util.Dom.setStyle(this.loadWrapperMain, "display", "none");
	},
	
	initLogger: function(){
		var configs = {width: "400px", height: "500px", fontSize: "100%"};
		var container = "logger";
		var logger = new YAHOO.widget.LogReader(container, configs);
		var logWriter = new YAHOO.widget.LogWriter();
	}
}
ACHMEA.view.View = View;



/*
 *** ACHMEA.view.ContentGateView ***
 */
var ContentGateView = function(view) {
	this.view = view;
	this.init();
}

ContentGateView.prototype =
{
	CONSUMER_ACTIVE: "consumerActive",
	BUSINESS_ACTIVE: "businessActive",
	mainModel: null,
	commonEvents: null,
	view: null,	
	contentGateController: null,
	isDimmed: false,
	gateClosingTape: null,
	loaderContainer: null,
	loader: null,
	contentSqeezer: null,	
	isAnimatingUp: false,	
	content: null,
	gateTop: null,
	gateBottom: null,
	gateClosingTape: null,

	activeMoodpix: null,
	firstLoad: true,	
	isPreloading: false,
	consumerMoodpixLoaded: false,
	businessMoodpixLoaded: false,
	amountOfItems: 4,
	amountOfLoadedConItems: 0,		
	amountOfLoadedBusItems: 0,	
		
	init: function(){
		this.mainModel = ACHMEA.model.MainModel.getInstance();
		this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
		this.contentGateController = new ACHMEA.controller.ContentGateController(this);
		this.setElements();
		this.initLoader();
	},
	
	setElements: function(){
		this.gateClosingTape = YAHOO.util.Dom.get("gateClosingTape");
		this.loaderContainer = YAHOO.util.Dom.get("loaderContainer");
		this.contentSqeezer = YAHOO.util.Dom.get("contentSqeezer");
		this.content = YAHOO.util.Dom.get("content");
		
		
		this.gateTop = YAHOO.util.Dom.get("gateTop");
		this.gateBottom = YAHOO.util.Dom.get("bottomFrummelContainer");	
		this.gateClosingTape = YAHOO.util.Dom.get("gateClosingTape");				
	},
	
	initLoader: function(){
		if(swfobject.hasFlashPlayerVersion("6.0.0")){
			var att = {data:"swf/PreloaderGate.swf", width:"45", height:"45", allowScriptAccess: "always"};        
			var par = {allowScriptAccess: "always", wmode: "transparent"};
			var id = "loader";        
			swfobject.createSWF(att, par, id);
		}		
		this.hideLoader();
	},
	
	switchMood: function(){
		var isConsumer = this.mainModel.isConsumer;
		if((!this.consumerMoodpixLoaded) && (!this.businessMoodpixLoaded)){
			if(!this.isPreloading){
				this.isPreloading = true;
				this.preloadVisuals();				
			}
		} else {
			if(isConsumer){
				if((this.consumerMoodpixLoaded) && (this.activeMoodpix == this.BUSINESS_ACTIVE)){
					if(!this.mainModel.gateIsDown){					
						this.switchMoodpix(true);
					}					
				}
			} else {
				if((this.businessMoodpixLoaded) && (this.activeMoodpix == this.CONSUMER_ACTIVE)){
					if(!this.mainModel.gateIsDown){					
						this.switchMoodpix(false);
					}
				}				
			}
		}	
	},
	
	preloadVisuals: function(){
		if(this.firstLoad){
			if(this.mainModel.isConsumer){
				this.preloadConsumerMoodpix();
			} else {
				this.preloadBusinessMoodpix();				
			}
		} else {
			if(!this.consumerMoodpixLoaded){
				this.preloadConsumerMoodpix();
			} else {
				this.preloadBusinessMoodpix();			
			}
		}									
	},
	
	preloadConsumerMoodpix: function(){
		var consumerMoodPix = this.mainModel.consumerMoodPix;
		var onloadListener = TECHTRIBE.Delegate.create(this, this.conImageLoadHandler);
		consumerMoodPix.top = new Image();
		consumerMoodPix.top.onload = onloadListener;
		consumerMoodPix.top.src = consumerMoodPix.topImgSrc;		
		consumerMoodPix.tape = new Image();
		consumerMoodPix.tape.onload = onloadListener;
		consumerMoodPix.tape.src = consumerMoodPix.tapeImgSrc;			
		consumerMoodPix.bottom = new Image();
		consumerMoodPix.bottom.onload = onloadListener;
		consumerMoodPix.bottom.src = consumerMoodPix.bottomImgSrc;
		consumerMoodPix.frummel = new Image();
		consumerMoodPix.frummel.onload = onloadListener;
		consumerMoodPix.frummel.src = consumerMoodPix.frummelImgSrc;			
	},
		
	conImageLoadHandler: function(){
		this.amountOfLoadedConItems++;
		if(this.amountOfItems <= this.amountOfLoadedConItems){
			if(this.firstLoad){
				this.firstLoad = false;
				this.consumerMoodpixLoaded = true;
				this.placeMoodpix(true, true);
				this.mainModel.setContentGateLoaded();
				this.preloadBusinessMoodpix();			
				this.view.startUp();
			} else {
				this.placeMoodpix(true, false);
				this.consumerMoodpixLoaded = true;	
				this.checkToSwitch();	
			}	
		}		
	},
	
	preloadBusinessMoodpix: function(){
		var businessMoodPix = this.mainModel.businessMoodPix;
		var onloadListener = TECHTRIBE.Delegate.create(this, this.busImageLoadHandler);	
		businessMoodPix.top = new Image();
		businessMoodPix.top.onload = onloadListener;
		businessMoodPix.top.src = businessMoodPix.topImgSrc;
		businessMoodPix.tape = new Image();
		businessMoodPix.tape.onload = onloadListener;
		businessMoodPix.tape.src = businessMoodPix.tapeImgSrc;	
		businessMoodPix.bottom = new Image();
		businessMoodPix.bottom.onload = onloadListener;
		businessMoodPix.bottom.src = businessMoodPix.bottomImgSrc;	
		businessMoodPix.frummel = new Image();
		businessMoodPix.frummel.onload = onloadListener;
		businessMoodPix.frummel.src = businessMoodPix.frummelImgSrc;		
	},
		
	busImageLoadHandler: function(){
		this.amountOfLoadedBusItems++;
		if(this.amountOfItems <= this.amountOfLoadedBusItems){
			if(this.firstLoad){
				this.firstLoad = false;
				this.businessMoodpixLoaded = true;
				this.placeMoodpix(false, true);
				this.mainModel.setContentGateLoaded();
				this.preloadConsumerMoodpix();
				this.view.startUp();
			} else {
				this.placeMoodpix(false, false);				
				this.businessMoodpixLoaded = true;
				this.checkToSwitch();	
			}		
		}
	},	

	placeMoodpix: function(placeConsumer, visible){
		var moodpix;
		if(placeConsumer){			
			moodpix = this.mainModel.consumerMoodPix;
			if(visible){
				this.activeMoodpix = this.CONSUMER_ACTIVE;
			}
		} else {
			moodpix = this.mainModel.businessMoodPix;		
			if(visible){
				this.activeMoodpix = this.BUSINESS_ACTIVE;
			}				
		}
		moodpix.top = TECHTRIBE.Utils.createElement(this.gateTop, "IMG", null, null, null, moodpix.topImgSrc, 702, 206);
		TECHTRIBE.TransparantFix.fixSinglePNG(moodpix.top);
		if(!visible){
			YAHOO.util.Dom.setStyle(moodpix.top, "display", "none");
			YAHOO.util.Dom.setStyle(moodpix.top, "position", "relative");
			YAHOO.util.Dom.setStyle(moodpix.top, "zIndex", "2");
		} else {
			YAHOO.util.Dom.setStyle(moodpix.top, "display", "block");
			YAHOO.util.Dom.setStyle(moodpix.top, "position", "relative");
			YAHOO.util.Dom.setStyle(moodpix.top, "zIndex", "1");			
		}		
		
		moodpix.bottom = TECHTRIBE.Utils.createElement(this.gateBottom, "IMG", null, null, null, moodpix.bottomImgSrc, 702, 230);
		TECHTRIBE.TransparantFix.fixSinglePNG(moodpix.bottom);		
		if(!visible){
			YAHOO.util.Dom.setStyle(moodpix.bottom, "display", "none");
			YAHOO.util.Dom.setStyle(moodpix.bottom, "position", "absolute");
			YAHOO.util.Dom.setStyle(moodpix.bottom, "top", "-22px");
			YAHOO.util.Dom.setStyle(moodpix.bottom, "zIndex", "20");			
		} else {
			YAHOO.util.Dom.setStyle(moodpix.bottom, "display", "block");
			YAHOO.util.Dom.setStyle(moodpix.bottom, "position", "absolute");
			YAHOO.util.Dom.setStyle(moodpix.bottom, "top", "-22px");
			YAHOO.util.Dom.setStyle(moodpix.bottom, "zIndex", "10");				
		}
			
		moodpix.frummel = TECHTRIBE.Utils.createElement(this.gateBottom, "IMG", null, null, null, moodpix.frummelImgSrc, 40, 32);	
		TECHTRIBE.TransparantFix.fixSinglePNG(moodpix.frummel);	
		if(!visible){
			YAHOO.util.Dom.setStyle(moodpix.frummel, "display", "none");
			YAHOO.util.Dom.setStyle(moodpix.frummel, "position", "absolute");
			YAHOO.util.Dom.setStyle(moodpix.frummel, "top", "188px");
			YAHOO.util.Dom.setStyle(moodpix.frummel, "zIndex", "30");			
		} else {
			YAHOO.util.Dom.setStyle(moodpix.frummel, "display", "block");
			YAHOO.util.Dom.setStyle(moodpix.frummel, "position", "absolute");
			YAHOO.util.Dom.setStyle(moodpix.frummel, "top", "188px");
			YAHOO.util.Dom.setStyle(moodpix.frummel, "zIndex", "15");				
		}				
		
		moodpix.tape = TECHTRIBE.Utils.createElement(this.gateClosingTape, "IMG", null, null, null, moodpix.tapeImgSrc, 702, 44);				
		TECHTRIBE.TransparantFix.fixSinglePNG(moodpix.tape);
		if(!visible){
			YAHOO.util.Dom.setStyle(moodpix.tape, "display", "none");
			YAHOO.util.Dom.setStyle(moodpix.tape, "position", "relative");
			YAHOO.util.Dom.setStyle(moodpix.tape, "zIndex", "5");			
		} else {
			YAHOO.util.Dom.setStyle(moodpix.tape, "display", "block");
			YAHOO.util.Dom.setStyle(moodpix.tape, "position", "relative");
			YAHOO.util.Dom.setStyle(moodpix.tape, "zIndex", "1");				
		}				
	},

	checkToSwitch: function(){
		if((this.mainModel.isConsumer) && (this.activeMoodpix == this.BUSINESS_ACTIVE)){
			this.switchMoodpix(true);
		} else if((!this.mainModel.isConsumer) && (this.activeMoodpix == this.CONSUMER_ACTIVE)){
			this.switchMoodpix(false);
		}
	},

	switchMoodpix: function(toConsumer){
		var openMoodpix;
		var closeMoodpix;
		if(toConsumer){
			this.activeMoodpix = this.CONSUMER_ACTIVE;
			openMoodpix = this.mainModel.consumerMoodPix;
			closeMoodpix = this.mainModel.businessMoodPix;
		} else {
			this.activeMoodpix = this.BUSINESS_ACTIVE;
			openMoodpix = this.mainModel.businessMoodPix;
			closeMoodpix = this.mainModel.consumerMoodPix;		
		}
		
		//TOP
		YAHOO.util.Dom.setStyle(openMoodpix.top, "display", "block");
		YAHOO.util.Dom.setStyle(openMoodpix.top, "zIndex", "1");
		YAHOO.util.Dom.setStyle(closeMoodpix.top, "display", "none");	
		YAHOO.util.Dom.setStyle(closeMoodpix.top, "zIndex", "2");
		
		//BOTTOM
		YAHOO.util.Dom.setStyle(openMoodpix.bottom, "display", "block");	
		YAHOO.util.Dom.setStyle(openMoodpix.bottom, "zIndex", "10");
		YAHOO.util.Dom.setStyle(closeMoodpix.bottom, "display", "none");	
		YAHOO.util.Dom.setStyle(closeMoodpix.bottom, "zIndex", "20");	
		
		//FRUMMEL
		YAHOO.util.Dom.setStyle(openMoodpix.frummel, "display", "block");	
		YAHOO.util.Dom.setStyle(openMoodpix.frummel, "zIndex", "15");
		YAHOO.util.Dom.setStyle(closeMoodpix.frummel, "display", "none");	
		YAHOO.util.Dom.setStyle(closeMoodpix.frummel, "zIndex", "30");
		
		//TAPE
		YAHOO.util.Dom.setStyle(openMoodpix.tape, "display", "block");	
		YAHOO.util.Dom.setStyle(openMoodpix.tape, "zIndex", "1");
		YAHOO.util.Dom.setStyle(closeMoodpix.tape, "display", "none");
		YAHOO.util.Dom.setStyle(closeMoodpix.tape, "zIndex", "5");								
	},

	showClosingTape: function(){
		if(this.gateClosingTape.animation != null){
			if(this.gateClosingTape.animation.isAnimated){
				var opacity = YAHOO.util.Dom.getStyle(this.gateClosingTape, "opacity")
				this.gateClosingTape.animation.stop(false);
				YAHOO.util.Dom.setStyle(this.gateClosingTape, "opacity", opacity);
			}
		}			
		this.gateClosingTape.animation = new YAHOO.util.Anim(this.gateClosingTape, {opacity: {to: 1}}, 0.3, YAHOO.util.Easing.easeNone);
		this.gateClosingTape.animation.animate();
	},
	
	hideClosingTape: function(){
		if(this.gateClosingTape.animation != null){
			if(this.gateClosingTape.animation.isAnimated){
				var opacity = YAHOO.util.Dom.getStyle(this.gateClosingTape, "opacity")
				this.gateClosingTape.animation.stop(false);
				YAHOO.util.Dom.setStyle(this.gateClosingTape, "opacity", opacity);
			}
		}			
		this.gateClosingTape.animation = new YAHOO.util.Anim(this.gateClosingTape, {opacity: {to: 0}}, 0.3, YAHOO.util.Easing.easeNone);
		this.gateClosingTape.animation.onComplete.subscribe(TECHTRIBE.Delegate.create(this, this.hideClosingTapeCompleteHandler));
		this.gateClosingTape.animation.animate();
	},
	
	hideClosingTapeCompleteHandler: function(){
		this.hideLoader();
	},
	
	showLoader: function(){
		YAHOO.util.Dom.setStyle(this.loaderContainer, "display", "block");
	},
	
	hideLoader: function(){
		YAHOO.util.Dom.setStyle(this.loaderContainer, "display", "none");
	},
	
	slideUp: function(){
		if(!this.isAnimatingUp){
			this.isAnimatingUp = true;
			this.mainModel.appLoadState = this.mainModel.ANIMATING_UP;
			if(this.contentSqeezer.animation != null){
				if(this.contentSqeezer.animation.isAnimated){
					var height = YAHOO.util.Dom.getStyle(this.contentSqeezer, "height")
					this.contentSqeezer.animation.stop(false);
					YAHOO.util.Dom.setStyle(this.contentSqeezer, "height", height);
				}
			}		
			this.contentSqeezer.animation = new YAHOO.util.Anim(this.contentSqeezer, {height: {to: 22}}, 1.25, TECHTRIBE.Easing.expoEaseBoth);		
			this.contentSqeezer.animation.onComplete.subscribe(TECHTRIBE.Delegate.create(this, this.slideUpCompleteHandler));
			this.contentSqeezer.animation.animate();
			setTimeout(TECHTRIBE.Delegate.create(this, this.showClosingTape), 1050);
		}			
	},
	
	slideUpCompleteHandler: function(){	
		this.mainModel.gateIsDown = false;				
		this.isAnimatingUp = false;
		this.commonEvents.gateClosedEvent.fire();
		this.contentGateController.loadContent();
	},
	
	slideDown: function(){		
		this.hideClosingTape();
		this.mainModel.appLoadState = this.mainModel.ANIMATING_DOWN;					
		if(this.contentSqeezer.animation != null){			
			if(this.contentSqeezer.animation.isAnimated){							
				var height = YAHOO.util.Dom.getStyle(this.contentSqeezer, "height")
				this.contentSqeezer.animation.stop(false);
				YAHOO.util.Dom.setStyle(this.contentSqeezer, "height", height);
			}
		}		
		this.contentSqeezer.animation = new YAHOO.util.Anim(this.contentSqeezer, {height: {to: this.content.offsetHeight}}, 1.25, TECHTRIBE.Easing.expoEaseBoth);		
		this.contentSqeezer.animation.onComplete.subscribe(TECHTRIBE.Delegate.create(this, this.slideDownCompleteHandler));
		this.contentSqeezer.animation.animate();
	},
	
	slideDownCompleteHandler: function(){	
		this.mainModel.gateIsDown = true;	
		YAHOO.util.Dom.setStyle(this.contentSqeezer, "height", "auto");
		this.mainModel.appLoadState = this.mainModel.LOADING_COMPLETE;
	},
	
	fadeOutContent: function(){
		if(!this.isDimmed){
			this.isDimmed = true;
			if(this.content.animation != null){
				if(this.content.animation.isAnimated){
					var opacity = YAHOO.util.Dom.getStyle(this.content, "opacity");
					this.content.animation.stop(false);
					YAHOO.util.Dom.setStyle(this.content, "opacity", opacity);
				}
			}			
			this.content.animation = new YAHOO.util.Anim(this.content, {opacity: {to: .10}}, 1.5, TECHTRIBE.Easing.expoEaseBoth);
			this.content.animation.animate();
		}
	},

	fadeOutContentCompleteHandler: function(){

	},
	
	fadeInContent: function(){
		if(this.isDimmed){
			this.isDimmed = false;
			if(this.content.animation != null){
				if(this.content.animation.isAnimated){
					var opacity = YAHOO.util.Dom.getStyle(this.content, "opacity");
					this.content.animation.stop(false);
					YAHOO.util.Dom.setStyle(this.content, "opacity", opacity);
				}
			}				
			this.content.animation = new YAHOO.util.Anim(this.content, {opacity: {to: 1}}, 1.5, TECHTRIBE.Easing.expoEaseBoth);	
			this.content.animation.animate();
		}						
	},
		
	fadeInContentCompleteHandler: function(){

	}
}	
ACHMEA.view.ContentGateView = ContentGateView;



/*
 *** ACHMEA.view.SearchView ***
 */
var SearchView = function() {
	this.init();
}

SearchView.prototype =
{
	mainModel: null,
	headerContainer: null,
	formTag: null,
	inputField: null,
	submitButton: null,
	
	init: function(){
		this.mainModel = ACHMEA.model.MainModel.getInstance();
		this.setElements();
		this.setEvents();
	},	
	
	setElements: function(){
		this.headerContainer = YAHOO.util.Dom.get("header");
		this.formTag = this.headerContainer.getElementsByTagName("FORM")[0];
		this.inputField = this.headerContainer.getElementsByTagName("INPUT")[0];
		this.submitButton = this.headerContainer.getElementsByTagName("BUTTON")[0];		
	},
	
	setEvents: function(){
		var callback1 = TECHTRIBE.Delegate.create(this, this.mouseDownHandler);
		this.submitButton.onclick = callback1;		
		var callback2 = TECHTRIBE.Delegate.create(this, this.onSubmitHandler);
		this.formTag.onsubmit = callback2;			
	},
		
	onSubmitHandler: function(){
		this.submitForm();
		return false;
	},
			
	mouseDownHandler: function(){
		this.submitForm();
		return false;
	},
	
	submitForm: function(){
		var isConsumer = (this.mainModel.isConsumer) ? "consumenten" : "bedrijven";
		ACHMEA.navigateTo(this.mainModel.SEARCH_DATA_PATH + "?query=" + escape(this.inputField.value) + "&url=" + isConsumer);		
	}
}	
ACHMEA.view.SearchView = SearchView;



/*
 *** ACHMEA.view.MainNavView ***
 */
var MainNavView = function() {	
	this.init();
}

MainNavView.prototype =
{
	mainNavModel: null,
	mainNavController: null,
	animationUp: null,
	animationDown: null,
	isAnimatingUp: false,
	isAnimatingDown: false,	
	
	init: function(){
		this.mainNavModel = new ACHMEA.model.MainNavModel();
		this.mainNavController = new ACHMEA.controller.MainNavController(this, this.mainNavModel, this.contentGateView);
	},
	
	slideUp: function(mainNavItemVO){		
		var childsContainer = mainNavItemVO.mainNavItem.childsContainer;	 
		if(childsContainer != null) {			
			this.isAnimatingUp = true;
			YAHOO.util.Dom.setStyle(childsContainer, "overflow", "hidden");
			if(childsContainer.animation != null){
				if(childsContainer.animation.isAnimated){
					var height = childsContainer.offsetHeight + "px";
					childsContainer.animation.stop(false);
					YAHOO.util.Dom.setStyle(childsContainer, "height", height);
				}
			}			
			childsContainer.animation = new YAHOO.util.Anim(childsContainer, {height: {to: 0}}, .5, TECHTRIBE.Easing.expoEaseBoth);
			childsContainer.animation.onComplete.subscribe(TECHTRIBE.Delegate.create(this, this.slideUpCompleteHandler));			
			childsContainer.animation.animate();
		} else {
			this.mainNavController.checkActiveNavItemsDown();
		}
	},
	
	slideUpCompleteHandler: function(){		
		this.isAnimatingUp = false;
		this.mainNavController.checkActiveNavItemsDown();
	},
	
	slideDown: function(mainNavItemVO){
		var childsContainer = mainNavItemVO.mainNavItem.childsContainer;
		var children = mainNavItemVO.mainNavItem.children;		
		if(childsContainer != null){
			this.isAnimatingDown = true;
			if(childsContainer.animation != null){
				if(childsContainer.animation.isAnimated){
					var height = childsContainer.offsetHeight + "px";
					childsContainer.animation.stop(false);
					YAHOO.util.Dom.setStyle(childsContainer, "height", height);
				}
			}
			childsContainer.animation = new YAHOO.util.Anim(childsContainer, {height: {to: children.offsetHeight}}, .75, TECHTRIBE.Easing.expoEaseBoth);
			childsContainer.animation.onComplete.subscribe(TECHTRIBE.Delegate.create(this, this.slideDownCompleteHandler, mainNavItemVO));
			childsContainer.animation.animate();	
		}	
	},
	
	slideDownCompleteHandler: function(mainNavItemVO){
		this.isAnimatingDown = false;					
		var childsContainer = mainNavItemVO.mainNavItem.childsContainer;
		var children = mainNavItemVO.mainNavItem.children;	
		YAHOO.util.Dom.setStyle(childsContainer, "height", "auto");
		this.mainNavController.enableChildren(mainNavItemVO);
		this.mainNavController.checkActiveNavItemsUp();		
	}
}
ACHMEA.view.MainNavView = MainNavView;



/*
 *** ACHMEA.view.MainNavItem ***
 */
var MainNavItem = function(id, navItemData, mainNavContainer, enabled, mainNavController, mainNavModel) {
	this.id = id;
	this.level = this.id.length;
	this.navItemData = navItemData;
	this.mainNavContainer = mainNavContainer;	
	this.enabled = enabled;
	this.mainNavController = mainNavController;
	this.mainNavModel = mainNavModel;
	this.init();
}

MainNavItem.prototype =
{
	mainModel: null,
	id: null,	
	level: null,
	navItemData: null, 	
	mainNavContainer: null,
	selected: null,	
	enabled: null,
	isOver: null,
	mainNavController: null,
	mainNavModel: null,
	settings: null,
	container: null,
	childsContainer: null,
	children: null,
	bgImg: null,
	button: null,
	
	init: function(){
		this.mainModel = ACHMEA.model.MainModel.getInstance();			
		this.settings = this.setSettings(this.level);
		this.selected = false;
		this.isOver = false;		
		this.createElements();		
		this.setEvents();
	},

	setSettings: function(level){
		var settings;
		switch(level){
			case 1:
				settings = this.mainNavModel.LEVEL_SETTINGS_1;
				break;
			case 2:
				settings = this.mainNavModel.LEVEL_SETTINGS_2;
				break;
			case 3:		
				settings = this.mainNavModel.LEVEL_SETTINGS_3;			
				break;
			default:
				alert("ERROR: ACHMEA.view.MainNavItem in function 'createElements', level: " + level + " is not supported");
				break;
		};
		return settings;
	},
	
	createElements: function(){
		this.container = TECHTRIBE.Utils.createElement(this.mainNavContainer, "DIV", "mainNavItem");
		YAHOO.util.Dom.setStyle(this.container, "width", this.settings.width + "px");
		YAHOO.util.Dom.setStyle(this.container, "height", this.settings.containerHeight + "px");
		YAHOO.util.Dom.setStyle(this.container, "display", "block");
		YAHOO.util.Dom.setStyle(this.container, "overflow", "hidden");
		YAHOO.util.Dom.setStyle(this.container, "cursor", "pointer");
		this.bgImg = new Image();
		this.bgImg.onload = TECHTRIBE.Delegate.create(this, this.imageLoadHandler);
		this.bgImg.src = this.mainModel.GENERATED_IMG_PATH + this.navItemData.labelImg;
	},
	
	imageLoadHandler: function(){
		YAHOO.util.Dom.setStyle(this.container, "backgroundColor", "#FFFFFF");
		YAHOO.util.Dom.setStyle(this.container, "backgroundRepeat", "no-repeat");		
		YAHOO.util.Dom.setStyle(this.container, "backgroundImage", "url(\'" + this.bgImg.src + "\')");
		YAHOO.util.Dom.setStyle(this.container, "backgroundPosition", "0px 0px");
		this.mainNavController.mainNavItemLoaded();
	},
	
	setChildsContainer: function(childsContainer, children){
		this.childsContainer = childsContainer;
		this.children = children;
	},
	
	setEvents: function(){
		YAHOO.util.Event.addListener(this.container, "mousedown", TECHTRIBE.Delegate.create(this, this.mouseDownHandler));
		YAHOO.util.Event.addListener(this.container, "mouseover", TECHTRIBE.Delegate.create(this, this.mouseOverHandler));
		YAHOO.util.Event.addListener(this.container, "mouseout", TECHTRIBE.Delegate.create(this, this.mouseOutHandler));		
	},
	
	setSelected: function(selected){
		this.selected = selected;
		if(this.selected){
			YAHOO.util.Dom.setStyle(this.container, "backgroundPosition", "0px -" + (this.settings.height / 2) + "px");	
		} else {
			YAHOO.util.Dom.setStyle(this.container, "backgroundPosition", "0px 0px");
		}	
	},
	
	setEnabled: function(enabled){
		this.enabled = enabled;
		if(this.enabled){
			if(this.isOver){
				this.mainNavController.preActivateMainNavItem(this.id);
			}		
		}		
	},
	
	mouseDownHandler: function(){
		ACHMEA.navigateTo(this.navItemData.link);
		return false;
	},

	mouseOverHandler: function(){
		this.isOver = true;		
		if(this.level == 1){
			if(this.enabled){
				this.mainNavController.preActivateMainNavItem(this.id);
			} else {
				this.mainNavController.setNewMainNavActive(this.id);
			}	
		} else {
			this.mainNavController.setNewMainNavActive(this.id);
		}
		YAHOO.util.Dom.setStyle(this.container, "backgroundPosition", "0px -" + (this.settings.height / 2) + "px");
	},
	
	mouseOutHandler: function(){
		this.isOver = false;
		this.mainNavController.preDeactivateMainNavItem();
		if(!this.selected){
			YAHOO.util.Dom.setStyle(this.container, "backgroundPosition", "0px 0px");
		}			
	}
}
ACHMEA.view.MainNavItem = MainNavItem;



/*
 *** ACHMEA.view.ThemeNavView ***
 */
var ThemeNavView = function(aboutAchmea) {
	this.aboutAchmea = aboutAchmea;
	this.init();
}

ThemeNavView.prototype =
{
	aboutAchmea: null,
	themeNavModel: null,
	controller: null,
	isAnimatingCloud: false,
	
	init: function(){
		this.themeNavModel = new ACHMEA.model.ThemeNavModel();
		this.controller = new ACHMEA.controller.ThemeNavController(this, this.themeNavModel);
		this.setEvents();
	},
	
	setEvents: function(){
		var overallContainer = YAHOO.util.Dom.get("overallContainer");
		var delegate = TECHTRIBE.Delegate.create(this.controller, this.controller.checkDeactivateThemeNavItem);
		YAHOO.util.Event.addListener(overallContainer, "mousedown", delegate);
	},

	animateThemeNavItemIn: function(themeNavItem, themeNavEl){
		this.aboutAchmea.closeAboutAchmea();
		if(themeNavEl.animation != null){
			if(themeNavEl.animation.isAnimated){
				var width = themeNavEl.offsetWidth + "px";
				themeNavEl.animation.stop(false);
				YAHOO.util.Dom.setStyle(themeNavEl, "width", width);
			}
		}
		if(themeNavEl.colorAnimation != null){
			if(themeNavEl.colorAnimation.isAnimated){
				var colorGet = YAHOO.util.Dom.getStyle(themeNavEl, "backgroundColor");
				themeNavEl.colorAnimation.stop(false);
				YAHOO.util.Dom.setStyle(themeNavEl, "backgroundColor", colorGet);
			}
		}
		themeNavEl.animation = new YAHOO.util.Anim(themeNavEl, {width: {to: (themeNavItem.nativeWidth + 16)}}, .75, TECHTRIBE.Easing.expoEaseOut);
		themeNavEl.colorAnimation = new YAHOO.util.ColorAnim(themeNavEl, {backgroundColor: {to: "#929496"}}, .75, TECHTRIBE.Easing.expoEaseOut);		
		themeNavEl.animation.animate();
		themeNavEl.colorAnimation.animate();
	},
	
	animateThemeNavItemOut: function(themeNavItem, themeNavEl){		
		if(themeNavEl.animation != null){
			if(themeNavEl.animation.isAnimated){
				var width = themeNavEl.offsetWidth + "px";
				themeNavEl.animation.stop(false);
				YAHOO.util.Dom.setStyle(themeNavEl, "width", width);
			}
		}		
		if(themeNavEl.colorAnimation != null){
			if(themeNavEl.colorAnimation.isAnimated){
				var colorGet = YAHOO.util.Dom.getStyle(themeNavEl, "backgroundColor");
				themeNavEl.colorAnimation.stop(false);
				YAHOO.util.Dom.setStyle(themeNavEl, "backgroundColor", colorGet);
			}
		}
		themeNavEl.animation = new YAHOO.util.Anim(themeNavEl, {width: {to: (themeNavItem.nativeWidth)}}, .75, TECHTRIBE.Easing.expoEaseOut);
		themeNavEl.colorAnimation = new YAHOO.util.ColorAnim(themeNavEl, {backgroundColor: {to: "#E5A7AC"}}, .75, TECHTRIBE.Easing.expoEaseOut);		
		themeNavEl.animation.animate();		
		themeNavEl.colorAnimation.animate();		
	},

	animateThemeNavIn: function(collectionVO, iterator){
		var themeNavItems = collectionVO.themeNavItems;
		if(typeof(iterator) == "undefined"){
			iterator = 0;
			for(var i=0;i<themeNavItems.length;i++)
			{
				YAHOO.util.Dom.setStyle(themeNavItems[i].themeNavEl, "opacity", 0);			
				YAHOO.util.Dom.setStyle(themeNavItems[i].themeNavEl, "display", "block");	
			}
		} 		
		if(iterator == 0){
			var header = collectionVO.header;
			YAHOO.util.Dom.setStyle(header, "opacity", 0);	
			YAHOO.util.Dom.setStyle(header, "display", "block");
			var tweenTo = TECHTRIBE.Utils.stripValuePx(YAHOO.util.Dom.getStyle(header, "top"));						
			YAHOO.util.Dom.setStyle(header, "top", (tweenTo + 50) + "px");
			var animation = new YAHOO.util.Anim(header, {top: {to: tweenTo}, opacity: {to: 1}}, 0.75, TECHTRIBE.Easing.expoEaseBoth);			
			animation.animate();
			setTimeout(TECHTRIBE.Delegate.create(this, this.animateThemeNavIn, collectionVO, ++iterator), 30);			
		} else if(themeNavItems.length != (iterator - 1)){			
			var themeNavItem = themeNavItems[(iterator - 1)];			
			var themeNavEl = themeNavItem.themeNavEl
			var tweenTo = TECHTRIBE.Utils.stripValuePx(YAHOO.util.Dom.getStyle(themeNavEl, "top"));						
			YAHOO.util.Dom.setStyle(themeNavEl, "top", (tweenTo + 50) + "px");
			var animation = new YAHOO.util.Anim(themeNavEl, {top: {to: tweenTo}, opacity: {to: 1}}, 0.75, TECHTRIBE.Easing.expoEaseBoth);			
			animation.animate();
			setTimeout(TECHTRIBE.Delegate.create(this, this.animateThemeNavIn, collectionVO, ++iterator), 30);		
		} else {
			var footer = collectionVO.footer;
			YAHOO.util.Dom.setStyle(footer, "opacity", 0);
			YAHOO.util.Dom.setStyle(footer, "display", "block");
			var tweenTo = TECHTRIBE.Utils.stripValuePx(YAHOO.util.Dom.getStyle(footer, "top"));
			YAHOO.util.Dom.setStyle(footer, "top", (tweenTo + 50) + "px");
			var animation = new YAHOO.util.Anim(footer, {top: {to: tweenTo}, opacity: {to: 1}}, 0.75, TECHTRIBE.Easing.expoEaseBoth);		
			animation.animate();
		}					
	},
	
	animateThemeNavOut: function(collectionVO, iterator){
		var themeNavItems = collectionVO.themeNavItems;
		if(typeof(iterator) == "undefined"){
			iterator = 0;
			for(var i=0;i<themeNavItems.length;i++)
			{
				YAHOO.util.Dom.setStyle(themeNavItems[i].themeNavEl, "opacity", 1);			
			}
		} 		
		if(iterator == 0){
			var header = collectionVO.header;
			YAHOO.util.Dom.setStyle(header, "opacity", 1);
			var animation = new YAHOO.util.Anim(header, {opacity: {to: 0}}, 0.75, TECHTRIBE.Easing.expoEaseBoth);			
			var callback = TECHTRIBE.Delegate.create(this, this.disableItem, header);
			animation.onComplete.subscribe(callback);	
			animation.animate();
			setTimeout(TECHTRIBE.Delegate.create(this, this.animateThemeNavOut, collectionVO, 1), 30);			
		} else if(themeNavItems.length != (iterator - 1)){
			var themeNavItem = themeNavItems[(iterator - 1)];			
			var themeNavEl = themeNavItem.themeNavEl
			var animation = new YAHOO.util.Anim(themeNavEl, {opacity: {to: 0}}, 0.75, TECHTRIBE.Easing.expoEaseBoth);			
			var callback = TECHTRIBE.Delegate.create(this, this.disableItem, themeNavEl);
			animation.onComplete.subscribe(callback);			
			animation.animate();
			setTimeout(TECHTRIBE.Delegate.create(this, this.animateThemeNavOut, collectionVO, ++iterator), 30);		
		} else {
			var footer = collectionVO.footer;
			YAHOO.util.Dom.setStyle(footer, "opacity", 1);
			var animation = new YAHOO.util.Anim(footer, {opacity: {to: 0}}, 0.75, TECHTRIBE.Easing.expoEaseBoth);		
			var callback = TECHTRIBE.Delegate.create(this, this.disableItem, footer);
			animation.onComplete.subscribe(callback);
			animation.animate();
			this.controller.activateThemeNav();
		}		
	},
	
	animateTagCloudIn: function(themeCloudItems, themeNavID, iterator){
		if(typeof(iterator) == "undefined"){
			this.themeNavModel.animatedThemeNavID = themeNavID;
			iterator = 0;
			for(var i=0;i<themeCloudItems.length;i++)
			{				
				if(themeCloudItems[i].themeCloudEl.animation != null){
					if(themeCloudItems[i].themeCloudEl.animation.isAnimated){
						themeCloudItems[i].themeCloudEl.animation.stop(false);
					}
				}
				YAHOO.util.Dom.setStyle(themeCloudItems[i].themeCloudEl, "opacity", 0);			
				YAHOO.util.Dom.setStyle(themeCloudItems[i].themeCloudEl, "display", "block");								
			}
		} 
		if(themeCloudItems.length != iterator){
			var themeCloudItem = themeCloudItems[iterator];
			var activeThemeNavItem = this.themeNavModel.getThemeNavItemByID(themeNavID).themeNavEl;		
			var tweenTo = TECHTRIBE.Utils.stripValuePx(YAHOO.util.Dom.getStyle(activeThemeNavItem, "top")) + (iterator * 26);
			YAHOO.util.Dom.setStyle(themeCloudItem.themeCloudEl, "top", (tweenTo + 50) + "px");
			themeCloudItem.themeCloudEl.animation = new YAHOO.util.Anim(themeCloudItem.themeCloudEl, {top: {to: tweenTo}, opacity: {to: 1}}, 0.75, TECHTRIBE.Easing.expoEaseOut);			
			themeCloudItem.themeCloudEl.animation.animate();
			setTimeout(TECHTRIBE.Delegate.create(this, this.animateTagCloudIn, themeCloudItems, themeNavID, ++iterator), 50);
		}
	},
	
	animateTagCloudOut: function(themeCloudItems, iterator){	
		if(typeof(iterator) == "undefined"){
			this.themeNavModel.animatedThemeNavID = 0;
			iterator = 0;
		} 
		if(themeCloudItems.length != iterator){
			var themeCloudItem = themeCloudItems[iterator];	
			if(themeCloudItem.themeCloudEl.animation != null){
				if(themeCloudItem.themeCloudEl.animation.isAnimated){
					themeCloudItem.themeCloudEl.animation.stop(false);
				}
			}	
			var tweenTo = TECHTRIBE.Utils.stripValuePx(YAHOO.util.Dom.getStyle(themeCloudItem.themeCloudEl, "top")) - 50;
			themeCloudItem.themeCloudEl.animation = new YAHOO.util.Anim(themeCloudItem.themeCloudEl, {opacity: {to: 0}}, 0.75, TECHTRIBE.Easing.expoEaseBoth);	
			var callback = TECHTRIBE.Delegate.create(this, this.disableItem, themeCloudItem.themeCloudEl);
			themeCloudItem.themeCloudEl.animation.onComplete.subscribe(callback);			
			++iterator;
			if(themeCloudItems.length == iterator){
				var delegate = TECHTRIBE.Delegate.create(this.controller, this.controller.checkActiveThemeNavItems);
				themeCloudItem.themeCloudEl.animation.onComplete.subscribe(delegate);
			} else {
				setTimeout(TECHTRIBE.Delegate.create(this, this.animateTagCloudOut, themeCloudItems, iterator), 50);
			}	
			themeCloudItem.themeCloudEl.animation.animate();
		}		
	},
	
	mouseOverOutThemeNavItem: function(over, themeNavEl, nativeWidth){
		if(themeNavEl.animation2 != null){
			if(themeNavEl.animation2.isAnimated){
				var width = themeNavEl.offsetWidth + "px";
				themeNavEl.animation2.stop(false);
				YAHOO.util.Dom.setStyle(themeNavEl, "width", width);
			}
		}
		var tweenTo = (over) ? (nativeWidth + 16) : nativeWidth;
		themeNavEl.animation2 = new YAHOO.util.Anim(themeNavEl, {width: {to: tweenTo}}, .75, TECHTRIBE.Easing.expoEaseOut);
		themeNavEl.animation2.animate();
	},
	
	mouseOverOutThemeCloudItem: function(themeCloudEl, color){
		if(themeCloudEl.animation2 != null){
			if(themeCloudEl.animation2.isAnimated){
				var colorGet = YAHOO.util.Dom.getStyle(themeCloudEl, "backgroundColor");
				themeCloudEl.animation2.stop(false);
				YAHOO.util.Dom.setStyle(themeCloudEl, "backgroundColor", colorGet);
			}
		}
		themeCloudEl.animation2 = new YAHOO.util.ColorAnim(themeCloudEl, {backgroundColor: {to: color}}, .75, TECHTRIBE.Easing.expoEaseOut);
		themeCloudEl.animation2.animate();
	},	
	
	disableItem: function(item){
		YAHOO.util.Dom.setStyle(item, "display", "none");
	}
}	
ACHMEA.view.ThemeNavView = ThemeNavView;



/*
 *** ACHMEA.view.ThemeNavItem ***
 */
var ThemeNavItem = function(themeNavView, themeNavController, themeNavEl, imgSrc, index, id) {
	this.id = id;
	this.index = index;
	this.themeNavView = themeNavView;
	this.themeNavController = themeNavController;
	this.themeNavEl = themeNavEl;		
	this.imgSrc = imgSrc;
	this.isActive = false;
	this.isSelected = false;	
	this.init();
}

ThemeNavItem.prototype =
{
	id: null,
	index: null,
	themeNavView: null,
	themeNavController: null,
	nativeWidth: null,
	themeNavEl: null,
	themeNavName: null,
	themeNavColor: null,
	img: null,
	imgSrc: null,
	isSelected: null,	
	
	init: function(){		
		this.setElements();
		this.createElements();
		this.setEvents();
	},

	setElements: function(){		
		this.themeNavName = YAHOO.util.Dom.getElementsByClassName("themeNavName", "DIV", this.themeNavEl)[0];
		this.themeNavColor = YAHOO.util.Dom.getElementsByClassName("themeNavColor", "DIV", this.themeNavEl)[0];	
	},
	
	createElements: function(){
		this.img = new Image();
		this.img.onload = TECHTRIBE.Delegate.create(this, this.imageLoadHandler);
		this.img.src = this.imgSrc;
	},
	
	imageLoadHandler: function(){
		TECHTRIBE.Utils.createElement(this.themeNavName, "IMG", null, null, null, this.img.src);
		if(YAHOO.env.ua.safari){
			setTimeout(TECHTRIBE.Delegate.create(this, this.delay), 100);
		} else {
			this.setStyles();
			this.themeNavController.themeItemLoaded();	
		}
	},
	
	delay: function(){
		this.setStyles();
		this.themeNavController.themeItemLoaded();		
	},
	
	setStyles: function(){
		YAHOO.util.Dom.setStyle(this.themeNavEl, "top", (190 + ((this.index - 1) * 26)) + "px");		
		YAHOO.util.Dom.setStyle(this.themeNavEl, "width", (this.themeNavName.offsetWidth + 21) + "px");
		YAHOO.util.Dom.setStyle(this.themeNavEl, "right", (133 - this.themeNavEl.offsetWidth) + "px");	
		YAHOO.util.Dom.setStyle(this.themeNavColor, "float", "right");
		this.nativeWidth = (this.themeNavName.offsetWidth + 21);
		YAHOO.util.Dom.setStyle(this.themeNavEl, "display", "none");
	},
	
	setEvents: function(){
		YAHOO.util.Event.addListener(this.themeNavEl, "mousedown", TECHTRIBE.Delegate.create(this, this.mouseDownHandler));
		YAHOO.util.Event.addListener(this.themeNavEl, "mouseover", TECHTRIBE.Delegate.create(this, this.mouseOverHandler));
		YAHOO.util.Event.addListener(this.themeNavEl, "mouseout", TECHTRIBE.Delegate.create(this, this.mouseOutHandler));
	},		
	
	mouseDownHandler: function(){
		this.themeNavController.checkActivateThemeNavItem(this.id);
	},

	mouseOverHandler: function(){
		if((!this.isSelected) && (!this.isActive)){
			this.themeNavView.mouseOverOutThemeNavItem(true, this.themeNavEl, this.nativeWidth);	
		}			
	},
	
	mouseOutHandler: function(){
		if((!this.isSelected) && (!this.isActive)){
			this.themeNavView.mouseOverOutThemeNavItem(false, this.themeNavEl, this.nativeWidth);
		}
	}
}
ACHMEA.view.ThemeNavItem = ThemeNavItem;



/*
 *** ACHMEA.view.ThemeCloudItem ***
 */
var ThemeCloudItem = function(themeNavView, themeNavController, themeCloudEl, imgSrc, url, id) {
	this.id = id;
	this.url = url;
	this.themeNavView = themeNavView;
	this.themeNavController = themeNavController;
	this.themeCloudEl = themeCloudEl;
	this.imgSrc = imgSrc;
	this.init();
}

ThemeCloudItem.prototype =
{	
	MOUSE_OVER_BG_COLOR: "#E5A7AC",
	MOUSE_OUT_BG_COLOR: "#48484A",	
	id: null,
	img: null,
	imgSrc: null,
	themeNavView: null,
	themeNavController: null,
	themeCloudEl: null,	
	themeCloudName: null,
	themeCloudColor: null,	
	
	init: function(){
		this.setElements();
		this.createElements();
		this.setEvents();
	},

	setElements: function(){
		this.themeCloudName = YAHOO.util.Dom.getElementsByClassName("themeCloudName", "DIV", this.themeCloudEl)[0];
		this.themeCloudColor = YAHOO.util.Dom.getElementsByClassName("themeCloudColor", "DIV", this.themeCloudEl)[0];	
	},
	
	createElements: function(){
		this.img = new Image();
		this.img.onload = TECHTRIBE.Delegate.create(this, this.imageLoadHandler);
		this.img.src = this.imgSrc;
	},
	
	imageLoadHandler: function(){
		TECHTRIBE.Utils.createElement(this.themeCloudName, "IMG", null, null, null, this.img.src);
		this.setStyles();
		this.themeNavController.cloudItemLoaded();
	},	
	
	setStyles: function(){
		YAHOO.util.Dom.setStyle(this.themeCloudEl, "top", (190 + ((this.id - 1) * 26)) + "px");
		YAHOO.util.Dom.setStyle(this.themeCloudEl, "right", "149px");				
		YAHOO.util.Dom.setStyle(this.themeCloudEl, "width", (this.themeCloudEl.offsetWidth + 4) + "px");
		YAHOO.util.Dom.setStyle(this.themeCloudEl, "display", "none");
	},
	
	setEvents: function(){
		YAHOO.util.Event.addListener(this.themeCloudEl, "mousedown", TECHTRIBE.Delegate.create(this, this.mouseDownHandler));
		YAHOO.util.Event.addListener(this.themeCloudEl, "mouseover", TECHTRIBE.Delegate.create(this, this.mouseOverHandler));
		YAHOO.util.Event.addListener(this.themeCloudEl, "mouseout", TECHTRIBE.Delegate.create(this, this.mouseOutHandler));
	},
	
	mouseDownHandler: function(){
		this.themeNavController.themeCloudClicked = true;
		ACHMEA.navigateTo(this.url);
		return false;	
	},

	mouseOverHandler: function(){
		this.themeNavView.mouseOverOutThemeCloudItem(this.themeCloudEl, this.MOUSE_OVER_BG_COLOR);
	},
	
	mouseOutHandler: function(){
		this.themeNavView.mouseOverOutThemeCloudItem(this.themeCloudEl, this.MOUSE_OUT_BG_COLOR);
	}
}
ACHMEA.view.ThemeCloudItem = ThemeCloudItem;



/*
 *** ACHMEA.view.ThemeMoreItem ***
 */
var ThemeMoreItem = function(imgSrc, width, height, url, themeNavView, themeNavController, themeCloudEl, id, color) {
	this.id = id;
	this.width = width;
	this.height = height;
	this.url = url;
	this.themeNavView = themeNavView;
	this.themeNavController = themeNavController;
	this.themeCloudEl = themeCloudEl;
	this.imgSrc = imgSrc;
	this.color = color;
	this.init();
}

ThemeMoreItem.prototype =
{	
	MOUSE_OVER_BG_COLOR: "#E5A7AC",
	id: null,
	width: null,
	height: null,
	img: null,
	imgSrc: null,
	color: null,
	themeNavView: null,
	themeNavController: null,
	themeCloudEl: null,
	
	init: function(){
		this.createElements();
		this.setEvents();
	},
	
	createElements: function(){
		this.img = new Image();
		this.img.onload = TECHTRIBE.Delegate.create(this, this.imageLoadHandler);
		this.img.src = this.imgSrc;
	},
	
	imageLoadHandler: function(){
		var imgWrapper = TECHTRIBE.Utils.createElement(this.themeCloudEl, "DIV");
		imgWrapper.innerHTML = "<img src='" + this.imgSrc + "' width='" + this.width + "' height='" + this.height + "'/>";
		this.setStyles();
		this.themeNavController.cloudItemLoaded();
	},	
	
	setStyles: function(){
		YAHOO.util.Dom.setStyle(this.themeCloudEl, "top", (190 + ((this.id - 1) * 26)) + "px");
		YAHOO.util.Dom.setStyle(this.themeCloudEl, "right", "149px");				
		YAHOO.util.Dom.setStyle(this.themeCloudEl, "width", (this.themeCloudEl.offsetWidth) + "px");
		YAHOO.util.Dom.setStyle(this.themeCloudEl, "backgroundColor", this.color);
		YAHOO.util.Dom.setStyle(this.themeCloudEl, "display", "none");
	},
	
	setEvents: function(){
		YAHOO.util.Event.addListener(this.themeCloudEl, "mousedown", TECHTRIBE.Delegate.create(this, this.mouseDownHandler));
		YAHOO.util.Event.addListener(this.themeCloudEl, "mouseover", TECHTRIBE.Delegate.create(this, this.mouseOverHandler));
		YAHOO.util.Event.addListener(this.themeCloudEl, "mouseout", TECHTRIBE.Delegate.create(this, this.mouseOutHandler));
	},
	
	mouseDownHandler: function(){
		this.themeNavController.themeCloudClicked = true;
		ACHMEA.navigateTo(this.url);
		return false;	
	},

	mouseOverHandler: function(){
		this.themeNavView.mouseOverOutThemeCloudItem(this.themeCloudEl, this.MOUSE_OVER_BG_COLOR);
	},
	
	mouseOutHandler: function(){
		this.themeNavView.mouseOverOutThemeCloudItem(this.themeCloudEl, this.color);
	}
}
ACHMEA.view.ThemeMoreItem = ThemeMoreItem;



/*
 *** ACHMEA.view.AboutAchmeaView ***
 */
var AboutAchmeaView = function() {
	this.init();
}

AboutAchmeaView.prototype =
{	
	mainModel: null,
	commonEvents: null,
	container: null,
	callback1: null,
	showed: false,

	init: function(){		
		this.mainModel = ACHMEA.model.MainModel.getInstance();
		this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
		this.container = YAHOO.util.Dom.get("aboutAchmea");
		this.setStyles();
		this.setListeners();		
	},
	
	setStyles: function(){
		YAHOO.util.Dom.setStyle(this.container, "opacity", 0);
		YAHOO.util.Dom.setStyle(this.container, "display", "none");		
	},
	
	setListeners: function(){
		this.callback1 = TECHTRIBE.Delegate.create(this, this.stateChangeHandler);
		this.commonEvents.stateChangeEvent.subscribe(this.callback1);		
	},
	
	removeListeners: function(){
		this.commonEvents.stateChangeEvent.unsubscribe(this.callback1);		
	},
	
	stateChangeHandler: function(){		
		if((this.mainModel.isHome()) && (!this.showed)){
			this.showed = true;
			setTimeout(TECHTRIBE.Delegate.create(this, this.show), 2000);
		} else if(this.showed){
			this.removeListeners();
			this.hide();
		} else {
			this.removeListeners();	
		}
	},

	closeAboutAchmea: function(){
		if((this.showed) && (YAHOO.util.Dom.getStyle(this.container, "display") == "block")){
			this.removeListeners();
			this.hide();
		}		
	},

	show: function(){		
		YAHOO.util.Dom.setStyle(this.container, "display", "block");		
		var tweenTo = TECHTRIBE.Utils.stripValuePx(YAHOO.util.Dom.getStyle(this.container, "left"));				
		YAHOO.util.Dom.setStyle(this.container, "left", (tweenTo - 50) + "px");
		var animation = new YAHOO.util.Anim(this.container, {opacity: {to: 0.9}, left: {to: tweenTo}}, 1.5, TECHTRIBE.Easing.expoEaseOut);
		animation.animate();		
	},

	hide: function(){
		
		var tweenTo = TECHTRIBE.Utils.stripValuePx(YAHOO.util.Dom.getStyle(this.container, "left")) - 50;				
		var animation = new YAHOO.util.Anim(this.container, {opacity: {to: 0}, left: {to: tweenTo}}, 1, TECHTRIBE.Easing.expoEaseIn);
		var delegate = TECHTRIBE.Delegate.create(this, this.hideCompleteHandler);
		animation.onComplete.subscribe(delegate);
		animation.animate();
	},
	
	hideCompleteHandler: function(){
		YAHOO.util.Dom.setStyle(this.container, "display", "none");
	}
}	
ACHMEA.view.AboutAchmeaView = AboutAchmeaView;
	


/*
 *** ACHMEA.view.NewsBlocksView ***
 */
var NewsBlocksView = function() {
	this.init();
}

NewsBlocksView.prototype =
{	
	MAX_NEWS_BLOCKS: 3,
	mainModel: null, 
	commonEvents: null,
	newsBlockContainer: null,
	blocksVisible: false,
	startup: true,

	init: function(){		
		this.mainModel = ACHMEA.model.MainModel.getInstance();
		this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
		this.setElements();		
		this.setListeners();		
	},
	
	setElements: function(){
		this.newsBlockContainer = YAHOO.util.Dom.get("newsBlockContainer");
	},
	
	setListeners: function(){
		var callback1 = TECHTRIBE.Delegate.create(this, this.dataReadyHandler);		
		this.commonEvents.basicDataReceivedEvent.subscribe(callback1);
		var callback2 = TECHTRIBE.Delegate.create(this, this.stateChangeHandler);		
		this.commonEvents.stateChangeEvent.subscribe(callback2);	
		var callback3 = TECHTRIBE.Delegate.create(this, this.gateClosedHandler);		
		this.commonEvents.gateClosedEvent.subscribe(callback3);				
	},
	
	dataReadyHandler: function(){
		this.createNewsBlocks(this.mainModel.newsBlockData);
	},
	
	stateChangeHandler: function(){	
		if(this.startup){
			this.startup = false;
			if(this.mainModel.isHome()){
				if(!this.blocksVisible){
					this.blocksVisible = true;				
					this.showNewsBlocks();
				}
			}			
		}	
		if(this.blocksVisible){
			this.blocksVisible = false;
			this.hideNewsBlocks();
		} else {
			if(!this.mainModel.gateIsDown){
				if(this.mainModel.isHome()){
					if(!this.blocksVisible){
						this.blocksVisible = true;				
						this.showNewsBlocks();
					}
				}
			}		
		}
	},
	
	gateClosedHandler: function(){		
		if(this.mainModel.isHome()){
			if(!this.blocksVisible){
				this.blocksVisible = true;				
				this.showNewsBlocks();
			}
		}
	},	
	
	createNewsBlocks: function(newsBlocksData){
		var content = "";
		for(var i=0;i<this.MAX_NEWS_BLOCKS;i++)
		{
			var newsBlockData = newsBlocksData[i];				
			if(i == 0){
				content += "<div style='margin-left: 15px;'><div class='newsBlockItem'><div class='block'><a href='" + newsBlockData.link.href + "' onclick='ACHMEA.navigateTo(\"" + newsBlockData.link.href + "\"); return false'><div class='header'><h3>" + newsBlockData.link.content + "</h3><img src='" + this.mainModel.GENERATED_IMG_PATH + newsBlockData.title.img + "'/></div><p><u class='more'>" + newsBlockData.link.content + "</u></p></a></div><div class='corner-lt'> </div><div class='corner-rt'> </div><div class='corner-rb'> </div><div class='corner-lb'> </div></div></div>";				
			} else {
				content += "<div class='newsBlockItem'><div class='block'><a href='" + newsBlockData.link.href + "' onclick='ACHMEA.navigateTo(\"" + newsBlockData.link.href + "\"); return false'><div class='header'><h3>" + newsBlockData.link.content + "</h3><img src='" + this.mainModel.GENERATED_IMG_PATH + newsBlockData.title.img + "'/></div><p><u class='more'>" + newsBlockData.link.content + "</u></p></a></div><div class='corner-lt'> </div><div class='corner-rt'> </div><div class='corner-rb'> </div><div class='corner-lb'> </div></div>";				
			}						
		}
		this.newsBlockContainer.innerHTML = content;
	},
	
	showNewsBlocks: function(){		
		var animation1 = new YAHOO.util.Anim(this.newsBlockContainer, {height: {to: 62}}, 1, TECHTRIBE.Easing.expoEaseBoth);
		var animation2 = new YAHOO.util.Anim(this.newsBlockContainer, {opacity: {to: 1}}, 1, TECHTRIBE.Easing.expoEaseIn);		
		animation1.animate();	
		animation2.animate();		
	},
	
	hideNewsBlocks: function(){
		var animation1 = new YAHOO.util.Anim(this.newsBlockContainer, {height: {to: 0}}, 1, TECHTRIBE.Easing.expoEaseBoth);
		var animation2 = new YAHOO.util.Anim(this.newsBlockContainer, {opacity: {to: 0}}, 1, TECHTRIBE.Easing.expoEaseOut);		
		animation1.animate();	
		animation2.animate();			
	}
}	
ACHMEA.view.NewsBlocksView = NewsBlocksView;



/*
 *** ACHMEA.view.MetaNavView ***
 */
var MetaNavView = function() {
	this.init();
}

MetaNavView.prototype =
{	
	mainModel: null,
	controller: null,	
	model: null,
	metaNavContainer: null,
	blocksVisible: false,

	init: function(){
		this.mainModel = ACHMEA.model.MainModel.getInstance();
		this.model = new ACHMEA.model.MetaNavModel();
		this.controller = new ACHMEA.controller.MetaNavController(this, this.model);
		this.setElements();
	},
	
	setElements: function(){
		this.metaNavContainer = YAHOO.util.Dom.get("metaNavContainer");
	},	
	
	createMetaNav: function(metaNavData){
		var content = "<ul><li>&copy; 2008 Achmea</li>";
		for(var i=0;i<metaNavData.length;i++)
		{
			var metaNavItem = metaNavData[i];					
			content += "<li><a href='" + metaNavItem.link + "' onclick='ACHMEA.navigateTo(\"" + metaNavItem.link + "\"); return false' onmouseover='ACHMEA.mainView.metaNavigation.metaNavItemOver(this);' onmouseout='ACHMEA.mainView.metaNavigation.metaNavItemOut(this);'>" + metaNavItem.label + "</a></li>";				
		}
		content += "</ul>";
		this.metaNavContainer.innerHTML = content;
	},
	
	metaNavItemOver: function(metaNavItem){
		if(!this.checkIfActive(metaNavItem.href)){
			YAHOO.util.Dom.setStyle(metaNavItem, "color", "#ce9a9f");
		}			
	},
	
	metaNavItemOut: function(metaNavItem){
		if(!this.checkIfActive(metaNavItem.href)){
			YAHOO.util.Dom.setStyle(metaNavItem, "color", "#8c8c8c");
		}		
	},
	
	checkIfActive: function(url){		
		url = url.substring(url.indexOf("/consumenten/"), url.length);	
		if(this.mainModel.activeLinkId == url){
			return true;
		}
		return false;
	}
}	
ACHMEA.view.MetaNavView = MetaNavView;



/*
 *** ACHMEA.view.ToolbarView ***
 */
var ToolbarView = function() {
	this.init();
}

ToolbarView.prototype =
{
	model: null,
	controller: null,
	toolsContainer: null,
	articleToolsMenu: null, 
	articleToolsSqeezer: null, 	
	articleToolsContent: null,
	isClosed: true,
	isAnimatingUp: false,
	
	init: function(){
		if(YAHOO.util.Dom.get("toolsContainer") != null){		
			this.model = new ACHMEA.model.ToolbarModel();
			this.setElements();
			this.setStyles();			
			this.controller = new ACHMEA.controller.ToolbarController(this.model, this);
		}
	},
	
	setElements: function(){
		this.toolsContainer = YAHOO.util.Dom.get("toolsContainer");
		this.articleToolsMenu = YAHOO.util.Dom.get("articleToolsMenu");
		this.articleToolsSqeezer = YAHOO.util.Dom.get("articleToolsSqeezer");
		this.articleToolsContent = YAHOO.util.Dom.get("articleToolsContent");
	},
	
	setStyles: function(){
		YAHOO.util.Dom.setStyle(this.articleToolsSqeezer, "overflow", "hidden");
		YAHOO.util.Dom.setStyle(this.articleToolsSqeezer, "height", "0px");	
	},
	
	slideUp: function(){ 
		if(!this.isAnimatingUp){
			this.isAnimatingUp = true;
			if(this.articleToolsSqeezer.animation1 != null){
				if(this.articleToolsSqeezer.animation1.isAnimated){
					var height = YAHOO.util.Dom.getStyle(this.articleToolsSqeezer, "height");
					this.articleToolsSqeezer.animation1.stop(false);
					YAHOO.util.Dom.setStyle(this.articleToolsSqeezer, "height", height);
				}
			}
			if(this.articleToolsSqeezer.animation2 != null){
				if(this.articleToolsSqeezer.animation2.isAnimated){
					var opacity = YAHOO.util.Dom.getStyle(this.articleToolsSqeezer, "opacity");
					this.articleToolsSqeezer.animation2.stop(false);
					YAHOO.util.Dom.setStyle(this.articleToolsSqeezer, "opacity", opacity);
				}
			}				
			this.articleToolsSqeezer.animation1 = new YAHOO.util.Anim(this.articleToolsSqeezer, {height: {to: 0}}, 1.25, TECHTRIBE.Easing.expoEaseBoth);		
			this.articleToolsSqeezer.animation2 = new YAHOO.util.Anim(this.articleToolsSqeezer, {opacity: {to: 0}}, 1.25, TECHTRIBE.Easing.expoEaseBoth);		
			this.articleToolsSqeezer.animation1.onComplete.subscribe(TECHTRIBE.Delegate.create(this, this.slideUpCompleteHandler));
			this.articleToolsSqeezer.animation1.animate();
			this.articleToolsSqeezer.animation2.animate();
		}	
	},
	
	slideUpCompleteHandler: function(){
		this.isAnimatingUp = false;
		this.isClosed = true;
		this.controller.switchTool();
	},
	
	slideDown: function(){
		this.isClosed = false;		
		if(this.articleToolsSqeezer.animation1 != null){
			if(this.articleToolsSqeezer.animation1.isAnimated){
				var height = YAHOO.util.Dom.getStyle(this.articleToolsSqeezer, "height");
				this.articleToolsSqeezer.animation1.stop(false);
				YAHOO.util.Dom.setStyle(this.articleToolsSqeezer, "height", height);
			}
		}
		if(this.articleToolsSqeezer.animation2 != null){
			if(this.articleToolsSqeezer.animation2.isAnimated){
				var opacity = YAHOO.util.Dom.getStyle(this.articleToolsSqeezer, "opacity");
				this.articleToolsSqeezer.animation2.stop(false);
				YAHOO.util.Dom.setStyle(this.articleToolsSqeezer, "opacity", opacity);
			}
		}				
		this.articleToolsSqeezer.animation1 = new YAHOO.util.Anim(this.articleToolsSqeezer, {height: {to: this.articleToolsContent.offsetHeight}}, 1.25, TECHTRIBE.Easing.expoEaseBoth);		
		this.articleToolsSqeezer.animation2 = new YAHOO.util.Anim(this.articleToolsSqeezer, {opacity: {to: 1}}, 1.25, TECHTRIBE.Easing.expoEaseBoth);		
		this.articleToolsSqeezer.animation1.onComplete.subscribe(TECHTRIBE.Delegate.create(this, this.slideDownCompleteHandler));
		this.articleToolsSqeezer.animation1.animate();
		this.articleToolsSqeezer.animation2.animate();
	},
	
	slideDownCompleteHandler: function(){
		YAHOO.util.Dom.setStyle(this.articleToolsSqeezer, "height", "auto");
	},
	
	mouseOverOutToolbarItem: function(toolbarEl, color){
		if(toolbarEl.animation != null){
			if(toolbarEl.animation.isAnimated){
				var colorGet = YAHOO.util.Dom.getStyle(toolbarEl, "backgroundColor");
				toolbarEl.animation.stop(false);
				YAHOO.util.Dom.setStyle(toolbarEl, "backgroundColor", colorGet);
			}
		}		
		toolbarEl.animation = new YAHOO.util.ColorAnim(toolbarEl, {backgroundColor: {to: color}}, .75, TECHTRIBE.Easing.expoEaseOut);
		toolbarEl.animation.animate();
	}
}	
ACHMEA.view.ToolbarView = ToolbarView;



/*
 *** ACHMEA.view.ToolbarItem ***
 */
var ToolbarItem = function(model, view, controller, toolbarItem, id, type) {
	this.model = model;
	this.view = view;
	this.controller = controller;
	this.toolbarItem = toolbarItem;
	this.id = id;
	this.type = type;	
	this.init();
}

ToolbarItem.prototype =
{
	MOUSE_OVER_BG_COLOR: "#F4F4F4",
	MOUSE_OUT_BG_COLOR: "#FFFFFF",
	model: null,
	view: null,
	controller: null,
	toolbarItem: null,
	id: null,
	type: null,
	enabled: false,
	isOver: false,
	
	init: function(){
		this.setEvents();
		this.setStyles();
	},

	setEvents: function(){
		this.toolbarItem.onclick = TECHTRIBE.Delegate.create(this, this.mouseDownHandler);
		YAHOO.util.Event.addListener(this.toolbarItem, "mouseover", TECHTRIBE.Delegate.create(this, this.mouseOverHandler));
		YAHOO.util.Event.addListener(this.toolbarItem, "mouseout", TECHTRIBE.Delegate.create(this, this.mouseOutHandler));
	},
	
	setStyles: function(){
		this.toolbarItem.title = "";
		YAHOO.util.Dom.setStyle(this.toolbarItem, "backgroundColor", this.MOUSE_OUT_BG_COLOR);		
	},
	
	setEnabled: function(enabled){
		this.enabled = enabled;
		if(this.enabled){
			this.view.mouseOverOutToolbarItem(this.toolbarItem, this.MOUSE_OVER_BG_COLOR);
		} else {
			this.view.mouseOverOutToolbarItem(this.toolbarItem, this.MOUSE_OUT_BG_COLOR);
		}		
	},
	
	mouseDownHandler: function(){
		switch(this.type){
			case this.model.ITEM_TYPE_PRINT:
				window.print();
				break;
			default:
				if(!this.enabled){
					this.controller.activateTool(this.id);
				} else {
					this.controller.deactivateTool();
				}
				break;			 	 
		}		
		return false;
	},

	mouseOverHandler: function(){
		if(!this.enabled){
			this.view.mouseOverOutToolbarItem(this.toolbarItem, this.MOUSE_OVER_BG_COLOR);
		}		
	},
	
	mouseOutHandler: function(){
		if(!this.enabled){
			this.view.mouseOverOutToolbarItem(this.toolbarItem, this.MOUSE_OUT_BG_COLOR);
		}
	}
}	
ACHMEA.view.ToolbarItem = ToolbarItem;
// js/view/ui/AchmeaUI.js
/*
 * Copyright (c) 2008, Techtribe B.V.
 * Url: http://www.techtribe.nl
 * Author: Remon de Boer
 * 
 * ACHMEA.view.ui.Accordion
 */
var Accordion = function() {
	this.init();	
}

Accordion.prototype =
{
	itemOverEvent: null,
	itemOutEvent: null,
	itemClickedEvent: null,
	id: null,
	accordionItems: null,
	selectedID: -1,
	
	init: function(){
		this.accordionItems = new Array();
		this.id = 0;
		this.createEvents();
	},
	
	createEvents: function(){
		this.itemOverEvent = new YAHOO.util.CustomEvent("itemOverEvent");		
		this.itemOutEvent = new YAHOO.util.CustomEvent("itemOutEvent");				
		this.itemClickedEvent = new YAHOO.util.CustomEvent("itemClickedEvent");
	},
	
	addItem: function(button, squeezer, content, container){
		this.accordionItems[this.id] = new ACHMEA.view.ui.AccordionItem(this, this.id, button, squeezer, content, container);		
		this.id += 1;
	},
	
	getItem: function(id){
		return this.accordionItems[id];
	},
	
	closeAllItems: function(){
		for(var i in this.accordionItems)
		{
			var accordionItem = this.accordionItems[i];
			this.closeAccordionItem(accordionItem);
		}		
	},
	
	accordionItemClicked: function(id){
		if(this.selectedID == id){
			var oldSelected = this.selectedID;
			this.selectedID = -1;
			var accordionItemOpen = this.accordionItems[id];		
			this.closeAccordionItem(accordionItemOpen);
			this.itemClickedEvent.fire(oldSelected, this.selectedID);
		} else {
			if(this.selectedID != -1){								
				var accordionItemClose = this.accordionItems[this.selectedID];
				this.closeAccordionItem(accordionItemClose);
			}
			var oldSelected = this.selectedID;
			this.selectedID = id;
			var accordionItemOpen = this.accordionItems[id];
			this.openAccordionItem(accordionItemOpen);
			this.itemClickedEvent.fire(oldSelected, this.selectedID);		
		}		
	},
	
	accordionItemOver: function(id){		
		this.itemOverEvent.fire(id);
	},
	
	accordionItemOut: function(id){
		this.itemOutEvent.fire(id);
	},		
	
	openAccordionItem: function(accordionItem){
		var contentSqeezer = accordionItem.sqeezer;
		if(contentSqeezer.animation != null){
			if(contentSqeezer.animation.isAnimated){
				var height = YAHOO.util.Dom.getStyle(contentSqeezer, "height");
				contentSqeezer.animation.stop(false);
				YAHOO.util.Dom.setStyle(contentSqeezer, "height", height);
			}
		}	
		var tweenToY;	
		if(YAHOO.util.Dom.getStyle(accordionItem.content, "marginTop") == "auto"){
			tweenToY = accordionItem.content.offsetHeight;			
		} else {
			tweenToY = accordionItem.content.offsetHeight + TECHTRIBE.Utils.stripValuePx(YAHOO.util.Dom.getStyle(accordionItem.content, "marginTop")) + TECHTRIBE.Utils.stripValuePx(YAHOO.util.Dom.getStyle(accordionItem.content, "marginBottom"));
		}
		contentSqeezer.animation = new YAHOO.util.Anim(contentSqeezer, {height: {to: tweenToY}}, 1, TECHTRIBE.Easing.expoEaseBoth);
		contentSqeezer.animation.animate();		
	},
	
	closeAccordionItem: function(accordionItem){
		var contentSqeezer = accordionItem.sqeezer;
		if(contentSqeezer.animation != null){		
			if(contentSqeezer.animation.isAnimated){					
				var height = YAHOO.util.Dom.getStyle(contentSqeezer, "height");
				contentSqeezer.animation.stop(false);
				YAHOO.util.Dom.setStyle(contentSqeezer, "height", height);
			}
		}
		contentSqeezer.animation = new YAHOO.util.Anim(contentSqeezer, {height: {to: 0}}, 1, TECHTRIBE.Easing.expoEaseBoth);
		contentSqeezer.animation.animate();	
	}
}
ACHMEA.view.ui.Accordion = Accordion;



/*
 *** ACHMEA.view.ui.AccordionItem ***
 */
var AccordionItem = function(accordion, id, button, sqeezer, content, container) {
	this.id = id;
	this.accordion = accordion;
	this.button = button;
	this.sqeezer = sqeezer;
	this.content = content;
	this.container = container;
	this.init();	
}

AccordionItem.prototype =
{
	id: null,
	accordion: null,
	button: null,
	sqeezer: null,
	content: null,
	container: null,
	
	init: function(){
		this.setStyles();
		this.setEvents();
	},
	
	setStyles: function(){
		YAHOO.util.Dom.setStyle(this.button, "cursor", "pointer");
		YAHOO.util.Dom.setStyle(this.sqeezer, "display", "block");
		YAHOO.util.Dom.setStyle(this.sqeezer, "overflow", "hidden");		
		YAHOO.util.Dom.setStyle(this.sqeezer, "height", "0px");				
	},
	
	setEvents: function(){
		YAHOO.util.Event.addListener(this.button, "mousedown", TECHTRIBE.Delegate.create(this, this.mouseDownHandler));
		YAHOO.util.Event.addListener(this.button, "mouseover", TECHTRIBE.Delegate.create(this, this.mouseOverHandler));
		YAHOO.util.Event.addListener(this.button, "mouseout", TECHTRIBE.Delegate.create(this, this.mouseOutHandler));
	},
	
	mouseDownHandler: function(){
		this.accordion.accordionItemClicked(this.id);
		return false;
	},

	mouseOverHandler: function(){
		this.accordion.accordionItemOver(this.id);
	},
	
	mouseOutHandler: function(){
		this.accordion.accordionItemOut(this.id);
	}	
}
ACHMEA.view.ui.AccordionItem = AccordionItem;
// js/controller/AchmeaController.js
/*
 * Copyright (c) 2008, Techtribe B.V.
 * Url: http://www.techtribe.nl
 * Author: Remon de Boer
 * 
 * ACHMEA.controller.Controller
 */
var Controller = function() {
    this.init();    
}

Controller.prototype =
{   
    mainModel: null,
    commonEvents: null,
    historyController: null,
    stateController: null,
    componentsController: null,
    connectionManager: null,

    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
        this.historyController = new ACHMEA.controller.HistoryController();
        this.stateController = new ACHMEA.controller.StateController();
        this.connectionManager = new ACHMEA.controller.ConnectionManager();
        this.componentsController = new ACHMEA.controller.ComponentsController();
        this.mainModel.stateController = this.stateController;
        this.mainModel.connectionManager = this.connectionManager;
        this.getBasicData();
    },
    
    getBasicData: function(){
        var callback = TECHTRIBE.Delegate.create(this, this.basicDataReceived);
        var url = this.mainModel.BASIC_DATA_PATH;
        this.connectionManager.asyncRequestGet(url, callback);
    },
    
    basicDataReceived: function(res){
        var jsonString = res.responseText;
        try {
            var basicData = YAHOO.lang.JSON.parse(jsonString);
            this.mainModel.mainNavData = basicData.page.navigationLeft;
            this.mainModel.themeNavData = basicData.page.navigationRight;
            this.mainModel.metaNavData = basicData.page.footer.footerItem;
            this.mainModel.newsBlockData = basicData.page.content.newsItems.newsItem;
            this.mainModel.consumerMoodPix = new ACHMEA.vo.MoodPixVO(basicData.page.moodPix.consumenten.top.content, basicData.page.moodPix.consumenten.tape.content, basicData.page.moodPix.consumenten.bottom.content, basicData.page.moodPix.consumenten.frummel.content);
            this.mainModel.businessMoodPix = new ACHMEA.vo.MoodPixVO(basicData.page.moodPix.bedrijven.top.content, basicData.page.moodPix.bedrijven.tape.content, basicData.page.moodPix.bedrijven.bottom.content, basicData.page.moodPix.bedrijven.frummel.content);
            this.commonEvents.basicDataReceivedEvent.fire();
        } catch(e){
            alert("Controller: JSON PARSE FAILURE");
        }
    }
}
ACHMEA.controller.Controller = Controller;



/*
 *** ACHMEA.controller.ComponentsController ***
 */
var ComponentsController = function() {
    this.init();    
}

ComponentsController.prototype =
{   
    mainModel: null,
    commonEvents: null,
    contentContainer: null,
    amountOfComponents: null,
    loadedComponents: null,
    hashTable: new Array(),

    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
        this.contentContainer = YAHOO.util.Dom.get("content");
        this.initializeHashTable();
        this.setListeners();
    },
    
    initializeHashTable: function(){
        this.hashTable['geschiedenisFlash'] = "GeschiedenisCom";
        this.hashTable['allArticlesSideBlock'] = "AllArticlesCom";
        this.hashTable['verzekerenContact'] = "InsuranceContactCom";
        this.hashTable['reactContainer'] = "ReactToolCom";
        this.hashTable['forwardContainer'] = "ForwardToolCom";
        this.hashTable['questionComponent'] = "QuestionFormCom";
        this.hashTable['contentAccordion'] = "StandardAccordionCom";
        this.hashTable['faqAccordion'] = "FAQAccordionCom";
        this.hashTable['sideAccordion'] = "SideAccordionCom";
        this.hashTable['downloadYearForm'] = "DownloadCom";
        this.hashTable['searchComponent'] = "SearchAgainCom";       
    },
    
    setListeners: function(){
        var callback1 = TECHTRIBE.Delegate.create(this, this.contentLoadCompleteHandler);
        this.commonEvents.contentLoadCompleteEvent.subscribe(callback1);
    },
    
    contentLoadCompleteHandler: function(){
        this.checkForComponents();
    },
    
    checkForComponents: function(){
        this.amountOfComponents = 0;
        this.loadedComponents = 0;
        for(i in this.hashTable)
        {
            var componentEL = YAHOO.util.Dom.getElementsByClassName(i, "DIV", this.contentContainer);
            if(componentEL != null){
                for(var j=0;j<componentEL.length;j++)
                {
                    this.amountOfComponents += 1;
                    new ACHMEA.components[this.hashTable[i]](this, componentEL[j]);             
                }
            }
        }
        if(this.amountOfComponents == 0){
            this.checkComponentsLoaded();
        }
    },
    
    componentLoaded: function(){
        this.loadedComponents += 1;
        this.checkComponentsLoaded();
    },
    
    checkComponentsLoaded: function(){
        if(this.amountOfComponents == this.loadedComponents){
            this.commonEvents.componentsCompleteEvent.fire();
        }
    }
}
ACHMEA.controller.ComponentsController = ComponentsController;



/*
 *** ACHMEA.controller.HistoryController ***
 */
var HistoryController = function() {
    this.init();
}

HistoryController.prototype =
{
    mainModel: null,
    commonEvents: null,
    initialState: null,

    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
        this.setListeners();
        this.initializeManager();
    },
    
    setListeners: function(){
        var callback1 = TECHTRIBE.Delegate.create(this, this.applicationLoadedHandler);
        this.commonEvents.appLoadCompleteEvent.subscribe(callback1);
    },
    
    initializeManager: function(){
        if(!YAHOO.env.ua.opera){
            var currentState = YAHOO.util.History.getBookmarkedState("ID");
            this.mainModel.activeLinkId = currentState || this.mainModel.homeLinkID;        
            YAHOO.util.History.register("ID", this.mainModel.activeLinkId, TECHTRIBE.Delegate.create(this, this.stateChangeHandler));
            YAHOO.util.History.initialize("historyField", "historyIframe");
        }
    },
    
    applicationLoadedHandler: function(){           
        if(!YAHOO.env.ua.opera){
            ACHMEA.navigateTo(YAHOO.util.History.getCurrentState("ID"));
            this.commonEvents.stateChangeEvent.fire();
        } else {
            this.mainModel.activeLinkId = this.mainModel.homeLinkID;
            ACHMEA.navigateTo(this.mainModel.activeLinkId);
            this.commonEvents.stateChangeEvent.fire();
        }                   
    },
    
    stateChangeHandler: function(){
        var currentState = YAHOO.util.History.getCurrentState("ID");        
        this.mainModel.activeLinkId = this.stripQueryString(currentState);
        this.mainModel.queryString = this.getQueryString(currentState);
        this.commonEvents.stateChangeEvent.fire();  
        try{
            if(pageTracker){
                pageTracker._trackPageview(this.mainModel.activeLinkId);
            }
        } catch(e){
        }
    },  
    
    stripQueryString: function(linkID){
        if(linkID.indexOf("?") > -1){
            return linkID.substring(0, linkID.indexOf("?"));
        }
        return linkID;
    },
    
    getQueryString: function(linkID){
        if(linkID.indexOf("?") > -1){
            return linkID.substring((linkID.indexOf("?")+1), linkID.length);
        }
        return "";
    }       
}
ACHMEA.controller.HistoryController = HistoryController;



/*
 *** ACHMEA.controller.StateController ***
 */
var StateController = function() {
    this.init();
}

StateController.prototype =
{   
    UNKNOWN_PAGE: "unknownPage",
    IS_CONSUMER_PAGE: "isConsumer",
    IS_BUSINESS_PAGE: "isBusiness",
    mainModel: null,
    commonEvents: null,
    startUp: true,

    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
    },
    
    navigateTo: function(linkID){
        var id = this.stripQueryString(linkID);
        var queryString = this.getQueryString(linkID);
        var categorie = this.checkCategorie(id);
        if(categorie == this.IS_CONSUMER_PAGE){
            this.mainModel.setIsConsumer(true);
        } else if(categorie == this.IS_BUSINESS_PAGE){
            this.mainModel.setIsConsumer(false);
        } else if((categorie == this.UNKNOWN_PAGE) && (this.startUp)){
            var isConsumer = "1";
            try{
                isConsumer = YAHOO.util.Cookie.get("isConsumer");   
            } catch(e) {                
            }           
            if(isConsumer == "0"){
                this.mainModel.setIsConsumer(false);
            } else {
                this.mainModel.setIsConsumer(true);
            }
        }       
        this.startUp = false;
        this.mainModel.activeLinkId = id;
        this.mainModel.queryString = queryString;
        if(YAHOO.env.ua.opera){
            this.commonEvents.stateChangeEvent.fire();
        } else {
            YAHOO.util.History.navigate("ID", linkID);
        }
    },
    
    checkCategorie: function(linkID){   
        var isConsumer = this.mainModel.isAConsumer(linkID);    
        var isBusiness = this.mainModel.isABusiness(linkID);
        if(isConsumer){
            return this.IS_CONSUMER_PAGE;
        } else if(isBusiness){
            return this.IS_BUSINESS_PAGE;
        } else {
            return this.UNKNOWN_PAGE;
        }
    },
    
    stripQueryString: function(linkID){
        linkID = unescape(linkID);
        if(linkID.indexOf("?") > -1){
            return linkID.substring(0, linkID.indexOf("?"));
        }
        return linkID;
    },
    
    getQueryString: function(linkID){
        linkID = unescape(linkID);
        if(linkID.indexOf("?") > -1){
            return linkID.substring((linkID.indexOf("?")+1), linkID.length);
        }
        return "";
    }   
}
ACHMEA.controller.StateController = StateController;



/*
 *** ACHMEA.controller.ConnectionManager ***
 */
var ConnectionManager = function() {
    this.init();
}

ConnectionManager.prototype =
{
    mainModel: null,
    request: null,
    callback: null,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
    },
    
    asyncRequestGet: function(url, callback){
        this.callback = {success: callback, failure: TECHTRIBE.Delegate.create(this, this.connectionFailure)};  
        this.request = YAHOO.util.Connect.asyncRequest('GET',  url, this.callback);
    },  
    
    asyncRequestPost: function(url, postValues, callback){
        if(callback != null){
            this.callback = {success: callback, failure: TECHTRIBE.Delegate.create(this, this.connectionFailure)};  
        } else {
            this.callback = {success: TECHTRIBE.Delegate.create(this, this.connectionSucces), failure: TECHTRIBE.Delegate.create(this, this.connectionFailure)};    
        }
        this.request = YAHOO.util.Connect.asyncRequest('POST',  url, this.callback, postValues);
    },
    
    abortConnection: function(){
        YAHOO.util.Connect.abort(this.request, this.callback, false);
    },
    
    connectionSucces: function(response){
    },
    
    connectionFailure: function(){
        ACHMEA.navigateTo(this.mainModel.homeLinkID);
    }
}   
ACHMEA.controller.ConnectionManager = ConnectionManager;



/*
 *** ACHMEA.controller.ContentGateController ***
 */
var ContentGateController = function(contentGateView) {
    this.contentGateView = contentGateView;
    this.init();
}

ContentGateController.prototype =
{
    mainModel: null,
    commonEvents: null,
    contentGateView: null,
    container: null,
    content: null,
    toolbar: null,
    startUp: true,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
        this.container = YAHOO.util.Dom.get("contentContainer");
        this.content = YAHOO.util.Dom.get("content");
        this.setListeners();
    },
    
    setListeners: function(){
//      var callback1 = TECHTRIBE.Delegate.create(this, this.dataReadyHandler);
//      this.commonEvents.basicDataReceivedEvent.subscribe(callback1);      
        var callback2 = TECHTRIBE.Delegate.create(this, this.stateChangeHandler);
        this.commonEvents.stateChangeEvent.subscribe(callback2);
        var callback3 = TECHTRIBE.Delegate.create(this, this.dimContentHandler, true);
        this.commonEvents.fadeInContentEvent.subscribe(callback3);      
        var callback4 = TECHTRIBE.Delegate.create(this, this.dimContentHandler, false);
        this.commonEvents.fadeOutContentEvent.subscribe(callback4); 
        var callback5 = TECHTRIBE.Delegate.create(this, this.contentReady);
        this.commonEvents.componentsCompleteEvent.subscribe(callback5);
        var callback6 = TECHTRIBE.Delegate.create(this, this.switchCategorieHandler);
        this.commonEvents.categorieChangeEvent.subscribe(callback6);
        var callback7 = TECHTRIBE.Delegate.create(this, this.gateClosedHandler);
        this.commonEvents.gateClosedEvent.subscribe(callback7);
    },
    
    switchCategorieHandler: function(){
        this.contentGateView.switchMood();
    },
        
    gateClosedHandler: function(){
        this.contentGateView.switchMood();
    },  
    
    stateChangeHandler: function(){         
        if((this.mainModel.appLoadState == this.mainModel.LOADING_COMPLETE) || (this.mainModel.appLoadState == this.mainModel.ANIMATING_DOWN)){     
            if(!this.mainModel.isHome()){
                if(!this.startUp){
                    this.contentGateView.showLoader();  
                }           
            }
            this.contentGateView.slideUp();
        } else if(this.mainModel.appLoadState == this.mainModel.LOADING_CONTENT){
            this.mainModel.connectionManager.abortConnection();
            this.loadContent();
        } else if(this.mainModel.appLoadState == this.mainModel.ON_HOME){           
            this.loadContent();
        }       
    },  
    
    dimContentHandler: function(dimContent){
        if(dimContent){
            this.contentGateView.fadeInContent();
        } else {
            this.contentGateView.fadeOutContent();      
        }
    },
    
    loadContent: function(){
        if(!this.mainModel.isHome()){
            if(!this.startUp){
                this.contentGateView.showLoader();  
            } else {
                this.startUp = false;
            }
            this.mainModel.appLoadState = this.mainModel.LOADING_CONTENT;       
            var url = this.createURI(this.mainModel.activeLinkId);
            var callback  = TECHTRIBE.Delegate.create(this, this.updateContent);
            this.mainModel.connectionManager.asyncRequestGet(url, callback);
        } else {
            this.startUp = false;
            this.contentGateView.hideLoader();  
            this.mainModel.appLoadState = this.mainModel.ON_HOME;
            document.title = "Achmea | Home";
        }
    },
    
    createURI: function(url){   
        if(this.mainModel.queryString != ""){
            return url + "?" + this.mainModel.queryString + "&transport=ajax";
        } else {
            return url + "?transport=ajax";
        }
    },
    
    updateContent: function(res){   
        if(res.responseText == null){
            return;
        }
        var firstIndex = res.responseText.indexOf(">") + 1;
        var secIndex = res.responseText.lastIndexOf("<");
        this.content.innerHTML = res.responseText.substring(firstIndex, secIndex) + "<div class='clear' style='height:22px'>&nbsp;</div>";
        YAHOO.util.Dom.setStyle(this.content, "height", "auto");
        this.toolbar = new ACHMEA.view.ToolbarView();
        this.commonEvents.contentLoadCompleteEvent.fire();
        this.setDocumentTitle();
        this.setOutgoingLinks();
    },
    
    setDocumentTitle: function(){
        var headerTitles = YAHOO.util.Dom.getElementsByClassName("header", "DIV", this.content);
        if(headerTitles.length > 0){
            var headerTitle = headerTitles[0];          
            var titleH1 = headerTitle.getElementsByTagName("H1")[0];
            document.title = "Achmea | " + titleH1.firstChild.nodeValue;
        } else {
            document.title = "Achmea";
        }           
    },
    
    setOutgoingLinks: function(){
        try{
            if(pageTracker){
                var aTags = this.content.getElementsByTagName("A");
                for(var i=0;i<aTags.length;i++)
                {
                    var aTag = aTags[i];
                    if(aTag.target == "_blank"){
                        var callback = TECHTRIBE.Delegate.create(pageTracker, pageTracker._trackPageview, "/outgoing/" + encodeURIComponent(aTag.href));            
                        aTag.onclick = callback;                                
                    }
                }
            }
        } catch(e){
        }   
    },
    
    contentReady: function(){
        setTimeout(TECHTRIBE.Delegate.create(this.contentGateView, this.contentGateView.slideDown), 500);
    }
}   
ACHMEA.controller.ContentGateController = ContentGateController;



/*
 *** ACHMEA.controller.MainNavController ***
 */
var MainNavController = function(mainNavView, mainNavModel){    
    this.mainNavView = mainNavView;
    this.mainNavModel = mainNavModel;
    this.init();
}

MainNavController.prototype =
{
    mainModel: null,
    commonEvents: null,
    mainNavView: null,
    mainNavModel: null,
    mainNavData: null,
    mainNavContainer: null,
    activateTimer: null,
    deactivateTimer: null,
    activeMainNavItemVO: null,
    amountOfItems: 0,
    amountOfLoadedItems: 0,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
        this.setElements();
        this.setListeners();
    },

    setElements: function(){
        this.mainNavContainer = YAHOO.util.Dom.get("mainNavContainer");
    },
    
    setListeners: function(){
        var callback1 = TECHTRIBE.Delegate.create(this, this.dataReadyHandler);
        this.commonEvents.basicDataReceivedEvent.subscribe(callback1);
        var callback2 = TECHTRIBE.Delegate.create(this, this.stateChangeHandler);
        this.commonEvents.stateChangeEvent.subscribe(callback2);        
    },  
    
    stateChangeHandler: function(){     
        this.checkToActivateNavItem(this.mainModel.activeLinkId);
    },
    
    dataReadyHandler: function(){
        this.amountOfItems = this.calculateAmountOfNavItems(this.mainModel.mainNavData.navitems.navitem);
        this.createMainNavItems(this.mainModel.mainNavData.navitems.navitem, this.mainNavContainer, 0);
        this.checkToActivateNavItem(this.mainModel.activeLinkId);           
    },
    
    
    calculateAmountOfNavItems: function(navItems){      
        if(TECHTRIBE.Utils.isArray(navItems)){          
            var amountOfNavItems = navItems.length;
            for(var i=0;i<navItems.length;i++)
            {       
                var navItem = navItems[i];
                if(navItem.navitems != null){                               
                    amountOfNavItems += this.calculateAmountOfNavItems(navItem.navitems.navitem);
                }
            }       
            return amountOfNavItems;
        } else {
            return 1;
        }   
    },  

    createMainNavItems: function(navItems, parent, parentID){
        if(TECHTRIBE.Utils.isArray(navItems)){          
            for(var i=0;i<navItems.length;i++)
            {               
                var isLast = false;
                if((i + 1) == navItems.length){
                    isLast = true;
                }
                this.createMainNavItem(navItems[i], parent, parentID, i, isLast);               
            }
        } else {
            this.createMainNavItem(navItems, parent, parentID, 0, true);
        }
    },
    
    createMainNavItem: function(navItem, parent, parentID, i, isLast){
        var id = (parentID != 0) ? (parentID + (i + 1)) : (i + 1).toString();
        var level = id.length;              
        var container = TECHTRIBE.Utils.createElement(parent, "DIV", "mainNavItemContainer");
        var enabled = (parentID != 0) ? true : true;        
        var mainNavItem = new ACHMEA.view.MainNavItem(id, navItem, container, enabled, this, this.mainNavModel);
        this.storeDataVO(id, navItem.link, parentID, mainNavItem);
        if(navItem.navitems != null){
            var subContainer = TECHTRIBE.Utils.createElement(container, "DIV", "subMainNav");
            var itemsContainer = TECHTRIBE.Utils.createElement(subContainer, "DIV", "mainNavItemsContainer");
            mainNavItem.setChildsContainer(subContainer, itemsContainer);
            this.createMainNavItems(navItem.navitems.navitem, itemsContainer, id);      
        }
        if((level == 2) && (isLast)){
            var spacer = TECHTRIBE.Utils.createElement(parent, "DIV", "mainNavLevel2Spacer", null, "&nbsp;");                           
        }
    },
    
    storeDataVO: function(id, linkID, parentID, mainNavItem){
        var mainNavItemVO = new ACHMEA.vo.MainNavItemVO(id, linkID, parentID, mainNavItem);
        if(parentID != 0){
            var parentMainNavItemVO = this.mainNavModel.getMainNavItemVOByID(parentID); 
            if(parentMainNavItemVO != null){
                parentMainNavItemVO.setChildNavItem(mainNavItemVO);
            }
        }
        this.mainNavModel.setMainNavItemVO(mainNavItemVO);
    },
    
    mainNavItemLoaded: function(){
        this.amountOfLoadedItems++;
        if(this.amountOfItems == this.amountOfLoadedItems){
            this.mainModel.setMainNavLoaded();
        }
    },

    setNewMainNavActive: function(id){
        this.clearTimers();
        this.mainNavModel.activeMainNavItemVO = this.mainNavModel.getMainNavItemVOByID(id); 
        this.checkActiveNavItemsUp();
        this.checkActiveNavItemsDown();
    },
    
    preActivateMainNavItem: function(id){
        this.mainNavModel.activeMainNavItemVO = this.mainNavModel.getMainNavItemVOByID(id);
        this.activateTimer = setTimeout(TECHTRIBE.Delegate.create(this, this.activateMainNavItem), 100);
        this.checkActiveNavItemsDown();
    },
    
    activateMainNavItem: function(){
        this.clearTimers();
        var activeMainNavItemVO = this.mainNavModel.activeMainNavItemVO;
        this.mainNavModel.addActiveMainNavItemVO(activeMainNavItemVO);
        this.mainNavView.slideDown(activeMainNavItemVO);
    },
    
    preDeactivateMainNavItem: function(){
        this.clearTimers();
        this.mainNavModel.activeMainNavItemVO = null;
        this.deactivateTimer = setTimeout(TECHTRIBE.Delegate.create(this, this.deactivateMainNavItem), 500);
    },
    
    deactivateMainNavItem: function(){
        this.clearTimers();
        this.checkActiveNavItemsDown();
    },
    
    checkActiveNavItemsUp: function(){
        if(!this.mainNavView.isAnimatingDown){
            var activeMainNavItemVOs = this.mainNavModel.getActiveMainNavItems();
            var excludedMainNavItemVOs = this.mainNavModel.getExcludedMainNavItems();
            var lowestID = 0;
            var lowestMainNavItemVO;
            for(var i=0;i<excludedMainNavItemVOs.length;i++)
            {
                var excludedMainNavItemVO = excludedMainNavItemVOs[i];  
                var excludedMainNavItemID;
                if(excludedMainNavItemVO.id.length == 1){
                    excludedMainNavItemID = parseInt(excludedMainNavItemVO.id + "00");  
                } else if(excludedMainNavItemVO.id.length == 2){
                    excludedMainNavItemID = parseInt(excludedMainNavItemVO.id + "0");
                } else {
                    excludedMainNavItemID = parseInt(excludedMainNavItemVO.id); 
                }                                                   
                var isActive = false;
                for(var j=0;j<activeMainNavItemVOs.length;j++)
                {
                    var activeMainNavItemVO = activeMainNavItemVOs[j];
                    var activeMainNavItemID;
                    if(activeMainNavItemVO.id.length == 1){
                        activeMainNavItemID = parseInt(activeMainNavItemVO.id + "00");  
                    } else if(activeMainNavItemVO.id.length == 2){
                        activeMainNavItemID = parseInt(activeMainNavItemVO.id + "0");
                    } else {
                        activeMainNavItemID = parseInt(activeMainNavItemVO.id);
                    }                                                       
                    if(activeMainNavItemID == excludedMainNavItemID){
                        isActive = true;
                    }
                }
                if(!isActive){
                    if((lowestID == 0) || (lowestID > excludedMainNavItemID)){
                        lowestID = excludedMainNavItemID;
                        lowestMainNavItemVO = excludedMainNavItemVO;                        
                    }
                }
            }
            if((lowestID != 0) && (lowestMainNavItemVO != undefined)){  
                this.mainNavModel.addActiveMainNavItemVO(lowestMainNavItemVO);
                this.mainNavView.slideDown(lowestMainNavItemVO);                                
            }
        }
    },
    
    checkActiveNavItemsDown: function(){
        if(!this.mainNavView.isAnimatingUp){
            var activeMainNavItemVOs = this.mainNavModel.getActiveMainNavItems();
            var excludedMainNavItemVOs = this.mainNavModel.getExcludedMainNavItems();
            var highestID = 0;
            var highestMainNavItemVO;
            for(var i=0;i<activeMainNavItemVOs.length;i++)
            {
                var activeMainNavItemVO = activeMainNavItemVOs[i];
                var activeMainNavItemID = parseInt(activeMainNavItemVO.id);
                var isExcluded = false;
                for(var j=0;j<excludedMainNavItemVOs.length;j++)
                {
                    var excludedMainNavItemVO = excludedMainNavItemVOs[j];
                    var excludedMainNavItemID = parseInt(excludedMainNavItemVO.id);
                    if(activeMainNavItemID == excludedMainNavItemID){
                        isExcluded = true;
                    }
                }
                if(!isExcluded){
                    var activeID;
                    var id;
                    if(this.mainNavModel.activeMainNavItemVO != null){
                        if(this.mainNavModel.activeMainNavItemVO.id.length == 1){
                            activeID = parseInt(this.mainNavModel.activeMainNavItemVO.id + "00");   
                        } else if(this.mainNavModel.activeMainNavItemVO.id.length == 2){
                            activeID = parseInt(this.mainNavModel.activeMainNavItemVO.id + "0");
                        } else {
                            activeID = parseInt(this.mainNavModel.activeMainNavItemVO.id);
                        }                                           
                    } else {
                        activeID = 0;
                    }                                       
                    if(activeMainNavItemVO.id.length == 1){
                        id = parseInt(activeMainNavItemVO.id + "00");   
                    } else if(activeMainNavItemVO.id.length == 2){
                        id = parseInt(activeMainNavItemVO.id + "0");
                    } else {
                        id = parseInt(activeMainNavItemVO.id);
                    }                                       
                    if(activeID < id){
                        if(highestID < id){
                            highestID = id;
                            highestMainNavItemVO = activeMainNavItemVO;
                        }
                    }                   
                }
            }
            if((highestID != 0) && (highestMainNavItemVO != undefined)){    
                this.mainNavModel.deleteActiveMainNavItemVO(highestMainNavItemVO);
                this.mainNavView.slideUp(highestMainNavItemVO);                             
            }
        }
    },
    
    checkToActivateNavItem: function(linkID){
        if(this.activeMainNavItemVO != null){
            this.activeMainNavItemVO.mainNavItem.setSelected(false);
        }   
        this.activeMainNavItemVO = null;    
        var mainNavItemVO;
        var mainNavItemVOs = this.mainNavModel.mainNavItemVOs;
        var excludedMainNavItemVOs = new Array();
        for(var i in mainNavItemVOs)
        {
            mainNavItemVO = mainNavItemVOs[i];
            if(mainNavItemVO.linkID == linkID){
                this.activeMainNavItemVO = mainNavItemVO;
                this.activeMainNavItemVO.mainNavItem.setSelected(true);
                excludedMainNavItemVOs.push(mainNavItemVO);
                var parentMainNavItemVO = mainNavItemVO;
                while(parentMainNavItemVO.parentID != 0)
                {
                    parentMainNavItemVO = this.mainNavModel.getMainNavItemVOByID(parentMainNavItemVO.parentID);
                    excludedMainNavItemVOs.push(parentMainNavItemVO);
                }
            }
        }
        this.mainNavModel.excludedMainNavItemVOs = excludedMainNavItemVOs;
        this.checkActiveNavItemsUp();
        this.checkActiveNavItemsDown();
    },

    clearTimers: function(){
        if(this.activateTimer != null){
            clearTimeout(this.activateTimer);
        }
        if(this.deactivateTimer != null){
            clearTimeout(this.deactivateTimer);
        }   
    },
    
    enableChildren: function(mainNavItemVO){
        var mainNavChildren = mainNavItemVO.childrenNavItems;
        for(var i=0;i<mainNavChildren.length;i++)
        {
            var mainNavItemVO = mainNavChildren[i];
            mainNavItemVO.mainNavItem.setEnabled(true);
        }
    },
    
    disableChildren: function(mainNavItemVO){
        for(var i=0;i<mainNavChildren.length;i++)
        {
            var mainNavItemVO = mainNavChildren[i];
            mainNavItemVO.mainNavItem.setEnabled(false);
        }
    }
}
ACHMEA.controller.MainNavController = MainNavController;



/*
 *** ACHMEA.controller.ThemeNavController ***
 */
var ThemeNavController = function(themeNavView, themeNavModel) {
    this.themeNavView = themeNavView;
    this.themeNavModel = themeNavModel;
    this.init();
}

ThemeNavController.prototype =
{
    BUSINESS_CATEGORIE: "businessCategorie",
    CONSUMER_CATEGORIE: "consumerCategorie",
    mainModel: null,
    commonEvents: null,
    themeNavView: null,
    themeNavModel: null,
    activateTimer: null,
    deactivateTimer: null,
    themeNavContainer: null,
    selectedThemeNavItemID: null,
    allowDeactivation: true,
    themeCloudClicked: false,
    activeCategorie: null,  
    loadingReady: false,
    themeNavItemID: 1,
    themeCloudID: 1,
    amountOfThemeItems: 0,
    amountOfLoadedThemeItems: 0,
    amountOfCloudItems: 0,
    amountOfLoadedCloudItems: 0,
    
    init: function(){       
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
        this.setElements();
        this.setListeners();
    },

    setElements: function(){
        this.themeNavContainer = YAHOO.util.Dom.get("themeNavContainer");
    },
    
    setListeners: function(){
        var callback1 = TECHTRIBE.Delegate.create(this, this.dataReadyHandler);
        this.commonEvents.basicDataReceivedEvent.subscribe(callback1);
        var callback2 = TECHTRIBE.Delegate.create(this, this.stateChangeHandler);
        this.commonEvents.stateChangeEvent.subscribe(callback2);
        var callback3 = TECHTRIBE.Delegate.create(this, this.categorieChangeHandler);
        this.commonEvents.categorieChangeEvent.subscribe(callback3);
    },
    
    dataReadyHandler: function(){
        this.amountOfThemeItems += this.mainModel.themeNavData.consumenten.theme.length;
        this.amountOfThemeItems += this.mainModel.themeNavData.bedrijven.theme.length;
        this.calculateAmountOfCloudItems(this.mainModel.themeNavData);
        this.createThemeNavItems(this.mainModel.themeNavData.consumenten.theme, true);  
        this.createThemeNavItems(this.mainModel.themeNavData.bedrijven.theme, false);
        this.loadingReady = true;   
        this.checkThemeCloudLoaded();   
    },
    
    calculateAmountOfCloudItems: function(themeNavData){
        for(var i=0;i<2;i++)
        {
            var navItems;
            if(i == 0){
                navItems = themeNavData.consumenten.theme;
            } else {
                navItems = themeNavData.bedrijven.theme;            
            }
            for(var j=0;j<navItems.length;j++)
            {
                this.amountOfCloudItems += (navItems[j].content.list.article.length + 1);               
            }
        }   
    },
    
    stateChangeHandler: function(){
        this.checkDeactivateThemeNavItem();
        var isConsumer = this.mainModel.isAConsumer(this.mainModel.activeLinkId);       
        var isBusiness = this.mainModel.isABusiness(this.mainModel.activeLinkId);                   
        if(isConsumer){ 
            this.mainModel.setIsConsumer(true);         
        } else if(isBusiness){
            this.mainModel.setIsConsumer(false);
        }
        this.checkToActivateNavItem(this.mainModel.activeLinkId);
    },
    
    switchCategorieHandler: function(isConsumer){
        ACHMEA.navigateTo(this.mainModel.homeLinkID);
        this.mainModel.setIsConsumer(isConsumer);
    },
    
    categorieChangeHandler: function(){
        this.themeNavModel.lock();
        if(this.activeCategorie == null){
            var collectionVO;
            if(this.mainModel.isConsumer){
                collectionVO = this.themeNavModel.consumerNavCollection;
                this.activeCategorie = this.CONSUMER_CATEGORIE;                         
            } else {
                collectionVO = this.themeNavModel.businessNavCollection;
                this.activeCategorie = this.BUSINESS_CATEGORIE;                     
            }           
            YAHOO.util.Dom.setStyle(collectionVO.header, "display", "block");
            var themeNavItems = collectionVO.themeNavItems;
            for(var i=0;i<themeNavItems.length;i++)
            {
                var themeNavItem = themeNavItems[i];
                YAHOO.util.Dom.setStyle(themeNavItem.themeNavEl, "display", "block");
            }
            YAHOO.util.Dom.setStyle(collectionVO.footer, "display", "block");
            this.themeNavModel.unlock();    
        } else if(this.activeCategorie == this.CONSUMER_CATEGORIE){
            this.activeCategorie = this.BUSINESS_CATEGORIE;
            this.themeNavView.animateThemeNavOut(this.themeNavModel.consumerNavCollection);
        } else {
            this.activeCategorie = this.CONSUMER_CATEGORIE;     
            this.themeNavView.animateThemeNavOut(this.themeNavModel.businessNavCollection);             
        }
    },
    
    /* -- CREATES THEME NAVIGATION ITEMS -- */
    
    
    createThemeNavItems: function(navItems, isConsumer){        
        var themeNavCollectionVO = new ACHMEA.vo.ThemeNavCollectionVO();
        themeNavCollectionVO.header = this.createThemeNavHeader(isConsumer);        
        for(var i=0;i<navItems.length;i++)
        {
            var navItem = navItems[i];
            var color = this.themeNavModel.colorPalette[i];
            var container = this.createThemeNavItem(this.themeNavContainer, color);
            var themeNavItem = new ACHMEA.view.ThemeNavItem(this.themeNavView, this, container, (this.mainModel.GENERATED_IMG_PATH + navItem.labelImg), (i+1), this.themeNavItemID);            
            themeNavCollectionVO.addThemeNavItem(themeNavItem);         
            this.themeNavModel.addThemeNavItem(themeNavItem);
            this.themeNavModel.addLink(navItem.link, this.themeNavItemID);
            this.createThemeCloudItems(navItem.content.list.article, this.themeNavItemID, color, isConsumer);
            this.createThemeMoreItem(navItem.content.list.more.img, navItem.content.list.more.width, navItem.content.list.more.height, navItem.link, this.themeNavItemID, isConsumer, navItem.content.list.article.length, color);                      
            this.themeNavItemID++;
        }
        themeNavCollectionVO.footer = this.createThemeNavFooter(((190+((navItems.length-1)*26)+25)), isConsumer);
        if(isConsumer){
            this.themeNavModel.consumerNavCollection = themeNavCollectionVO;
        } else {
            this.themeNavModel.businessNavCollection = themeNavCollectionVO;        
        }
    },
    
    createThemeNavHeader: function(isConsumer){
        var container = TECHTRIBE.Utils.createElement(this.themeNavContainer, "DIV", "themeNavHeader");
        if(isConsumer){
            TECHTRIBE.Utils.createElement(container, "IMG", "notTransparent", null, null, "/img/themeNavigation/consumerArticlesHeader.png", 123, 7);
        } else {
            TECHTRIBE.Utils.createElement(container, "IMG", "notTransparent", null, null, "/img/themeNavigation/businessArticlesHeader.png", 105, 7);
        }
        YAHOO.util.Dom.setStyle(container, "height", "7px");
        YAHOO.util.Dom.setStyle(container, "display", "none");
        YAHOO.util.Dom.setStyle(container, "position", "absolute");
        YAHOO.util.Dom.setStyle(container, "top", "177px");
        return container;
    },
    
    createThemeNavItem: function(parent, color){
        var themeNavItem = TECHTRIBE.Utils.createElement(parent, "DIV", "themeNavItem");
        var themeNavName = TECHTRIBE.Utils.createElement(themeNavItem, "DIV", "themeNavName");
        var themeNavColor = TECHTRIBE.Utils.createElement(themeNavItem, "DIV", "themeNavColor");
        YAHOO.util.Dom.setStyle(themeNavColor, "background", color);
        return themeNavItem;
    },
    
    createThemeNavFooter: function(position, isConsumer){
        var container = TECHTRIBE.Utils.createElement(this.themeNavContainer, "DIV", "themeNavFooter");
        if(isConsumer){
            TECHTRIBE.Utils.createElement(container, "IMG", "notTransparent", null, null, "/img/themeNavigation/businessArticles.png");
            YAHOO.util.Event.addListener(container, "mousedown", TECHTRIBE.Delegate.create(this, this.switchCategorieHandler, false));
        } else {
            TECHTRIBE.Utils.createElement(container, "IMG", "notTransparent", null, null, "/img/themeNavigation/consumerArticles.png");
            YAHOO.util.Event.addListener(container, "mousedown", TECHTRIBE.Delegate.create(this, this.switchCategorieHandler, true));           
        }
        YAHOO.util.Dom.setStyle(container, "display", "none");
        YAHOO.util.Dom.setStyle(container, "position", "absolute");
        YAHOO.util.Dom.setStyle(container, "top", position + "px");
        return container;       
    },
    
    createThemeMoreItem: function(imgURL, width, height, url, parentID, isConsumer, id, color){             
        var container = TECHTRIBE.Utils.createElement(this.themeNavContainer, "DIV", "themeMoreItem");      
        var themeMoreItem = new ACHMEA.view.ThemeMoreItem((this.mainModel.GENERATED_IMG_PATH + imgURL), width, height, url, this.themeNavView, this, container, id, color);
        this.themeNavModel.addThemeCloudItem(themeMoreItem, parentID);
        this.themeNavModel.addLink(url, parentID);  
        if(isConsumer){             
            this.mainModel.addConsumerLinkID(url);
        } else{
            this.mainModel.addBusinessLinkID(url);
        }       
    },
    
    /* -- CREATES THEME CLOUD NAVIGATION ITEMS -- */
        
    createThemeCloudItems: function(cloudItems, parentID, color, isConsumer){
        var id = 1;
        for(var i=0;i<cloudItems.length;i++)
        {       
            var cloudItem = cloudItems[i];
            var container = this.createThemeCloudItem(this.themeNavContainer, color);
            var themeCloudItem = new ACHMEA.view.ThemeCloudItem(this.themeNavView, this, container, (this.mainModel.GENERATED_IMG_PATH + cloudItem.title.img), cloudItem.link, id);
            this.themeNavModel.addThemeCloudItem(themeCloudItem, parentID);
            this.themeNavModel.addLink(cloudItem.link, parentID);
            if(isConsumer){             
                this.mainModel.addConsumerLinkID(cloudItem.link);
            } else{
                this.mainModel.addBusinessLinkID(cloudItem.link);
            }
            id++;
        }
    },  
    
    createThemeCloudItem: function(parent, color){
        var themeCloudItem = TECHTRIBE.Utils.createElement(parent, "DIV", "themeCloudItem");        
        var themeCloudColor = TECHTRIBE.Utils.createElement(themeCloudItem, "DIV", "themeCloudColor");
        YAHOO.util.Dom.setStyle(themeCloudColor, "background", color);
        var themeCloudName = TECHTRIBE.Utils.createElement(themeCloudItem, "DIV", "themeCloudName");
        return themeCloudItem;
    },
    
    checkToActivateNavItem: function(activeLinkID){
        var themeNavID = this.themeNavModel.getLink(activeLinkID);      
        if((typeof(themeNavID) != "undefined") && (themeNavID != null)){        
            if(this.themeNavModel.selectedThemeNavItemID != themeNavID) {
                this.selectThemeNavItem(themeNavID);
                if(this.themeNavModel.selectedThemeNavItemID != null) {
                    this.deselectThemeNavItem(this.themeNavModel.selectedThemeNavItemID);
                }
                this.themeNavModel.selectedThemeNavItemID = themeNavID;
            }
        } else {
            if((typeof(this.themeNavModel.selectedThemeNavItemID) != "undefined") && (this.themeNavModel.selectedThemeNavItemID != null)){
                this.deselectThemeNavItem(this.themeNavModel.selectedThemeNavItemID);   
            }   
            this.themeNavModel.selectedThemeNavItemID = null;
        }
    },
    
    themeItemLoaded: function(){
        this.amountOfLoadedThemeItems++;
        if(this.amountOfThemeItems == this.amountOfLoadedThemeItems){
            this.checkThemeCloudLoaded();
        }
    },
    
    cloudItemLoaded: function(){
        this.amountOfLoadedCloudItems++;
        if(this.amountOfCloudItems == this.amountOfLoadedCloudItems){
            this.checkThemeCloudLoaded();
        }       
    },
    
    checkThemeCloudLoaded: function(){      
        if((this.amountOfCloudItems == this.amountOfLoadedCloudItems) && (this.amountOfThemeItems == this.amountOfLoadedThemeItems) && (this.loadingReady)){            
            this.mainModel.setThemeNavLoaded();
        }
    },
    
    activateThemeNav: function(){       
        if(this.activeCategorie == this.BUSINESS_CATEGORIE){
            this.themeNavView.animateThemeNavIn(this.themeNavModel.businessNavCollection);
        } else if(this.activeCategorie == this.CONSUMER_CATEGORIE) {
            this.themeNavView.animateThemeNavIn(this.themeNavModel.consumerNavCollection);
        }
    },
    
    checkActivateThemeNavItem: function(id){    
        this.allowDeactivation = false;
        var oldActiveThemeNavId = this.themeNavModel.activeThemeNavId;
        this.themeNavModel.activeThemeNavId = id;
        if(oldActiveThemeNavId != id){
            this.activateThemeNavItem(id);      
            if((typeof(oldActiveThemeNavId) == "undefined") || (oldActiveThemeNavId == 0) || (oldActiveThemeNavId == null)){        
                this.themeNavView.animateTagCloudIn(this.themeNavModel.getThemeCloudItemByParentID(id), id);
                this.commonEvents.fadeOutContentEvent.fire();
            } else {
                this.deActivateThemeNavItem(oldActiveThemeNavId);
                this.themeNavView.animateTagCloudOut(this.themeNavModel.getThemeCloudItemByParentID(oldActiveThemeNavId));          
            }           
        } else {            
            this.themeNavModel.activeThemeNavId = 0;
            this.deActivateThemeNavItem(oldActiveThemeNavId);
            this.themeNavView.animateTagCloudOut(this.themeNavModel.getThemeCloudItemByParentID(oldActiveThemeNavId));  
            this.commonEvents.fadeInContentEvent.fire();
        }
    },
    
    checkDeactivateThemeNavItem: function(){    
        if(this.allowDeactivation){
            if((typeof(this.themeNavModel.activeThemeNavId) != "undefined") && (this.themeNavModel.activeThemeNavId != 0) && (this.themeNavModel.activeThemeNavId != null)){
                if(!this.themeCloudClicked){
                    this.deActivateThemeNavItem(this.themeNavModel.activeThemeNavId);               
                }   
                this.themeCloudClicked = false;     
                this.themeNavView.animateTagCloudOut(this.themeNavModel.getThemeCloudItemByParentID(this.themeNavModel.activeThemeNavId));
                this.themeNavModel.activeThemeNavId = 0;
                this.commonEvents.fadeInContentEvent.fire();
            }
        } else {
            this.allowDeactivation = true;
        }
    },
    
    activateThemeNavItem: function(id){
        var themeNavItem = this.themeNavModel.getThemeNavItemByID(id);
        var themeNavEl = themeNavItem.themeNavEl;           
        themeNavItem.isActive = true;   
        if(!themeNavItem.isSelected){
            this.themeNavView.animateThemeNavItemIn(themeNavItem, themeNavEl);  
        }                       
    },
    
    deActivateThemeNavItem: function(id){
        var themeNavItem = this.themeNavModel.getThemeNavItemByID(id);
        themeNavEl = themeNavItem.themeNavEl;
        themeNavItem.isActive = false;
        if(!themeNavItem.isSelected){
            this.themeNavView.animateThemeNavItemOut(themeNavItem, themeNavEl);
        }       
    },
    
    selectThemeNavItem: function(id){
        var themeNavItem = this.themeNavModel.getThemeNavItemByID(id);
        var themeNavEl = themeNavItem.themeNavEl;
        themeNavItem.isSelected = true;
        if(!themeNavItem.isActive){
            this.themeNavView.animateThemeNavItemIn(themeNavItem, themeNavEl);  
        }
    },
    
    deselectThemeNavItem: function(id){
        var themeNavItem = this.themeNavModel.getThemeNavItemByID(id);
        var themeNavEl = themeNavItem.themeNavEl;
        themeNavItem.isSelected = false;
        themeNavItem.isActive = false;
        this.themeNavView.animateThemeNavItemOut(themeNavItem, themeNavEl);     
    },
    
    checkActiveThemeNavItems: function(){
        if((this.themeNavModel.activeThemeNavId != 0) && (this.themeNavModel.activeThemeNavId != this.themeNavModel.animatedThemeNavID)) {
            this.themeNavView.animateTagCloudIn(this.themeNavModel.getThemeCloudItemByParentID(this.themeNavModel.activeThemeNavId), this.themeNavModel.activeThemeNavId);
            this.commonEvents.fadeOutContent.fire();
        }
    }
}   
ACHMEA.controller.ThemeNavController = ThemeNavController;



/*
 *** ACHMEA.controller.MetaNavController ***
 */
var MetaNavController = function(view, model) {
    this.view = view;
    this.model = model;
    this.init();
}

MetaNavController.prototype =
{
    mainModel: null,        
    commonEvents: null, 
    view: null,
    model: null,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.commonEvents = ACHMEA.events.CommonEvents.getInstance();
        this.setListeners();
    },
    
    setListeners: function(){
        var callback1 = TECHTRIBE.Delegate.create(this, this.dataReadyHandler);     
        this.commonEvents.basicDataReceivedEvent.subscribe(callback1);      
        var callback2 = TECHTRIBE.Delegate.create(this, this.stateChangeHandler);
        this.commonEvents.stateChangeEvent.subscribe(callback2);        
    },

    dataReadyHandler: function(){
        this.view.createMetaNav(this.mainModel.metaNavData);    
    },
    
    stateChangeHandler: function(){
        this.checkActivateMetaItem();
    },
    
    checkActivateMetaItem: function(){
        var metaNavContainer = YAHOO.util.Dom.get("metaNavContainer");
        var aTags = metaNavContainer.getElementsByTagName("A");
        for(var i=0;i<aTags.length;i++)
        {
            var aTag = aTags[i];
            var url = aTag.href.substring(aTag.href.indexOf("/consumenten/"), aTag.href.length);
            if(url == this.mainModel.activeLinkId){
                YAHOO.util.Dom.setStyle(aTag, "color", "#ce9a9f");
            } else {
                YAHOO.util.Dom.setStyle(aTag, "color", "#8c8c8c");
            }
        }
    }
}
ACHMEA.controller.MetaNavController = MetaNavController;



/*
 *** ACHMEA.controller.ToolbarController ***
 */
var ToolbarController = function(model, view) {
    this.model = model;
    this.view = view;
    this.init();
}

ToolbarController.prototype =
{   
    mainModel: null,
    model: null,
    view: null,
    articleToolsMenu: null,
    toolsContainer: null,   
    selectedID: null,
    queID: null,
    reactionsID: -1,

    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.setElements();
        this.createToolbarItems();
    },  
    
    setElements: function(){
        this.articleToolsMenu = YAHOO.util.Dom.get("articleToolsMenu");
        this.toolsContainer = YAHOO.util.Dom.get("toolsContainer");
    },
    
    createToolbarItems: function(){
        var allLiTags = this.articleToolsMenu.getElementsByTagName("LI");
        for(var i=0;i<allLiTags.length;i++)
        {
            var liTag = allLiTags[i];
            var aTag = liTag.getElementsByTagName("A")[0];
            this.createToolbarItem(aTag, i);
        }
        if((TECHTRIBE.Utils.getParameter(this.mainModel.queryString, "showReactions") == "true") && (this.reactionsID > -1)){
            this.selectedID = this.reactionsID;     
            this.model.getToolbarItemByID(this.selectedID).setEnabled(true);
            this.openContainer(this.selectedID);
            this.view.isClosed = false;
            YAHOO.util.Dom.setStyle(this.view.articleToolsSqeezer, "height", this.view.articleToolsContent.offsetHeight + "px");
        }
    },
    
    createToolbarItem: function(aTag, id){
        var toolbarItem;
        switch(aTag.id){
            case "reactionsButton":
                this.reactionsID = id;
                toolbarItem = new ACHMEA.view.ToolbarItem(this.model, this.view, this, aTag, id, this.model.ITEM_TYPE_REACTIONS);
                break;
            case "reactButton":
                toolbarItem = new ACHMEA.view.ToolbarItem(this.model, this.view, this, aTag, id, this.model.ITEM_TYPE_REACT);
                break;
            case "forwardButton":
                toolbarItem = new ACHMEA.view.ToolbarItem(this.model, this.view, this, aTag, id, this.model.ITEM_TYPE_FORWARD);         
                break;
            case "printButton":
                toolbarItem = new ACHMEA.view.ToolbarItem(this.model, this.view, this, aTag, id, this.model.ITEM_TYPE_PRINT);
                break;
            case "bookmarkButton":
                toolbarItem = new ACHMEA.view.ToolbarItem(this.model, this.view, this, aTag, id, this.model.ITEM_TYPE_BOOKMARK);            
                break;               
        }       
        this.model.addToolbarItem(id, toolbarItem);
        this.closeContainer(id);
    },
    
    activateTool: function(id){
        if(this.queID != null){
            this.model.getToolbarItemByID(this.queID).setEnabled(false);    
        }
        this.queID = id;
        if(this.view.isClosed){
            this.selectedID = id;       
            this.model.getToolbarItemByID(this.selectedID).setEnabled(true);
            this.openContainer(this.selectedID);
            this.view.slideDown();
        } else {
            this.model.getToolbarItemByID(this.selectedID).setEnabled(false);           
            this.model.getToolbarItemByID(this.queID).setEnabled(true);                     
            this.view.slideUp();
        }
    },
    
    deactivateTool: function(){
        this.queID = null;
        this.model.getToolbarItemByID(this.selectedID).setEnabled(false);               
        this.view.slideUp();
    },
    
    openContainer: function(id){
        var type = this.model.getToolbarItemByID(id).type;
        var toolContainer;
        switch(type){
            case this.model.ITEM_TYPE_REACTIONS:
                toolContainer = YAHOO.util.Dom.getElementsByClassName("reactionsContainer", "DIV", this.toolsContainer)[0];
                break;
            case this.model.ITEM_TYPE_REACT:
                toolContainer = YAHOO.util.Dom.getElementsByClassName("reactContainer", "DIV", this.toolsContainer)[0];             
                break;
            case this.model.ITEM_TYPE_FORWARD:
                toolContainer = YAHOO.util.Dom.getElementsByClassName("forwardContainer", "DIV", this.toolsContainer)[0];               
                break;
            case this.model.ITEM_TYPE_BOOKMARK:
                toolContainer = YAHOO.util.Dom.getElementsByClassName("bookmarkContainer", "DIV", this.toolsContainer)[0];
                break;       
        }
        YAHOO.util.Dom.setStyle(toolContainer, "display", "block");
    },
    
    closeContainer: function(id){
        var type = this.model.getToolbarItemByID(id).type;
        var toolContainer;
        switch(type){
            case this.model.ITEM_TYPE_REACTIONS:
                toolContainer =  YAHOO.util.Dom.getElementsByClassName("reactionsContainer", "DIV", this.toolsContainer)[0];
                break;
            case this.model.ITEM_TYPE_REACT:
                toolContainer = YAHOO.util.Dom.getElementsByClassName("reactContainer", "DIV", this.toolsContainer)[0];             
                break;
            case this.model.ITEM_TYPE_FORWARD:
                toolContainer =  YAHOO.util.Dom.getElementsByClassName("forwardContainer", "DIV", this.toolsContainer)[0];              
                break;
            case this.model.ITEM_TYPE_BOOKMARK:
                toolContainer =  YAHOO.util.Dom.getElementsByClassName("bookmarkContainer", "DIV", this.toolsContainer)[0];
                break;       
        }
        YAHOO.util.Dom.setStyle(toolContainer, "display", "none");
    },
    
    switchTool: function(){
        this.closeContainer(this.selectedID);
        if(this.queID != null){
            this.selectedID = this.queID;
            this.queID = null;
            this.openContainer(this.selectedID);
            this.view.slideDown();          
        } else {
            this.selectedID = null;
        }
    }
}   
ACHMEA.controller.ToolbarController = ToolbarController;

// js/components/AchmeaComponents.js
/*
 * Copyright (c) 2008, Techtribe B.V.
 * Url: http://www.techtribe.nl
 * Author: Remon de Boer
 * 
 * ACHMEA.components.ForwardToolCom
 */
var ForwardToolCom = function(componentController, container){
    this.componentController = componentController;
    this.container = container;
    this.init();
}

ForwardToolCom.prototype =
{
    FORM_POST_PATH: "/consumenten/tools/doorsturen?transport=ajax",
    componentController: null,
    container: null,
    url: null,
    nameFrom: null,
    emailFrom: null,
    nameTo: null,
    emailTo: null,
    remark: null,
    msgText: null,
    sendButton: null,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.setElements();
        this.setEvents();
        this.componentController.componentLoaded();
    },
    
    setElements: function(){
        var inputFields = this.container.getElementsByTagName("INPUT");
        for(var i=0;i<inputFields.length;i++)
        {
            var inputField = inputFields[i];
            switch(inputField.name){
                case "url":
                    this.url = inputField;
                    break;                  
                case "nameFrom":
                    this.nameFrom = inputField;
                    break;
                case "emailFrom":
                    this.emailFrom = inputField;
                    break;
                case "nameTo":
                    this.nameTo = inputField;
                    break;
                case "emailTo":
                    this.emailTo = inputField;
                    break;                                                          
            }           
        }
        this.sendButton = this.container.getElementsByTagName("BUTTON")[0];
        this.remark = this.container.getElementsByTagName("TEXTAREA")[0];
        this.msgText = YAHOO.util.Dom.getElementsByClassName("msgText", "DIV", this.container)[0];
        this.remark.value = "";     
    },
    
    setEvents: function(){
        var callback = TECHTRIBE.Delegate.create(this, this.mouseDownHandler);
        this.sendButton.onclick = callback;
    },
    
    showSucces: function(succesMessage){
        this.resetForm();
        this.msgText.innerHTML = succesMessage;
        if(YAHOO.util.Dom.hasClass(this.msgText, "error")){
            YAHOO.util.Dom.removeClass(this.msgText, "error");
        }       
    },  
    
    resetForm: function(){
        this.nameFrom.value = "";
        this.emailFrom.value = "";      
        this.nameTo.value = "";
        this.emailTo.value = "";
        this.remark.value = "";     
    },  
    
    postForm: function(){
        var callback = TECHTRIBE.Delegate.create(this, this.serverResponseHandler);
        this.mainModel.connectionManager.asyncRequestPost(this.FORM_POST_PATH, this.createPostQuerrySt(), callback);
    },
        
    createPostQuerrySt: function(){
        var querryStr = "url=" + this.url.value + "&";
        if(this.nameFrom.value != ""){
            querryStr += "nameFrom=" + this.nameFrom.value + "&";
        }
        if(this.emailFrom.value != ""){
            querryStr += "emailFrom=" + this.emailFrom.value + "&";
        }
        if(this.nameTo.value != ""){
            querryStr += "nameTo=" + this.nameTo.value + "&";
        }
        if(this.emailTo.value != ""){
            querryStr += "emailTo=" + this.emailTo.value + "&";     
        }
        if(this.remark.value != ""){
            querryStr += "remark=" + this.remark.value + "&";
        }       
        if(querryStr.lastIndexOf("&") > -1){
            querryStr = querryStr.substring(0, (querryStr.length - 1));
        }
        return querryStr;
    },      
        
    serverResponseHandler: function(res){
        var jsonString = res.responseText;
        try {           
            var sendAFriendRes = YAHOO.lang.JSON.parse(jsonString);         
            var containsAError = this.checkForErrors(sendAFriendRes.sendAFriend);
            if(!containsAError){
                this.showSucces(sendAFriendRes.sendAFriend.succesMessage);
            }
        } catch(e){
            alert("ForwardToolCom: JSON PARSE FAILURE");
        }       
    },  
    
    checkForErrors: function(validationObj){
        var containsAError = false;
        if(validationObj.nameFromHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.nameFrom, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.nameFrom, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.nameFrom, "errorBorder");
        }       
        if(validationObj.emailFromHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.emailFrom, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.emailFrom, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.emailFrom, "errorBorder");
        }
        if(validationObj.nameToHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.nameTo, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.nameTo, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.nameTo, "errorBorder");
        }
        if(validationObj.emailToHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.emailTo, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.emailTo, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.emailTo, "errorBorder");
        }
        if(validationObj.remarkHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.remark, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.remark, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.remark, "errorBorder");
        }
        if(containsAError){
            this.msgText.innerHTML = "Velden met een * zijn verplicht."
            if(!YAHOO.util.Dom.hasClass(this.msgText, "error")){
                YAHOO.util.Dom.addClass(this.msgText, "error");
            }
        }
        return containsAError;
    },
        
    mouseDownHandler: function(){
        this.postForm();        
        return false;
    }   
}
ACHMEA.components.ForwardToolCom = ForwardToolCom;



/* 
 *** ACHMEA.components.QuestionFormCom ***
 */
var QuestionFormCom = function(componentController, container){
    this.componentController = componentController;
    this.container = container; 
    this.init();
}

QuestionFormCom.prototype =
{
    FORM_POST_PATH: "/d/contact/stel_een_vraag?transport=az",
    componentController: null,
    container: null,
    name: null,
    email: null,
    brand: null,
    subject: null,
    question: null,
    msgText: null,
    sendButton: null,
    captcha: null,
    challenge: null,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.setElements();
        this.setEvents();
        this.componentController.componentLoaded();
    },
    
    setElements: function(){
        var inputFields = this.container.getElementsByTagName("INPUT");
        for(var i=0;i<inputFields.length;i++)
        {
            var inputField = inputFields[i];
            switch(inputField.name){
                case "name":
                    this.name = inputField;
                    break;              
                case "email":
                    this.email = inputField;
                    break;
                case "subject":
                    this.subject = inputField;
                    break;                                                      
                case "captcha":
                    this.captcha = inputField;
                    break;                                                      
                case "challenge":
                    this.challenge = inputField;
                    break;                                                      
            }           
        }
        this.brand = this.container.getElementsByTagName("SELECT")[0];
        this.question = this.container.getElementsByTagName("TEXTAREA")[0];
        this.sendButton = this.container.getElementsByTagName("BUTTON")[0];
        this.msgText = YAHOO.util.Dom.get("msgText");
        this.question.value = "";       
    },
    
    setEvents: function(){
        var callback = TECHTRIBE.Delegate.create(this, this.mouseDownHandler);
        this.sendButton.onclick = callback;
    },
    
    showSucces: function(){
        this.resetForm();
        this.msgText.innerHTML = "Uw vraag is verzonden. Wij streven ernaar uw vraag binnen twee werkdagen te beantwoorden.";
        if(YAHOO.util.Dom.hasClass(this.msgText, "error")){
            YAHOO.util.Dom.removeClass(this.msgText, "error");
        }           
    },

    resetForm: function(){
        this.name.value = "";
        this.email.value = "";      
        this.subject.value = "";
        this.question.value = "";
        this.captcha.value = "";
        this.challenge.value = "";
        this.brand.selectedIndex = 0;   
    },  
    
    postForm: function(){
        var callback = TECHTRIBE.Delegate.create(this, this.serverResponseHandler);
        this.mainModel.connectionManager.asyncRequestPost(this.FORM_POST_PATH, this.createPostQuerrySt(), callback);
    },
        
    createPostQuerrySt: function(){
        var querryStr = "brand=" + this.brand.selectedIndex + "&";
        if(this.name.value != ""){
            querryStr += "name=" + this.name.value + "&";
        }
        if(this.email.value != ""){
            querryStr += "email=" + this.email.value + "&";
        }
        if(this.subject.value != ""){
            querryStr += "subject=" + this.subject.value + "&";
        }
        if(this.question.value != ""){
            querryStr += "question=" + this.question.value + "&";
        }       
        if(this.challenge.value != ""){
            querryStr += "challenge=" + this.challenge.value + "&";
        }       
        if(this.captcha.value != ""){
            querryStr += "captcha=" + this.captcha.value + "&";
        }       
        if(querryStr.lastIndexOf("&") > -1){
            querryStr = querryStr.substring(0, (querryStr.length - 1));
        }
        return querryStr;
    },      
        
    serverResponseHandler: function(res){
        var jsonString = res.responseText;
        try {           
            var reactRes = YAHOO.lang.JSON.parse(jsonString);           
            var containsAError = this.checkForErrors(reactRes.askQuestion);
            if(!containsAError){
                this.showSucces();
            }
        } catch(e){
            alert("ForwardToolCom: JSON PARSE FAILURE");
        }       
    },  
    
    checkForErrors: function(validationObj){
        var containsAError = false;
        if(validationObj.nameHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.name, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.name, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.name, "errorBorder");
        }       
        if(validationObj.emailHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.email, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.email, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.email, "errorBorder");
        }
        if(validationObj.subjectHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.subject, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.subject, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.subject, "errorBorder");
        }
        if(validationObj.questionHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.question, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.question, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.question, "errorBorder");
        }       
        if(validationObj.captchaHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.captcha, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.captcha, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.captcha, "errorBorder");
        }       
        if(containsAError){
            this.msgText.innerHTML = "Velden met een * zijn verplicht."
            if(!YAHOO.util.Dom.hasClass(this.msgText, "error")){
                YAHOO.util.Dom.addClass(this.msgText, "error");
            }
        }               
        return containsAError;
    },
        
    mouseDownHandler: function(){
        this.postForm();        
        return false;
    }   
}
ACHMEA.components.QuestionFormCom = QuestionFormCom;



/* 
 *** ACHMEA.components.ReactToolCom ***
 */
var ReactToolCom = function(componentController, container){
    this.componentController = componentController;
    this.container = container; 
    this.init();    
}

ReactToolCom.prototype =
{
    FORM_POST_PATH: "/consumenten/tools/reageren?transport=ajax",
    componentController: null,
    container: null,
    url: null,
    nameFrom: null,
    emailFrom: null,
    remark: null,
    msgText: null,
    sendButton: null,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.setElements();
        this.setEvents();
        this.componentController.componentLoaded();
    },
    
    setElements: function(){
        var inputFields = this.container.getElementsByTagName("INPUT");
        for(var i=0;i<inputFields.length;i++)
        {
            var inputField = inputFields[i];
            switch(inputField.name){
                case "url":
                    this.url = inputField;
                    break;              
                case "nameFrom":
                    this.nameFrom = inputField;
                    break;
                case "emailFrom":
                    this.emailFrom = inputField;
                    break;                                                      
            }           
        }
        this.sendButton = this.container.getElementsByTagName("BUTTON")[0];
        this.remark = this.container.getElementsByTagName("TEXTAREA")[0];
        this.msgText = YAHOO.util.Dom.getElementsByClassName("msgText", "DIV", this.container)[0];
        this.remark.value = "";
    },
    
    setEvents: function(){
        var callback = TECHTRIBE.Delegate.create(this, this.mouseDownHandler);
        this.sendButton.onclick = callback;
    },
    
    showSucces: function(){
        ACHMEA.navigateTo(this.mainModel.activeLinkId + "?showReactions=true&random=" + Math.random());
    },
    
    postForm: function(){
        var callback = TECHTRIBE.Delegate.create(this, this.serverResponseHandler);
        this.mainModel.connectionManager.asyncRequestPost(this.FORM_POST_PATH, this.createPostQuerrySt(), callback);
    },
        
    createPostQuerrySt: function(){
        var querryStr = "url=" + this.url.value + "&";
        if(this.nameFrom.value != ""){
            querryStr += "nameFrom=" + this.nameFrom.value + "&";
        }
        if(this.emailFrom.value != ""){
            querryStr += "emailFrom=" + this.emailFrom.value + "&";
        }
        if(this.remark.value != ""){
            querryStr += "remark=" + this.remark.value + "&";
        }       
        if(querryStr.lastIndexOf("&") > -1){
            querryStr = querryStr.substring(0, (querryStr.length - 1));
        }
        return querryStr;
    },      
        
    serverResponseHandler: function(res){
        var jsonString = res.responseText;
        try {           
            var reactRes = YAHOO.lang.JSON.parse(jsonString);           
            var containsAError = this.checkForErrors(reactRes.respond);
            if(!containsAError){
                this.showSucces();
            }
        } catch(e){
            alert("ForwardToolCom: JSON PARSE FAILURE");
        }       
    },  
    
    checkForErrors: function(validationObj){
        var containsAError = false;
        if(validationObj.nameFromHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.nameFrom, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.nameFrom, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.nameFrom, "errorBorder");
        }       
        if(validationObj.emailFromHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.emailFrom, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.emailFrom, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.emailFrom, "errorBorder");
        }
        if(validationObj.remarkHasError == "true"){
            containsAError = true;
            YAHOO.util.Dom.addClass(this.remark, "errorBorder");
        } else if(YAHOO.util.Dom.hasClass(this.remark, "errorBorder")){
            YAHOO.util.Dom.removeClass(this.remark, "errorBorder");
        }
        if(containsAError){
            this.msgText.innerHTML = "Velden met een * zijn verplicht."
            if(!YAHOO.util.Dom.hasClass(this.msgText, "error")){
                YAHOO.util.Dom.addClass(this.msgText, "error");
            }
        }       
        return containsAError;
    },
        
    mouseDownHandler: function(){
        this.postForm();        
        return false;
    }   
}
ACHMEA.components.ReactToolCom = ReactToolCom;



/* 
 *** ACHMEA.components.DownloadCom ***
 */
var DownloadCom = function(componentController, container){
    this.componentController = componentController;
    this.container = container; 
    this.init();
}

DownloadCom.prototype =
{   
    componentController: null,
    container: null,
    data: null,

    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.allData = new Array();
        this.data = new Array();
        this.setElements();
        this.setEvents();
        this.yearChangeHandler();
        this.componentController.componentLoaded();     
    },
    
    setElements: function(){
        this.yearSelector = this.container.getElementsByTagName("SELECT")[0];
        var LIs = this.container.getElementsByTagName("LI");
        for(var i=0;i<LIs.length;i++)
        {
            var li = LIs[i];
            this.data.push(li);
        }
    },
    
    setEvents: function(){
        this.yearSelector.onchange = TECHTRIBE.Delegate.create(this, this.yearChangeHandler);
    },  
    
    yearChangeHandler: function(){
        for(var i=0;i<this.data.length;i++)
        {
            var download = this.data[i];
            if(YAHOO.util.Dom.hasClass(download, this.yearSelector.options[this.yearSelector.selectedIndex].text)){
                YAHOO.util.Dom.setStyle(download, "display", "block");
            } else {
                YAHOO.util.Dom.setStyle(download, "display", "none");
            }
        }
    }   
}
ACHMEA.components.DownloadCom = DownloadCom;



/*
 *** ACHMEA.components.SearchAgainCom ***
 */
var SearchAgainCom = function(componentController, container) {
    this.componentController = componentController;
    this.container = container; 
    this.init();
}

SearchAgainCom.prototype =
{
    mainModel: null,
    componentController: null,
    container: null,
    formTag: null,
    inputField: null,
    submitButton: null,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.setElements();
        this.setEvents();
        this.componentController.componentLoaded();
    },  
    
    setElements: function(){
        var inputFields = this.container.getElementsByTagName("INPUT");
        for(var i=0;i<inputFields.length;i++)
        {
            var inputField2 = inputFields[i];
            if(inputField2.name == "query"){
                this.inputField = inputField2;
            }
        }
        this.formTag = this.container.getElementsByTagName("FORM")[0];
        this.submitButton = this.container.getElementsByTagName("BUTTON")[0];       
    },  
    
    setEvents: function(){
        var callback1 = TECHTRIBE.Delegate.create(this, this.mouseDownHandler);
        this.submitButton.onclick = callback1;      
        var callback2 = TECHTRIBE.Delegate.create(this, this.onSubmitHandler);
        this.formTag.onsubmit = callback2;          
    },
        
    onSubmitHandler: function(){
        this.submitForm();
        return false;
    },
            
    mouseDownHandler: function(){
        this.submitForm();
        return false;
    },
    
    submitForm: function(){
        var isConsumer = (this.mainModel.isConsumer) ? "consumenten" : "bedrijven";
        ACHMEA.navigateTo(this.mainModel.SEARCH_DATA_PATH + "?query=" + escape(this.inputField.value) + "&url=" + isConsumer);      
    }       
}   
ACHMEA.components.SearchAgainCom = SearchAgainCom;



/* 
 *** ACHMEA.components.GeschiedenisCom ***
 */
var GeschiedenisCom = function(componentController) {
    this.componentController = componentController;
    this.init();    
}

GeschiedenisCom.prototype =
{
    componentController: null,
    
    init: function(){
        this.setFlash();
        this.componentController.componentLoaded();
    },
    
    setFlash: function(){
        if(swfobject.hasFlashPlayerVersion("9.0.0")){
            var att = {data:"/swf/geschiedenis/Geschiedenis.swf", width: "465", height: "220", allowScriptAccess: "always"};    
            var par = {allowScriptAccess: "always", wmode: "transparent", base:"/swf/geschiedenis/"};
            var id = "flashcontent";
            swfobject.createSWF(att, par, id);
        }   
    }   
}
ACHMEA.components.GeschiedenisCom = GeschiedenisCom;



/* 
 *** ACHMEA.components.FlashCom ***
 */
var FlashCom = function(componentController, container) {
    this.componentController = componentController;
    this.container = container;
    this.init();    
}

FlashCom.prototype =
{
    componentController: null,
    container: null,
    
    init: function(){
        this.componentController.componentLoaded();
    }   
}
ACHMEA.components.FlashCom = FlashCom;



/* 
 *** ACHMEA.components.AllArticlesComp ***
 */
var AllArticlesCom = function(componentController, container){
    this.componentController = componentController; 
    this.allArticlesSideBlock = container;
    this.init();
}

AllArticlesCom.prototype =
{
    componentController: null,  
    mainModel: null,
    button: null,
    dropDown: null,
    allArticlesSideBlock: null,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.setElements();
        this.setEvents();
        this.setStyles();
        this.componentController.componentLoaded();     
    },
    
    setElements: function(){
        this.button = this.allArticlesSideBlock.getElementsByTagName("BUTTON")[0];
        this.dropDown = this.allArticlesSideBlock.getElementsByTagName("SELECT")[0];
    },
        
    setEvents: function(){
        this.dropDown.onchange = TECHTRIBE.Delegate.create(this, this.dropDownChangeHandler);
    },
    
    setStyles: function(){
        YAHOO.util.Dom.setStyle(this.button, "display", "none");
    },
    
    dropDownChangeHandler: function(){
        var url = this.createURL(this.dropDown.options[this.dropDown.selectedIndex].text);
        ACHMEA.navigateTo(url);
    },
    
    createURL: function(optionValue){   
        if(this.mainModel.queryString != ""){
            var typeValue = this.getParameter(this.mainModel.queryString, "type");
            if(typeValue == ""){
                return this.mainModel.activeLinkId + "?year=" + optionValue;    
            } else {
                return this.mainModel.activeLinkId + "?year=" + optionValue + "&type=" + typeValue; 
            }
        } else {
            return this.mainModel.activeLinkId + "?year=" + optionValue;
        }
    },
    
    getParameter: function(queryString, param) {
        if(queryString.indexOf("&") == -1){
            var paramArr = queryString.split("=");
            if(paramArr[0] == param){
                return paramArr[1];
            } else {
                return "";
            }
        } else {
            var paramsArr = queryString.split("&");
            for(var i=0;i<paramsArr.length;i++)
            {
                var paramArr = paramsArr[i].split("=");
                if(paramArr[0] == param){
                    return paramArr[1];
                }
            }
            return "";
        }
    }   
}
ACHMEA.components.AllArticlesCom = AllArticlesCom;



/* 
 *** ACHMEA.components.InsuranceContactComView ***
 */
var InsuranceContactCom = function(componentController, container){
    this.componentController = componentController;
    this.verzekerenContact = container;
    this.init();
}

InsuranceContactCom.prototype =
{
    componentController: null,
    mainModel: null,    
    selectBoxAData: null,
    selectBoxBData: null,
    brandLinksData: null,   
    verzekerenContact: null,
    cgSelectBox: null,
    pgSelectBox: null,
    submitButton: null,
    resultTable: null,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.selectBoxAData = new Array();
        this.selectBoxBData = new Array();
        this.brandLinksData = new Array();      
        this.setElements();
        this.setStyles();
        this.clearSelectBoxes();
        this.setEvents();
        this.getInsuranceData(this.mainModel.VERZEKEREN_DATA_PATH);     
    },
    
    startUp: function(){
        this.cgSelectBox.disabled = false;
        this.pgSelectBox.disabled = false;
        this.fillSelectBoxA();
        this.fillSelectBoxB(0);
        this.componentController.componentLoaded(); 
    },
    
    setElements: function(){
        this.submitButton = this.verzekerenContact.getElementsByTagName("BUTTON")[0];
        this.resultTable = YAHOO.util.Dom.get("resultTable");
        var selectBoxen = this.verzekerenContact.getElementsByTagName("SELECT");
        for(var i=0;i<selectBoxen.length;i++)
        {
            var selectBox = selectBoxen[i];
            if(selectBox.name == "cgId"){
                this.cgSelectBox = selectBox;
            } else if(selectBox.name == "pgId"){
                this.pgSelectBox = selectBox;
            }
        }       
    },
    
    setStyles: function(){
        this.cgSelectBox.disabled = true;
        this.pgSelectBox.disabled = true;
        YAHOO.util.Dom.setStyle(this.submitButton, "display", "none");
    },
    
    getInsuranceData: function(url){
        var callback = TECHTRIBE.Delegate.create(this, this.insuranceDataReceived);
        this.mainModel.connectionManager.asyncRequestGet(url, callback);
    },  
    
    insuranceDataReceived: function(res){
        var jsonString = res.responseText;
        try {
            var insuranceData = YAHOO.lang.JSON.parse(jsonString);
            this.storeData(insuranceData);
            this.startUp();
        } catch(e){
            alert("InsuranceContactComponent: JSON PARSE FAILURE");
        }
    },  

    storeData: function(data){
        data = data.content.customerGroup;  
        for(var i=0;i<data.length;i++)
        {
            var customerGroup = data[i];
            this.addSelectBoxAData(customerGroup.name);
            if(TECHTRIBE.Utils.isArray(customerGroup.productGroup)){
                for(var j=0;j<customerGroup.productGroup.length;j++)
                {
                    var productGroup = customerGroup.productGroup[j];
                    this.addSelectBoxBData(i, productGroup.name);
                    if(productGroup.brandLink){
                        if(TECHTRIBE.Utils.isArray(productGroup.brandLink)){
                            for(var k=0;k<productGroup.brandLink.length;k++)
                            {
                                var brandLink = productGroup.brandLink[k];
                                this.addBrandlinkData(i, j, brandLink);
                            }                   
                        } else {
                            var brandLink = productGroup.brandLink;
                            this.addBrandlinkData(i, j, brandLink);                     
                        }                           
                    }               
                }
            } else {
                var productGroup = customerGroup.productGroup;
                this.addSelectBoxBData(i, productGroup.name);
                if(productGroup.brandLink){
                    if(TECHTRIBE.Utils.isArray(productGroup.brandLink)){
                        for(var k=0;k<productGroup.brandLink.length;k++)
                        {
                            var brandLink = productGroup.brandLink[k];
                            this.addBrandlinkData(i, j, brandLink);
                        }                       
                    } else {
                        var brandLink = productGroup.brandLink;
                        this.addBrandlinkData(i, 0, brandLink);                     
                    }                           
                }               
            }
        }
    },
    
    clearSelectBoxes: function(){
        this.removeAllOptions(this.cgSelectBox);
        this.addOption(this.cgSelectBox, "loading", "Bezig met laden..", true);
        this.removeAllOptions(this.pgSelectBox);        
        this.addOption(this.pgSelectBox, "loading", "Bezig met laden..", true);
    },
    
    setEvents: function(){
        this.cgSelectBox.onchange = TECHTRIBE.Delegate.create(this, this.cgSelectBoxChangeHandler);
        this.pgSelectBox.onchange = TECHTRIBE.Delegate.create(this, this.pgSelectBoxChangeHandler);             
    },
    
    cgSelectBoxChangeHandler: function(){
        this.fillSelectBoxB(this.cgSelectBox.selectedIndex);
    },
    
    pgSelectBoxChangeHandler: function(){
        this.fillContent(this.cgSelectBox.selectedIndex, this.pgSelectBox.selectedIndex);
    },
    
    fillSelectBoxA: function(){
        this.removeAllOptions(this.cgSelectBox);
        var selectBoxAData = this.getSelectBoxAData();
        for(var i=0;i<selectBoxAData.length;i++)
        {
            var selected = (i == 0) ? true : false;
            this.addOption(this.cgSelectBox, selectBoxAData[i], selectBoxAData[i], selected);
        }
    },
    
    fillSelectBoxB: function(idA){
        this.removeAllOptions(this.pgSelectBox);
        var selectBoxBData = this.getSelectBoxBData(idA);
        for(var i=-1;i<selectBoxBData.length;i++)
        {
            if(i == -1){
                this.addOption(this.pgSelectBox, "Maak een keuze", "Maak een keuze", true);
            } else {
                this.addOption(this.pgSelectBox, selectBoxBData[i], selectBoxBData[i], false);                  
            }           
        }       
    },
    
    fillContent: function(idA, idB){
        if(idB != 0){
            var brandLinksData = this.getBrandLinksData(idA, (idB-1));
            this.resultTable.innerHTML = "";
            for(var i=0;i<brandLinksData.length;i++)
            {
                var brandLink = brandLinksData[i];
                this.resultTable.innerHTML += "<div class='resultColumn1'>" + brandLink.name + "</div><div class='resultColumn2'><a href='" + brandLink.link + "' target='blank'>meer informatie</a></div>";
            }   
            this.resultTable.innerHTML += "<br/>";
        }       
    },
    
    removeAllOptions: function(el){
        if(el.options){
            var length = el.options.length;
        } else {
            var length = 0;
        }
        for(var i=0;i<length;i++){
            el.options[0] = null;
        }
    },
    
    addOption: function(el, value, name, selected){
        var pos = el.options.length;
        el.options[pos] = new Option(name, value, true);
        if(selected){
            el.options[pos].selected = true;
        } else {
            el.options[pos].selected = false;
        }
    },
    
    addSelectBoxAData: function(name){
        this.selectBoxAData.push(name);
    },
    
    addSelectBoxBData: function(idA, name){
        if(this.selectBoxBData[idA] != null){
            this.selectBoxBData[idA].productGroups.push(name);
        } else {
            this.selectBoxBData[idA] = {productGroups: [name]};
        }
    },
    
    addBrandlinkData: function(idA, idB, data){
        if(this.brandLinksData[idA] != null){
            if(this.brandLinksData[idA].productGroups[idB] != null){
                this.brandLinksData[idA].productGroups[idB].brandLinks.push({name: data.brand, link: data.content});
            } else {
                this.brandLinksData[idA].productGroups[idB] = {brandLinks: [{name: data.brand, link: data.content}]};
            }
        } else {
            this.brandLinksData[idA] = {productGroups: new Array()};
            this.brandLinksData[idA].productGroups[idB] = {brandLinks: [{name: data.brand, link: data.content}]};
        }               
    },
    
    getSelectBoxAData: function(){
        return this.selectBoxAData;
    },
    
    getSelectBoxBData: function(idA){
        return this.selectBoxBData[idA].productGroups;
    },
    
    getBrandLinksData: function(idA, idB){
        if(this.brandLinksData[idA].productGroups[idB]){
            return this.brandLinksData[idA].productGroups[idB].brandLinks;
        } else {
            return [];
        }
    }       
}
ACHMEA.components.InsuranceContactCom = InsuranceContactCom;



/* 
 *** ACHMEA.components.StandardAccordionCom ***
 */
var StandardAccordionCom = function(componentController, container){
    this.componentController = componentController;
    this.container = container;
    this.init();
}

StandardAccordionCom.prototype =
{
    componentController: null,
    container: null,
    mainModel: null,
    resultItems: null,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.setElements();
        this.createAccordion();
        this.componentController.componentLoaded();
    },
    
    setElements: function(){
        this.resultItems = YAHOO.util.Dom.getElementsByClassName("resultItem", "DIV", this.container);
    },
    
    createAccordion: function(){
        this.accordion = new ACHMEA.view.ui.Accordion();
        for(var i=0;i<this.resultItems.length;i++)
        {
            var resultItem = this.resultItems[i];           
            var button = YAHOO.util.Dom.getElementsByClassName("resultTitle", "DIV", resultItem)[0];
            var sqeezer = YAHOO.util.Dom.getElementsByClassName("resultSqeezer", "DIV", resultItem)[0]; 
            var content = YAHOO.util.Dom.getElementsByClassName("resultContainer", "DIV", sqeezer)[0];
            this.accordion.addItem(button, sqeezer, content, resultItem);
        }
    }
}
ACHMEA.components.StandardAccordionCom = StandardAccordionCom;



/* 
 *** ACHMEA.components.FAQAccordionCom ***
 */
var FAQAccordionCom = function(componentController, container){
    this.componentController = componentController;
    this.container = container;
    this.init();
}

FAQAccordionCom.prototype =
{
    CLASS_OPEN: "openAnswer",
    CLASS_CLOSED: "closeAnswer",
    componentController: null,
    accordion: null,
    container: null,
    mainModel: null,
    resultItems: null,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.accordion = new ACHMEA.view.ui.Accordion();
        this.setElements();     
        this.createAccordion();
        this.setEvents();
        this.componentController.componentLoaded();
    },
    
    setElements: function(){
        this.resultItems = YAHOO.util.Dom.getElementsByClassName("resultItem", "DIV", this.container);
    },
    
    setEvents: function(){
        var callback1 = TECHTRIBE.Delegate.create(this, this.itemOverHandler);
        this.accordion.itemOverEvent.subscribe(callback1);
        var callback2 = TECHTRIBE.Delegate.create(this, this.itemOutHandler);
        this.accordion.itemOutEvent.subscribe(callback2);   
        var callback3 = TECHTRIBE.Delegate.create(this, this.itemClickedHandler);
        this.accordion.itemClickedEvent.subscribe(callback3);           
    },
    
    createAccordion: function(){
        for(var i=0;i<this.resultItems.length;i++)
        {
            var resultItem = this.resultItems[i];
            var button = YAHOO.util.Dom.getElementsByClassName("resultTitle", "DIV", resultItem)[0];
            var sqeezer = YAHOO.util.Dom.getElementsByClassName("resultSqeezer", "DIV", resultItem)[0];
            var content = YAHOO.util.Dom.getElementsByClassName("resultContainer", "DIV", sqeezer)[0];
            this.accordion.addItem(button, sqeezer, content, resultItem);
            var faqBottom = YAHOO.util.Dom.getFirstChild(YAHOO.util.Dom.getElementsByClassName("faqBottom", "DIV", resultItem)[0]);                 
            YAHOO.util.Dom.removeClass(faqBottom, "openAnswer");
            YAHOO.util.Dom.addClass(faqBottom, "closeAnswer");
        }
    },
    
    itemOverHandler: function(event, id){
        if(this.accordion.selectedID != id){
            var faqItem = this.accordion.getItem(id);
            var container = faqItem.container;
            var faqQuestion = YAHOO.util.Dom.getElementsByClassName("faqQuestion", "DIV", container)[0];
            YAHOO.util.Dom.setStyle(faqQuestion, "color", "#c54549");
        }
    },
        
    itemOutHandler: function(event, id){
        if(this.accordion.selectedID != id){
            var faqItem = this.accordion.getItem(id);
            var container = faqItem.container;
            var faqQuestion = YAHOO.util.Dom.getElementsByClassName("faqQuestion", "DIV", container)[0];
            YAHOO.util.Dom.setStyle(faqQuestion, "color", "#000000");
            
        }
    },
    
    itemClickedHandler: function(event, ids){
        if(ids[1] > -1){
            this.enableItem(ids[1]);
        }
        this.disableItem(ids[0]);
    },
    
    enableItem: function(id){       
        var faqItem = this.accordion.getItem(id);
        var container = faqItem.container;      
        var faqQuestion = YAHOO.util.Dom.getElementsByClassName("faqQuestion", "DIV", container)[0];
        YAHOO.util.Dom.setStyle(faqQuestion, "color", "#c54549");
        var faqBottom = YAHOO.util.Dom.getFirstChild(YAHOO.util.Dom.getElementsByClassName("faqBottom", "DIV", container)[0]);  
        if(YAHOO.util.Dom.hasClass(faqBottom, "closeAnswer")){
            YAHOO.util.Dom.removeClass(faqBottom, "closeAnswer");
        }
        if(!YAHOO.util.Dom.hasClass(faqBottom, "openAnswer")){
            YAHOO.util.Dom.addClass(faqBottom, "openAnswer");
        }   
        YAHOO.util.Dom.setStyle(faqBottom, "backgroundColor", "#E5A7AC");
    },
    
    disableItem: function(id){
        var faqItem = this.accordion.getItem(id);
        var container = faqItem.container;
        var faqQuestion = YAHOO.util.Dom.getElementsByClassName("faqQuestion", "DIV", container)[0];
        YAHOO.util.Dom.setStyle(faqQuestion, "color", "#000000");
        var faqBottom = YAHOO.util.Dom.getFirstChild(YAHOO.util.Dom.getElementsByClassName("faqBottom", "DIV", container)[0]);
        if(YAHOO.util.Dom.hasClass(faqBottom, "openAnswer")){
            YAHOO.util.Dom.removeClass(faqBottom, "openAnswer");
        }
        if(!YAHOO.util.Dom.hasClass(faqBottom, "closeAnswer")){
            YAHOO.util.Dom.addClass(faqBottom, "closeAnswer");
        }           

        YAHOO.util.Dom.setStyle(faqBottom, "backgroundColor", "#939496");
    }
}
ACHMEA.components.FAQAccordionCom = FAQAccordionCom;



/* 
 *** ACHMEA.components.SideAccordionCom ***
 */
var SideAccordionCom = function(componentController, container){
    this.componentController = componentController;
    this.container = container;
    this.init();
}

SideAccordionCom.prototype =
{
    CLASS_OPEN: "openAnswer",
    CLASS_CLOSED: "closeAnswer",
    componentController: null,
    accordion: null,
    container: null,
    mainModel: null,
    resultItems: null,
    
    init: function(){
        this.mainModel = ACHMEA.model.MainModel.getInstance();
        this.accordion = new ACHMEA.view.ui.Accordion();
        this.setElements();     
        this.createAccordion();
        this.setEvents();
        this.componentController.componentLoaded();
    },
    
    setElements: function(){
        this.resultItems = YAHOO.util.Dom.getElementsByClassName("resultItem", "DIV", this.container);
    },
    
    setEvents: function(){
        var callback1 = TECHTRIBE.Delegate.create(this, this.itemOverHandler);
        this.accordion.itemOverEvent.subscribe(callback1);
        var callback2 = TECHTRIBE.Delegate.create(this, this.itemOutHandler);
        this.accordion.itemOutEvent.subscribe(callback2);   
        var callback3 = TECHTRIBE.Delegate.create(this, this.itemClickedHandler);
        this.accordion.itemClickedEvent.subscribe(callback3);           
    },
    
    createAccordion: function(){
        for(var i=0;i<this.resultItems.length;i++)
        {
            var resultItem = this.resultItems[i];
            var button = YAHOO.util.Dom.getElementsByClassName("resultTitle", "DIV", resultItem)[0];
            var sqeezer = YAHOO.util.Dom.getElementsByClassName("resultSqeezer", "DIV", resultItem)[0];
            var content = YAHOO.util.Dom.getElementsByClassName("resultContainer", "DIV", sqeezer)[0];
            this.accordion.addItem(button, sqeezer, content, resultItem);
        }
    },
    
    itemOverHandler: function(event, id){
        if(this.accordion.selectedID != id){
            var sideItem = this.accordion.getItem(id);
            var button = sideItem.button;           
            YAHOO.util.Dom.setStyle(button, "backgroundColor", "#e4a7ac");
            YAHOO.util.Dom.setStyle(button, "backgroundImage", "/achmea/images/btn_closed.gif");
        }
    },
        
    itemOutHandler: function(event, id){
        if(this.accordion.selectedID != id){
            var sideItem = this.accordion.getItem(id);
            var button = sideItem.button;           
            YAHOO.util.Dom.setStyle(button, "backgroundColor", "#a8a9ad");
            YAHOO.util.Dom.setStyle(button, "backgroundImage", "/achmea/images/btn_closed.gif");
        }
    },
    
    itemClickedHandler: function(event, ids){
        if(ids[1] > -1){
            this.enableItem(ids[1]);
        }
        this.disableItem(ids[0]);
    },
    
    enableItem: function(id){       
        var sideItem = this.accordion.getItem(id);
        var button = sideItem.button;           
        YAHOO.util.Dom.setStyle(button, "background", "#e4a7ac url('/achmea/images/btn_open.gif') right bottom no-repeat");
    },
    
    disableItem: function(id){
        var sideItem = this.accordion.getItem(id);
        var button = sideItem.button;           
        YAHOO.util.Dom.setStyle(button, "background", "#a8a9ad url('/achmea/images/btn_closed.gif') right bottom no-repeat");
    }
}
ACHMEA.components.SideAccordionCom = SideAccordionCom;

// js/events/AchmeaEvents.js
/*
 * Copyright (c) 2008, Techtribe B.V.
 * Url: http://www.techtribe.nl
 * Author: Remon de Boer
 * 
 * ACHMEA.events.CommonEvents
 */
function CommonEvents() {
	this.init();
}

CommonEvents.prototype =
{
	//Events
	appLoadCompleteEvent: null,
	basicDataReceivedEvent: null,
	stateChangeEvent: null,
	refreshContentEvent: null,
	contentLoadCompleteEvent: null,
	componentsCompleteEvent: null,
	gateClosedEvent: null,
	categorieChangeEvent: null,
	fadeInContentEvent: null,
	fadeOutContentEvent: null,

	init: function(){
		this.appLoadCompleteEvent = new YAHOO.util.CustomEvent("appLoadCompleteEvent");
		this.basicDataReceivedEvent = new YAHOO.util.CustomEvent("mainDataReceivedEvent");
		this.stateChangeEvent = new YAHOO.util.CustomEvent("stateChangeEvent");
		this.refreshContentEvent = new YAHOO.util.CustomEvent("refreshContentEvent");
		this.contentLoadCompleteEvent = new YAHOO.util.CustomEvent("contentLoadCompleteEvent");
		this.componentsCompleteEvent = new YAHOO.util.CustomEvent("componentsCompleteEvent");
		this.gateClosedEvent = new YAHOO.util.CustomEvent("gateClosedEvent");
		this.categorieChangeEvent = new YAHOO.util.CustomEvent("categorieChangeEvent");
		this.fadeInContentEvent = new YAHOO.util.CustomEvent("fadeInContent");
		this.fadeOutContentEvent = new YAHOO.util.CustomEvent("fadeOutContent");
	},

	//CommonEvents instance
	instance: null
}

CommonEvents.getInstance = function(){
    if(this.instance == null) {
        this.instance = new CommonEvents();
    }
	try{
		return this.instance;		
	} finally {
        obj = null;
    }
}
ACHMEA.events.CommonEvents = CommonEvents;
// js/vo/AchmeaVO.js
/*
 * Copyright (c) 2008, Techtribe B.V.
 * Url: http://www.techtribe.nl
 * Author: Remon de Boer
 * 
 * ACHMEA.vo.MainNavItemVO
 */
var MainNavItemVO = function(id, linkID, parentID, mainNavItem) {
	this.id = id;	
	this.linkID = linkID;
	this.parentID = parentID;
	this.mainNavItem = mainNavItem;
	this.init();
}

MainNavItemVO.prototype =
{
	id: null,	
	linkID: null,
	parentID: null,
	mainNavItem: null,
	childrenNavItems: null,
	
	init: function(){
		this.childrenNavItems = new Array();
	},
	
	setChildNavItem: function(mainNavItemVO){		
		this.childrenNavItems.push(mainNavItemVO);
	},
	
	getChildNavItems: function(){
		return this.childrenNavItems;
	}
	
}	
ACHMEA.vo.MainNavItemVO = MainNavItemVO;



/*
 *** ACHMEA.vo.ThemeNavCollectionVO ***
 */
var ThemeNavCollectionVO = function() {
	this.init();
}

ThemeNavCollectionVO.prototype =
{
	header: null,
	themeNavItems: null,
	footer: null,
	
	init: function(){
		this.themeNavItems = new Array();
	},
	
	addThemeNavItem: function(themeNavItem){		
		this.themeNavItems.push(themeNavItem);
	}
}	
ACHMEA.vo.ThemeNavCollectionVO = ThemeNavCollectionVO;



/*
 *** ACHMEA.vo.MoodPixVO ***
 */
var MoodPixVO = function(topImgSrc, tapeImgSrc, bottomImgSrc, frummelImgSrc){
	this.topImgSrc = topImgSrc;
	this.tapeImgSrc = tapeImgSrc;
	this.bottomImgSrc = bottomImgSrc;
	this.frummelImgSrc = frummelImgSrc;
}

MoodPixVO.prototype =
{
	top: null,
	tape: null,
	bottom: null,
	frummel: null,
	
	topImgSrc: null,
	tapeImgSrc: null,
	bottomImgSrc: null,
	frummelImgSrc: null
}	
ACHMEA.vo.MoodPixVO = MoodPixVO;
