/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.6.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,air:0};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];}}A=B.match(/AdobeAIR\/([^\s]*)/);if(A){C.air=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||{};(function(){var A=YAHOO.lang,C=["toString","valueOf"],B={isArray:function(D){if(D){return A.isNumber(D.length)&&A.isFunction(D.splice);}return false;},isBoolean:function(D){return typeof D==="boolean";},isFunction:function(D){return typeof D==="function";},isNull:function(D){return D===null;},isNumber:function(D){return typeof D==="number"&&isFinite(D);},isObject:function(D){return(D&&(typeof D==="object"||A.isFunction(D)))||false;},isString:function(D){return typeof D==="string";},isUndefined:function(D){return typeof D==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(F,E){for(var D=0;D<C.length;D=D+1){var H=C[D],G=E[H];if(A.isFunction(G)&&G!=Object.prototype[H]){F[H]=G;}}}:function(){},extend:function(H,I,G){if(!I||!H){throw new Error("extend failed, please check that "+"all dependencies are included.");}var E=function(){};E.prototype=I.prototype;H.prototype=new E();H.prototype.constructor=H;H.superclass=I.prototype;if(I.prototype.constructor==Object.prototype.constructor){I.prototype.constructor=I;}if(G){for(var D in G){if(A.hasOwnProperty(G,D)){H.prototype[D]=G[D];}}A._IEEnumFix(H.prototype,G);}},augmentObject:function(H,G){if(!G||!H){throw new Error("Absorb failed, verify dependencies.");}var D=arguments,F,I,E=D[2];if(E&&E!==true){for(F=2;F<D.length;F=F+1){H[D[F]]=G[D[F]];}}else{for(I in G){if(E||!(I in H)){H[I]=G[I];}}A._IEEnumFix(H,G);}},augmentProto:function(G,F){if(!F||!G){throw new Error("Augment failed, verify dependencies.");}var D=[G.prototype,F.prototype];for(var E=2;E<arguments.length;E=E+1){D.push(arguments[E]);}A.augmentObject.apply(this,D);},dump:function(D,I){var F,H,K=[],L="{...}",E="f(){...}",J=", ",G=" => ";if(!A.isObject(D)){return D+"";}else{if(D instanceof Date||("nodeType" in D&&"tagName" in D)){return D;}else{if(A.isFunction(D)){return E;}}}I=(A.isNumber(I))?I:3;if(A.isArray(D)){K.push("[");for(F=0,H=D.length;F<H;F=F+1){if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}if(K.length>1){K.pop();}K.push("]");}else{K.push("{");for(F in D){if(A.hasOwnProperty(D,F)){K.push(F+G);if(A.isObject(D[F])){K.push((I>0)?A.dump(D[F],I-1):L);}else{K.push(D[F]);}K.push(J);}}if(K.length>1){K.pop();}K.push("}");}return K.join("");},substitute:function(S,E,L){var I,H,G,O,P,R,N=[],F,J="dump",M=" ",D="{",Q="}";for(;;){I=S.lastIndexOf(D);if(I<0){break;}H=S.indexOf(Q,I);if(I+1>=H){break;}F=S.substring(I+1,H);O=F;R=null;G=O.indexOf(M);if(G>-1){R=O.substring(G+1);O=O.substring(0,G);}P=E[O];if(L){P=L(O,P,R);}if(A.isObject(P)){if(A.isArray(P)){P=A.dump(P,parseInt(R,10));}else{R=R||"";var K=R.indexOf(J);if(K>-1){R=R.substring(4);}if(P.toString===Object.prototype.toString||K>-1){P=A.dump(P,parseInt(R,10));}else{P=P.toString();}}}else{if(!A.isString(P)&&!A.isNumber(P)){P="~-"+N.length+"-~";N[N.length]=F;}}S=S.substring(0,I)+P+S.substring(H+1);}for(I=N.length-1;I>=0;I=I-1){S=S.replace(new RegExp("~-"+I+"-~"),"{"+N[I]+"}","g");}return S;},trim:function(D){try{return D.replace(/^\s+|\s+$/g,"");}catch(E){return D;}},merge:function(){var G={},E=arguments;for(var F=0,D=E.length;F<D;F=F+1){A.augmentObject(G,E[F],true);}return G;},later:function(K,E,L,G,H){K=K||0;E=E||{};var F=L,J=G,I,D;if(A.isString(L)){F=E[L];}if(!F){throw new TypeError("method undefined");}if(!A.isArray(J)){J=[G];}I=function(){F.apply(E,J);};D=(H)?setInterval(I,K):setTimeout(I,K);return{interval:H,cancel:function(){if(this.interval){clearInterval(D);}else{clearTimeout(D);}}};},isValue:function(D){return(A.isObject(D)||A.isString(D)||A.isNumber(D)||A.isBoolean(D));}};A.hasOwnProperty=(Object.prototype.hasOwnProperty)?function(D,E){return D&&D.hasOwnProperty(E);}:function(D,E){return !A.isUndefined(D[E])&&D.constructor.prototype[E]!==D[E];};B.augmentObject(A,B,true);YAHOO.util.Lang=A;A.augment=A.augmentProto;YAHOO.augment=A.augmentProto;YAHOO.extend=A.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.6.0",build:"1321"});(function(){var B=YAHOO.util,F=YAHOO.lang,L,J,K={},G={},N=window.document;YAHOO.env._id_counter=YAHOO.env._id_counter||0;var C=YAHOO.env.ua.opera,M=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,H=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i,OP_SCROLL:/^(?:inline|table-row)$/i};var O=function(Q){if(!E.HYPHEN.test(Q)){return Q;}if(K[Q]){return K[Q];}var R=Q;while(E.HYPHEN.exec(R)){R=R.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}K[Q]=R;return R;};var P=function(R){var Q=G[R];if(!Q){Q=new RegExp("(?:^|\\s+)"+R+"(?:\\s+|$)");G[R]=Q;}return Q;};if(N.defaultView&&N.defaultView.getComputedStyle){L=function(Q,T){var S=null;if(T=="float"){T="cssFloat";}var R=Q.ownerDocument.defaultView.getComputedStyle(Q,"");if(R){S=R[O(T)];}return Q.style[T]||S;};}else{if(N.documentElement.currentStyle&&H){L=function(Q,S){switch(O(S)){case"opacity":var U=100;try{U=Q.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(T){try{U=Q.filters("alpha").opacity;}catch(T){}}return U/100;case"float":S="styleFloat";default:var R=Q.currentStyle?Q.currentStyle[S]:null;return(Q.style[S]||R);}};}else{L=function(Q,R){return Q.style[R];};}}if(H){J=function(Q,R,S){switch(R){case"opacity":if(F.isString(Q.style.filter)){Q.style.filter="alpha(opacity="+S*100+")";if(!Q.currentStyle||!Q.currentStyle.hasLayout){Q.style.zoom=1;}}break;case"float":R="styleFloat";default:Q.style[R]=S;}};}else{J=function(Q,R,S){if(R=="float"){R="cssFloat";}Q.style[R]=S;};}var D=function(Q,R){return Q&&Q.nodeType==1&&(!R||R(Q));};YAHOO.util.Dom={get:function(S){if(S){if(S.nodeType||S.item){return S;}if(typeof S==="string"){return N.getElementById(S);}if("length" in S){var T=[];for(var R=0,Q=S.length;R<Q;++R){T[T.length]=B.Dom.get(S[R]);}return T;}return S;}return null;},getStyle:function(Q,S){S=O(S);var R=function(T){return L(T,S);};return B.Dom.batch(Q,R,B.Dom,true);},setStyle:function(Q,S,T){S=O(S);var R=function(U){J(U,S,T);};B.Dom.batch(Q,R,B.Dom,true);},getXY:function(Q){var R=function(S){if((S.parentNode===null||S.offsetParent===null||this.getStyle(S,"display")=="none")&&S!=S.ownerDocument.body){return false;}return I(S);};return B.Dom.batch(Q,R,B.Dom,true);},getX:function(Q){var R=function(S){return B.Dom.getXY(S)[0];};return B.Dom.batch(Q,R,B.Dom,true);},getY:function(Q){var R=function(S){return B.Dom.getXY(S)[1];};return B.Dom.batch(Q,R,B.Dom,true);},setXY:function(Q,T,S){var R=function(W){var V=this.getStyle(W,"position");if(V=="static"){this.setStyle(W,"position","relative");V="relative";}var Y=this.getXY(W);if(Y===false){return false;}var X=[parseInt(this.getStyle(W,"left"),10),parseInt(this.getStyle(W,"top"),10)];if(isNaN(X[0])){X[0]=(V=="relative")?0:W.offsetLeft;}if(isNaN(X[1])){X[1]=(V=="relative")?0:W.offsetTop;}if(T[0]!==null){W.style.left=T[0]-Y[0]+X[0]+"px";}if(T[1]!==null){W.style.top=T[1]-Y[1]+X[1]+"px";}if(!S){var U=this.getXY(W);if((T[0]!==null&&U[0]!=T[0])||(T[1]!==null&&U[1]!=T[1])){this.setXY(W,T,true);}}};B.Dom.batch(Q,R,B.Dom,true);},setX:function(R,Q){B.Dom.setXY(R,[Q,null]);},setY:function(Q,R){B.Dom.setXY(Q,[null,R]);},getRegion:function(Q){var R=function(S){if((S.parentNode===null||S.offsetParent===null||this.getStyle(S,"display")=="none")&&S!=S.ownerDocument.body){return false;}var T=B.Region.getRegion(S);return T;};return B.Dom.batch(Q,R,B.Dom,true);},getClientWidth:function(){return B.Dom.getViewportWidth();},getClientHeight:function(){return B.Dom.getViewportHeight();},getElementsByClassName:function(U,Y,V,W){U=F.trim(U);Y=Y||"*";V=(V)?B.Dom.get(V):null||N;if(!V){return[];}var R=[],Q=V.getElementsByTagName(Y),X=P(U);for(var S=0,T=Q.length;S<T;++S){if(X.test(Q[S].className)){R[R.length]=Q[S];if(W){W.call(Q[S],Q[S]);}}}return R;},hasClass:function(S,R){var Q=P(R);var T=function(U){return Q.test(U.className);};return B.Dom.batch(S,T,B.Dom,true);},addClass:function(R,Q){var S=function(T){if(this.hasClass(T,Q)){return false;}T.className=F.trim([T.className,Q].join(" "));return true;};return B.Dom.batch(R,S,B.Dom,true);},removeClass:function(S,R){var Q=P(R);var T=function(W){var V=false,X=W.className;if(R&&X&&this.hasClass(W,R)){W.className=X.replace(Q," ");if(this.hasClass(W,R)){this.removeClass(W,R);}W.className=F.trim(W.className);if(W.className===""){var U=(W.hasAttribute)?"class":"className";W.removeAttribute(U);}V=true;}return V;};return B.Dom.batch(S,T,B.Dom,true);},replaceClass:function(T,R,Q){if(!Q||R===Q){return false;}var S=P(R);var U=function(V){if(!this.hasClass(V,R)){this.addClass(V,Q);return true;}V.className=V.className.replace(S," "+Q+" ");if(this.hasClass(V,R)){this.removeClass(V,R);}V.className=F.trim(V.className);return true;};return B.Dom.batch(T,U,B.Dom,true);},generateId:function(Q,S){S=S||"yui-gen";var R=function(T){if(T&&T.id){return T.id;}var U=S+YAHOO.env._id_counter++;if(T){T.id=U;}return U;};return B.Dom.batch(Q,R,B.Dom,true)||R.apply(B.Dom,arguments);},isAncestor:function(R,S){R=B.Dom.get(R);S=B.Dom.get(S);var Q=false;if((R&&S)&&(R.nodeType&&S.nodeType)){if(R.contains&&R!==S){Q=R.contains(S);}else{if(R.compareDocumentPosition){Q=!!(R.compareDocumentPosition(S)&16);}}}else{}return Q;},inDocument:function(Q){return this.isAncestor(N.documentElement,Q);},getElementsBy:function(X,R,S,U){R=R||"*";S=(S)?B.Dom.get(S):null||N;if(!S){return[];}var T=[],W=S.getElementsByTagName(R);for(var V=0,Q=W.length;V<Q;++V){if(X(W[V])){T[T.length]=W[V];if(U){U(W[V]);}}}return T;},batch:function(U,X,W,S){U=(U&&(U.tagName||U.item))?U:B.Dom.get(U);if(!U||!X){return false;}var T=(S)?W:window;if(U.tagName||U.length===undefined){return X.call(T,U,W);}var V=[];for(var R=0,Q=U.length;R<Q;++R){V[V.length]=X.call(T,U[R],W);}return V;},getDocumentHeight:function(){var R=(N.compatMode!="CSS1Compat")?N.body.scrollHeight:N.documentElement.scrollHeight;var Q=Math.max(R,B.Dom.getViewportHeight());return Q;},getDocumentWidth:function(){var R=(N.compatMode!="CSS1Compat")?N.body.scrollWidth:N.documentElement.scrollWidth;var Q=Math.max(R,B.Dom.getViewportWidth());return Q;},getViewportHeight:function(){var Q=self.innerHeight;
var R=N.compatMode;if((R||H)&&!C){Q=(R=="CSS1Compat")?N.documentElement.clientHeight:N.body.clientHeight;}return Q;},getViewportWidth:function(){var Q=self.innerWidth;var R=N.compatMode;if(R||H){Q=(R=="CSS1Compat")?N.documentElement.clientWidth:N.body.clientWidth;}return Q;},getAncestorBy:function(Q,R){while((Q=Q.parentNode)){if(D(Q,R)){return Q;}}return null;},getAncestorByClassName:function(R,Q){R=B.Dom.get(R);if(!R){return null;}var S=function(T){return B.Dom.hasClass(T,Q);};return B.Dom.getAncestorBy(R,S);},getAncestorByTagName:function(R,Q){R=B.Dom.get(R);if(!R){return null;}var S=function(T){return T.tagName&&T.tagName.toUpperCase()==Q.toUpperCase();};return B.Dom.getAncestorBy(R,S);},getPreviousSiblingBy:function(Q,R){while(Q){Q=Q.previousSibling;if(D(Q,R)){return Q;}}return null;},getPreviousSibling:function(Q){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getPreviousSiblingBy(Q);},getNextSiblingBy:function(Q,R){while(Q){Q=Q.nextSibling;if(D(Q,R)){return Q;}}return null;},getNextSibling:function(Q){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getNextSiblingBy(Q);},getFirstChildBy:function(Q,S){var R=(D(Q.firstChild,S))?Q.firstChild:null;return R||B.Dom.getNextSiblingBy(Q.firstChild,S);},getFirstChild:function(Q,R){Q=B.Dom.get(Q);if(!Q){return null;}return B.Dom.getFirstChildBy(Q);},getLastChildBy:function(Q,S){if(!Q){return null;}var R=(D(Q.lastChild,S))?Q.lastChild:null;return R||B.Dom.getPreviousSiblingBy(Q.lastChild,S);},getLastChild:function(Q){Q=B.Dom.get(Q);return B.Dom.getLastChildBy(Q);},getChildrenBy:function(R,T){var S=B.Dom.getFirstChildBy(R,T);var Q=S?[S]:[];B.Dom.getNextSiblingBy(S,function(U){if(!T||T(U)){Q[Q.length]=U;}return false;});return Q;},getChildren:function(Q){Q=B.Dom.get(Q);if(!Q){}return B.Dom.getChildrenBy(Q);},getDocumentScrollLeft:function(Q){Q=Q||N;return Math.max(Q.documentElement.scrollLeft,Q.body.scrollLeft);},getDocumentScrollTop:function(Q){Q=Q||N;return Math.max(Q.documentElement.scrollTop,Q.body.scrollTop);},insertBefore:function(R,Q){R=B.Dom.get(R);Q=B.Dom.get(Q);if(!R||!Q||!Q.parentNode){return null;}return Q.parentNode.insertBefore(R,Q);},insertAfter:function(R,Q){R=B.Dom.get(R);Q=B.Dom.get(Q);if(!R||!Q||!Q.parentNode){return null;}if(Q.nextSibling){return Q.parentNode.insertBefore(R,Q.nextSibling);}else{return Q.parentNode.appendChild(R);}},getClientRegion:function(){var S=B.Dom.getDocumentScrollTop(),R=B.Dom.getDocumentScrollLeft(),T=B.Dom.getViewportWidth()+R,Q=B.Dom.getViewportHeight()+S;return new B.Region(S,T,Q,R);}};var I=function(){if(N.documentElement.getBoundingClientRect){return function(S){var T=S.getBoundingClientRect(),R=Math.round;var Q=S.ownerDocument;return[R(T.left+B.Dom.getDocumentScrollLeft(Q)),R(T.top+B.Dom.getDocumentScrollTop(Q))];};}else{return function(S){var T=[S.offsetLeft,S.offsetTop];var R=S.offsetParent;var Q=(M&&B.Dom.getStyle(S,"position")=="absolute"&&S.offsetParent==S.ownerDocument.body);if(R!=S){while(R){T[0]+=R.offsetLeft;T[1]+=R.offsetTop;if(!Q&&M&&B.Dom.getStyle(R,"position")=="absolute"){Q=true;}R=R.offsetParent;}}if(Q){T[0]-=S.ownerDocument.body.offsetLeft;T[1]-=S.ownerDocument.body.offsetTop;}R=S.parentNode;while(R.tagName&&!E.ROOT_TAG.test(R.tagName)){if(R.scrollTop||R.scrollLeft){T[0]-=R.scrollLeft;T[1]-=R.scrollTop;}R=R.parentNode;}return T;};}}();})();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.6.0",build:"1321"});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(){this.lastError=null;var K=[],E=this.subscribers.length;if(!E&&this.silent){return true;}var I=[].slice.call(arguments,0),G=true,D,J=false;if(!this.silent){}var C=this.subscribers.slice(),A=YAHOO.util.Event.throwErrors;for(D=0;D<E;++D){var M=C[D];if(!M){J=true;}else{if(!this.silent){}var L=M.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var B=null;if(I.length>0){B=I[0];}try{G=M.fn.call(L,B,M.obj);}catch(F){this.lastError=F;if(A){throw F;}}}else{try{G=M.fn.call(L,this.type,I,M.obj);}catch(H){this.lastError=H;if(A){throw H;}}}if(false===G){if(!this.silent){}break;}}}return(G!==false);},unsubscribeAll:function(){for(var A=this.subscribers.length-1;A>-1;A--){this._delete(A);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},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};var K=YAHOO.env.ua.ie?"focusin":"focus";var L=YAHOO.env.ua.ie?"focusout":"blur";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,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){var M=this;var N=function(){M._tryPreloadAttach();};this._interval=setInterval(N,this.POLL_INTERVAL);}},onAvailable:function(R,O,S,Q,P){var M=(YAHOO.lang.isString(R))?[R]:R;for(var N=0;N<M.length;N=N+1){F.push({id:M[N],fn:O,obj:S,override:Q,checkReady:P});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(O,M,P,N){this.onAvailable(O,M,P,N,true);},onDOMReady:function(M,O,N){if(this.DOMReady){setTimeout(function(){var P=window;if(N){if(N===true){P=O;}else{P=N;}}M.call(P,"DOMReady",[],O);},0);}else{this.DOMReadyEvent.subscribe(M,O,N);}},_addListener:function(O,M,X,S,N,a){if(!X||!X.call){return false;}if(this._isValidCollection(O)){var Y=true;for(var T=0,V=O.length;T<V;++T){Y=this._addListener(O[T],M,X,S,N,a)&&Y;}return Y;}else{if(YAHOO.lang.isString(O)){var R=this.getEl(O);if(R){O=R;}else{this.onAvailable(O,function(){YAHOO.util.Event._addListener(O,M,X,S,N,a);});return true;}}}if(!O){return false;}if("unload"==M&&S!==this){J[J.length]=[O,M,X,S,N,a];return true;}var b=O;if(N){if(N===true){b=S;}else{b=N;}}var P=function(c){return X.call(b,YAHOO.util.Event.getEvent(c,O),S);};var Z=[O,M,X,P,b,S,N,a];var U=I.length;I[U]=Z;if(this.useLegacyEvent(O,M)){var Q=this.getLegacyIndex(O,M);if(Q==-1||O!=G[Q][0]){Q=G.length;B[O.id+M]=Q;G[Q]=[O,M,O["on"+M]];E[Q]=[];O["on"+M]=function(c){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(c),Q);};}E[Q].push(Z);}else{try{this._simpleAdd(O,M,P,a);}catch(W){this.lastError=W;this._removeListener(O,M,X,a);return false;}}return true;},addListener:function(O,Q,N,P,M){return this._addListener(O,Q,N,P,M,false);},addFocusListener:function(O,N,P,M){return this._addListener(O,K,N,P,M,true);},removeFocusListener:function(N,M){return this._removeListener(N,K,M,true);},addBlurListener:function(O,N,P,M){return this._addListener(O,L,N,P,M,true);},removeBlurListener:function(N,M){return this._removeListener(N,L,M,true);},fireLegacyEvent:function(Q,O){var S=true,M,U,T,V,R;U=E[O].slice();for(var N=0,P=U.length;N<P;++N){T=U[N];if(T&&T[this.WFN]){V=T[this.ADJ_SCOPE];R=T[this.WFN].call(V,Q);S=(S&&R);}}M=G[O];if(M&&M[2]){M[2](Q);}return S;},getLegacyIndex:function(N,O){var M=this.generateId(N)+O;if(typeof B[M]=="undefined"){return -1;}else{return B[M];}},useLegacyEvent:function(M,N){return(this.webkit&&this.webkit<419&&("click"==N||"dblclick"==N));},_removeListener:function(N,M,V,Y){var Q,T,X;if(typeof N=="string"){N=this.getEl(N);}else{if(this._isValidCollection(N)){var W=true;for(Q=N.length-1;Q>-1;Q--){W=(this._removeListener(N[Q],M,V,Y)&&W);}return W;}}if(!V||!V.call){return this.purgeElement(N,false,M);}if("unload"==M){for(Q=J.length-1;Q>-1;Q--){X=J[Q];if(X&&X[0]==N&&X[1]==M&&X[2]==V){J.splice(Q,1);return true;}}return false;}var R=null;var S=arguments[4];if("undefined"===typeof S){S=this._getCacheIndex(N,M,V);}if(S>=0){R=I[S];}if(!N||!R){return false;}if(this.useLegacyEvent(N,M)){var P=this.getLegacyIndex(N,M);var O=E[P];if(O){for(Q=0,T=O.length;Q<T;++Q){X=O[Q];if(X&&X[this.EL]==N&&X[this.TYPE]==M&&X[this.FN]==V){O.splice(Q,1);break;}}}}else{try{this._simpleRemove(N,M,R[this.WFN],Y);}catch(U){this.lastError=U;return false;}}delete I[S][this.WFN];delete I[S][this.FN];
I.splice(S,1);return true;},removeListener:function(N,O,M){return this._removeListener(N,O,M,false);},getTarget:function(O,N){var M=O.target||O.srcElement;return this.resolveTextNode(M);},resolveTextNode:function(N){try{if(N&&3==N.nodeType){return N.parentNode;}}catch(M){}return N;},getPageX:function(N){var M=N.pageX;if(!M&&0!==M){M=N.clientX||0;if(this.isIE){M+=this._getScrollLeft();}}return M;},getPageY:function(M){var N=M.pageY;if(!N&&0!==N){N=M.clientY||0;if(this.isIE){N+=this._getScrollTop();}}return N;},getXY:function(M){return[this.getPageX(M),this.getPageY(M)];},getRelatedTarget:function(N){var M=N.relatedTarget;if(!M){if(N.type=="mouseout"){M=N.toElement;}else{if(N.type=="mouseover"){M=N.fromElement;}}}return this.resolveTextNode(M);},getTime:function(O){if(!O.time){var N=new Date().getTime();try{O.time=N;}catch(M){this.lastError=M;return N;}}return O.time;},stopEvent:function(M){this.stopPropagation(M);this.preventDefault(M);},stopPropagation:function(M){if(M.stopPropagation){M.stopPropagation();}else{M.cancelBubble=true;}},preventDefault:function(M){if(M.preventDefault){M.preventDefault();}else{M.returnValue=false;}},getEvent:function(O,M){var N=O||window.event;if(!N){var P=this.getEvent.caller;while(P){N=P.arguments[0];if(N&&Event==N.constructor){break;}P=P.caller;}}return N;},getCharCode:function(N){var M=N.keyCode||N.charCode||0;if(YAHOO.env.ua.webkit&&(M in D)){M=D[M];}return M;},_getCacheIndex:function(Q,R,P){for(var O=0,N=I.length;O<N;O=O+1){var M=I[O];if(M&&M[this.FN]==P&&M[this.EL]==Q&&M[this.TYPE]==R){return O;}}return -1;},generateId:function(M){var N=M.id;if(!N){N="yuievtautoid-"+A;++A;M.id=N;}return N;},_isValidCollection:function(N){try{return(N&&typeof N!=="string"&&N.length&&!N.tagName&&!N.alert&&typeof N[0]!=="undefined");}catch(M){return false;}},elCache:{},getEl:function(M){return(typeof M==="string")?document.getElementById(M):M;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(N){if(!H){H=true;var M=YAHOO.util.Event;M._ready();M._tryPreloadAttach();}},_ready:function(N){var M=YAHOO.util.Event;if(!M.DOMReady){M.DOMReady=true;M.DOMReadyEvent.fire();M._simpleRemove(document,"DOMContentLoaded",M._ready);}},_tryPreloadAttach:function(){if(F.length===0){C=0;clearInterval(this._interval);this._interval=null;return ;}if(this.locked){return ;}if(this.isIE){if(!this.DOMReady){this.startInterval();return ;}}this.locked=true;var S=!H;if(!S){S=(C>0&&F.length>0);}var R=[];var T=function(V,W){var U=V;if(W.override){if(W.override===true){U=W.obj;}else{U=W.override;}}W.fn.call(U,W.obj);};var N,M,Q,P,O=[];for(N=0,M=F.length;N<M;N=N+1){Q=F[N];if(Q){P=this.getEl(Q.id);if(P){if(Q.checkReady){if(H||P.nextSibling||!S){O.push(Q);F[N]=null;}}else{T(P,Q);F[N]=null;}}else{R.push(Q);}}}for(N=0,M=O.length;N<M;N=N+1){Q=O[N];T(this.getEl(Q.id),Q);}C--;if(S){for(N=F.length-1;N>-1;N--){Q=F[N];if(!Q||!Q.id){F.splice(N,1);}}this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;},purgeElement:function(Q,R,T){var O=(YAHOO.lang.isString(Q))?this.getEl(Q):Q;var S=this.getListeners(O,T),P,M;if(S){for(P=S.length-1;P>-1;P--){var N=S[P];this._removeListener(O,N.type,N.fn,N.capture);}}if(R&&O&&O.childNodes){for(P=0,M=O.childNodes.length;P<M;++P){this.purgeElement(O.childNodes[P],R,T);}}},getListeners:function(O,M){var R=[],N;if(!M){N=[I,J];}else{if(M==="unload"){N=[J];}else{N=[I];}}var T=(YAHOO.lang.isString(O))?this.getEl(O):O;for(var Q=0;Q<N.length;Q=Q+1){var V=N[Q];if(V){for(var S=0,U=V.length;S<U;++S){var P=V[S];if(P&&P[this.EL]===T&&(!M||M===P[this.TYPE])){R.push({type:P[this.TYPE],fn:P[this.FN],obj:P[this.OBJ],adjust:P[this.OVERRIDE],scope:P[this.ADJ_SCOPE],capture:P[this.CAPTURE],index:S});}}}}return(R.length)?R:null;},_unload:function(S){var M=YAHOO.util.Event,P,O,N,R,Q,T=J.slice();for(P=0,R=J.length;P<R;++P){N=T[P];if(N){var U=window;if(N[M.ADJ_SCOPE]){if(N[M.ADJ_SCOPE]===true){U=N[M.UNLOAD_OBJ];}else{U=N[M.ADJ_SCOPE];}}N[M.FN].call(U,M.getEvent(S,N[M.EL]),N[M.UNLOAD_OBJ]);T[P]=null;N=null;U=null;}}J=null;if(I){for(O=I.length-1;O>-1;O--){N=I[O];if(N){M._removeListener(N[M.EL],N[M.TYPE],N[M.FN],N[M.CAPTURE],O);}}N=null;}G=null;M._simpleRemove(window,"unload",M._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var M=document.documentElement,N=document.body;if(M&&(M.scrollTop||M.scrollLeft)){return[M.scrollTop,M.scrollLeft];}else{if(N){return[N.scrollTop,N.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(O,P,N,M){O.addEventListener(P,N,(M));};}else{if(window.attachEvent){return function(O,P,N,M){O.attachEvent("on"+P,N);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(O,P,N,M){O.removeEventListener(P,N,(M));};}else{if(window.detachEvent){return function(N,O,M){N.detachEvent("on"+O,M);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener;
/* 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);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},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.6.0",build:"1321"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.6.0", build: "1321"});
/* Popular phrases - CONSUMERONLINE - 13:9:49, Wed Sep 23, 2009 */
__SLI_ClientDefaults =
[
    ['ShowBrandingFooter', false ],
    ['DropListMinWidth', 160],
    ['MaxListItems', 10],
    ['Alignment', true],
    ['IE6OnFocus', true]
];var asPhrases=new Array ('vacuum cleaners','broadband speed test','speed test','insurance','lawnmowers','mobile phones','heat pumps','dishwashers','printers','washing machines','digital cameras','ovens','gps','broadband','power switch','gps car navigation','toasters','insulation','camera','beds','irons','travel insurance','bbq','coffee machines','laptops','water blaster','cordless phones','freeview','lawn mowers','car seats','microwave','fridge freezers','internet providers','life insurance','vacuum cleaners tests','slow cookers','trampoline','health insurance','potting mix','speedtest','nappies','scams','bbq\'s','carpet','electricity prices','phone','car insurance','food processor','baby monitor','tv','vaccum cleaners','breadmaker','headphones','sunscreen','juicer','dvd players','iphone','power companies','isp','blender','wall ovens','breadmakers test results','rangehood','mortgage rates','steam mop','refrigerators','laser printers','ride on mowers','coffee grinders','hair straighteners','mowers','compost','chainsaw','dryers','multifunction printers','mp3 players','sewing machines','barbeque','insulation products','microwave ovens','internet','hrv ventilation system','batteries','ventilation systems','vacuum','mp3','broadband plans','mobile phone plans','electricity','power company prices','shavers','ipod','line trimmers','consumer guarantees act','dehumidifier','waterblaster','antivirus software','printers 3 in 1','credit cards','rice cooker','fridge','cordless drills','broadband comparison','powershop','dvd recorders','copyright','hrv','carpet buying','mattress','tv buying guide','cots','kettle','freezer','travel insurance compared','home ventilation systems','smoke alarms','video camera','washing powder','range hoods','travel insurance overseas','water filters','auctions','consumer rights quiz','hdmi cable','television','internet security','carpet cleaning','hot water cylinder','extractor fans','hands free car kit','fair trading act','waste disposal units','laptop computers','treadmills','lcd tv','insurance companies','recalls','potting mix and compost','gas hobs','rest homes','bread maker','mortgage','portable cots','solar hot water heating','cell phones','scanners','electric toothbrush','electric jugs','internet speed test','kiwisaver','dishwasher tests','kiwisaver comparisons','cars','camcorders','prams buggies','dvs','supermarket','power','weed trimmers','light bulbs','steam cleaners','coffee','ladders','hot water heat pump','solar heating','paint','insurance brokers','banks','telephone','interest rates','bikes','solar water heating','external hard drive','shower','electricity suppliers','heaters','induction cooktop','broadband speed','gas water heating','espresso machines','appliance running costs','hair dryers','extended warranties','buggy','mixer','noise cancelling headphones','cooktops','frying pan','speakers','electric shavers','phone and broadband package','knife sharpeners','life expectancy','spa pools','pellet fires','water heating options','televisions plasma and lcd','dentist','clothes dryers','contents insurance','computers','rental cars','firewood','ipod touch','travel cards','scooters','ipod docks','toothbrush','smoke detectors','power prices','laundry powder','drill','pressure cooker','heatpumps','gps devices','bonus bonds','isp providers','warranty','gas','electric blankets','contracts','smeg','underfloor insulation','food mixers','wood burners','lcd','retirement villages','freeview decoder','chest freezers','gas heaters','adsl','stoves','printers laser printer','teeth whitening','wireless router','rechargeable batteries','supermarket price survey','vacuum cleaners 2008','double glazing','bluetooth','vaccuum cleaners','electricity calculator','gas prices','dog food','hobs','computers 2009','parmco','product recalls','ride on lawnmowers','dvs home ventilation system','fax machines','barbeques gas','handsfree car kit','carpet cleaners','juicers test','kitchen renovation','dell','telephone and broadband plan','insulation comparison','lighting','portable dvd players','olive oil','molemap','home theatre systems','house insurance','heat transfer systems','digital camera review','real estate','hot water systems','buying a house','water heating','home phones','sunglasses','overlockers','double ovens','digital slr','freeview receiver','solar panels','house and content insurance','real estate contracts','video camcorders','roofing','spa','knife','kitchen','ceiling insulation','nits','kitchen mixer','computer security','laptops notebooks','insurance quotes','hrv dvs systems','condenser dryer','oven cleaner','magazine index','gas fires','trademe','secateurs','pasta','lpg','hard drive','hand held vacuum cleaners','home theatre','car gps','underfloor heating','baby buggies','hdmi','front loader washing machines','tv tests','garden','camera ratings','stereo','projector','ventilation','router','kayak','pest control','pet insurance','running shoes','alarms','lpg prices','duvet inners','scales','blood pressure monitors','battery drills','trusts','timeshare','solar hot water systems','child car seats','night store heaters','airlines','showerhead','medical insurance','hrv systems','navman','fencing','budget','micro stereo','wireless printers','bathroom','computer monitors','iphone 3g','laundry detergent','phone plans','appliance lifespan','blu ray','bicycles','building inspection pre-purchase','subscription','canon ixus','telephone plans','insurance policies','mortgage interest rates','rest home checklist','warranty rights','baby','compare electricity prices','second hand goods','duvet','steam floor cleaners','funerals','sky','netbook','pinot noir','coffee beans','photocopiers','binoculars','financial advisers','sleeping bags','breathalyser','computer printers','dish washer','speed','cell phone test results','sewing machines reports','energy drinks','toaster tests','hair','window glazing','knives','life insurance calculator','mole map','garden tools','epilators','grill','modem','fireplaces','lcd television','double glazing existing windows','credit card comparison','telecom xt','jugs and kettles','printer scanner copier','freestanding ovens','fish oil capsules','gsm mobile phones','gift vouchers','travel','security alarms','weetbix','gas heating','alarm monitoring','push chairs','panel heaters','humidifier','landline plans','cordless phones with answer phone','solar power','gas water heaters','video editing software','heated towel rail','prams strollers','reversing camera','pet food','pools','vitamins','carpet stains','fan heaters','smartphones','hairdryers','milk','cook tops','wireless broadband','wireless','refunds','parallel import','cleaning','samsung washing machine','bread maker reports','baby capsule','wii','philips','manuka honey','lcd monitors','glucosamine supplements','slr cameras','mercury energy','bank survey','mobile phones xt','washing machine tests','voip','omega 3','supplements','kitchen bench tops','cake mixer','portable hard drive','blue ray players','gym','telemarketing','camera to buy','bottled water','anti virus software','ovens self cleaning','lawn','hair removal','stick blender','benchtops','debit card','mobile plans','home insulation','annual report','earphones','sewing','refund policy','shampoo','cleaners','waste disposal','laptop test results','a3 printers','solar','pillows','fridge-freezers','debt collection','miele','power tools','motor mowers','fryer','bank accounts','glucosamine','telephone landline','credit card rewards','face cream','smart meters','dish drawer','travel money','quiz','ceramic cook tops','vacuum cleaner report','sanders','income protection insurance','energy efficiency','moisturisers','internet speed','digital photo frame','induction','laser hair removal','fair trading act 1986','complaints','electric lawnmowers','wine','mountain bikes','toilet','cat food','double wall ovens','air conditioning units','hands free','samsung','panasonic digital camera','car batteries','bed brands','heating','air foam','mulch','dishwasher detergent','glazing','powerswitch.org.nz','under floor insulation','fish oil','omega 3 fish oil','online auctions','woodburners database','moisturisers for women','plasma tv','broadband test','kenwood mixer','education','ami','appliance life expectancy','digital video cameras','booster seats','dslr camera','dvd','contract period','mortgage brokers','letters','bacon','orthodontics','detergent','convection microwave','hand held gps','circular saw','mobile','term deposits','waste','bathroom heaters','electric chainsaw','tyre tests','diabetes','flowers','32 tv','steam iron','returning goods','hd tv','chainsaw petrol','calculator','telephone providers','pharmacy','webcam','genealogy','side by side fridge freezers','erection','heating cost comparison','hot water','battery life','canopy','ps3','disputes tribunal','luggage','espresso coffee machines','gift cards','software','multivitamins','paint stripper','garage','micro hi-fi','insinkerator','heat transfer kits','gutter guard','water heaters','microwave convection ovens','cfl','reliability','central heating','virus protection','air bed','samsung lcd tv','photo printing','free anti virus','fly spray','chilly bins','scanner tests','growing herbs','kiwisaver providers','prices','fly','handsfree','mini systems','copiers','baby carriers','home phone plans','trees','heat pumps buying advice','towel rail','gas hot water systems','garage doors','motor vehicle consumer laws','slr digital camera','gas heaters tests','antivirus','omega-3 fish oil supplements','electrolux','accountants','energy companies','dyson vacuum cleaners','direct debit','credit contracts and consumer finance act','deadlocks','sunblock','head lice','ipod docking station','mac computers','freeview tv','web hosting','nightstore heaters','delonghi','weight loss','suitcases','isp ratings','separation','glasses','consumer guarantees','potatoes','dehydrator','espresso','baby strollers','appliance life','spice grinder','insulation installers','mobile broadband','lunch box','returns and refunds','conditioner','playstation','harvey norman','freeview satellite','home insurance','product life','condoms','portable bbq','insect','ironing boards','powder','fish oil supplements','supermarket survey','ceramic cooktops','insulation compared','letters that get results','car warranty','electricity providers','dvd hard drive recorder','power usage','data projectors','bankruptcy','warranty period','tents','groceries','vertical freezers','kids bikes','wifi','sunbeds','compare electricity suppliers','neighbours trees','plumbers','soil testing','pedometer','pans','download speed test','cherry tree','natural gas','gps units','electric kettles','mobile phone car kit','virus','alcohol','electric heaters','air conditioners','pest','car tyres','bassinet','chefs knives','navigation systems for cars','home phone and broadband','under bench ovens','water temperature','ducted heating','electric razor','power consumption','garden mix','juice extracters','alarm systems','surge protection','dentists fees','people movers','cellphone plans','log burners','monitor','sony bravia','hot water heating','crock pot','cheapest electricity suppliers','cadbury','portacot','gas vs electricity','flooring','heating options','tomtom','washer dryer combination','universal remote','pots','tooth whitening','instant coffee','instant water heating','notebooks','woodburner test results','lg washing machine','detox','milo','linetrimmers','alcoholic drinks','palm oil','appliance reliability','colour printers','telecom','hands free devices','garden loppers','photo editing software','niagara','saucepans','broadband providers','gps navigation','facial creams','digital prints','camcorder buying guide','bath','fertiliser','exercise bikes','rights','canon cameras','garmin','stain removal','mortgage break fees','lcd plasma tv','noise cancelling earphones','noise cancelling','builders','finance','reasonable life','index','wertheim','boundary disputes','faulty goods','anti virus programs','camera tests','furniture','portable speakers','music downloads','diets','home contents insurance','anti virus','plasma','internet service providers','fax printer','haier','battery chargers','vodafone','my sky','cooking oil','campervan rentals','lg','trustpower','lifespan electronics','outdoor furniture','vaccum','digital camcorders','magazine','energy','electricians','led tv','hand blender','littl juey','watering systems','layby sales act 1971','lcd tv\'s','ipod nano','pyrolytic ovens','complain','furniture removal','heat exchanger ventilation systems','zinwell','electrolytes','cold power','platinum cards','card readers','upright freezers','home gyms','mortgage protection insurance','shoes','electric stoves','voice recorder','hd television','miele vacuum','mens shavers','printer costs','isp comparison','washing','cot mattress','retirement villages checklist','garage door openers','sky tv','broadband speedtest','term deposit interest rates','whirlpool','built-in ovens','auto renew','fuel cards','games','blower vac','boats','leaky home countdown','sewing machine test','electronic waste','classic holidays','firewall','term deposit rates','television sets','cloth nappies','wall heaters','heat pump calculator','water filter jugs','expresso coffee machines','car safety','fuel','camping equipment','computer virus','snoring','fire extinguishers','ride on','oven buying','power of attorney','dialup internet','freezers test','consumer guarantees act 1993','tupperware','mobile phone calculator','laser eye','kitchen appliances','vouchers','roomba','printing costs','chicken','scamwatch','sunscreen lotion','kia','oil heaters','moving companies','investment','xbox 360','rechargeable','saw','bread','mobility scooters','acne','home and contents','tradespeople','swing sets','nikon d90','hand mixers','nz home loans','renovation','trimmer','toll calls','mobile phone buying guide','oven tests','noodles','brother mfc','home ventilation','smartvent','heart rate monitor watch','heat pumps test','microwave test','mobile plan calculator','wireless headphones','stains','brother printer','heat transfer','formula','third party car insurance','internet connection','leather','nintendo','jugs','car service','car rental companies','cables','cross trainer','ceiling installation','appliance energy ratings','kiwi saver','dvs systems','bosch washing machine','fuji','eco friendly','television buying guide','seed mix','video software','tooth brush','hand mower','solar garden lights','selling property','telecommunication companies','gutter','bench top oven','gym membership','toaster oven','westinghouse','reusable nappies','energy suppliers','money back guarantee','shampoo and conditioner','leaf blower','gas califont','phone cards','mortgage insurance','oil column heaters','power bill','suzuki','baby prams','tires','resthomes','samsung tv','g10','family trusts','digital cameras search','induction stove tops','petrol','skype phones','toastie maker','deposit refund','campervans','suzanne chetwin','stress','bed linen','isp\'s','jigsaw','skype','heatpumps compare','towing laws','broadband isp','moisture','apple computers','washing powder concentrates','portable dvd','fundraising','business insurance','hd cables','running costs','ceiling fans','reverse mortgages','property valuation','check personal credit rating','advertised price','building insurance','credit rating','private sale','product reliability','broadband prices','home loan interest rates','building a fence','ducted heat transfer system','internet shopping','sunscreen recall','heater test','grants','medtech','seed raising mix','generic drugs','moss remover','online photos','wastedisposal','creditcards','how to choose a good electric shaver','ankle support','lawn trimmers','extended','organisation confidentially','beauty salons','small digital cameras','trespass','airport express','50 inch','king size bed','builders risk','how much does heating cost per month','ewf1481','consumer-rights quiz','ird','sports water','seed raising','elba','layby sales act','prescription glasses','kitchen benchtops','asko','security software','kitchen knives','reinz','tumble dryers','slingshot','insulation subsidy','nokia 3120','building inspection','front loading washing machine','dslr','phone and broadband','apple','consumer guarantee rights','macbook pro','mitre saw','black and decker','maytag','water','tripod','transonic tv','unsolicited goods','micro systems','weed','memory cards','heat pump water heating','car audio','vectra','on line auctions','blue chip','tenancy','lighting guide','masport','property managers','website hosts','sharp lcd','home phone line','baby cot','game consoles','mulcher','tefal','induction cook top','pasta machine','blackberry','books','pool fencing','simpson','camping','protein','irobot','multifunction','contractual remedies act','contact lenses','nissan maxima','acne treatments','nilfisk','bank fees','camp cookers','oven range','funeral insurance','cherry tree consumer club','phone providers','rental cars nz','enviromower','sheets','curtains','screen','iphone 3gs','photo editing','samsung mobile phones','bje410','light bulb test','hire purchase','mortgage calculator','top load washing machine','telephone answering machines','heat pump size','epson printer','nitestore heaters','blower','best isp','washing lines','health','dsl','foodtown','black and decker alligator','tv with dvd','slugs and snails','popcorn','home inspection','june 2006','rental insurance','mosquito','internet slowness','international travel','best credit cards','motels','mole','linksys','bench top convection oven','common scams','power inverter','cordless line trimmers','rewards','xt','red wine','wireless modem','underfloor heating costs','compression','capsules','electric knives','backpacks','toyota','online shopping','pasta maker','sandwich press','answer phones','bonds','nova','aged care','fake','ride-on mowers','natural sunscreen','chain saws','what is a common scam','rights quiz','leaky homes','gas hot water','condensation control','blu-ray','how long should it last','ixus','free reports','floor insulation','califont','printer reliability','colour laser printer','foreign currency','patio heaters','food prices','oven reliability','3g','self tanning lotions','quizzes','fax','lice','toyota hilux','drop saw','ceramic heaters','hand vacuum','acai berry','phil and teds','cereal','reel mowers','bagless vacuum cleaners','loan sharks','car leasing','massage','safes','bnz','bluray','computer buying guide','swimming pools','tramping','optometrist','aa batteries','property','electric drills','web cam','processor','psp','carpet types','gsm mobile','security doors','roof cleaning','juice fountain','cholesterol','promotion code','dvd camera','how far can headlice jump to another person','website design','lounge','cork tiles','download','house auction buying','rice crackers','gps test','heat grill','v energy drink','motor vehicle sales act','broadband options','children sunscreen','concentrate','vaccuum','infant formula','security suite','solar energy','alligator','virus software','sue chetwin','wyndham','health grill','enableme','house inspection','wet and dry vacuum','return of goods for refund','benchtop ovens','bagless vacum cleaners','interest','dental','voip phone','bathroom extractor fans','unsolicited goods act','car hire','tax refund','power saving','courier','photo printers','eczema','panasonic viera','phones overseas','painters','electric lawn mowers','lumix','jura','internet filter','booster','sink','rat poison','business collapses','portable heat pump','chips','health insurance companies','water purifiers','loyalty programmes','small cars','medical alarms','shower mixers','repossession','small tv','water cylinders','under floor heating','raboplus','phone companies','dvd region codes','led lights','after sales service','multifunction ladder','child seat','mfc','champagne','fencing law','i-phone','hdd recorder','takeaways','benchtop blender','electric towel rails','home renovation','telecom broadband','magimix','contract law','water blasting','insurance premiums','gas hot water heating','babu','peugeot','sis','tauranga','hot water heaters','transit insurance','best lcd tv','telephone line rental','hotel','internet radio','kebabs','edge trimmers','easy cook oven','shoes warranty','body wash','pest repellent','hooded bbq','environmental','touch screen mobile phone','canon a2000','energy per household','lighters','antibiotics','poor service','msz-ge50va','virus scanners','stick mixer','outdoor cleaning','mulching machines','rebate','anz','airline booking','honour','most reliable brands','springfree trampolines','power meter','opt out','sale of goods act','bench tops','mobile phone service','privacy act','lg dishwasher','home heating','nikon coolpix','credit card travel insurance','food colour','hotwater cylinder','central heating systems','breadmaker test','commercial property','salt quiz','product on sale','axa','nonstick','avg','sandwich makers','restaurants','razors','hot water cylinder cost','trundle bed','flights','torch','shave','navigation unit','mascara','ants','gps systems','beer','skin','washer dryer','silicone bakeware','wof','laundry','noisy toys','chocolate','relationship property','landline','cable tv','proof of purchase','real estate commission','vouchers expiration','suv','protein drinks','pink batts','phone charges','kitchen sinks','incorrect price','meat thermometers','hearing aids','digital projectors','omega-3','subaru legacy','travelex','dlp tv','switch power companies','services','lottery','immobiliser','telephone line','donations','grass seed','mortage','phone contracts','bluetooth cell phone','hose','bluetooth handsfree','cheapest power suppliers','solar heat pumps','waste water','canon ixus 95','cream','sun block','moisturisers for men','pricing of goods','disposable razors','home security','nespresso','compact fluorescent lamps','heating subsidy','electrician rates','vehicle warranty','bosch','grilling machines','income insurance','navigation','sharpener','energy online','mitsubishi','fan','gas ovens','the truth about food','panini press','burgers','ipod speakers','security systems','phone fax','elliptical','green','in car gps units','pilates','skylight','charity','home alarms','fencing neighbours','kitchenaid','drop the rate mate','rdi calculator','public liability insurance','toyota corolla','sanyo vacuum cleaners','dehumidifiers larger','florists','skincare','electric scooters','upright vacuum cleaners','lg 42 lcd','gsm','taking money overseas','computer speed test','cordless telephones','leaf guard','external harddrive','gas companies','ventilation system report price','invoicing scams','finepix s1500','charger','mobile networks','hoover vacuum','wireless phone','replacement windows','growing vegetables','vacuum clean','gas heating systems','mac or pc','wireless home alarm systems','flatting','main features','portable cooling','child bed','tv warranty','house wiring','kitchen fittings','waterproof camera','boarders','e51','westpac','gp fees','cowboys','cosy','srs542hp','court orders','talon lawn mower','buses','leggott','thyroid','ride-on lawnmowers','inkjet printers','home support','lunchbox','identity theft','honey','wedding','christmas clubs','house selling','apple macintosh','condensation','anti-virus software','simpson dishwasher','hand held blenders','facial moisturisers','apple ipod','best solar system','revolving credit','borer','house insulation','car kit','radiant heaters','noise','collections','contractual agreements','selling a car','buying tickets','storesonline','car repairs','water heat pump','electric mower','2degrees','granite','house exchange','reversing sensors','mattress brands','building','bosch dishwashers','baycorp','grinder','table spreads','teac','satellite navigation','architects','remote controls','hdcp','printer scanner','sanding','bosch appliances','isp survey','daewoo','paracetamol','fencing act','children','best power company','dyson dc25','electrolux fridge','invoice','anti aging','victa','thread count','lady kitchener','dual wall ovens','vero','gauge','choice it','hyundai i30','transportable homes','pro-forma','kids toys','golf clubs','wyndham timeshare','upright','alternative medicine','internet survey','fencing disputes','communications','furniture polish','what is the best brand gas hot water heater','mobile battle','sale items','eyesight','40 inch lcd tv','playpen','water taps','dmc-tz7','i phone','laminator','mobile phone expected life','wood fires','kiwisaver fees','electric ranges','which power company','bulbs','disposable nappies','broadband internet','trade in','gas cooktops','download speed','combination ovens','hover mower','convection heater','heart rate monitor','lawyers','magazine subscription','solar hot water','childrens bank accounts','classique','cuisinart','saving energy','flat screen tv','petrol prices','caffeine','worm farms','travel credit cards','electrolysis','dehumidifer','cheese','notebook computers','door opener','hair cutters','sun lotion','mechanical warranties','ranges','front loaders','sunbeam food processor','rats','visa','active noise reduction','car buying','water quality','as is where is','4wd tyres','jvc','nova gas','phone lines','clock radio','debt consolidation','ink','loans','playstation 3','orcon','ink cartridges','wax','rates','hd ready','vitamin d','hrv ventilation','cost','lifespan','cordless kettles','kodak','drapes','handheld vacuum cleaners','ipod classic','electric hobs','carpet stain removal','telephone companies','kiwisaver 2009','moving house','fridge only','credit card reward points','back packs','camera\'s','hamish','heating grants','lay-by','mercury energy prices','broadband connections','cough remedies','alarm clock','lotion','food labels','micro','waterproof mp3','solicitor','2006','data','pakn save','mortgage strategies','speed check','rideon','golf','steam cleaners ironing','nokia cell phones','kitchen extraction','vodaphone','as is','trader','dvd player sony','yates','gas fire heaters','cataracts','paths','compare solar','mini fridge','recycling','sennheiser','car wash','web camera','plb','electric frying pan','salt','platinum pursuits','rat traps','perfume','surveys','lpg hot water heating','bosch oven','fitness','honda','burglar alarms','coffe','insect repellent','satellite broadband','smoothie','lim report','navigation systems','tan','oven test results','direct marketing','eday','test results','small ovens','bank service','epson','e-waste','portable generators','motorcycle','walkman','calling cards','kiwi saver providers','corolla','tyre gauges','rental car insurance','login','travel vaccinations','noise cancelling head phones','portable printers','cordless headphones','cooking pots','roof tiles','piercing','best ovens','motor','ice cream machines','lg fridge','breville breadmaker','car buying guide','will kits','viera','oil change','rain water','eye drops','average power usage','oven glass','growing spuds in a bag','surround sound','house building','26 tv','toasted sandwich makers','fire','shop breakages','wetback','legal rights','cheapest power','carpet underlay','consumer price index','mens moisturisers','herbs','wrinkle','home security alarms','electricity comparison','olympus','driers','omega','toilet paper','induction hobs','power providers','energy saving lights','easy cook','home loans','road bikes','cleaning tips','dishdrawer','cordless','movers','tramping packs','sandwich','pyroclassic','grey water','pruner','photo processing','gimp','tv speakers','whitening','cheapest power company','clothes lines','dvr','nokia n85','pc speakers','mens razors','nokia 6600','lg 42pg20r','accounting software','laser','nokia n95','editorial','mind your own business','defender','portable drills','gold credit card','renting property','sun protective clothing','shaving blades','broadband services','marketing','crt tv','travel agents','mincer','kenwood','aluminium windows','honda odyssey','westinghouse ovens','baby car seats','panasonic','image stabiliser','radio','nokia','melanoma','portable heaters','deep frying','breakfast cereals','shiraz','baby products','tower insurance','washer','burglar alarm systems','beater','coffe machines','sweepers','laser eye surgery','nokia 5800','exchange rates','foundation','mobile phones overseas','computer repairs','soft drinks','booster car seats','skin care','domain hosting','printer ink','renting','electric chain saws','richmastery','smoke','mail order','manuka','cat doors','adsl2','vehicle insurance','garden hose','power shop','hpwh','rcd','hotwater','push mower','desktop','sports drinks','external drive','frying','energy calculator','pal','panasonic phone','late payment','rdi','dial up','sony cybershot','car radio','water cleaner','jam','free standing','portable harddrives','august issue','fb50va','buy now option','frame','ski boots','tefal fryer','dell computers','canon sx1 is','nilfisk combat ultra bagless vacuum cleaner','prepay','specials','snapper','flask','filter','appliance repairs','commodity','heat pump running costs','heaters types','advertising','wireless internet','combination ladders','econo-heat','baby food','set top box','flies','volta','veterinary','nail gun','video editing','avent','cherry','your rights','sunbeam','tow away','buyers premium','eeca','managed funds','aids for independent living','petrol chain saws','eye cream','baby bottles','taxi','stairs','data storage','weiss','hotwater heatpumps','serums','dictation','e waste','gas cooking','bose','robotic vacuum cleaners','electric wall oven','esp5','phone packages','paypal','satellite receiver','heat gun','chrisco','4 wheel drive','hood','duvet labelling standards','verbal quotes','liquid laundry detergents','digital thermometers','sound docks','samsung fridge','standby costs','internet addiction','bad credit','best buy tv','panasonic lcd','feather duvets','lumix camera','adsl speed test','study','daelim','sober check','reducing mortgage risk','robot vacum cleaners','term life insurance','cordless iron','freestanding fireplaces','jeep','august','english','hand held cake mixer','desk','tubs','compare credit cards','yoplait','yahoo','booking fee','aa rechargeable batteries','kia cars','travel fees','washing liquid','tefal breadmaker','portable vacuum cleaners','mysky','deck','nikon','solar water heating systems','laundry soakers','personal alarms','cash pie','savings accounts','slide scanners','duvet buying guide','water distillers','robot','vet','fees','snowboard','charity donations','consumer rights','component cables','best internet provider','headsets','carrier','pdf','full and final settlement','cost to run appliances','power company comparison','privacy act 1993','i30','mildew','panasonic breadmaker','ride on lawn mowers','wheelbarrow','myfreeview','tz7','quotes and estimates','hd recievers','tank less water heaters','employment relations act','brushwood','roof repairs','xd card','hand-held gps','barina','eset','fisher paykel','diesel','non-stick');
/* $Revision: 3828 $
 *
 */
 
if(typeof(_sli_init )!='object'){var _sli_init=new Array();}
if(typeof(sli_init )!='function'){function sli_init(){ for(var x=0;x<_sli_init.length;x++) _sli_init[x]();}}
if(typeof(asPhrases)!='object'){ var asPhrases = new Array(); }
if(typeof(__SLI_customisations)!='object'){var __SLI_customisations = new Object();}
if(typeof(__SLI_ClientDefaults)!='object'){ var __SLI_ClientDefaults=[]; }
if(typeof(__SLI_validSearchBoxes)!='object'){ var __SLI_validSearchBoxes = new Array(); }
if(typeof(__SLI_asug_used_flag)!='object'){ var __SLI_asug_used_flag = false; }
if(typeof(__SLI_width)!='object'){ var __SLI_width = 0; }
if(typeof(sli_targeturl)!='object'){ var sli_targeturl = ""; }
 
 
    __AutoComplete = new Object(); //namespace...
    __AutoComplete_mouseMoved=false;
 
    // Basic UA detection
    isIE = document.all ? true : false;
    isGecko = navigator.userAgent.toLowerCase().indexOf('gecko') != -1;
    isOpera = navigator.userAgent.toLowerCase().indexOf('opera') != -1;
 
    /* defaults and options */
 
    var __SLI_ApplicationName = 'AutoSuggest';
        __SLI_customisations[ 'AutoSuggest' ] =
                {
                    'ShowBrandingFooter' : true
                    ,
                    'TextBoxIDPrefix' : 'sli_search_'
                    ,
                    'BrandingFooterImagePath' : 'http://assets.resultspage.com/autosuggest/sli_systems-powered_150_15.gif'
                    ,
                    'BrandingFooterTitleTooltip' : 'AutoSuggest Powered by SLI Systems'
                    ,
                    'DropListMinWidth' : 150
                    ,
                    'MaxListItems' : 10
                    ,
                    'Alignment' : true
                    ,
                    'TextBoxIDCustom' : []
                    ,
                    'ValidSearchBoxes' : false 
                    ,
                    'IE6SelectBox' : false 
                    ,
                    'IE6SelectBoxPadding' : 0
                    ,
                    'TargetURL' : ''
                    ,
                    'IframeAlignment' : false
                    ,
                    'AlignmentBorderBug' : false
                    ,
                    'IE6OnFocus' : false
                };
    /* 0 = keyname, 1 = value */
    for( defaultValuePair in __SLI_ClientDefaults )
    {
        __SLI_customisations[__SLI_ApplicationName][__SLI_ClientDefaults[defaultValuePair][0]]=__SLI_ClientDefaults[defaultValuePair][1];
    }
 
    /* pre-fetch branding footer image if being used...
     */
    if( __SLI_customisations[ __SLI_ApplicationName ][ 'ShowBrandingFooter' ] )
    {
        
        if(location.protocol == "https:")
        {
            __SLI_customisations[ __SLI_ApplicationName ][ 'BrandingFooterImagePath' ] = __SLI_customisations[ __SLI_ApplicationName ][ 'BrandingFooterImagePath' ].replace(/http:/i, 'https:');
        }
    
        var __AutoCompleteBranding = new Image();
        __AutoCompleteBranding.src=__SLI_customisations[ __SLI_ApplicationName ][ 'BrandingFooterImagePath' ];
    }
 
 
    function AutoComplete_init()
    {
        if(!isOpera)
        {
            var oldonresize=function(){};
            if(typeof(window.onresize)=='function')
                oldonresize = window.onresize;//play nicely with other people's toys
            window.onresize= function(){ oldonresize(); AutoComplete_HideAll(); AutoComplete_Create( asPhrases ); }
 
            AutoComplete_Create( asPhrases );
            
            var els = document.getElementsByTagName('input');
            if(els)
            {
               for ( i = 0; i < els.length; i++ )
               {
                  if(els[i].name == "asug")
                  {
                     els[i].disabled = true;
                  }
               }
            }
        }
    }
 
 
 
 
    /**
    * Attachs the autocomplete object to a form element. Sets
    * onkeypress event on the form element.
    *
    * @param string formElement Name of form element to attach to
    * @param array  data        Array of strings of which to use as the autocomplete data
    */
    //function AutoComplete_Create (id, data)
    /*
     * iterate over 'sli_search_*' assumes one or more search boxes numbered from 1...
    */
    function AutoComplete_Create( data )
    {
        var idx=1, e, id, searchBoxPrefix=__SLI_customisations[ __SLI_ApplicationName ][ 'TextBoxIDPrefix' ];
        while( e = document.getElementById(searchBoxPrefix+idx) )
        {
            AutoComplete_AttachHandlers(e, data);
            if( __SLI_customisations[ __SLI_ApplicationName ][ 'ValidSearchBoxes' ] )
            {
                __SLI_validSearchBoxes.push(searchBoxPrefix+idx);
            }
            idx++;
        }
        
        
        //this array comes from the customised list
        var otherTextBoxIdList = __SLI_customisations[ __SLI_ApplicationName ][ 'TextBoxIDCustom' ];
        if( otherTextBoxIdList)
        {
            for(idx=0;idx<otherTextBoxIdList.length;idx++)
            {
                e = document.getElementById(otherTextBoxIdList[idx]);
                if(e)
				{
					if( __SLI_customisations[ __SLI_ApplicationName ][ 'ValidSearchBoxes' ] )
                	{
	                    __SLI_validSearchBoxes.push( otherTextBoxIdList[idx] );
                	}
					AutoComplete_AttachHandlers(e, data);
				}
            }
        }
        
    } 
 
    function AutoComplete_AttachHandlers(e, data){
        var iframe,id;
        id=e.id;
 
 
        __AutoComplete[id] = {'data':data,
                              'isVisible':false,
                              'element':document.getElementById(id),
                              'dropdown':null,
                              'highlighted':null};
 
        __AutoComplete[id]['element'].setAttribute('autocomplete', 'off');
        __AutoComplete[id]['element'].onkeydown = function(e) {if (!e) e = window.event; return AutoComplete_KeyDown(this.getAttribute('id'), e);}
        __AutoComplete[id]['element'].onkeyup = function(e) {if (!e) e = window.event; return AutoComplete_KeyUp(this.getAttribute('id'), e);}
        // The function call on the next line was changed by Andrew Grieve April 2008
        __AutoComplete[id]['element'].onkeypress = function(e) {if (!e) e = window.event; return AutoComplete_KeyPress(this.getAttribute('id'), e);}
        __AutoComplete[id]['element'].onclick = function(e)
        {
            if( __SLI_customisations[ __SLI_ApplicationName ][ 'IE6OnFocus' ] )
            {
                __AutoComplete[id]['element'].focus();
            }
            if (!e) e = window.event; e.cancelBubble = true; e.returnValue = false;
        }
 
 
 
        // Hides the dropdowns when document clicked
        var docClick = function()
        {
            if( __SLI_customisations[ __SLI_ApplicationName ][ 'ValidSearchBoxes' ] )
            {
               for(var i=0; i < __SLI_validSearchBoxes.length; i++)
               {
                   if(document.getElementById(__SLI_validSearchBoxes[i]))
                   {
                       AutoComplete_HideDropdown(__SLI_validSearchBoxes[i]);
                   }
               }
            }
            else
            {
                for (id in __AutoComplete)
                {
                   AutoComplete_HideDropdown(id);
                }
            }
        }
 
        if (document.addEventListener) {
            document.addEventListener('click', docClick, false);
        } else if (document.attachEvent) {
            document.attachEvent('onclick', docClick, false);
        }
 
 
        // Max number of items shown at once
        if (arguments[2] != null) {
            __AutoComplete[id]['maxitems'] = arguments[2];
            __AutoComplete[id]['firstItemShowing'] = 0;
            __AutoComplete[id]['lastItemShowing'] = arguments[2] - 1;
        }
 
        AutoComplete_CreateDropdown(id);
 
        // Prevent select dropdowns showing thru
        if (isIE) {
            iframe = document.createElement('iframe');
            __AutoComplete[id]['iframe'] = iframe;
                iframe.id = id +'_iframe';
                iframe.style.position = 'absolute';
                iframe.style.top = '0';
                iframe.style.left = '0';
                iframe.style.width = '0px';
                iframe.style.height = '0px';
                iframe.style.zIndex = '98';
                iframe.style.visibility = 'hidden';
                
                if(location.protocol == "https:")
                {
                   iframe.src = 'https://assets.resultspage.com/autosuggest/blank.html';
                }
                
                if( __SLI_customisations[ __SLI_ApplicationName ][ 'IE6SelectBox' ] )
                {
                  iframe.style.width = __SLI_width  + __SLI_customisations[ __SLI_ApplicationName ][ 'IE6SelectBoxPadding'];
                }
 
            if( __SLI_customisations[ __SLI_ApplicationName ][ 'IframeAlignment' ] )
            {
                document.body.insertBefore( iframe );
            }
            else
            {
                __AutoComplete[id]['element'].parentNode.insertBefore( iframe, __AutoComplete[id]['element'] );
            }
        }
    }
 
    /**
    * Creates the dropdown layer
    *
    * @param string id The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_CreateDropdown(id)
    {
        var theSearchbox = __AutoComplete[id]['element'];
        var theDropDown;
        var left_top = AutoComplete_getPos( theSearchbox );
        var left  = left_top[0];
        var top   = left_top[1] + theSearchbox.offsetHeight;
        var width = theSearchbox.offsetWidth;
 
        if ( width < __SLI_customisations[ __SLI_ApplicationName ][ 'DropListMinWidth' ] )
        {
            width = __SLI_customisations[ __SLI_ApplicationName ][ 'DropListMinWidth' ];
        }
 
        theDropDown = document.createElement('div');
        theDropDown.className = 'autocomplete'; // Don't use setAttribute()
 
 
        if(__SLI_customisations[ __SLI_ApplicationName ][ 'Alignment' ] == true && document.body)
        {
            theDropDown.style.position = 'absolute';
            document.body.insertBefore(theDropDown, document.body.nextSibling);
            
            // Position it
            theDropDown.style.visibility = 'hidden';
            theDropDown.style.left       = left + 'px';
            theDropDown.style.top        = top + 'px';
            theDropDown.style.width      = width + 'px';
            theDropDown.style.zIndex     = '99999';
        }
        else if(__SLI_customisations[ __SLI_ApplicationName ][ 'Alignment' ] == "offsetrelative" && document.body)
        {
          theSearchbox.parentNode.insertBefore(theDropDown, theSearchbox);
          // Position it
          if(sli_getStyle(theSearchbox.offsetParent, 'position') != "absolute")
          {
            theSearchbox.offsetParent.style.position = 'relative';
          }
          theDropDown.style.position = 'absolute';
          theDropDown.style.left = (theSearchbox.offsetLeft) + 'px';
          theDropDown.style.top = (theSearchbox.offsetTop + theSearchbox.offsetHeight) + 'px';
          theDropDown.style.width = (theSearchbox.clientWidth) + 'px';
          theDropDown.style.visibility = 'hidden';
          theDropDown.style.zIndex     = '99999999';
        }
        else
        {
            theSearchbox.parentNode.insertBefore(theDropDown, theSearchbox);
            // Position it
            theDropDown.style.visibility = 'hidden';
            theDropDown.style.left       = left + 'px';
            theDropDown.style.top        = top + 'px';
            theDropDown.style.width      = width + 'px';
            theDropDown.style.zIndex     = '99999';
        }
        
 
        __AutoComplete[id]['dropdown'] = theDropDown;
        __SLI_width = width;
    }
 
    function /* array [ left, top ] */ AutoComplete_getPos( obj )
    {
        var curleft = curtop = 0;
        var sli_flag = 0;
 
        if (obj.offsetParent)
        {
           do
           {
              if ( __SLI_customisations[ __SLI_ApplicationName ][ 'AlignmentBorderBug' ] )
              {         
                
                if(sli_flag == 1)
                {
                    var clientTop = (obj.offsetHeight - obj.clientHeight) / 2;
                    curtop += clientTop;
 
                    var clientLeft = (obj.offsetWidth - obj.clientWidth) / 2;
                    curleft += clientLeft;
                }
                sli_flag = 1;
              }
           
              curleft += obj.offsetLeft;
              curtop += obj.offsetTop;
           }
           while (obj = obj.offsetParent);
        }
        return [curleft,curtop];
    }
 
    /**
    * Shows the dropdown layer
    *
    * @param string id The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_ShowDropdown(id)
    {
 
        AutoComplete_HideAll();
 
 
 
        var value = __AutoComplete[id]['element'].value;
        var toDisplay = new Array();
        var newDiv    = null;
        var text      = null;
        var numItems  = __AutoComplete[id]['dropdown'].childNodes.length;
 
        __AutoComplete_mouseMoved=false;
        // SLI Code Modification - Start - Andrew Grieve April 08
        // Trim the textbox so that if is starts with a space then the feature will still work
        //value = value.replace(/^\s+|\s+$/g,"");
        value = value.replace(/^\s+/g,"");
 
        if(value.length == "")
        {
            // If Textbox length is nothing (after the trim) then don't show dropdown.
            return;
        }
        // SLI Code Modification - End
 
        // Remove all child nodes from dropdown
        while (__AutoComplete[id]['dropdown'].childNodes.length > 0) {
            __AutoComplete[id]['dropdown'].removeChild(__AutoComplete[id]['dropdown'].childNodes[0]);
        }
 
 
        var count=0;
        // Go thru data searching for matches
        for (i=0; i<__AutoComplete[id]['data'].length; ++i)
        {
            // SLI Code Modification - Start - Andrew Grieve April 08 - Added lower casing
            if (__AutoComplete[id]['data'][i].substr(0, value.length).toLowerCase() == value.toLowerCase())
            {
                // SLI Code Modification - End
                toDisplay[toDisplay.length] = __AutoComplete[id]['data'][i];
                count++;
                /* how many to display? */
                if(count == __SLI_customisations['AutoSuggest']['MaxListItems'] ) /* Code inserted to keep list to a maximum of 10 values (was 20 or 30) */
                {
                    break;
                }
            }
        }
 
        // No matches?
        if (toDisplay.length == 0) {
            AutoComplete_HideDropdown(id);
            return;
        }
 
 
 
        // Add data to the dropdown layer
        for (i=0; i<toDisplay.length; ++i) {
            newDiv = document.createElement('div');
            newDiv.className = 'autocomplete_item'; // Don't use setAttribute()
            newDiv.setAttribute('id', 'autocomplete_item_' + i);
            newDiv.setAttribute('index', i);
            newDiv.style.zIndex = '99999';
 
             // Scrollbars are on display ?
            if (toDisplay.length > __AutoComplete[id]['maxitems'] && navigator.userAgent.indexOf('MSIE') == -1) {
                newDiv.style.width = __AutoComplete[id]['element'].offsetWidth - 22 + 'px';
            }
 
            newDiv.onmouseover =
        function()
        {
            if( __AutoComplete_mouseMoved )
                AutoComplete_HighlightItem(__AutoComplete[id]['element'].getAttribute('id'), this.getAttribute('index'));
        };
 
            newDiv.onclick     =    function()
                                    {
                                    	  __SLI_asug_used_flag = true;
                                                                           
                                        AutoComplete_SetValue(__AutoComplete[id]['element'].getAttribute('id'));
                                        AutoComplete_HideDropdown(__AutoComplete[id]['element'].getAttribute('id'));
                                        AutoComplete_submitForm(id);
                                    }
 
 
 
            text   = document.createTextNode(toDisplay[i]);
            newDiv.appendChild(text);
            newDiv.title='Search for ' + toDisplay[i];
 
            /* ellipsis for IE only */
            if( isIE )
            {
                newDiv.style.textOverflow = 'ellipsis';
                newDiv.style.width = '100%';
                newDiv.style.whiteSpace = 'nowrap';
                newDiv.style.overflow = 'hidden';
 
            }
            __AutoComplete[id]['dropdown'].appendChild(newDiv);
        }
        /*
         * append DIV containing footer branding...
         */
        if(__SLI_customisations['AutoSuggest']['ShowBrandingFooter'])
        {
            i = toDisplay.length;
            newDiv = document.createElement('div');
            newDiv.className = 'autocomplete_footer'; // Don't use setAttribute()
            newDiv.setAttribute('id', 'autocomplete_item_' + i);
            newDiv.setAttribute('index', i);
            newDiv.style.zIndex = '99999';
            newDiv.innerHTML = '<a href="http://www.sli-systems.com/powered-by.php" title="' +
                                __SLI_customisations[ __SLI_ApplicationName ][ 'BrandingFooterTitleTooltip' ] +
                                '"><img class="autocomplete_footer_branding" src="'+__AutoCompleteBranding.src+'" /></a>';
 
            __AutoComplete[id]['dropdown'].appendChild(newDiv);
        }
 
 
        // Too many items?
        if (toDisplay.length > __AutoComplete[id]['maxitems']) {
            __AutoComplete[id]['dropdown'].style.height = (__AutoComplete[id]['maxitems'] * 15) + 2 + 'px';
 
        } else {
            __AutoComplete[id]['dropdown'].style.height = '';
        }
 
 
        /**
        * Set left/top in case of document movement/scroll/window resize etc
        */
        if(__SLI_customisations[ __SLI_ApplicationName ][ 'Alignment' ] == "true" || __SLI_customisations[ __SLI_ApplicationName ][ 'Alignment' ] == "false")
        {
            var left_top = AutoComplete_getPos( __AutoComplete[id]['element'] );
            __AutoComplete[id]['dropdown'].style.left = left_top[0];
            __AutoComplete[id]['dropdown'].style.top  = left_top[1] + __AutoComplete[id]['element'].offsetHeight;
        }
 
 
        // Show the iframe for IE
        if (isIE) {
            
            if(!__SLI_customisations[ __SLI_ApplicationName ][ 'Alignment' ] == true)
            {
               __AutoComplete[id]['iframe'].style.width  = __AutoComplete[id]['dropdown'].offsetWidth;
            }
            
            
            __AutoComplete[id]['iframe'].style.top    = __AutoComplete[id]['dropdown'].style.top;
            __AutoComplete[id]['iframe'].style.left   = __AutoComplete[id]['dropdown'].style.left;
            __AutoComplete[id]['iframe'].style.height = __AutoComplete[id]['dropdown'].offsetHeight;
 
            __AutoComplete[id]['iframe'].style.visibility = 'visible';
        }
 
    e =  __AutoComplete[id]['dropdown'];
 
    e.onmousemove =
        function()
        {
            if(!__AutoComplete_mouseMoved){__AutoComplete_mouseMoved=true;}
            this.onmousemove = null;
        }
 
        // Show dropdown
        if (!__AutoComplete[id]['isVisible']) {
            __AutoComplete[id]['dropdown'].style.visibility = 'visible';
            __AutoComplete[id]['isVisible'] = true;
        }
 
 
        // If now showing less items than before, reset the highlighted value
        if (__AutoComplete[id]['dropdown'].childNodes.length != numItems) {
            __AutoComplete[id]['highlighted'] = null;
        }
    }
 
 
 
    /**
    * Hides the dropdown layer
    *
    * @param string id The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_HideDropdown(id)
    {
        if (__AutoComplete[id]['iframe'])
        {
            __AutoComplete[id]['iframe'].style.visibility = 'hidden';
        }
        
        if (__AutoComplete[id]['dropdown'])
        {
            __AutoComplete[id]['dropdown'].style.visibility = 'hidden';
        }
 
        __AutoComplete[id]['highlighted'] = null;
        __AutoComplete[id]['isVisible']   = false;
    }
 
 
    /**
    * Hides all dropdowns
    */
    function AutoComplete_HideAll()
    {
         if( __SLI_customisations[ __SLI_ApplicationName ][ 'ValidSearchBoxes' ] )
         {
               for(var i=0; i < __SLI_validSearchBoxes.length; i++)
               {
                   if(document.getElementById(__SLI_validSearchBoxes[i]))
                   {
                       AutoComplete_HideDropdown(__SLI_validSearchBoxes[i]);
                   }
               }
         }
         else
         {
                for (id in __AutoComplete)
                {
                   AutoComplete_HideDropdown(id);
                }
         }
    }
 
 
    /**
    * Highlights a specific item
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    * @param int    index The index of the element in the dropdown to highlight
    */
    function AutoComplete_HighlightItem(id, index) // mouseover, index is the list element index, zero-based
    {
        if (__AutoComplete[id]['dropdown'].childNodes[index]) {
            for (var i=0; i<__AutoComplete[id]['dropdown'].childNodes.length; ++i) {
                if (__AutoComplete[id]['dropdown'].childNodes[i].className == 'autocomplete_item_highlighted') {
                    __AutoComplete[id]['dropdown'].childNodes[i].className = 'autocomplete_item';
                }
            }
 
            __AutoComplete[id]['dropdown'].childNodes[index].className = 'autocomplete_item_highlighted';
            __AutoComplete[id]['highlighted'] = index;
 
            //also see below...
            //__AutoComplete[id]['element'].value = __AutoComplete[id]['dropdown'].childNodes[index].innerHTML;
            //AutoComplete_SetValue(id);
        }
    }
 
 
    /**
    * Highlights the menu item with the given index
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    * @param int    index The index of the element in the dropdown to highlight
    */
    function AutoComplete_Highlight(id, index) // keyboard up/down - index is the direction of travel, 1==down,-1=up
    {
        var childNodes = __AutoComplete[id]['dropdown'].childNodes;
        if(childNodes.length)
        {
	        var lastItem = ( ( childNodes[ childNodes.length - 1 ].className != 'autocomplete_footer' ) ? childNodes.length - 1 : childNodes.length - 2 );
 
            // Out of bounds checking
            //if (index == 1 && __AutoComplete[id]['highlighted'] == __AutoComplete[id]['dropdown'].childNodes.length - 1) {
            if (index == 1 && __AutoComplete[id]['highlighted'] == lastItem ) {
                childNodes[__AutoComplete[id]['highlighted']].className = 'autocomplete_item';
                __AutoComplete[id]['highlighted'] = null;
 
            } else if (index == -1 && __AutoComplete[id]['highlighted'] == 0) {
                childNodes[0].className = 'autocomplete_item';
                __AutoComplete[id]['highlighted'] = lastItem;
                index = 0;//hack!
            }
 
            // Nothing highlighted at the moment
            if (__AutoComplete[id]['highlighted'] == null) {
 
                childNodes[0].className = 'autocomplete_item_highlighted';
                __AutoComplete[id]['highlighted'] = 0;
                newIndex = 0;
                
            } else {
 
                if (childNodes[__AutoComplete[id]['highlighted']]) {
                
                    childNodes[__AutoComplete[id]['highlighted']].className = 'autocomplete_item';
                }
 
                var newIndex = parseInt( __AutoComplete[id]['highlighted'] ) + parseInt(index);
 
                if (childNodes[newIndex]) {
 
                    childNodes[newIndex].className = 'autocomplete_item_highlighted';
 
                    __AutoComplete[id]['highlighted'] = newIndex;
                }
            }
 
            //populate textbox with currently highlighted term...
            //__AutoComplete[id]['element'].value = __AutoComplete[id]['dropdown'].childNodes[newIndex].innerHTML;
            AutoComplete_SetValue(id);
        }
    }
 
 
    /**
    * Sets the input to a given value
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_SetValue(id)
    {
        __AutoComplete[id]['element'].value = __AutoComplete[id]['dropdown'].childNodes[__AutoComplete[id]['highlighted']].innerHTML.replace(/&amp;/, "&");
    }
 
 
    /**
    * Checks if the dropdown needs scrolling
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_ScrollCheck(id)
    {
        // Scroll down, or wrapping around from scroll up
        if (__AutoComplete[id]['highlighted'] > __AutoComplete[id]['lastItemShowing']) {
            __AutoComplete[id]['firstItemShowing'] = __AutoComplete[id]['highlighted'] - (__AutoComplete[id]['maxitems'] - 1);
            __AutoComplete[id]['lastItemShowing']  = __AutoComplete[id]['highlighted'];
        }
 
        // Scroll up, or wrapping around from scroll down
        if (__AutoComplete[id]['highlighted'] < __AutoComplete[id]['firstItemShowing']) {
            __AutoComplete[id]['firstItemShowing'] = __AutoComplete[id]['highlighted'];
            __AutoComplete[id]['lastItemShowing']  = __AutoComplete[id]['highlighted'] + (__AutoComplete[id]['maxitems'] - 1);
        }
 
        __AutoComplete[id]['dropdown'].scrollTop = __AutoComplete[id]['firstItemShowing'] * 15;
    }
 
 
    /**
    * Function which handles the keypress event
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_KeyDown(id, e)
    {
        var result = true;
 
       var event;
       event = e;
       if(!event) event = window.event;
 
        var keyCode = event.keyCode;
 
        switch (keyCode) {
 
            // Return/Enter
            case 13:
                if (__AutoComplete[id]['highlighted'] != null) {
                    AutoComplete_SetValue(id);
                    AutoComplete_HideDropdown(id);
					
                    __SLI_asug_used_flag = true;
					
                    if( e = __AutoComplete[id]['element'].form['asug'] )
                    {
                        
                        e.disabled=false;
                        e.value = __AutoComplete[id]['asug'];
                    }
 
                }
 
                result = AutoComplete_submitForm(id);
 
                break;
 
            // Escape
            case 27:
                AutoComplete_HideDropdown(id);
                event.returnValue = false;
                event.cancelBubble = true;
                break;
 
            // Up arrow
            case 38:
                if (!__AutoComplete[id]['isVisible']) {
                    AutoComplete_ShowDropdown(id);
                }
 
                AutoComplete_Highlight(id, -1);
                AutoComplete_ScrollCheck(id, -1);
                
                if( e = __AutoComplete[id]['element'].form['asug'] )
                {
                   e.disabled=false;
                   e.value = __AutoComplete[id]['asug'];
                }
 
                                
                result = false;
                break;
 
            // Tab
            case 9:
                if (__AutoComplete[id]['isVisible']) {
                    AutoComplete_HideDropdown(id);
                }
                return;
 
            // Down arrow
            case 40:
 
                if (!__AutoComplete[id]['isVisible']) {
                    AutoComplete_ShowDropdown(id);
                }
 
                AutoComplete_Highlight(id, 1);
                //AutoComplete_ScrollCheck(id, 1);
 
                if( e = __AutoComplete[id]['element'].form['asug'] )
                {
                   e.disabled=false;
                   e.value = __AutoComplete[id]['asug'];
                }
 
                result = false;
                break;
        }
        return result;
    }
 
 
    /**
    * Function which handles the keyup event
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_KeyUp(id, e)
    {
       var event;
       event = e;
       if(!event) event = window.event;
 
        var keyCode = event.keyCode;
 
        switch (keyCode) {
            case 13:
                event.returnValue = false;
                event.cancelBubble = true;
                
                break;
 
            case 27:
                AutoComplete_HideDropdown(id);
                event.returnValue = false;
                event.cancelBubble = true;
                break;
 
            case 38:
            case 40:
                return false;
                break;
 
            default:
                AutoComplete_ShowDropdown(id);
                
                __AutoComplete[id]['asug']=__AutoComplete[id]['element'].value;
 
                if( e = __AutoComplete[id]['element'].form['asug'] )
                {
                   e.disabled=true;
                   e.value = "";
                }  
                
                break;
        }
    }
 
    /**
    * Function which handles the keypress event
    * This function added April 2008 by Andrew Grieve
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
 
    // SLI Code Modification - Start - Andrew Grieve April 08
    function AutoComplete_KeyPress(id, e)
    {
        var event = e;
        if(!event) event = window.event;
        var keyCode = event.keyCode;
 
        if (keyCode == 13 && isGecko || isOpera)
        {
            return false;
        }
        
        if( __SLI_customisations[ __SLI_ApplicationName ][ 'TargetURL' ] )
        {
            if (keyCode == 13 && isIE)
            {
                return false;
            }
        }
        
    }
    // SLI Code Modification - End
 
    /**
    * Returns whether the dropdown is visible
    *
    * @param string id    The form elements id. Used to identify the correct dropdown.
    */
    function AutoComplete_isVisible(id)
    {
        return __AutoComplete[id]['dropdown'].style.visibility == 'visible';
    }
 
    function AutoComplete_submitForm(id)
    {
        var e, f, result=true;
        if( f = __AutoComplete[id]['element'].form )
        {
            if( __AutoComplete[id]['element'].value != '' )
            {
            	if(__SLI_asug_used_flag == true)
            	{
                   if( e = f['asug'])
                   {
                      e.value = __AutoComplete[id]['asug'];
                      e.disabled=false;
                   }
                }
                
                if( __SLI_customisations[ __SLI_ApplicationName ][ 'TargetURL' ] )
                {
                	asugvar = "";
                	if(__SLI_asug_used_flag == true)
                	{
                	  asugvar = '&asug=' + __AutoComplete[id]['asug'];
                  	}
                    
                    sliRegex = /resultsdemo\.com/;
                    if(sliRegExArray = sliRegex.exec(document.domain))
                    {
                    	sliRegex = /^http:\/\/(.*)\//;
                    	sliTargetDomain = sliRegex.exec(__SLI_customisations[__SLI_ApplicationName ][ 'TargetURL' ]);
                    	__SLI_customisations[__SLI_ApplicationName ][ 'TargetURL' ] = __SLI_customisations[__SLI_ApplicationName ][ 'TargetURL' ].replace(sliTargetDomain[1], document.domain);
                    }
                    
                	document.location.href = __SLI_customisations[__SLI_ApplicationName ][ 'TargetURL' ] + __AutoComplete[id]['element'].value + asugvar;
                }
                else
                {
                	f.submit();
                }
                
                AutoComplete_HideAll();
            }
            else
                result = false;
        }
        return result;
    }
    
    // get the style that will be applied by the browser, including stylesheets
    function sli_getStyle(el,styleProp)
    {
      if (el.currentStyle)
        var y = el.currentStyle[styleProp];
      else if (window.getComputedStyle)
        var y = document.defaultView.getComputedStyle(el,null).getPropertyValue(styleProp);
      return y;
    }
 
    // register with onLoad(er...
    _sli_init.push( AutoComplete_init );
    
    function sli_addEvent(obj, evType, fn) {
    	if (obj.addEventListener) {
    		obj.addEventListener(evType, fn, false);
    		return true;
    	} else if (obj.attachEvent) {
    		var r = obj.attachEvent("on" + evType, fn);
    		return r;
    	} else {
    		return false;
    	}
    }
    
    function sli_load()
    {
    	sli_addEvent(window, 'load', sli_init);
    }
var el_navigation;

function navigationInit() {
  el_navigation = yd.get('navigation');
  navigationAddEventListeners();
  navigationAddStyles();
}

function _navigationMouseOverHandler(ev) {
  if (yd.hasClass(this, 'active')) return;
  yd.setStyle(this, 'background-color', '#F5F0E9');
}

function _navigationMouseOutHandler(ev) {
  if (yd.hasClass(this, 'active')) return;
  yd.setStyle(this, 'background-color', '#FFFFFF');
}

function _navigationLinkMouseDownHandler(ev) {
  var el = this.getElementsByTagName('a')[0];
  document.location = el.href;
}

function navigationAddEventListeners() {
  var divs = yd.getElementsByClassName('nav_main', 'div', el_navigation);
  for (var j = 0; j < divs.length; j++) {
    var div = divs[j];
    var lis = div.getElementsByTagName('li');
    for (var i = 0; i < lis.length; i++) {
      var li = lis[i];
      ye.addListener(li, 'mouseover', _navigationMouseOverHandler);
      ye.addListener(li, 'mouseout',  _navigationMouseOutHandler);
      ye.addListener(li, 'mousedown', _navigationLinkMouseDownHandler);
    }
  }
}

function navigationAddStyles() {
  var divs = yd.getElementsByClassName('nav_main', 'div', el_navigation);
  for (var j = 0; j < divs.length; j++) {
    var div = divs[j];
    var lis = div.getElementsByTagName('li');
    for (var i = 0; i < lis.length; i++) {
      var li = lis[i];
      yd.setStyle(li, 'cursor', 'pointer');
      if (i == 0) {
        yd.addClass(li, 'first');
      }
    }
  }
}

var el_blackbar_links;

function blackbarInit() {
  el_blackbar_links = yd.get('blackbar_links');
  blackbarAddEventListeners();
  blackbarAddStyles();
  searchAddEventListeners();
}

function _blackbarLinkMouseOverHandler(ev) {
  yd.setStyle(this, 'background-color', '#333333');
}

function _blackbarLinkMouseOutHandler(ev) {
  yd.setStyle(this, 'background-color', '#000000');
}

function _blackbarLinkMouseDownHandler(ev) {
  var el = this.getElementsByTagName('a')[0];
  document.location = el.href;
}

function blackbarAddEventListeners() {
  var lis = el_blackbar_links.getElementsByTagName('li');
  for (var i = 0; i < lis.length; i++) {
    var li = lis[i];
    ye.addListener(li, 'mouseover', _blackbarLinkMouseOverHandler);
    ye.addListener(li, 'mouseout',  _blackbarLinkMouseOutHandler);
    ye.addListener(li, 'mousedown',  _blackbarLinkMouseDownHandler);
  }
}

function blackbarAddStyles() {
  var lis = el_blackbar_links.getElementsByTagName('li');
  for (var i = 0; i < lis.length; i++) {
    var li = lis[i];
    yd.setStyle(li, 'cursor', 'pointer');
  }
}

function _searchFocusHandler() {
  this.value = '';
}

function searchAddEventListeners() {
  var el = yd.get('sli_search_1');
  ye.addListener(el, 'focus', _searchFocusHandler)
}

var el_breadcrumb;

function breadcrumbInit() {
  el_breadcrumb = yd.get('breadcrumb');
  breadCrumbRemoveLink();
}

function breadCrumbRemoveLink() {
  // need this because typepad is really awful for making breadcrumbs
  var links = el_breadcrumb.getElementsByTagName('a');
  var spans = el_breadcrumb.getElementsByTagName('span');
  if (spans.length == 3 && links.length == 2 && !spans[2].innerHTML.match(/[A-Za-z]/)) { // home page
    var span = spans[2];
    span.parentNode.removeChild(span);
    span = spans[1];
    var link = span.getElementsByTagName('a')[0];
    var label = link.innerHTML;
    link.parentNode.removeChild(link);
    span.appendChild(document.createTextNode(label));
  }
}
var el_header_links;

function headerInit() {
  el_header_links = yd.get('header_links');
  headerAddEventListeners();
  headerAddStyles();
}

function _headerLiMouseOverHandler(ev) {
  yd.setStyle(this, 'background-color', '#FFFFFF');
}

function _headerLiMouseOutHandler(ev) {
  yd.setStyle(this, 'background-color', '#E0CAAE');
}

function _headerLiMouseDownHandler(ev) {
  var el = this.getElementsByTagName('a')[0];
  document.location = el.href;
}

function headerAddEventListeners() {
  var lis = el_header_links.getElementsByTagName('li');
  for (var i = 0; i < lis.length; i++) {
    var li = lis[i];
    ye.addListener(li, 'mouseover', _headerLiMouseOverHandler);
    ye.addListener(li, 'mouseout',  _headerLiMouseOutHandler);
    ye.addListener(li, 'mousedown', _headerLiMouseDownHandler);
  }
}

function headerAddStyles() {
  var lis = el_header_links.getElementsByTagName('li');
  for (var i = 0; i < lis.length; i++) {
    var li = lis[i];
    yd.setStyle(li, 'cursor', 'pointer');
  }
}

function blogEntryInit() {
  ye.addListener('comment_form', 'submit', _blogEntryCommentFormSubmitHandler);
  // be the first to comment / post a comment
  /* note working - it's friday and i gotta catch a bus
  if (yd.get('comments')) {
    var show_be_first = true;
    var cns = yd.getElementsByClassName('comment');
    if (cns.length > 0) {
      show_be_first = false;
      if (cns.length == 1) {
        if (!cns[0].getChildren()[0].match(/[a-zA-Z0-9]/)) { // is an empty preview thing
          show_be_first = true;
        }
      }      
    }    
    if (show_be_first) {
      yd.get('post_a_comment').style.display = 'none';
      yd.get('be_the_first_to_comment').style.display = 'block';
    } else {
      yd.get('post_a_comment').style.display = 'block';
      yd.get('be_the_first_to_comment').style.display = 'none';
    }
  }
  */
}

function _blogEntryCommentFormSubmitHandler(e) {
	//var f = document.forms["comment_form"];
  var f = this;
	if (f["author"].value.length == 0) {
		alert("Please enter your name");
    ye.stopEvent(e);
	} else if (!f["email"].value.match(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9\.]{2,10})+$/)) {
		alert("Please enter a valid email address. Note people viewing the site won't be able to see it nor will it be used for any marketing purposes.");
		ye.stopEvent(e);
	} else if (f["text"].value.match(/^[\t\r\n ]*$/)) {
		alert("Please enter your comments");
		ye.stopEvent(e);
	}	else {
  	alert("Thank you for your comments.  They will be posted online once they have been approved by our moderators");
  }
}
/**
 * @author steve
 */
var yd = YAHOO.util.Dom;
var ye = YAHOO.util.Event;


function init() {
  displayFirstToComment();
  navigationInit();
  blackbarInit();
  headerInit();
  breadcrumbInit();
  blogEntryInit();
  sli_init();
}

ye.onDOMReady(init);


function displayFirstToComment() {
  var el = yd.get('comments-custom');
  if (el) {
      if (!el.innerHTML.match(/[a-zA-Z]/)) {
          el.innerHTML = "<p>Be the first to comment</p>";
      }
  }
}
<!-- ph=1 -->
<!-- nhm:from_kauri -->
