/*
This file group many JS files in order to speed the download time.

Yahoo-dom-event.js
dragdrop1.js
slider.js
utils.js
CBExtension.js
Search.js
DiamondList.js
*/

//yahoo-dom-even.js

/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0,mobile:null};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);if(/ Mobile\//.test(B)){C.mobile="Apple";}else{A=B.match(/NokiaN[^\/]*/);if(A){C.mobile=A[0];}}}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);A=B.match(/Opera Mini[^;]*/);if(A){C.mobile=A[0];}}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{isArray:function(B){if(B){var A=YAHOO.lang;return A.isNumber(B.length)&&A.isFunction(B.splice);}return false;},isBoolean:function(A){return typeof A==="boolean";},isFunction:function(A){return typeof A==="function";},isNull:function(A){return A===null;},isNumber:function(A){return typeof A==="number"&&isFinite(A);},isObject:function(A){return(A&&(typeof A==="object"||YAHOO.lang.isFunction(A)))||false;},isString:function(A){return typeof A==="string";},isUndefined:function(A){return typeof A==="undefined";},hasOwnProperty:function(A,B){if(Object.prototype.hasOwnProperty){return A.hasOwnProperty(B);}return !YAHOO.lang.isUndefined(A[B])&&A.constructor.prototype[B]!==A[B];},_IEEnumFix:function(C,B){if(YAHOO.env.ua.ie){var E=["toString","valueOf"],A;for(A=0;A<E.length;A=A+1){var F=E[A],D=B[F];if(YAHOO.lang.isFunction(D)&&D!=Object.prototype[F]){C[F]=D;}}}},extend:function(D,E,C){if(!E||!D){throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");}var B=function(){};B.prototype=E.prototype;D.prototype=new B();D.prototype.constructor=D;D.superclass=E.prototype;if(E.prototype.constructor==Object.prototype.constructor){E.prototype.constructor=E;}if(C){for(var A in C){D.prototype[A]=C[A];}YAHOO.lang._IEEnumFix(D.prototype,C);}},augmentObject:function(E,D){if(!D||!E){throw new Error("Absorb failed, verify dependencies.");}var A=arguments,C,F,B=A[2];if(B&&B!==true){for(C=2;C<A.length;C=C+1){E[A[C]]=D[A[C]];}}else{for(F in D){if(B||!E[F]){E[F]=D[F];}}YAHOO.lang._IEEnumFix(E,D);}},augmentProto:function(D,C){if(!C||!D){throw new Error("Augment failed, verify dependencies.");}var A=[D.prototype,C.prototype];for(var B=2;B<arguments.length;B=B+1){A.push(arguments[B]);}YAHOO.lang.augmentObject.apply(this,A);},dump:function(A,G){var C=YAHOO.lang,D,F,I=[],J="{...}",B="f(){...}",H=", ",E=" => ";if(!C.isObject(A)){return A+"";}else{if(A instanceof Date||("nodeType" in A&&"tagName" in A)){return A;}else{if(C.isFunction(A)){return B;}}}G=(C.isNumber(G))?G:3;if(C.isArray(A)){I.push("[");for(D=0,F=A.length;D<F;D=D+1){if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}if(I.length>1){I.pop();}I.push("]");}else{I.push("{");for(D in A){if(C.hasOwnProperty(A,D)){I.push(D+E);if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}}if(I.length>1){I.pop();}I.push("}");}return I.join("");},substitute:function(Q,B,J){var G,F,E,M,N,P,D=YAHOO.lang,L=[],C,H="dump",K=" ",A="{",O="}";for(;;){G=Q.lastIndexOf(A);if(G<0){break;}F=Q.indexOf(O,G);if(G+1>=F){break;}C=Q.substring(G+1,F);M=C;P=null;E=M.indexOf(K);if(E>-1){P=M.substring(E+1);M=M.substring(0,E);}N=B[M];if(J){N=J(M,N,P);}if(D.isObject(N)){if(D.isArray(N)){N=D.dump(N,parseInt(P,10));}else{P=P||"";var I=P.indexOf(H);if(I>-1){P=P.substring(4);}if(N.toString===Object.prototype.toString||I>-1){N=D.dump(N,parseInt(P,10));}else{N=N.toString();}}}else{if(!D.isString(N)&&!D.isNumber(N)){N="~-"+L.length+"-~";L[L.length]=C;}}Q=Q.substring(0,G)+N+Q.substring(F+1);}for(G=L.length-1;G>=0;G=G-1){Q=Q.replace(new RegExp("~-"+G+"-~"),"{"+L[G]+"}","g");}return Q;},trim:function(A){try{return A.replace(/^\s+|\s+$/g,"");}catch(B){return A;}},merge:function(){var D={},B=arguments;for(var C=0,A=B.length;C<A;C=C+1){YAHOO.lang.augmentObject(D,B[C],true);}return D;},later:function(H,B,I,D,E){H=H||0;B=B||{};var C=I,G=D,F,A;if(YAHOO.lang.isString(I)){C=B[I];}if(!C){throw new TypeError("method undefined");}if(!YAHOO.lang.isArray(G)){G=[D];}F=function(){C.apply(B,G);};A=(E)?setInterval(F,H):setTimeout(F,H);return{interval:E,cancel:function(){if(this.interval){clearInterval(A);}else{clearTimeout(A);}}};},isValue:function(B){var A=YAHOO.lang;return(A.isObject(B)||A.isString(B)||A.isNumber(B)||A.isBoolean(B));}};YAHOO.util.Lang=YAHOO.lang;YAHOO.lang.augment=YAHOO.lang.augmentProto;YAHOO.augment=YAHOO.lang.augmentProto;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.5.0",build:"895"});(function(){var B=YAHOO.util,K,I,J={},F={},M=window.document;YAHOO.env._id_counter=YAHOO.env._id_counter||0;var C=YAHOO.env.ua.opera,L=YAHOO.env.ua.webkit,A=YAHOO.env.ua.gecko,G=YAHOO.env.ua.ie;var E={HYPHEN:/(-[a-z])/i,ROOT_TAG:/^body|html$/i};var N=function(P){if(!E.HYPHEN.test(P)){return P;}if(J[P]){return J[P];}var Q=P;while(E.HYPHEN.exec(Q)){Q=Q.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}J[P]=Q;return Q;};var O=function(Q){var P=F[Q];if(!P){P=new RegExp("(?:^|\\s+)"+Q+"(?:\\s+|$)");F[Q]=P;}return P;};if(M.defaultView&&M.defaultView.getComputedStyle){K=function(P,S){var R=null;if(S=="float"){S="cssFloat";}var Q=M.defaultView.getComputedStyle(P,"");if(Q){R=Q[N(S)];}return P.style[S]||R;};}else{if(M.documentElement.currentStyle&&G){K=function(P,R){switch(N(R)){case"opacity":var T=100;try{T=P.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(S){try{T=P.filters("alpha").opacity;}catch(S){}}return T/100;case"float":R="styleFloat";default:var Q=P.currentStyle?P.currentStyle[R]:null;return(P.style[R]||Q);}};}else{K=function(P,Q){return P.style[Q];};}}if(G){I=function(P,Q,R){switch(Q){case"opacity":if(YAHOO.lang.isString(P.style.filter)){P.style.filter="alpha(opacity="+R*100+")";if(!P.currentStyle||!P.currentStyle.hasLayout){P.style.zoom=1;}}break;case"float":Q="styleFloat";default:P.style[Q]=R;}};}else{I=function(P,Q,R){if(Q=="float"){Q="cssFloat";}P.style[Q]=R;};}var D=function(P,Q){return P&&P.nodeType==1&&(!Q||Q(P));};YAHOO.util.Dom={get:function(R){if(R&&(R.nodeType||R.item)){return R;}if(YAHOO.lang.isString(R)||!R){return M.getElementById(R);}if(R.length!==undefined){var S=[];for(var Q=0,P=R.length;Q<P;++Q){S[S.length]=B.Dom.get(R[Q]);}return S;}return R;},getStyle:function(P,R){R=N(R);var Q=function(S){return K(S,R);};return B.Dom.batch(P,Q,B.Dom,true);},setStyle:function(P,R,S){R=N(R);var Q=function(T){I(T,R,S);};B.Dom.batch(P,Q,B.Dom,true);},getXY:function(P){var Q=function(R){if((R.parentNode===null||R.offsetParent===null||this.getStyle(R,"display")=="none")&&R!=R.ownerDocument.body){return false;}return H(R);};return B.Dom.batch(P,Q,B.Dom,true);},getX:function(P){var Q=function(R){return B.Dom.getXY(R)[0];};return B.Dom.batch(P,Q,B.Dom,true);},getY:function(P){var Q=function(R){return B.Dom.getXY(R)[1];};return B.Dom.batch(P,Q,B.Dom,true);},setXY:function(P,S,R){var Q=function(V){var U=this.getStyle(V,"position");if(U=="static"){this.setStyle(V,"position","relative");U="relative";}var X=this.getXY(V);if(X===false){return false;}var W=[parseInt(this.getStyle(V,"left"),10),parseInt(this.getStyle(V,"top"),10)];if(isNaN(W[0])){W[0]=(U=="relative")?0:V.offsetLeft;}if(isNaN(W[1])){W[1]=(U=="relative")?0:V.offsetTop;}if(S[0]!==null){V.style.left=S[0]-X[0]+W[0]+"px";}if(S[1]!==null){V.style.top=S[1]-X[1]+W[1]+"px";}if(!R){var T=this.getXY(V);if((S[0]!==null&&T[0]!=S[0])||(S[1]!==null&&T[1]!=S[1])){this.setXY(V,S,true);}}};B.Dom.batch(P,Q,B.Dom,true);},setX:function(Q,P){B.Dom.setXY(Q,[P,null]);},setY:function(P,Q){B.Dom.setXY(P,[null,Q]);},getRegion:function(P){var Q=function(R){if((R.parentNode===null||R.offsetParent===null||this.getStyle(R,"display")=="none")&&R!=M.body){return false;}var S=B.Region.getRegion(R);return S;};return B.Dom.batch(P,Q,B.Dom,true);},getClientWidth:function(){return B.Dom.getViewportWidth();},getClientHeight:function(){return B.Dom.getViewportHeight();},getElementsByClassName:function(T,X,U,V){X=X||"*";U=(U)?B.Dom.get(U):null||M;if(!U){return[];}var Q=[],P=U.getElementsByTagName(X),W=O(T);for(var R=0,S=P.length;R<S;++R){if(W.test(P[R].className)){Q[Q.length]=P[R];if(V){V.call(P[R],P[R]);}}}return Q;},hasClass:function(R,Q){var P=O(Q);var S=function(T){return P.test(T.className);};return B.Dom.batch(R,S,B.Dom,true);},addClass:function(Q,P){var R=function(S){if(this.hasClass(S,P)){return false;}S.className=YAHOO.lang.trim([S.className,P].join(" "));return true;};return B.Dom.batch(Q,R,B.Dom,true);},removeClass:function(R,Q){var P=O(Q);var S=function(T){if(!Q||!this.hasClass(T,Q)){return false;}var U=T.className;T.className=U.replace(P," ");if(this.hasClass(T,Q)){this.removeClass(T,Q);}T.className=YAHOO.lang.trim(T.className);return true;};return B.Dom.batch(R,S,B.Dom,true);},replaceClass:function(S,Q,P){if(!P||Q===P){return false;}var R=O(Q);var T=function(U){if(!this.hasClass(U,Q)){this.addClass(U,P);return true;}U.className=U.className.replace(R," "+P+" ");if(this.hasClass(U,Q)){this.replaceClass(U,Q,P);}U.className=YAHOO.lang.trim(U.className);return true;};return B.Dom.batch(S,T,B.Dom,true);},generateId:function(P,R){R=R||"yui-gen";var Q=function(S){if(S&&S.id){return S.id;}var T=R+YAHOO.env._id_counter++;if(S){S.id=T;}return T;};return B.Dom.batch(P,Q,B.Dom,true)||Q.apply(B.Dom,arguments);},isAncestor:function(P,Q){P=B.Dom.get(P);Q=B.Dom.get(Q);if(!P||!Q){return false;}if(P.contains&&Q.nodeType&&!L){return P.contains(Q);}else{if(P.compareDocumentPosition&&Q.nodeType){return !!(P.compareDocumentPosition(Q)&16);}else{if(Q.nodeType){return !!this.getAncestorBy(Q,function(R){return R==P;});}}}return false;},inDocument:function(P){return this.isAncestor(M.documentElement,P);},getElementsBy:function(W,Q,R,T){Q=Q||"*";R=(R)?B.Dom.get(R):null||M;if(!R){return[];}var S=[],V=R.getElementsByTagName(Q);for(var U=0,P=V.length;U<P;++U){if(W(V[U])){S[S.length]=V[U];if(T){T(V[U]);}}}return S;},batch:function(T,W,V,R){T=(T&&(T.tagName||T.item))?T:B.Dom.get(T);if(!T||!W){return false;}var S=(R)?V:window;if(T.tagName||T.length===undefined){return W.call(S,T,V);}var U=[];for(var Q=0,P=T.length;Q<P;++Q){U[U.length]=W.call(S,T[Q],V);}return U;},getDocumentHeight:function(){var Q=(M.compatMode!="CSS1Compat")?M.body.scrollHeight:M.documentElement.scrollHeight;var P=Math.max(Q,B.Dom.getViewportHeight());return P;},getDocumentWidth:function(){var Q=(M.compatMode!="CSS1Compat")?M.body.scrollWidth:M.documentElement.scrollWidth;var P=Math.max(Q,B.Dom.getViewportWidth());return P;},getViewportHeight:function(){var P=self.innerHeight;var Q=M.compatMode;if((Q||G)&&!C){P=(Q=="CSS1Compat")?M.documentElement.clientHeight:M.body.clientHeight;
}return P;},getViewportWidth:function(){var P=self.innerWidth;var Q=M.compatMode;if(Q||G){P=(Q=="CSS1Compat")?M.documentElement.clientWidth:M.body.clientWidth;}return P;},getAncestorBy:function(P,Q){while(P=P.parentNode){if(D(P,Q)){return P;}}return null;},getAncestorByClassName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return B.Dom.hasClass(S,P);};return B.Dom.getAncestorBy(Q,R);},getAncestorByTagName:function(Q,P){Q=B.Dom.get(Q);if(!Q){return null;}var R=function(S){return S.tagName&&S.tagName.toUpperCase()==P.toUpperCase();};return B.Dom.getAncestorBy(Q,R);},getPreviousSiblingBy:function(P,Q){while(P){P=P.previousSibling;if(D(P,Q)){return P;}}return null;},getPreviousSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getPreviousSiblingBy(P);},getNextSiblingBy:function(P,Q){while(P){P=P.nextSibling;if(D(P,Q)){return P;}}return null;},getNextSibling:function(P){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getNextSiblingBy(P);},getFirstChildBy:function(P,R){var Q=(D(P.firstChild,R))?P.firstChild:null;return Q||B.Dom.getNextSiblingBy(P.firstChild,R);},getFirstChild:function(P,Q){P=B.Dom.get(P);if(!P){return null;}return B.Dom.getFirstChildBy(P);},getLastChildBy:function(P,R){if(!P){return null;}var Q=(D(P.lastChild,R))?P.lastChild:null;return Q||B.Dom.getPreviousSiblingBy(P.lastChild,R);},getLastChild:function(P){P=B.Dom.get(P);return B.Dom.getLastChildBy(P);},getChildrenBy:function(Q,S){var R=B.Dom.getFirstChildBy(Q,S);var P=R?[R]:[];B.Dom.getNextSiblingBy(R,function(T){if(!S||S(T)){P[P.length]=T;}return false;});return P;},getChildren:function(P){P=B.Dom.get(P);if(!P){}return B.Dom.getChildrenBy(P);},getDocumentScrollLeft:function(P){P=P||M;return Math.max(P.documentElement.scrollLeft,P.body.scrollLeft);},getDocumentScrollTop:function(P){P=P||M;return Math.max(P.documentElement.scrollTop,P.body.scrollTop);},insertBefore:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}return P.parentNode.insertBefore(Q,P);},insertAfter:function(Q,P){Q=B.Dom.get(Q);P=B.Dom.get(P);if(!Q||!P||!P.parentNode){return null;}if(P.nextSibling){return P.parentNode.insertBefore(Q,P.nextSibling);}else{return P.parentNode.appendChild(Q);}},getClientRegion:function(){var R=B.Dom.getDocumentScrollTop(),Q=B.Dom.getDocumentScrollLeft(),S=B.Dom.getViewportWidth()+Q,P=B.Dom.getViewportHeight()+R;return new B.Region(R,S,P,Q);}};var H=function(){if(M.documentElement.getBoundingClientRect){return function(Q){var R=Q.getBoundingClientRect();var P=Q.ownerDocument;return[R.left+B.Dom.getDocumentScrollLeft(P),R.top+B.Dom.getDocumentScrollTop(P)];};}else{return function(R){var S=[R.offsetLeft,R.offsetTop];var Q=R.offsetParent;var P=(L&&B.Dom.getStyle(R,"position")=="absolute"&&R.offsetParent==R.ownerDocument.body);if(Q!=R){while(Q){S[0]+=Q.offsetLeft;S[1]+=Q.offsetTop;if(!P&&L&&B.Dom.getStyle(Q,"position")=="absolute"){P=true;}Q=Q.offsetParent;}}if(P){S[0]-=R.ownerDocument.body.offsetLeft;S[1]-=R.ownerDocument.body.offsetTop;}Q=R.parentNode;while(Q.tagName&&!E.ROOT_TAG.test(Q.tagName)){if(B.Dom.getStyle(Q,"display").search(/^inline|table-row.*$/i)){S[0]-=Q.scrollLeft;S[1]-=Q.scrollTop;}Q=Q.parentNode;}return S;};}}();})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this[0]=B;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top);var D=Math.min(this.right,E.right);var A=Math.min(this.bottom,E.bottom);var B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top);var D=Math.max(this.right,E.right);var A=Math.max(this.bottom,E.bottom);var B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D);var C=F[1];var E=F[0]+D.offsetWidth;var A=F[1]+D.offsetHeight;var B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}this.x=this.right=this.left=this[0]=A;this.y=this.top=this.bottom=this[1]=B;};YAHOO.util.Point.prototype=new YAHOO.util.Region();YAHOO.register("dom",YAHOO.util.Dom,{version:"2.5.0",build:"895"});YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){var D=this.subscribers.length;if(!D&&this.silent){return true;}var H=[],F=true,C,I=false;for(C=0;C<arguments.length;++C){H.push(arguments[C]);}if(!this.silent){}for(C=0;C<D;++C){var L=this.subscribers[C];if(!L){I=true;}else{if(!this.silent){}var K=L.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var A=null;if(H.length>0){A=H[0];}try{F=L.fn.call(K,A,L.obj);}catch(E){this.lastError=E;}}else{try{F=L.fn.call(K,this.type,H,L.obj);}catch(G){this.lastError=G;}}if(false===F){if(!this.silent){}return false;}}}if(I){var J=[],B=this.subscribers;for(C=0,D=B.length;C<D;C=C+1){J.push(B[C]);}this.subscribers=J;}return true;},unsubscribeAll:function(){for(var B=0,A=this.subscribers.length;B<A;++B){this._delete(A-1-B);}this.subscribers=[];return B;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers[A]=null;},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var I=[];var J=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9};return{POLL_RETRYS:2000,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,_dri:null,DOMReady:false,startInterval:function(){if(!this._interval){var K=this;var L=function(){K._tryPreloadAttach();};this._interval=setInterval(L,this.POLL_INTERVAL);}},onAvailable:function(P,M,Q,O,N){var K=(YAHOO.lang.isString(P))?[P]:P;for(var L=0;L<K.length;L=L+1){F.push({id:K[L],fn:M,obj:Q,override:O,checkReady:N});}C=this.POLL_RETRYS;this.startInterval();},onContentReady:function(M,K,N,L){this.onAvailable(M,K,N,L,true);},onDOMReady:function(K,M,L){if(this.DOMReady){setTimeout(function(){var N=window;if(L){if(L===true){N=M;}else{N=L;}}K.call(N,"DOMReady",[],M);},0);}else{this.DOMReadyEvent.subscribe(K,M,L);}},addListener:function(M,K,V,Q,L){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var R=0,T=M.length;R<T;++R){W=this.on(M[R],K,V,Q,L)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var P=this.getEl(M);if(P){M=P;}else{this.onAvailable(M,function(){YAHOO.util.Event.on(M,K,V,Q,L);});return true;}}}if(!M){return false;}if("unload"==K&&Q!==this){J[J.length]=[M,K,V,Q,L];return true;}var Y=M;if(L){if(L===true){Y=Q;}else{Y=L;}}var N=function(Z){return V.call(Y,YAHOO.util.Event.getEvent(Z,M),Q);};var X=[M,K,V,N,Y,Q,L];var S=I.length;I[S]=X;if(this.useLegacyEvent(M,K)){var O=this.getLegacyIndex(M,K);if(O==-1||M!=G[O][0]){O=G.length;B[M.id+K]=O;G[O]=[M,K,M["on"+K]];E[O]=[];M["on"+K]=function(Z){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(Z),O);};}E[O].push(X);}else{try{this._simpleAdd(M,K,N,false);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}}return true;},fireLegacyEvent:function(O,M){var Q=true,K,S,R,T,P;S=E[M];for(var L=0,N=S.length;L<N;++L){R=S[L];if(R&&R[this.WFN]){T=R[this.ADJ_SCOPE];P=R[this.WFN].call(T,O);Q=(Q&&P);}}K=G[M];if(K&&K[2]){K[2](O);}return Q;},getLegacyIndex:function(L,M){var K=this.generateId(L)+M;if(typeof B[K]=="undefined"){return -1;}else{return B[K];}},useLegacyEvent:function(L,M){if(this.webkit&&("click"==M||"dblclick"==M)){var K=parseInt(this.webkit,10);if(!isNaN(K)&&K<418){return true;}}return false;},removeListener:function(L,K,T){var O,R,V;if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var U=true;for(O=0,R=L.length;O<R;++O){U=(this.removeListener(L[O],K,T)&&U);}return U;}}if(!T||!T.call){return this.purgeElement(L,false,K);}if("unload"==K){for(O=0,R=J.length;O<R;O++){V=J[O];if(V&&V[0]==L&&V[1]==K&&V[2]==T){J[O]=null;return true;}}return false;}var P=null;var Q=arguments[3];if("undefined"===typeof Q){Q=this._getCacheIndex(L,K,T);}if(Q>=0){P=I[Q];}if(!L||!P){return false;}if(this.useLegacyEvent(L,K)){var N=this.getLegacyIndex(L,K);var M=E[N];if(M){for(O=0,R=M.length;O<R;++O){V=M[O];if(V&&V[this.EL]==L&&V[this.TYPE]==K&&V[this.FN]==T){M[O]=null;break;}}}}else{try{this._simpleRemove(L,K,P[this.WFN],false);}catch(S){this.lastError=S;return false;}}delete I[Q][this.WFN];delete I[Q][this.FN];I[Q]=null;return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;
},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;}else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in D)){K=D[K];}return K;},_getCacheIndex:function(O,P,N){for(var M=0,L=I.length;M<L;++M){var K=I[M];if(K&&K[this.FN]==N&&K[this.EL]==O&&K[this.TYPE]==P){return M;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+A;++A;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(L){if(!H){H=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(this.locked){return false;}if(this.isIE){if(!this.DOMReady){this.startInterval();return false;}}this.locked=true;var P=!H;if(!P){P=(C>0);}var O=[];var Q=function(S,T){var R=S;if(T.override){if(T.override===true){R=T.obj;}else{R=T.override;}}T.fn.call(R,T.obj);};var L,K,N,M;for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&!N.checkReady){M=this.getEl(N.id);if(M){Q(M,N);F[L]=null;}else{O.push(N);}}}for(L=0,K=F.length;L<K;++L){N=F[L];if(N&&N.checkReady){M=this.getEl(N.id);if(M){if(H||M.nextSibling){Q(M,N);F[L]=null;}}else{O.push(N);}}}C=(O.length===0)?0:C-1;if(P){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;return true;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=0,K=Q.length;N<K;++N){var L=Q[N];this.removeListener(M,L.type,L.fn,L.index);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[I,J];}else{if(K==="unload"){L=[J];}else{L=[I];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T&&T.length>0){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(R){var Q=YAHOO.util.Event,O,N,L,K,M;for(O=0,K=J.length;O<K;++O){L=J[O];if(L){var P=window;if(L[Q.ADJ_SCOPE]){if(L[Q.ADJ_SCOPE]===true){P=L[Q.UNLOAD_OBJ];}else{P=L[Q.ADJ_SCOPE];}}L[Q.FN].call(P,Q.getEvent(R,L[Q.EL]),L[Q.UNLOAD_OBJ]);J[O]=null;L=null;P=null;}}J=null;if(I&&I.length>0){N=I.length;while(N){M=N-1;L=I[M];if(L){Q.removeListener(L[Q.EL],L[Q.TYPE],L[Q.FN],M);}N--;}L=null;}G=null;Q._simpleRemove(window,"unload",Q._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;
/* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller */
if(EU.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);EU._dri=setInterval(function(){var n=document.createElement("p");try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){n=null;}},EU.POLL_INTERVAL);}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);
var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(J,I){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(J.shiftKey==F.shift&&J.altKey==F.alt&&J.ctrlKey==F.ctrl){var G;if(F.keys instanceof Array){for(var H=0;H<F.keys.length;H++){G=F.keys[H];if(G==J.charCode){D.fire(J.charCode,J);break;}else{if(G==J.keyCode){D.fire(J.keyCode,J);break;}}}}else{G=F.keys;if(G==J.charCode){D.fire(J.charCode,J);}else{if(G==J.keyCode){D.fire(J.keyCode,J);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.util.KeyListener.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};YAHOO.register("event",YAHOO.util.Event,{version:"2.5.0",build:"895"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.5.0", build: "895"});

//dragdrop.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
if (!YAHOO.util.DragDropMgr) {YAHOO.util.DragDropMgr = function() {var Event = YAHOO.util.Event;return {ids: {},handleIds: {},dragCurrent: null,dragOvers: {},deltaX: 0,deltaY: 0,preventDefault: true,stopPropagation: true,initialized: false,locked: false,interactionInfo: null,init: function() {this.initialized = true;},POINT: 0,INTERSECT: 1,STRICT_INTERSECT: 2,mode: 0,_execOnAll: function(sMethod, args) {for (var i in this.ids) { for (var j in this.ids[i]) {var oDD = this.ids[i][j];if (! this.isTypeOfDD(oDD)) { continue;}oDD[sMethod].apply(oDD, args); }}},_onLoad: function() {this.init();Event.on(document, "mouseup",this.handleMouseUp, this, true);Event.on(document, "mousemove", this.handleMouseMove, this, true);Event.on(window,"unload", this._onUnload, this, true);Event.on(window,"resize", this._onResize, this, true);},_onResize: function(e) {this._execOnAll("resetConstraints", []);},lock: function() { this.locked = true; },unlock: function() { this.locked = false; },isLocked: function() { return this.locked; },locationCache: {},useCache: true,clickPixelThresh: 3,clickTimeThresh: 1000,dragThreshMet: false,clickTimeout: null,startX: 0,startY: 0,fromTimeout: false,regDragDrop: function(oDD, sGroup) {if (!this.initialized) { this.init(); }if (!this.ids[sGroup]) { this.ids[sGroup] = {};}this.ids[sGroup][oDD.id] = oDD;},removeDDFromGroup: function(oDD, sGroup) {if (!this.ids[sGroup]) { this.ids[sGroup] = {};}var obj = this.ids[sGroup];if (obj && obj[oDD.id]) { delete obj[oDD.id];}},_remove: function(oDD) {for (var g in oDD.groups) { if (g && this.ids[g][oDD.id]) {delete this.ids[g][oDD.id]; }}delete this.handleIds[oDD.id];},regHandle: function(sDDId, sHandleId) {if (!this.handleIds[sDDId]) { this.handleIds[sDDId] = {};}this.handleIds[sDDId][sHandleId] = sHandleId;},isDragDrop: function(id) {return ( this.getDDById(id) ) ? true : false;},getRelated: function(p_oDD, bTargetsOnly) {var oDDs = [];for (var i in p_oDD.groups) { for (var j in this.ids[i]) {var dd = this.ids[i][j];if (! this.isTypeOfDD(dd)) { continue;}if (!bTargetsOnly || dd.isTarget) { oDDs[oDDs.length] = dd;} }}return oDDs;},isLegalTarget: function (oDD, oTargetDD) {var targets = this.getRelated(oDD, true);for (var i=0, len=targets.length;i<len;++i) { if (targets[i].id == oTargetDD.id) {return true; } }return false;},isTypeOfDD: function (oDD) {return (oDD && oDD.__ygDragDrop);},isHandle: function(sDDId, sHandleId) {return ( this.handleIds[sDDId] && this.handleIds[sDDId][sHandleId] );},getDDById: function(id) {for (var i in this.ids) { if (this.ids[i][id]) {return this.ids[i][id]; }}return null;},handleMouseDown: function(e, oDD) {this.currentTarget = YAHOO.util.Event.getTarget(e);this.dragCurrent = oDD;var el = oDD.getEl();this.startX = YAHOO.util.Event.getPageX(e);this.startY = YAHOO.util.Event.getPageY(e);this.deltaX = this.startX - el.offsetLeft;this.deltaY = this.startY - el.offsetTop;this.dragThreshMet = false;this.clickTimeout = setTimeout( function() {var DDM = YAHOO.util.DDM; DDM.startDrag(DDM.startX, DDM.startY); DDM.fromTimeout = true;}, this.clickTimeThresh );},startDrag: function(x, y) {clearTimeout(this.clickTimeout);var dc = this.dragCurrent;if (dc && dc.events.b4StartDrag) { dc.b4StartDrag(x, y); dc.fireEvent('b4StartDragEvent', { x: x, y: y });}if (dc && dc.events.startDrag) { dc.startDrag(x, y); dc.fireEvent('startDragEvent', { x: x, y: y });}this.dragThreshMet = true;},handleMouseUp: function(e) {if (this.dragCurrent) { clearTimeout(this.clickTimeout); if (this.dragThreshMet) {if (this.fromTimeout) { this.handleMouseMove(e);}this.fromTimeout = false;this.fireEvents(e, true); } else { } this.stopDrag(e); this.stopEvent(e);}},stopEvent: function(e) {if (this.stopPropagation) { YAHOO.util.Event.stopPropagation(e);}if (this.preventDefault) {YAHOO.util.Event.preventDefault(e);}},stopDrag: function(e, silent) {var dc = this.dragCurrent;if (dc && !silent) {if (this.dragThreshMet) {if (dc.events.b4EndDrag) {dc.b4EndDrag(e);dc.fireEvent('b4EndDragEvent', { e: e });}if (dc.events.endDrag) {dc.endDrag(e);dc.fireEvent('endDragEvent', { e: e });}}if (dc.events.mouseUp) {dc.onMouseUp(e);dc.fireEvent('mouseUpEvent', { e: e });}}this.dragCurrent = null;this.dragOvers = {};},handleMouseMove: function(e) {var dc = this.dragCurrent;if (dc) {if (YAHOO.util.Event.isIE && !e.button) {this.stopEvent(e);return this.handleMouseUp(e);} else {if (e.clientX < 0 || e.clientY < 0) {}}if (!this.dragThreshMet) {var diffX = Math.abs(this.startX - YAHOO.util.Event.getPageX(e));var diffY = Math.abs(this.startY - YAHOO.util.Event.getPageY(e));if (diffX > this.clickPixelThresh || diffY > this.clickPixelThresh) {this.startDrag(this.startX, this.startY);}}if (this.dragThreshMet) {if (dc && dc.events.b4Drag) {dc.b4Drag(e);dc.fireEvent('b4DragEvent', { e: e});}if (dc && dc.events.drag) {dc.onDrag(e);dc.fireEvent('dragEvent', { e: e});}if (dc) {this.fireEvents(e, false);}}this.stopEvent(e);}},fireEvents: function(e, isDrop) {var dc = this.dragCurrent;if (!dc || dc.isLocked() || dc.dragOnly) {return;}var x = YAHOO.util.Event.getPageX(e),y = YAHOO.util.Event.getPageY(e),pt = new YAHOO.util.Point(x,y),pos = dc.getTargetCoord(pt.x, pt.y),el = dc.getDragEl(),events = ['out', 'over', 'drop', 'enter'],curRegion = new YAHOO.util.Region( pos.y, pos.x + el.offsetWidth,pos.y + el.offsetHeight, pos.x ),oldOvers = [], inGroupsObj= {},inGroups= [],data = {outEvts: [],overEvts: [],dropEvts: [],enterEvts: []};for (var i in this.dragOvers) {var ddo = this.dragOvers[i];if (! this.isTypeOfDD(ddo)) {
continue;}if (! this.isOverTarget(pt, ddo, this.mode, curRegion)) {data.outEvts.push( ddo );}oldOvers[i] = true;delete this.dragOvers[i];}for (var sGroup in dc.groups) {if ("string" != typeof sGroup) {continue;}for (i in this.ids[sGroup]) {var oDD = this.ids[sGroup][i];if (! this.isTypeOfDD(oDD)) {continue;}if (oDD.isTarget && !oDD.isLocked() && oDD != dc) {if (this.isOverTarget(pt, oDD, this.mode, curRegion)) {inGroupsObj[sGroup] = true;if (isDrop) {data.dropEvts.push( oDD );} else {if (!oldOvers[oDD.id]) {data.enterEvts.push( oDD );} else {data.overEvts.push( oDD );}this.dragOvers[oDD.id] = oDD;}}}}}this.interactionInfo = {out: data.outEvts,enter:data.enterEvts,over:data.overEvts,drop:data.dropEvts,point:pt,draggedRegion:curRegion,sourceRegion: this.locationCache[dc.id],validDrop: isDrop};for (var inG in inGroupsObj) {inGroups.push(inG);}if (isDrop && !data.dropEvts.length) {this.interactionInfo.validDrop = false;if (dc.events.invalidDrop) {dc.onInvalidDrop(e);dc.fireEvent('invalidDropEvent', { e: e });}}for (i = 0; i < events.length; i++) {var tmp = null;if (data[events[i] + 'Evts']) {tmp = data[events[i] + 'Evts'];}if (tmp && tmp.length) {var type = events[i].charAt(0).toUpperCase() + events[i].substr(1),ev = 'onDrag' + type,b4 = 'b4Drag' + type,cev = 'drag' + type + 'Event',check = 'drag' + type;if (this.mode) {if (dc.events[b4]) {dc[b4](e, tmp, inGroups);dc.fireEvent(b4 + 'Event', { event: e, info: tmp, group: inGroups });}if (dc.events[check]) {dc[ev](e, tmp, inGroups);dc.fireEvent(cev, { event: e, info: tmp, group: inGroups });}} else {for (var b = 0, len = tmp.length; b < len; ++b) {if (dc.events[b4]) {dc[b4](e, tmp[b].id, inGroups[0]);dc.fireEvent(b4 + 'Event', { event: e, info: tmp[b].id, group: inGroups[0] });}if (dc.events[check]) {dc[ev](e, tmp[b].id, inGroups[0]);dc.fireEvent(cev, { event: e, info: tmp[b].id, group: inGroups[0] });}}}}}},getBestMatch: function(dds) {var winner = null;var len = dds.length;if (len == 1) {winner = dds[0];} else {for (var i=0; i<len; ++i) {var dd = dds[i];if (this.mode == this.INTERSECT && dd.cursorIsOver) {winner = dd;break;} else {if (!winner || !winner.overlap || (dd.overlap &&winner.overlap.getArea() < dd.overlap.getArea())) {winner = dd;}}}}return winner;},refreshCache: function(groups) {var g = groups || this.ids;for (var sGroup in g) {if ("string" != typeof sGroup) {continue;}for (var i in this.ids[sGroup]) {var oDD = this.ids[sGroup][i];if (this.isTypeOfDD(oDD)) {var loc = this.getLocation(oDD);if (loc) {this.locationCache[oDD.id] = loc;} else {delete this.locationCache[oDD.id];}}}}},verifyEl: function(el) {try {if (el) {var parent = el.offsetParent;if (parent) {return true;}}} catch(e) {}return false;},getLocation: function(oDD) {if (! this.isTypeOfDD(oDD)) {return null;}var el = oDD.getEl(), pos, x1, x2, y1, y2, t, r, b, l;try {pos= YAHOO.util.Dom.getXY(el);} catch (e) { }if (!pos) {return null;}x1 = pos[0];x2 = x1 + el.offsetWidth;y1 = pos[1];y2 = y1 + el.offsetHeight;t = y1 - oDD.padding[0];r = x2 + oDD.padding[1];b = y2 + oDD.padding[2];l = x1 - oDD.padding[3];return new YAHOO.util.Region( t, r, b, l );},isOverTarget: function(pt, oTarget, intersect, curRegion) {var loc = this.locationCache[oTarget.id];if (!loc || !this.useCache) {loc = this.getLocation(oTarget);this.locationCache[oTarget.id] = loc;}if (!loc) {return false;}oTarget.cursorIsOver = loc.contains( pt );var dc = this.dragCurrent;if (!dc || (!intersect && !dc.constrainX && !dc.constrainY)) {return oTarget.cursorIsOver;}oTarget.overlap = null;if (!curRegion) {var pos = dc.getTargetCoord(pt.x, pt.y);var el = dc.getDragEl();curRegion = new YAHOO.util.Region( pos.y, pos.x + el.offsetWidth,pos.y + el.offsetHeight, pos.x );}var overlap = curRegion.intersect(loc);if (overlap) {oTarget.overlap = overlap;return (intersect) ? true : oTarget.cursorIsOver;} else {return false;}},_onUnload: function(e, me) {this.unregAll();},unregAll: function() {if (this.dragCurrent) {this.stopDrag();this.dragCurrent = null;}this._execOnAll("unreg", []);this.ids = {};},elementCache: {},getElWrapper: function(id) {var oWrapper = this.elementCache[id];if (!oWrapper || !oWrapper.el) {oWrapper = this.elementCache[id] = new this.ElementWrapper(YAHOO.util.Dom.get(id));}return oWrapper;},getElement: function(id) {return YAHOO.util.Dom.get(id);},getCss: function(id) {var el = YAHOO.util.Dom.get(id);return (el) ? el.style : null;},ElementWrapper: function(el) {this.el = el || null;this.id = this.el && el.id;this.css = this.el && el.style;},getPosX: function(el) {return YAHOO.util.Dom.getX(el);},getPosY: function(el) {return YAHOO.util.Dom.getY(el); },swapNode: function(n1, n2) {if (n1.swapNode) {n1.swapNode(n2);} else {var p = n2.parentNode;var s = n2.nextSibling;if (s == n1) {p.insertBefore(n1, n2);} else if (n2 == n1.nextSibling) {p.insertBefore(n2, n1);} else {n1.parentNode.replaceChild(n2, n1);p.insertBefore(n1, s);}}},getScroll: function () {var t, l, dde=document.documentElement, db=document.body;if (dde && (dde.scrollTop || dde.scrollLeft)) {t = dde.scrollTop;l = dde.scrollLeft;} else if (db) {t = db.scrollTop;l = db.scrollLeft;} else {}return { top: t, left: l };},getStyle: function(el, styleProp) {return YAHOO.util.Dom.getStyle(el, styleProp);},getScrollTop: function () { return this.getScroll().top; },getScrollLeft: function () { return this.getScroll().left; },moveToEl: function (moveEl, targetEl) {var aCoord = YAHOO.util.Dom.getXY(targetEl);YAHOO.util.Dom.setXY(moveEl, aCoord);},getClientHeight: function() {return YAHOO.util.Dom.getViewportHeight();},getClientWidth: function() {return YAHOO.util.Dom.getViewportWidth();},numericSort: function(a, b) { return (a - b); },_timeoutCount: 0,_addListeners: function() {var DDM = YAHOO.util.DDM;if ( YAHOO.util.Event && document ) {DDM._onLoad();} else {if (DDM._timeoutCount > 2000) {
}else {setTimeout(DDM._addListeners, 10);if (document && document.body) {DDM._timeoutCount += 1;}}}},handleWasClicked: function(node, id) {if (this.isHandle(id, node.id)) {return true;} else {var p = node.parentNode;while (p) {if (this.isHandle(id, p.id)) {return true;} else {p = p.parentNode;}}}return false;}};}();YAHOO.util.DDM = YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function() {var Event=YAHOO.util.Event; var Dom=YAHOO.util.Dom;YAHOO.util.DragDrop = function(id, sGroup, config) {if (id) {this.init(id, sGroup, config); }};YAHOO.util.DragDrop.prototype = {events: null,on: function() {this.subscribe.apply(this, arguments);},id: null,config: null,dragElId: null, handleElId: null, invalidHandleTypes: null, invalidHandleIds: null, invalidHandleClasses: null,startPageX: 0,startPageY: 0,groups: null,locked: false,lock: function() { this.locked = true; },unlock: function() { this.locked = false; },isTarget: true,padding: null,dragOnly: false,_domRef: null,__ygDragDrop: true,constrainX: false,constrainY: false,minX: 0,maxX: 0,minY: 0,maxY: 0,deltaX: 0,deltaY: 0,maintainOffset: false,xTicks: null,yTicks: null,primaryButtonOnly: true,available: false,hasOuterHandles: false,cursorIsOver: false,overlap: null,b4StartDrag: function(x, y) { },startDrag: function(x, y) {},b4Drag: function(e) { },onDrag: function(e) {},onDragEnter: function(e, id) {},b4DragOver: function(e) { },onDragOver: function(e, id) {},b4DragOut: function(e) { },onDragOut: function(e, id) {},b4DragDrop: function(e) { },onDragDrop: function(e, id) {},onInvalidDrop: function(e) {},b4EndDrag: function(e) { },endDrag: function(e) {},b4MouseDown: function(e) {},onMouseDown: function(e) {},onMouseUp: function(e) {},onAvailable: function () { },getEl: function() { if (!this._domRef) {this._domRef = Dom.get(this.id); }return this._domRef;},getDragEl: function() {return Dom.get(this.dragElId);},init: function(id, sGroup, config) {this.initTarget(id, sGroup, config);Event.on(this._domRef || this.id, "mousedown", this.handleMouseDown, this, true);for (var i in this.events) {this.createEvent(i + 'Event');}},initTarget: function(id, sGroup, config) {this.config = config || {};this.events = {};this.DDM = YAHOO.util.DDM;this.groups = {};if (typeof id !== "string") {this._domRef = id;d = Dom.generateId(id);}this.id = id;this.addToGroup((sGroup) ? sGroup : "default");this.handleElId = id;Event.onAvailable(id, this.handleOnAvailable, this, true);this.setDragElId(id); this.invalidHandleTypes = { A: "A" };this.invalidHandleIds = {};this.invalidHandleClasses = [];this.applyConfig();},applyConfig: function() {this.events = {mouseDown: true,b4MouseDown: true,mouseUp: true,b4StartDrag: true,startDrag: true,b4EndDrag: true,endDrag: true,drag: true,b4Drag: true,invalidDrop: true,b4DragOut: true,dragOut: true,dragEnter: true,b4DragOver: true,dragOver: true,b4DragDrop: true,dragDrop: true};if (this.config.events) {for (var i in this.config.events) {if (this.config.events[i] === false) {this.events[i] = false;}}}this.padding= this.config.padding || [0, 0, 0, 0];this.isTarget = (this.config.isTarget !== false);this.maintainOffset = (this.config.maintainOffset);this.primaryButtonOnly = (this.config.primaryButtonOnly !== false);this.dragOnly = ((this.config.dragOnly === true) ? true : false);},handleOnAvailable: function() {this.available = true;this.resetConstraints();this.onAvailable();},setPadding: function(iTop, iRight, iBot, iLeft) {if (!iRight && 0 !== iRight) {this.padding = [iTop, iTop, iTop, iTop];} else if (!iBot && 0 !== iBot) {this.padding = [iTop, iRight, iTop, iRight];} else {this.padding = [iTop, iRight, iBot, iLeft];}},setInitPosition: function(diffX, diffY) {var el = this.getEl();if (!this.DDM.verifyEl(el)) {if (el && el.style && (el.style.display == 'none')) {} else {}return;}var dx = diffX || 0;var dy = diffY || 0;var p = Dom.getXY( el );this.initPageX = p[0] - dx;this.initPageY = p[1] - dy;this.lastPageX = p[0];this.lastPageY = p[1];this.setStartPosition(p);},setStartPosition: function(pos) {var p = pos || Dom.getXY(this.getEl());this.deltaSetXY = null;this.startPageX = p[0];this.startPageY = p[1];},addToGroup: function(sGroup) {this.groups[sGroup] = true;this.DDM.regDragDrop(this, sGroup);},removeFromGroup: function(sGroup) {if (this.groups[sGroup]) {delete this.groups[sGroup];}this.DDM.removeDDFromGroup(this, sGroup);},setDragElId: function(id) {this.dragElId = id;},setHandleElId: function(id) {if (typeof id !== "string") {id = Dom.generateId(id);}this.handleElId = id;this.DDM.regHandle(this.id, id);},setOuterHandleElId: function(id) {if (typeof id !== "string") {id = Dom.generateId(id);}Event.on(id, "mousedown", this.handleMouseDown, this, true);this.setHandleElId(id);this.hasOuterHandles = true;},unreg: function() {Event.removeListener(this.id, "mousedown", this.handleMouseDown);this._domRef = null;this.DDM._remove(this);},isLocked: function() {return (this.DDM.isLocked() || this.locked);},handleMouseDown: function(e, oDD) {var button = e.which || e.button;if (this.primaryButtonOnly && button > 1) {return;}if (this.isLocked()) {return;}var b4Return = this.b4MouseDown(e);if (this.events.b4MouseDown) {b4Return = this.fireEvent('b4MouseDownEvent', e);}var mDownReturn = this.onMouseDown(e);if (this.events.mouseDown) {mDownReturn = this.fireEvent('mouseDownEvent', e);}if ((b4Return === false) || (mDownReturn === false)) {return;}this.DDM.refreshCache(this.groups);var pt = new YAHOO.util.Point(Event.getPageX(e), Event.getPageY(e));if (!this.hasOuterHandles && !this.DDM.isOverTarget(pt, this)){} else {if (this.clickValidator(e)) {this.setStartPosition();this.DDM.handleMouseDown(e, this);this.DDM.stopEvent(e);} else {}}},clickValidator: function(e) {var target = YAHOO.util.Event.getTarget(e);
return ( this.isValidHandleChild(target) &&(this.id == this.handleElId || this.DDM.handleWasClicked(target, this.id)) );},getTargetCoord: function(iPageX, iPageY) {var x = iPageX - this.deltaX;var y = iPageY - this.deltaY;if (this.constrainX) {if (x < this.minX) { x = this.minX; }if (x > this.maxX) { x = this.maxX; }}if (this.constrainY) {if (y < this.minY) { y = this.minY; }if (y > this.maxY) { y = this.maxY; }}x = this.getTick(x, this.xTicks);y = this.getTick(y, this.yTicks);return {x:x, y:y};},addInvalidHandleType: function(tagName) {var type = tagName.toUpperCase();this.invalidHandleTypes[type] = type;},addInvalidHandleId: function(id) {if (typeof id !== "string") {id = Dom.generateId(id);}this.invalidHandleIds[id] = id;},addInvalidHandleClass: function(cssClass) {this.invalidHandleClasses.push(cssClass);},removeInvalidHandleType: function(tagName) {var type = tagName.toUpperCase();delete this.invalidHandleTypes[type];},removeInvalidHandleId: function(id) {if (typeof id !== "string") {id = Dom.generateId(id);}delete this.invalidHandleIds[id];},removeInvalidHandleClass: function(cssClass) {for (var i=0, len=this.invalidHandleClasses.length; i<len; ++i) {if (this.invalidHandleClasses[i] == cssClass) {delete this.invalidHandleClasses[i];}}},isValidHandleChild: function(node) {var valid = true;var nodeName;try {nodeName = node.nodeName.toUpperCase();} catch(e) {nodeName = node.nodeName;}valid = valid && !this.invalidHandleTypes[nodeName];valid = valid && !this.invalidHandleIds[node.id];for (var i=0, len=this.invalidHandleClasses.length; valid && i<len; ++i) {valid = !Dom.hasClass(node, this.invalidHandleClasses[i]);}return valid;},setXTicks: function(iStartX, iTickSize) {this.xTicks = [];this.xTickSize = iTickSize;var tickMap = {};for (var i = this.initPageX; i >= this.minX; i = i - iTickSize) {if (!tickMap[i]) {this.xTicks[this.xTicks.length] = i;tickMap[i] = true;}}for (i = this.initPageX; i <= this.maxX; i = i + iTickSize) {if (!tickMap[i]) {this.xTicks[this.xTicks.length] = i;tickMap[i] = true;}}this.xTicks.sort(this.DDM.numericSort) ;},setYTicks: function(iStartY, iTickSize) {this.yTicks = [];this.yTickSize = iTickSize;var tickMap = {};for (var i = this.initPageY; i >= this.minY; i = i - iTickSize) {if (!tickMap[i]) {this.yTicks[this.yTicks.length] = i;tickMap[i] = true;}}for (i = this.initPageY; i <= this.maxY; i = i + iTickSize) {if (!tickMap[i]) {this.yTicks[this.yTicks.length] = i;tickMap[i] = true;}}this.yTicks.sort(this.DDM.numericSort) ;},setXConstraint: function(iLeft, iRight, iTickSize) {this.leftConstraint = parseInt(iLeft, 10);this.rightConstraint = parseInt(iRight, 10);this.minX = this.initPageX - this.leftConstraint;this.maxX = this.initPageX + this.rightConstraint;if (iTickSize) { this.setXTicks(this.initPageX, iTickSize); }this.constrainX = true;},clearConstraints: function() {this.constrainX = false;this.constrainY = false;this.clearTicks();},clearTicks: function() {this.xTicks = null;this.yTicks = null;this.xTickSize = 0;this.yTickSize = 0;},setYConstraint: function(iUp, iDown, iTickSize) {this.topConstraint = parseInt(iUp, 10);this.bottomConstraint = parseInt(iDown, 10);this.minY = this.initPageY - this.topConstraint;this.maxY = this.initPageY + this.bottomConstraint;if (iTickSize) { this.setYTicks(this.initPageY, iTickSize); }this.constrainY = true;},resetConstraints: function() {if (this.initPageX || this.initPageX === 0) {var dx = (this.maintainOffset) ? this.lastPageX - this.initPageX : 0;var dy = (this.maintainOffset) ? this.lastPageY - this.initPageY : 0;this.setInitPosition(dx, dy);} else {this.setInitPosition();}if (this.constrainX) {this.setXConstraint( this.leftConstraint, this.rightConstraint, this.xTickSize);}if (this.constrainY) {this.setYConstraint( this.topConstraint, this.bottomConstraint, this.yTickSize);}},getTick: function(val, tickArray) {if (!tickArray) {return val; } else if (tickArray[0] >= val) {return tickArray[0];} else {for (var i=0, len=tickArray.length; i<len; ++i) {var next = i + 1;if (tickArray[next] && tickArray[next] >= val) {var diff1 = val - tickArray[i];var diff2 = tickArray[next] - val;return (diff2 > diff1) ? tickArray[i] : tickArray[next];}}return tickArray[tickArray.length - 1];}},toString: function() {return ("DragDrop " + this.id);}};YAHOO.augment(YAHOO.util.DragDrop, YAHOO.util.EventProvider);})();YAHOO.util.DD = function(id, sGroup, config) {if (id) {this.init(id, sGroup, config);}};YAHOO.extend(YAHOO.util.DD, YAHOO.util.DragDrop, {scroll: true, autoOffset: function(iPageX, iPageY) {var x = iPageX - this.startPageX;var y = iPageY - this.startPageY;this.setDelta(x, y);},setDelta: function(iDeltaX, iDeltaY) {this.deltaX = iDeltaX;this.deltaY = iDeltaY;},setDragElPos: function(iPageX, iPageY) {var el = this.getDragEl();this.alignElWithMouse(el, iPageX, iPageY);},alignElWithMouse: function(el, iPageX, iPageY) {var oCoord = this.getTargetCoord(iPageX, iPageY);if (!this.deltaSetXY) {var aCoord = [oCoord.x, oCoord.y];YAHOO.util.Dom.setXY(el, aCoord);var newLeft = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 );var newTop= parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 );this.deltaSetXY = [ newLeft - oCoord.x, newTop - oCoord.y ];} else {YAHOO.util.Dom.setStyle(el, "left", (oCoord.x + this.deltaSetXY[0]) + "px");YAHOO.util.Dom.setStyle(el, "top",(oCoord.y + this.deltaSetXY[1]) + "px");}this.cachePosition(oCoord.x, oCoord.y);var self = this;setTimeout(function() {self.autoScroll.call(self, oCoord.x, oCoord.y, el.offsetHeight, el.offsetWidth);}, 0);},cachePosition: function(iPageX, iPageY) {if (iPageX) {this.lastPageX = iPageX;this.lastPageY = iPageY;} else {var aCoord = YAHOO.util.Dom.getXY(this.getEl());this.lastPageX = aCoord[0];this.lastPageY = aCoord[1];}},autoScroll: function(x, y, h, w) {if (this.scroll) {var clientH = this.DDM.getClientHeight();var clientW = this.DDM.getClientWidth();
var st = this.DDM.getScrollTop();var sl = this.DDM.getScrollLeft();var bot = h + y;var right = w + x;var toBot = (clientH + st - y - this.deltaY);var toRight = (clientW + sl - x - this.deltaX);var thresh = 40;var scrAmt = (document.all) ? 80 : 30;if ( bot > clientH && toBot < thresh ) { window.scrollTo(sl, st + scrAmt); }if ( y < st && st > 0 && y - st < thresh ) { window.scrollTo(sl, st - scrAmt); }if ( right > clientW && toRight < thresh ) { window.scrollTo(sl + scrAmt, st); }if ( x < sl && sl > 0 && x - sl < thresh ) { window.scrollTo(sl - scrAmt, st);}}},applyConfig: function() {YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll = (this.config.scroll !== false);},b4MouseDown: function(e) {this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(e), YAHOO.util.Event.getPageY(e));},b4Drag: function(e) {this.setDragElPos(YAHOO.util.Event.getPageX(e), YAHOO.util.Event.getPageY(e));},toString: function() {return ("DD " + this.id);}});YAHOO.util.DDProxy = function(id, sGroup, config) {if (id) {this.init(id, sGroup, config);this.initFrame(); }};YAHOO.util.DDProxy.dragElId = "ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy, YAHOO.util.DD, {resizeFrame: true,centerFrame: false,createFrame: function() {var self=this, body=document.body;if (!body || !body.firstChild) {setTimeout( function() { self.createFrame(); }, 50 );return;}var div=this.getDragEl(), Dom=YAHOO.util.Dom;if (!div) {div = document.createElement("div");div.id = this.dragElId;var s= div.style;s.position= "absolute";s.visibility = "hidden";s.cursor= "move";s.border= "2px solid #aaa";s.zIndex= 999;s.height= "25px";s.width= "25px";var _data = document.createElement('div');Dom.setStyle(_data, 'height', '100%');Dom.setStyle(_data, 'width', '100%');Dom.setStyle(_data, 'background-color', '#ccc');Dom.setStyle(_data, 'opacity', '0');div.appendChild(_data);if (YAHOO.env.ua.ie) {var ifr = document.createElement('iframe');ifr.setAttribute('src', 'about:blank');ifr.setAttribute('scrolling', 'no');ifr.setAttribute('frameborder', '0');div.insertBefore(ifr, div.firstChild);Dom.setStyle(ifr, 'height', '100%');Dom.setStyle(ifr, 'width', '100%');Dom.setStyle(ifr, 'position', 'absolute');Dom.setStyle(ifr, 'top', '0');Dom.setStyle(ifr, 'left', '0');Dom.setStyle(ifr, 'opacity', '0');Dom.setStyle(ifr, 'zIndex', '-1');Dom.setStyle(ifr.nextSibling, 'zIndex', '2');}body.insertBefore(div, body.firstChild);}},initFrame: function() {this.createFrame();},applyConfig: function() {YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame = (this.config.resizeFrame !== false);this.centerFrame = (this.config.centerFrame);this.setDragElId(this.config.dragElId || YAHOO.util.DDProxy.dragElId);},showFrame: function(iPageX, iPageY) {var el = this.getEl();var dragEl = this.getDragEl();var s = dragEl.style;this._resizeProxy();if (this.centerFrame) {this.setDelta( Math.round(parseInt(s.width,10)/2), Math.round(parseInt(s.height, 10)/2) );}this.setDragElPos(iPageX, iPageY);YAHOO.util.Dom.setStyle(dragEl, "visibility", "visible"); },_resizeProxy: function() {if (this.resizeFrame) {var DOM = YAHOO.util.Dom;var el  = this.getEl();var dragEl = this.getDragEl();var bt = parseInt( DOM.getStyle(dragEl, "borderTopWidth" ), 10);var br = parseInt( DOM.getStyle(dragEl, "borderRightWidth"  ), 10);var bb = parseInt( DOM.getStyle(dragEl, "borderBottomWidth" ), 10);var bl = parseInt( DOM.getStyle(dragEl, "borderLeftWidth"), 10);if (isNaN(bt)) { bt = 0; }if (isNaN(br)) { br = 0; }if (isNaN(bb)) { bb = 0; }if (isNaN(bl)) { bl = 0; }var newWidth  = Math.max(0, el.offsetWidth  - br - bl);var newHeight = Math.max(0, el.offsetHeight - bt - bb);DOM.setStyle( dragEl, "width",  newWidth  + "px" );DOM.setStyle( dragEl, "height", newHeight + "px" );}},b4MouseDown: function(e) {this.setStartPosition();var x = YAHOO.util.Event.getPageX(e);var y = YAHOO.util.Event.getPageY(e);this.autoOffset(x, y);},b4StartDrag: function(x, y) {this.showFrame(x, y);},b4EndDrag: function(e) {YAHOO.util.Dom.setStyle(this.getDragEl(), "visibility", "hidden"); }, endDrag: function(e) {var DOM = YAHOO.util.Dom;var lel = this.getEl();var del = this.getDragEl();DOM.setStyle(del, "visibility", ""); DOM.setStyle(lel, "visibility", "hidden"); YAHOO.util.DDM.moveToEl(lel, del);DOM.setStyle(del, "visibility", "hidden"); DOM.setStyle(lel, "visibility", ""); },toString: function() {return ("DDProxy " + this.id);}});YAHOO.util.DDTarget = function(id, sGroup, config) {if (id) {this.initTarget(id, sGroup, config);}};YAHOO.extend(YAHOO.util.DDTarget, YAHOO.util.DragDrop, {toString: function() {return ("DDTarget " + this.id);}});YAHOO.register("dragdrop", YAHOO.util.DragDropMgr, {version: "2.5.0", build: "895"});

//slider.js
/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
YAHOO.widget.Slider=function(sElementId, sGroup, oThumb, sType){YAHOO.widget.Slider.ANIM_AVAIL = (!YAHOO.lang.isUndefined(YAHOO.util.Anim));if (sElementId) {this.init(sElementId, sGroup, true);this.initSlider(sType);this.initThumb(oThumb);}};YAHOO.widget.Slider.getHorizSlider = function (sBGElId, sHandleElId, iLeft, iRight, iTickSize) {return new YAHOO.widget.Slider(sBGElId, sBGElId, new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, iLeft, iRight, 0, 0, iTickSize), "horiz");};YAHOO.widget.Slider.getVertSlider = function (sBGElId, sHandleElId, iUp, iDown, iTickSize) {return new YAHOO.widget.Slider(sBGElId, sBGElId, new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, 0, 0, iUp, iDown, iTickSize), "vert");};YAHOO.widget.Slider.getSliderRegion = function (sBGElId, sHandleElId, iLeft, iRight, iUp, iDown, iTickSize) {return new YAHOO.widget.Slider(sBGElId, sBGElId, new YAHOO.widget.SliderThumb(sHandleElId, sBGElId, iLeft, iRight, iUp, iDown, iTickSize), "region");};YAHOO.widget.Slider.ANIM_AVAIL = false;YAHOO.extend(YAHOO.widget.Slider, YAHOO.util.DragDrop, {dragOnly : true,initSlider: function(sType) {this.type = sType;this.createEvent("change", this);this.createEvent("slideStart", this);this.createEvent("slideEnd", this);this.isTarget = false;this.animate = YAHOO.widget.Slider.ANIM_AVAIL;this.backgroundEnabled = true;this.tickPause = 40;this.enableKeys = true;this.keyIncrement = 20;this.moveComplete = true;this.animationDuration = 0.2;this.SOURCE_UI_EVENT = 1;this.SOURCE_SET_VALUE = 2;this.valueChangeSource = 0;this._silent = false;this.lastOffset = [0,0];},initThumb: function(t) {var self = this;this.thumb = t;t.cacheBetweenDrags = true;if (t._isHoriz && t.xTicks && t.xTicks.length) {this.tickPause = Math.round(360 / t.xTicks.length);} else if (t.yTicks && t.yTicks.length) {this.tickPause = Math.round(360 / t.yTicks.length);}t.onAvailable = function() { return self.setStartSliderState(); };t.onMouseDown = function () { return self.focus(); };t.startDrag = function() { self._slideStart(); };t.onDrag = function() { self.fireEvents(true); };t.onMouseUp = function() { self.thumbMouseUp(); };},onAvailable: function() {var Event = YAHOO.util.Event;Event.on(this.id, "keydown",this.handleKeyDown,this, true);Event.on(this.id, "keypress", this.handleKeyPress, this, true);},handleKeyPress: function(e) {if (this.enableKeys) {var Event = YAHOO.util.Event;var kc = Event.getCharCode(e);switch (kc) {case 0x25: case 0x26: case 0x27: case 0x28: case 0x24: case 0x23: Event.preventDefault(e);break;default:}}},handleKeyDown: function(e) {if (this.enableKeys) {var Event = YAHOO.util.Event;var kc = Event.getCharCode(e), t=this.thumb;var h=this.getXValue(),v=this.getYValue();var horiz = false;var changeValue = true;switch (kc) {case 0x25: h -= this.keyIncrement; break;case 0x26: v -= this.keyIncrement; break;case 0x27: h += this.keyIncrement; break;case 0x28: v += this.keyIncrement; break;case 0x24: h = t.leftConstraint; v = t.topConstraint; break;case 0x23: h = t.rightConstraint; v = t.bottomConstraint; break;default:changeValue = false;}if (changeValue) {if (t._isRegion) {this.setRegionValue(h, v, true);} else {var newVal = (t._isHoriz) ? h : v;this.setValue(newVal, true);}Event.stopEvent(e);}}},setStartSliderState: function() {this.setThumbCenterPoint();this.baselinePos = YAHOO.util.Dom.getXY(this.getEl());this.thumb.startOffset = this.thumb.getOffsetFromParent(this.baselinePos);if (this.thumb._isRegion) {if (this.deferredSetRegionValue) {this.setRegionValue.apply(this, this.deferredSetRegionValue, true);this.deferredSetRegionValue = null;} else {this.setRegionValue(0, 0, true, true, true);}} else {if (this.deferredSetValue) {this.setValue.apply(this, this.deferredSetValue, true);this.deferredSetValue = null;} else {this.setValue(0, true, true, true);}}},setThumbCenterPoint: function() {var el = this.thumb.getEl();if (el) {this.thumbCenterPoint = { x: parseInt(el.offsetWidth/2, 10), y: parseInt(el.offsetHeight/2, 10) };}},lock: function() {this.thumb.lock();this.locked = true;},unlock: function() {this.thumb.unlock();this.locked = false;},thumbMouseUp: function() {if (!this.isLocked() && !this.moveComplete) {this.endMove();}},onMouseUp: function() {if (!this.isLocked() && !this.moveComplete) {this.endMove();}},getThumb: function() {return this.thumb;},focus: function() {this.valueChangeSource = this.SOURCE_UI_EVENT;var el = this.getEl();if (el.focus) {try {el.focus();} catch(e) {}}this.verifyOffset();if (this.isLocked()) {return false;} 
else {this._slideStart();return true;}},onChange: function (firstOffset, secondOffset) { },onSlideStart: function () { },onSlideEnd: function () { },getValue: function () { return this.thumb.getValue();},getXValue: function () { return this.thumb.getXValue();},getYValue: function () { return this.thumb.getYValue();},handleThumbChange: function () { },setValue: function(newOffset, skipAnim, force, silent) {this._silent = silent;this.valueChangeSource = this.SOURCE_SET_VALUE;if (!this.thumb.available) {this.deferredSetValue = arguments;return false;}if (this.isLocked() && !force) {return false;}if ( isNaN(newOffset) ) {return false;}var t = this.thumb;t.lastOffset = [newOffset, newOffset];var newX, newY;this.verifyOffset(true);if (t._isRegion) {return false;} else if (t._isHoriz) {this._slideStart();newX = t.initPageX + newOffset + this.thumbCenterPoint.x;this.moveThumb(newX, t.initPageY, skipAnim);} else {this._slideStart();newY = t.initPageY + newOffset + this.thumbCenterPoint.y;this.moveThumb(t.initPageX, newY, skipAnim);}return true;},setRegionValue: function(newOffset, newOffset2, skipAnim, force, silent) {this._silent = silent;this.valueChangeSource = this.SOURCE_SET_VALUE;if (!this.thumb.available) {this.deferredSetRegionValue = arguments;return false;}if (this.isLocked() && !force) {return false;}if ( isNaN(newOffset) ) {return false;}var t = this.thumb;t.lastOffset = [newOffset, newOffset2];this.verifyOffset(true);if (t._isRegion) {this._slideStart();var newX = t.initPageX + newOffset + this.thumbCenterPoint.x;var newY = t.initPageY + newOffset2 + this.thumbCenterPoint.y;this.moveThumb(newX, newY, skipAnim);return true;}return false;},verifyOffset: function(checkPos) {var newPos = YAHOO.util.Dom.getXY(this.getEl());if (newPos) {if (newPos[0] != this.baselinePos[0] || newPos[1] != this.baselinePos[1]) {this.thumb.resetConstraints();this.baselinePos = newPos;return false;}}return true;},moveThumb: function(x, y, skipAnim, midMove) {var t = this.thumb;var self = this;if (!t.available) {return;}t.setDelta(this.thumbCenterPoint.x, this.thumbCenterPoint.y);var _p = t.getTargetCoord(x, y);var p = [_p.x, _p.y];this._slideStart();if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && t._graduated && !skipAnim) {this.lock();this.curCoord = YAHOO.util.Dom.getXY(this.thumb.getEl());setTimeout( function() { self.moveOneTick(p); }, this.tickPause );} else if (this.animate && YAHOO.widget.Slider.ANIM_AVAIL && !skipAnim) {this.lock();var oAnim = new YAHOO.util.Motion( t.id, { points: { to: p } }, this.animationDuration, YAHOO.util.Easing.easeOut );oAnim.onComplete.subscribe( function() { self.endMove(); } );oAnim.animate();} else {t.setDragElPos(x, y);if (!midMove) {this.endMove();}}},_slideStart: function() {if (!this._sliding) {if (!this._silent) {this.onSlideStart();this.fireEvent("slideStart");}this._sliding = true;}},_slideEnd: function() {if (this._sliding && this.moveComplete) {if (!this._silent) {this.onSlideEnd();this.fireEvent("slideEnd");}this._sliding = false;this._silent = false;this.moveComplete = false;}},moveOneTick: function(finalCoord) {var t = this.thumb, tmp;var nextCoord = null;if (t._isRegion) {nextCoord = this._getNextX(this.curCoord, finalCoord);var tmpX = (nextCoord) ? nextCoord[0] : this.curCoord[0];nextCoord = this._getNextY([tmpX, this.curCoord[1]], finalCoord);} else if (t._isHoriz) {nextCoord = this._getNextX(this.curCoord, finalCoord);} else {nextCoord = this._getNextY(this.curCoord, finalCoord);}if (nextCoord) {this.curCoord = nextCoord;this.thumb.alignElWithMouse(t.getEl(), nextCoord[0], nextCoord[1]);if (!(nextCoord[0] == finalCoord[0] && nextCoord[1] == finalCoord[1])) {var self = this;setTimeout(function() { self.moveOneTick(finalCoord); }, this.tickPause);} else {this.endMove();}} else {this.endMove();}},_getNextX: function(curCoord, finalCoord) {var t = this.thumb;var thresh;var tmp = [];var nextCoord = null;if (curCoord[0] > finalCoord[0]) {thresh = t.tickSize - this.thumbCenterPoint.x;tmp = t.getTargetCoord( curCoord[0] - thresh, curCoord[1] );nextCoord = [tmp.x, tmp.y];} else if (curCoord[0] < finalCoord[0]) {thresh = t.tickSize + this.thumbCenterPoint.x;tmp = t.getTargetCoord( curCoord[0] + thresh, curCoord[1] );nextCoord = [tmp.x, tmp.y];} else {}return nextCoord;},_getNextY: function(curCoord, finalCoord) {var t = this.thumb;var thresh;var tmp = [];var nextCoord = null;if (curCoord[1] > finalCoord[1]) {thresh = t.tickSize - this.thumbCenterPoint.y;tmp = t.getTargetCoord( curCoord[0], curCoord[1] - thresh );nextCoord = [tmp.x, tmp.y];
} else if (curCoord[1] < finalCoord[1]) {thresh = t.tickSize + this.thumbCenterPoint.y;tmp = t.getTargetCoord( curCoord[0], curCoord[1] + thresh );nextCoord = [tmp.x, tmp.y];} else {}return nextCoord;},b4MouseDown: function(e) {this.thumb.autoOffset();this.thumb.resetConstraints();},onMouseDown: function(e) {if (! this.isLocked() && this.backgroundEnabled) {var x = YAHOO.util.Event.getPageX(e);var y = YAHOO.util.Event.getPageY(e);this.focus();this.moveThumb(x, y);}},onDrag: function(e) {if (! this.isLocked()) {var x = YAHOO.util.Event.getPageX(e);var y = YAHOO.util.Event.getPageY(e);this.moveThumb(x, y, true, true);this.fireEvents();}},endMove: function () {this.unlock();this.moveComplete = true;this.fireEvents();},fireEvents: function (thumbEvent) {var t = this.thumb;if (!thumbEvent) {t.cachePosition();}if (! this.isLocked()) {if (t._isRegion) {var newX = t.getXValue();var newY = t.getYValue();if (newX != this.previousX || newY != this.previousY) {if (!this._silent) {this.onChange(newX, newY);this.fireEvent("change", { x: newX, y: newY });}}this.previousX = newX;this.previousY = newY;} else {var newVal = t.getValue();if (newVal != this.previousVal) {if (!this._silent) {this.onChange( newVal );this.fireEvent("change", newVal);}}this.previousVal = newVal;}this._slideEnd();}},toString: function () { return ("Slider (" + this.type +") " + this.id);}});YAHOO.augment(YAHOO.widget.Slider, YAHOO.util.EventProvider);YAHOO.widget.SliderThumb = function(id, sGroup, iLeft, iRight, iUp, iDown, iTickSize) {if (id) {YAHOO.widget.SliderThumb.superclass.constructor.call(this, id, sGroup);this.parentElId = sGroup;}this.isTarget = false;this.tickSize = iTickSize;this.maintainOffset = true;this.initSlider(iLeft, iRight, iUp, iDown, iTickSize);this.scroll = false;}; YAHOO.extend(YAHOO.widget.SliderThumb, YAHOO.util.DD, {startOffset: null,dragOnly : true,_isHoriz: false,_prevVal: 0,_graduated: false,getOffsetFromParent0: function(parentPos) {var myPos = YAHOO.util.Dom.getXY(this.getEl());var ppos= parentPos || YAHOO.util.Dom.getXY(this.parentElId);return [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ];},getOffsetFromParent: function(parentPos) {var el = this.getEl(), newOffset;if (!this.deltaOffset) {var myPos = YAHOO.util.Dom.getXY(el);var ppos= parentPos || YAHOO.util.Dom.getXY(this.parentElId);newOffset = [ (myPos[0] - ppos[0]), (myPos[1] - ppos[1]) ];var l = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 );var t = parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 );var deltaX = l - newOffset[0];var deltaY = t - newOffset[1];if (isNaN(deltaX) || isNaN(deltaY)) {} else {this.deltaOffset = [deltaX, deltaY];}} else {var newLeft = parseInt( YAHOO.util.Dom.getStyle(el, "left"), 10 );var newTop= parseInt( YAHOO.util.Dom.getStyle(el, "top" ), 10 );newOffset= [newLeft + this.deltaOffset[0], newTop + this.deltaOffset[1]];}return newOffset;},initSlider: function (iLeft, iRight, iUp, iDown, iTickSize) {this.initLeft = iLeft;this.initRight = iRight;this.initUp = iUp;this.initDown = iDown;this.setXConstraint(iLeft, iRight, iTickSize);this.setYConstraint(iUp, iDown, iTickSize);if (iTickSize && iTickSize > 1) {this._graduated = true;}this._isHoriz= (iLeft || iRight); this._isVert= (iUp|| iDown);this._isRegion = (this._isHoriz && this._isVert); },clearTicks: function () {YAHOO.widget.SliderThumb.superclass.clearTicks.call(this);this.tickSize = 0;this._graduated = false;},getValue: function () {return (this._isHoriz) ? this.getXValue() : this.getYValue();},getXValue: function () {if (!this.available) { return 0; }var newOffset = this.getOffsetFromParent();if (YAHOO.lang.isNumber(newOffset[0])) {this.lastOffset = newOffset;return (newOffset[0] - this.startOffset[0]);} else {return (this.lastOffset[0] - this.startOffset[0]);}},getYValue: function () {if (!this.available) { return 0; }var newOffset = this.getOffsetFromParent();if (YAHOO.lang.isNumber(newOffset[1])) {this.lastOffset = newOffset;return (newOffset[1] - this.startOffset[1]);} else {return (this.lastOffset[1] - this.startOffset[1]);}},toString: function () { return "SliderThumb " + this.id;},onChange: function (x, y) { }});YAHOO.widget.DualSlider = function(minSlider, maxSlider, range, initVals) {var self = this,lang = YAHOO.lang;this.minSlider = minSlider;this.maxSlider = maxSlider;this.activeSlider = minSlider;this.isHoriz = minSlider.thumb._isHoriz;initVals = YAHOO.lang.isArray(initVals) ? initVals : [0,range];initVals[0] = Math.min(Math.max(parseInt(initVals[0],10)|0,0),range);initVals[1] = Math.max(Math.min(parseInt(initVals[1],10)|0,range),0);
if (initVals[0] > initVals[1]) {initVals.splice(0,2,initVals[1],initVals[0]);}var ready = { min : false, max : false };this.minSlider.thumb.onAvailable = function () {minSlider.setStartSliderState();ready.min = true;if (ready.max) {minSlider.setValue(initVals[0],true,true,true);maxSlider.setValue(initVals[1],true,true,true);self.updateValue(true);self.fireEvent('ready',self);}};this.maxSlider.thumb.onAvailable = function () {maxSlider.setStartSliderState();ready.max = true;if (ready.min) {minSlider.setValue(initVals[0],true,true,true);maxSlider.setValue(initVals[1],true,true,true);self.updateValue(true);self.fireEvent('ready',self);}};minSlider.onMouseDown = function(e) {self._handleMouseDown(e);};maxSlider.onMouseDown = function(e) { YAHOO.util.Event.stopEvent(e); };minSlider.onDrag =maxSlider.onDrag = function(e) {self._handleDrag(e);};minSlider.subscribe("change", this._handleMinChange, minSlider, this);minSlider.subscribe("slideStart", this._handleSlideStart, minSlider, this);minSlider.subscribe("slideEnd", this._handleSlideEnd, minSlider, this);maxSlider.subscribe("change", this._handleMaxChange, maxSlider, this);maxSlider.subscribe("slideStart", this._handleSlideStart, maxSlider, this);maxSlider.subscribe("slideEnd", this._handleSlideEnd, maxSlider, this);this.createEvent("ready", this);this.createEvent("change", this);this.createEvent("slideStart", this);this.createEvent("slideEnd", this);};YAHOO.widget.DualSlider.prototype = {minVal : -1,maxVal : -1,minRange : 0,_handleSlideStart: function(data, slider) {this.fireEvent("slideStart", slider);},_handleSlideEnd: function(data, slider) {this.fireEvent("slideEnd", slider);},_handleDrag: function(e) {YAHOO.widget.Slider.prototype.onDrag.call(this.activeSlider, e);},_handleMinChange: function() {this.activeSlider = this.minSlider;this.updateValue();},_handleMaxChange: function() {this.activeSlider = this.maxSlider;this.updateValue();},setValues : function (min, max, skipAnim, force, silent) {var mins = this.minSlider,maxs = this.maxSlider,mint = mins.thumb,maxt = maxs.thumb,self = this,done = { min : false, max : false };if (mint._isHoriz) {mint.setXConstraint(mint.leftConstraint,maxt.rightConstraint,mint.tickSize);maxt.setXConstraint(mint.leftConstraint,maxt.rightConstraint,maxt.tickSize);} else {mint.setYConstraint(mint.topConstraint,maxt.bottomConstraint,mint.tickSize);maxt.setYConstraint(mint.topConstraint,maxt.bottomConstraint,maxt.tickSize);}this._oneTimeCallback(mins,'slideEnd',function () {done.min = true;if (done.max) {self.updateValue(silent);setTimeout(function () {self._cleanEvent(mins,'slideEnd');self._cleanEvent(maxs,'slideEnd');},0);}});this._oneTimeCallback(maxs,'slideEnd',function () {done.max = true;if (done.min) {self.updateValue(silent);setTimeout(function () {self._cleanEvent(mins,'slideEnd');self._cleanEvent(maxs,'slideEnd');},0);}});mins.setValue(min,skipAnim,force,silent);maxs.setValue(max,skipAnim,force,silent);},setMinValue : function (min, skipAnim, force, silent) {var mins = this.minSlider;this.activeSlider = mins;var self = this;this._oneTimeCallback(mins,'slideEnd',function () {self.updateValue(silent);setTimeout(function () { self._cleanEvent(mins,'slideEnd'); }, 0);});mins.setValue(min, skipAnim, force, silent);},setMaxValue : function (max, skipAnim, force, silent) {var maxs = this.maxSlider;this.activeSlider = maxs;var self = this;this._oneTimeCallback(maxs,'slideEnd',function () {self.updateValue(silent);setTimeout(function () { self._cleanEvent(maxs,'slideEnd'); }, 0);});maxs.setValue(max, skipAnim, force, silent);},updateValue: function(silent) {var min= this.minSlider.getValue(),max= this.maxSlider.getValue(),changed = false;if (min != this.minVal || max != this.maxVal) {changed = true;var mint = this.minSlider.thumb;var maxt = this.maxSlider.thumb;var thumbInnerWidth = this.minSlider.thumbCenterPoint.x +this.maxSlider.thumbCenterPoint.x;var minConstraint = Math.max(max-thumbInnerWidth-this.minRange,0);var maxConstraint = Math.min(-min-thumbInnerWidth-this.minRange,0);if (this.isHoriz) {minConstraint = Math.min(minConstraint,maxt.rightConstraint);mint.setXConstraint(mint.leftConstraint,minConstraint, mint.tickSize);maxt.setXConstraint(maxConstraint,maxt.rightConstraint, maxt.tickSize);} else {minConstraint = Math.min(minConstraint,maxt.bottomConstraint);mint.setYConstraint(mint.leftConstraint,minConstraint, mint.tickSize);maxt.setYConstraint(maxConstraint,maxt.bottomConstraint, maxt.tickSize);}}this.minVal = min;
this.maxVal = max;if (changed && !silent) {this.fireEvent("change", this);}},selectActiveSlider: function(e) {var min = this.minSlider.getValue(),max = this.maxSlider.getValue(),d;if (this.isHoriz) {d = YAHOO.util.Event.getPageX(e) - this.minSlider.initPageX -this.minSlider.thumbCenterPoint.x;} else {d = YAHOO.util.Event.getPageY(e) - this.minSlider.initPageY -this.minSlider.thumbCenterPoint.y;}if (d < min) {this.activeSlider = this.minSlider;} else if (d > max) {this.activeSlider = this.maxSlider;} else {this.activeSlider = d*2 > max+min ? this.maxSlider : this.minSlider;}},_handleMouseDown: function(e) {this.selectActiveSlider(e);YAHOO.widget.Slider.prototype.onMouseDown.call(this.activeSlider, e);},_oneTimeCallback : function (o,evt,fn) {o.subscribe(evt,function () {o.unsubscribe(evt,arguments.callee);fn.apply({},[].slice.apply(arguments));});},_cleanEvent : function (o,evt) {if (o.__yui_events && o.events[evt]) {var ce, i, len;for (i = o.__yui_events.length; i >= 0; --i) {if (o.__yui_events[i].type === evt) {ce = o.__yui_events[i];break;}}if (ce) {var subs = ce.subscribers,newSubs = [],j = 0;for (i = 0, len = subs.length; i < len; ++i) {if (subs[i]) {newSubs[j++] = subs[i];}}ce.subscribers = newSubs;}}}};YAHOO.augment(YAHOO.widget.DualSlider, YAHOO.util.EventProvider);YAHOO.widget.Slider.getHorizDualSlider = function (bg, minthumb, maxthumb, range, iTickSize, initVals) {var mint, maxt;var YW = YAHOO.widget, Slider = YW.Slider, Thumb = YW.SliderThumb;mint = new Thumb(minthumb, bg, 0, range, 0, 0, iTickSize);maxt = new Thumb(maxthumb, bg, 0, range, 0, 0, iTickSize);return new YW.DualSlider(new Slider(bg, bg, mint, "horiz"), new Slider(bg, bg, maxt, "horiz"), range, initVals);};YAHOO.widget.Slider.getVertDualSlider = function (bg, minthumb, maxthumb, range, iTickSize, initVals) {var mint, maxt;var YW = YAHOO.widget, Slider = YW.Slider, Thumb = YW.SliderThumb;mint = new Thumb(minthumb, bg, 0, 0, 0, range, iTickSize);maxt = new Thumb(maxthumb, bg, 0, 0, 0, range, iTickSize);return new YW.DualSlider(new Slider(bg, bg, mint, "vert"), new Slider(bg, bg, maxt, "vert"), range, initVals);};YAHOO.register("slider", YAHOO.widget.Slider, {version: "2.5.0", build: "895"});
//utils.js



function toNumber(formattedNumber)
{
	while(formattedNumber.indexOf(',')!=-1)
	{
		formattedNumber = formattedNumber.replace(',','');
	}
	return formattedNumber;
}

function formatDecimal(value) {
	//alert('before: ' + value);
	value = parseFloat(value)	
	value = Math.round(value*100)/100
	value = '' + value;
	
	if (value.indexOf('.')==-1) {
		value += '.00';
	}
	else if (value.substring(value.indexOf('.'), value.length).length > 3) {
		value = value.substring(0, value.indexOf('.')+3);
	}
	else if (value.substring(value.indexOf('.'), value.length).length < 3) {
		value += '0';
	}
	else {
		value = value;
	}
	//alert('after: ' + value);
	return value;
}

function hideDiv(divId) {
	document.getElementById(divId).style.display='none';
}
function showDiv(divId) {
	document.getElementById(divId).style.display='inline';
}

function IsNumeric(passedVal)
{
	var ValidChars = "0123456789";
	var IsNumber=true;
	var Char;
	if(passedVal == "") {
		return false;
	}
	for (k = 0; k < passedVal.length && IsNumber == true; k++)
	{
		Char = passedVal.charAt(k);
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
			break;
		}
	}
	return IsNumber;
}

function inputFormatMoney(obj) {
	obj.value = formatMoney(obj.value);
}

function formatMoney(obj) 
{
	var sValue = obj;//.value;
	
    if (sValue.length == 0) return "";
	
    if (sValue.charAt(0) == "$")
    {
		sValue = sValue.substring(1,sValue.length);
    }
    
	if(!IsFloat(sValue))
	{
		//alert('Please enter a valid amount.');
		return "-1";
	}
	
    //  Parse the value into a float number
	var iValue = parseFloat(sValue);
	iValue = (Math.round(iValue * 100)) / 100;
	
	//  If the value is not a number, return an error
	if (isNaN(iValue))
	{
	    ReturnError("Not a valid amount");
	    return "";
    }
  
    //  Return the value to a string to apply formatting
    sValue = ''+iValue; //.toString();
    
    //
    //  Fill in zeros (if necessary) to show two digits to the right 
    //  of the decimal
    //
    if (sValue.indexOf(".") == -1)
    {
        sValue = sValue + ".00";
    }
    else
    {
        if (sValue.indexOf(".") == sValue.length - 1)
        {
            sValue = sValue + "00";
        }
        else if (sValue.indexOf(".") == sValue.length - 2)
        {
            sValue = sValue + "0";
        }
    }
    
    //  Add commas if necessary
   /* if (sValue.indexOf(".") > 3)
    {
        sValue = sValue.substring(0,sValue.indexOf(".") - 3) + ","
            + sValue.substring(sValue.indexOf(".") - 3,sValue.length);
    }
	*/
	//return "$" + sValue;
	//obj.value = sValue;
	return sValue
}

function IsFloat(passedVal)
{
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
	if(passedVal == "") {
		return false;
	}
	for (i = 0; i < passedVal.length && IsNumber == true; i++)
	{
		Char = passedVal.charAt(i);
		if (ValidChars.indexOf(Char) == -1){
			IsNumber = false;
			break;
		}
	}
	return IsNumber;
}
function hideShowButtons(hideDiv1, hideDiv2, showDiv3) {
	hideDiv(hideDiv1);
	hideDiv(hideDiv2);
	showDiv(showDiv3);
	return true;
}

/* Function that removes the leading and trailing spaces from a string ‘str’
   Parameters: 
   	str: is the variable from which we will remove spaces
    leadingSpaces: if null removes leading and trailing spaces
                   if "1"  removes only leading spaces 
*/

function cbTrim(str, leadingSpaces) { 
  // Remove leading spaces
  while ((str.substring(0,1) == ' ') || 
  		 (str.substring(0,1) == '\n') ||
         (str.substring(0,1) == '\r'))
  {
    str = str.substring(1,str.length);
  }
  // Remove trailing spaces
  if(leadingSpaces==null)
  {
   while ((str.substring(str.length-1,str.length) == ' ') ||
         (str.substring(str.length-1,str.length) == '\n') || 
         (str.substring(str.length-1,str.length) == '\r'))
   {
    str = str.substring(0,str.length-1);
   }
  }
  return str;
}

var initValues = new Object;
function checkOnChange(object){
	// compare the old value with the new value
	if(object.value!=initValues[object.name]) {
		// value changed
		//alert("value changed")
		return true;
	} 
	else {
		// value not changed
		//alert("value not changed")
		return false;
	}
}
function getValue(object){
	// replace the object in the array with the new object.value
	initValues[object.name] =  object.value;
}

/* getElementsByName(divname) isn't supported properly in IE.
  IE only supports name tags in HTML form controls such as <input> and <select>. 
  For other elements like <div> IE will select elements with id=divname but ignore name tags completely! 
  HTML originally never had them for elements other than forms and IE still behaves like they don't belong anywhere else.
  This function provides a workaround for this issue*/
function getElementsByNameIE(tag, name) {
     
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}

//CBExtensions.js

function HTTPObj()
{
    try
    {
       return (new ActiveXObject("Msxml2.XMLHTTP"));
    }
    catch(E)
    {
      try
      {
          return(new XMLHttpRequest());
      }
      catch(e)
      {
          return(false);
      }
    }
}

function XmlObj()
{
  if(isMOZ)
    return  document.implementation.createDocument("", "", null);
  else
    return new ActiveXObject("Microsoft.XMLDOM");
}


// some basic browser detection
isIE = (navigator.userAgent.toLowerCase().indexOf("msie") > -1)?true:false;
isMOZ = (document.implementation && document.implementation.createDocument)?true:false ;
isSafari = ((navigator.userAgent.toLowerCase().indexOf("safari")>-1)||(navigator.userAgent.toLowerCase().indexOf("mac")>-1))?true:false;
var iNsCounter = 0;
var IEPREFIX4XSLPARAM = "";
var dFeatures = "";

 
 if (isMOZ || isSafari)
//if (isMOZ && isSafari == false)
{
	//alert("innnn ")
       // window.prototype.showModalDialog = function(sURL,vArguments,sFeatures)  //wk change
	window.showModalDialog = function(sURL,vArguments,sFeatures)
        {

	    if (sURL==null||sURL=='')
	    {
        	alert ("Invalid URL input.");
	        return false;
	    }
	    if (vArguments==null||vArguments=='')
	    {
	        vArguments='';
	    }
	    if (sFeatures==null||sFeatures=='')
	    {
	        sFeatures=dFeatures;
	    }
	    if (window.navigator.appVersion.indexOf("MSIE")!=-1)
	    {
	        window.showModalDialog ( sURL, vArguments, sFeatures );
	        	return false;
	    }
	    sFeatures = sFeatures.replace(/ /gi,'');
	    aFeatures = sFeatures.split(";");
	    sWinFeat = "directories=0,menubar=0,titlebar=0,toolbar=0,";
            var pHeight;
            var pWidth;

            for ( var x=0; x< aFeatures.length; x++ )
            {
                aTmp = aFeatures[x].split(":");
                sKey = aTmp[0].toLowerCase();
                sVal = aTmp[1];
                switch (sKey)
                {
                    case "dialogheight":
                        sWinFeat += "height="+sVal+",";
                        pHeight = sVal.substring(0,sVal.indexOf("px"));
                        break;
                    case "dialogwidth":
                        sWinFeat += "width="+sVal+",";
                        pWidth = sVal.substring(0,sVal.indexOf("px"));
                        break;
                    case "dialogtop":
                        sWinFeat += "screenY="+sVal+",";
                        break;
                    case "dialogleft":
                        sWinFeat += "screenX="+sVal+",";
                        break;
                    case "resizable":
                        sWinFeat += "resizable="+sVal+",";
                        break;
                    case "status":
                        sWinFeat += "status="+sVal+",";
                        break;                        
                    case "scroll":
                        sWinFeat += "scrollbars ="+sVal+",";
                        break;
                    case "center":
                        if ( sVal.toLowerCase() == "yes" )
                        {
                            sWinFeat += "screenY="+((screen.availHeight-pHeight)/2)+",";
                            sWinFeat += "screenX="+((screen.availWidth-pWidth)/2)+",";
                        }
                        break;
                }
            }
		
			var modalWin=window.open(String(sURL),"",sWinFeat+",dependent=yes, alwaysRaised=yes, dialog=no, model=yes");
            
            var ModalFocus = function()
			 {
				if(!modalWin.closed){modalWin.focus();}
				else{
					window.onfocus = null; 
					//window.removeEventListener(ModalFocus,"focus",true);
					ModalFocus = null;
					};					
			 }
			
			if (vArguments!=null&&vArguments!='')
            {
                modalWin.dialogArguments=vArguments;
            }
			
			window.addEventListener("focus",ModalFocus,true);
			return modalWin;
			 
	        };
	//============================================
	// Section: Factory methods for Moz
	//============================================
	// @param sUri the namespace of the root node (if any)
	// @param sUri the local name of the root node (if any)
	// @return a DOM Document

	// AFAIK, the object behaves exactly like
	// IE's IXMLHTTPRequest)
	// @return a XmlHttpRequst object suitable for Moz

	//============================================
	// Section: utility functions for internal use
	//============================================
	// Attached by an event handler to the load event.
	

	
	function XMLDocument_onload()
	{
		loadHandler(this);
	}
	// Ensures the document was loaded correctly, otherwise sets the parseError to -1
	// to indicate something went wrong.
	function loadHandler(oDoc)
	{
		if (!oDoc.documentElement || oDoc.documentElement.tagName == "parsererror")
			oDoc.parseError = -1;
		setReadyState(oDoc, 4);
	}
	// Sets the readyState property
	function setReadyState(oDoc, iReadyState)
	{
	//FF3.6 readyState issue
		//oDoc.readyState = iReadyState;
		if (oDoc.onreadystatechange != null && typeof oDoc.onreadystatechange == "function")
			oDoc.onreadystatechange();
	}

	
	
	 XMLDocument.prototype.clearDOM = function()
	{
		while(this.hasChildNodes())
			this.removeChild(this.firstChild);
	};
	

	// Replaces the contents of the object with the contents of
	// the object given as the parameter
	XMLDocument.prototype.copyDOM = function(oDoc)
	{
		this.clearDOM();

		// importNode is not yet needed in Moz due to a bug but it will be
		// fixed so...
            var oNodes = oDoc.childNodes;
			//1 line added by wk on oct 31 2010 for chrome 7 fix
			var docFr = this.createDocumentFragment();

            for(iDom=0;iDom<oNodes.length;iDom++)
            {
              var jp = this.importNode(oNodes[iDom],true);
			  //2 lines added by wk on oct 31 2010 for chrome 7 fix
			  docFr.appendChild(jp);
			this.appendChild(docFr);
			// 1 line commented by wk on oct 31 2010 for chrome 7 fix
            //      this.appendChild(jp);
				 }
	};
	
	var WSMULT = new RegExp("^\\s*|\\s*$", "g");
	var WSENDS = new RegExp("\\s\\s+", "g");
	function normalizeText(sIn)
	{
		return sIn.replace(WSENDS, " ").replace(WSMULT, " ");
	}
	//============================================
	// Section: Extending Mozilla's DOM implementation
	// to emulate IE extentions
	//============================================
	// Parses the String given as parameter to build the document content
	// for the object, exactly like IE's loadXML().
	// @return the old contents serialized to String (xml)

	XMLDocument.prototype.loadXML = function(strXML)
	{
		setReadyState(this, 1);
		var sOldXML = this.xml;

		var oDoc = (new DOMParser()).parseFromString(strXML, "text/xml");
		setReadyState(this, 2);
		this.copyDOM(oDoc);
		setReadyState(this, 3);
		loadHandler(this);
		return sOldXML;
	};
        Element.prototype.selectSingleNode =
         function(sExpr)
         {
          var doc = this.ownerDocument;
          if(doc.selectSingleNode)
           return doc.selectSingleNode(sExpr, this);
          else
           throw "XPathOperationException: Method selectSingleNode is only supported by XML Nodes. (original exception: "+e+")";
         };

	        Node.prototype.__defineGetter__("text", function ()
        {
         if(this.firstChild)
          return (this.firstChild.nodeValue);
        else
          return null;
        });
        // Ensures and informs the xml property is read only
        Node.prototype.__defineSetter__("text", function (sText)
        {
                if(this.firstChild)
                   this.firstChild.nodeValue = sText;
        });

	// Emulates IE's xml property. Gives an XML serialization of the DOM Object
        XMLDocument.prototype.__defineGetter__("xml", function ()
	{
		return (new XMLSerializer()).serializeToString(this);
	});
	// Emulates IE's xml property. Gives an XML serialization of the DOM Object
        Node.prototype.__defineGetter__("xml", function ()
	{
		return (new XMLSerializer()).serializeToString(this);
	});
	// Ensures and informs the xml property is read only
	XMLDocument.prototype.__defineSetter__("xml", function ()
	{
		throw "Invalid assignment on read-only property 'xml'. Hint: Use the 'loadXML(String xml)' method instead. (original exception: "+e+")";
	});
	// Emulates IE's innerText (write). Note that this removes all childNodes of
	// an Element and just replaces it with a textNode
	HTMLElement.prototype.__defineSetter__("innerText", function (sText)
	{
		var s = "" + sText;
		this.innerHTML = s.replace(/\&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
	});
	// Emulate IE's innerText (read). Gives the concatenation of all text nodes under the Element
	HTMLElement.prototype.__defineGetter__("innerText", function ()
	{
		return normalizeText(this.innerHTML.replace(/<[^>]+>/g,""));
	});
	// Emulate IE's onreadystatechange attribute
	// used as a listener to the onreadystatechange event (also emulated)
    Document.prototype.onreadystatechange = null;
    // Emulate IE's parseError attribute
    Document.prototype.parseError = 0;
	// Emulates IE's readyState property, which always gives an integer from 0 to 4:
	// 1 == LOADING
	// 2 == LOADED
	// 3 == INTERACTIVE
	// 4 == COMPLETED
	//FF3.6 readyState issue
    //XMLDocument.prototype.readyState = 0;
	// Emulates IE's async property. It controls whether loading of
	// remote XML files works synchronously or asynchronously.
	// NOTE: setting async to false will only work with documents
	// called over HTTP (meaning a server), not the local file system,
	// unless you are using Moz 1.4.
	// BTW the try>catch block is for 1.4; I haven't found a way to check if the property is implemented without
	// causing an error and I dont want to use user agent stuff for that...
	try{
		XMLDocument.prototype.async = true;
	}catch(e){/*trap*/}
	// Keeps a handle to the original load() method
	XMLDocument.prototype.load = XMLDocument.prototype.load;
	/** Extends the load method to provide synchronous loading
	* using an XMLHttpRequest object (if async is set to false)
	* @return the DOM Object as it was before the load() call (may be empty)
	*/
        XMLDocument.prototype.load = function(sURI)
	{
		var oDoc = document.implementation.createDocument("", "", null);
		oDoc.copyDOM(this);
		this.parseError = 0;
		setReadyState(this, 1);
		try
		{
			if(this.async == false)
			{
				var tmp = new XMLHttpRequest();
				tmp.open("GET", sURI, false);
				tmp.overrideMimeType("text/xml");
				tmp.send(null);
				setReadyState(this, 2);

				this.copyDOM(tmp.responseXML);
				setReadyState(this, 3);
			}
			else
				this.load(sURI);
		}
		catch (objException)
		{
			this.parseError = -1;
		}
		finally
		{
			loadHandler(this);
		}
		return oDoc;
	};
	// Emulate IE's transformNodeToObject
	Document.prototype.transformNodeToObject = function(xslDoc, oResult)
	{
            var xsltProcessor = null;
            try
            {
                xsltProcessor = new XSLTProcessor();
            //if(xsltProcessor.reset) this was wirtten before in place of if(false)
            if(xsltProcessor.reset)
            {
                            // new nsIXSLTProcessor is available
                            xsltProcessor.importStylesheet(xslDoc);
                            var newFragment = xsltProcessor.transformToFragment(this, oResult);
                            return newFragment;

                            //oResult.copyDOM(newFragment);

            }
            else
            {
				// only nsIXSLTProcessorObsolete is available

				return xsltProcessor.transformDocument(this, xslDoc, oResult, null);

            }
		}
		catch(e)
		{
			if(xslDoc && oResult)
				throw "TransformNodeToObjectException: Failed to transform document. (original exception: "+e+")";
			else if(!xslDoc)
				throw "TransformNodeToObjectException: No Stylesheet Document was provided. (original exception: "+e+")";
			else if(!oResult)
				throw "TransformNodeToObjectException: No Result Document was provided. (original exception: "+e+")";
			else if(xsltProcessor == null)
                            throw "XSLTProcessorNotAvailableException: Could not instantiate an XSLTProcessor object. (original exception: "+e+")";
                        else
                            throw e;
		}
	};
	// Emulate IE's transformNode() method. Gives the result XML serialised to a String

	Document.prototype.transformNode = function(xslDoc)
	{
		/*var out = document.implementation.createDocument("", "", null);
		var reslt = this.transformNodeToObject(xslDoc, out);
               alert(reslt.getElementsByTagName("result"));*/
               var xsltProcessor = new XSLTProcessor();

		var str = null;
		try
		{
                       xsltProcessor.importStylesheet(xslDoc);
                       var newFragment = xsltProcessor.transformToDocument(this);

			//var serializer = new XMLSerializer();

			str = newFragment.xml;

		}
		catch(e)
		{
			throw "TransformNodeException: Failed to serialize result document. (original exception: "+e+")";
		}
		return str;
	};
	// Extend the Array to behave as a NodeList
	Array.prototype.item = function(i)
	{
		return this[i];
	};
	// add IE's expr property
	Array.prototype.expr = "";
    // dummy, used to accept IE's stuff without throwing errors
	XMLDocument.prototype.setProperty  = function(x,y){};
	// Emulate IE's selectNodes
	XMLDocument.prototype.selectNodes = function(sExpr, contextNode)
	{


		try
		{
		     var oResult = this.evaluate(sExpr, (contextNode?contextNode:this),
						                             	this.createNSResolver(this.documentElement),
					                             		XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null
					                             	);
     		var nodeList = new Array(oResult.snapshotLength);
		     nodeList.expr = sExpr;
     		for(iN=0;iN<nodeList.length;iN++)
			    nodeList[iN] = oResult.snapshotItem(iN);
		     return nodeList;
		}
		catch(e)
		{
		     alert(e);
		}

	};
  Element.prototype.selectSingleNode =
    function(Expression)
    {
     Expression += "[1]";
     var nodeList = this.selectNodes(Expression);
     if(nodeList.length > 0)
      return nodeList[0];
     else
      return null;
    };

	Element.prototype.selectNodes = function(sExpr)
	{
		var doc = this.ownerDocument;
		if(doc.selectNodes)
			return doc.selectNodes(sExpr, this);
		else
			throw "XPathOperationException: Method selectNodes is only supported by XML Nodes";
	};

 Element.prototype.__defineSetter__("text", function (sText)
	{
    if(!this.firstChild)
    {
      txtN = this.ownerDocument.createTextNode(sText);
      this.appendChild(txtN);
    }
    else
      this.firstChild.nodeValue = sText;
	});
 Element.prototype.__defineGetter__("text", function ()
	{

		if(!this.firstChild)
                  return "";
                else if(this.firstChild.nextSibling != null && this.firstChild.nextSibling.nodeName == "#cdata-section")
                  return this.firstChild.nextSibling.nodeValue;
                else
                  return this.firstChild.nodeValue;
	});
	// Emulate IE's selectSingleNode
	XMLDocument.prototype.selectSingleNode = function(sExpr, contextNode)
	{
	 if(this.xml == "")
	   return null;
		var ctx = contextNode?contextNode:null;
		sExpr += "[1]";
		var nodeList = this.selectNodes(sExpr, ctx);
		if(nodeList.length > 0)
			return nodeList[0];
		else
			return null;
	};

        // support microsoft's "all" property
        HTMLDocument.prototype.__defineGetter__("all", function()
        {
            return this.getElementsByTagName("*");
        });
        //support microsoft's parentWindow property
        HTMLDocument.prototype.__defineGetter__("parentWindow", function()
        {
            return this.defaultView;
        });
        // mimic the "createEventObject" method for the document object
        HTMLDocument.prototype.createEventObject = function createEventObject()
        {
           return document.createEvent("Events");
        };
        HTMLTableElement.prototype.createEventObject = function createEventObject()
        {
           return document.createEvent("Events");
        };
        HTMLElement.prototype.__defineGetter__("all", function()
        {
            return this.getElementsByTagName("*");
        });
       
        HTMLTableCellElement.prototype.__defineSetter__("disabled", function(val)
        {
         	
            if(val)
            {
                  if(this.getAttribute("onclick") != null && this.getAttribute("onclick") != "")
                  {
                    this.setAttribute("onclickOld",this.getAttribute("onclick"))
                    this.setAttribute("onclick","");
                    if(this.getAttribute("onclick") != null && this.getAttribute("onclick") != "")
                       this.setAttribute("itsColor") = this.style.color;
                    this.style.color = "grey";
                  }
                  this.enabled = false;
            }
            else
            {
                  if(this.getAttribute("onclickOld") != null && this.getAttribute("onclickOld") != "")
                  {
                     this.setAttribute("onclick",this.getAttribute("onclickOld"));
                     this.style.color = this.getAttribute("itsColor");
                  }
                  this.enabled=true;
            }
            return;
        });
        HTMLTableCellElement.prototype.__defineGetter__("disabled", function()
        {
        	if (this.enabled==undefined ||  this.enabled==null)
        		return false;
        	else
	        	return !this.enabled;
        });
        HTMLTableRowElement.prototype.__defineSetter__("disabled", function(val)
        {
            var events = ["onclick","onmousedown","onmouseup"];
            for(var ev=0;ev<events.length;ev++)
            {
               if(val)
               {
                     if(this.getAttribute(events[ev]) != null && this.getAttribute(events[ev]) != "")
                     {
                       this.setAttribute(events[ev]+"Old",this.getAttribute(events[ev]))
                       this.setAttribute("onclick","");
                       if(this.getAttribute(events[ev]) != null && this.getAttribute(events[ev]) != "")
                          this.setAttribute("itsColor") = this.style.color;
                       this.style.color = "grey";
                     }
               }
               else
               {
                     if(this.getAttribute(events[ev]+"Old") != null && this.getAttribute(events[ev]+"Old") != "")
                     {
                        this.setAttribute(events[ev],this.getAttribute(events[ev]+"Old"));
                        this.style.color = this.getAttribute("itsColor");
                     }
               }
            }
            return;
        });
        function fnHandleOnClick(event)
        {
           event.preventDefault();
           event.returnValue = false;
           alert("in fnHandleOnClick");
           return;
        }
        // support "parentElement"
        HTMLElement.prototype.__defineGetter__("parentElement", function() {
            return (this.parentNode == this.ownerDocument) ? null : this.parentNode;
        });
        HTMLElement.prototype.attachEvent = function (sType, fHandler)
        {
           var shortTypeName = sType.replace(/on/, "");
           fHandler._ieEmuEventHandler = function (e) {
              window.event = e;
              return fHandler();
           };
           this.addEventListener(shortTypeName, fHandler._ieEmuEventHandler, false);
        };
        HTMLElement.prototype.blur = function ()
        {
           this.fireEvent("onblur");
        };
        HTMLElement.prototype.focus = function ()
        {
           this.fireEvent("onfocus");
        };
        HTMLElement.prototype.click = function ()
        {
           this.fireEvent("onclick");
        };
        HTMLElement.prototype.detachEvent = function (sType, fHandler)
        {
           var shortTypeName = sType.replace(/on/, "");
           if (typeof fHandler._ieEmuEventHandler == "function")
              this.removeEventListener(shortTypeName, fHandler._ieEmuEventHandler, false);
           else   // we can always try :-)
              this.removeEventListener(shortTypeName, fHandler, true);
        };
        // mimic the "removeEvent" method
        HTMLElement.prototype.removeEvent = function removeEvent(name, handler) {
            this.removeEventListener(name.slice(2), handler, false);
        };
        // mimic the "createEventObject" method
        HTMLElement.prototype.createEventObject = function createEventObject() {
            return this.ownerDocument.createEventObject();
        };
        // mimic the "fireEvent" method
        HTMLElement.prototype.fireEvent = function fireEvent(name, event) {
            if (!event) event = this.ownerDocument.createEventObject();
            event.initEvent(name.slice(2), false, false);
            this.dispatchEvent(event);
            // not sure that this should be here??
            if (typeof this[name] == "function") this[name]();
            else if (this.getAttribute(name)) eval(this.getAttribute(name));
        };

        HTMLElement.prototype.insertAdjacentElement = function
        (where,parsedNode)
        {
            switch (where){
            case 'beforeBegin':

                    this.parentNode.insertBefore(parsedNode,this)
                    break;
            case 'afterBegin':
                    this.insertBefore(parsedNode,this.firstChild);
                    break;
            case 'beforeEnd':
                    this.appendChild(parsedNode);
                    break;
            case 'afterEnd':
                    if (this.nextSibling)
            this.parentNode.insertBefore(parsedNode,this.nextSibling);
                    else this.parentNode.appendChild(parsedNode);
                    break;
            }
        };
        HTMLElement.prototype.insertAdjacentHTML = function
        (where,htmlStr)
        {
            var r = this.ownerDocument.createRange();
            r.setStartBefore(this);
            var parsedHTML = r.createContextualFragment(htmlStr);
            this.insertAdjacentElement(where,parsedHTML)
        };
        var _emptyTags =
        {
           "IMG":   true,
           "BR":    true,
           "INPUT": true,
           "META":  true,
           "LINK":  true,
           "PARAM": true,
           "HR":    true
        };
        HTMLElement.prototype.__defineGetter__("children", function ()
        {
           var tmp = [];
           var j = 0;
           var n;
           for (var i = 0; i < this.childNodes.length; i++) {
              n = this.childNodes[i];
              if (n.nodeType == 1) {
                 tmp[j++] = n;
                 if (n.name) {  // named children
                    if (!tmp[n.name])
                       tmp[n.name] = [];
                    tmp[n.name][tmp[n.name].length] = n;
                 }
                 if (n.id)      // child with id
                    tmp[n.id] = n
              }
           }
           return tmp;
        });
        HTMLElement.prototype.contains = function (oEl) {
           if (oEl == this) return true;
           if (oEl == null) return false;
           return this.contains(oEl.parentNode);
        };
        HTMLElement.prototype.__defineGetter__("outerHTML", function () {
           var attrs = this.attributes;
           var str = "<" + this.tagName;
           for (var i = 0; i < attrs.length; i++)
              str += " " + attrs[i].name + "=\"" + attrs[i].value + "\"";

           if (_emptyTags[this.tagName])
              return str + ">";

           return str + ">" + this.innerHTML + "</" + this.tagName + ">";
        });
        HTMLElement.prototype.__defineSetter__("outerHTML", function (sHTML)
        {
           var r = this.ownerDocument.createRange();
           r.setStartBefore(this);
           var df = r.createContextualFragment(sHTML);
           this.parentNode.replaceChild(df, this);
        });
        HTMLElement.prototype.insertAdjacentText = function
        (where,txtStr)
        {
            var parsedText = document.createTextNode(txtStr)
            this.insertAdjacentElement(where,parsedText)
        };

        // support the "contains" method
        HTMLElement.prototype.contains = function contains(element) {
            return Boolean(element == this || (element && this.contains(element.parentElement)));
        };
        // Event
        // -----
        // support microsoft's proprietary event properties
        Event.prototype.__defineGetter__("srcElement", function() {
            return (this.target.nodeType == Node.ELEMENT_NODE) ? this.target : this.target.parentNode;
        });
//        Event.prototype.__defineGetter__("srcElement", function () {
//									   var node = this.target;
//            while (node.nodeType != 1) node = node.parentNode;
//   									return node;
//									});
        Event.prototype.__defineGetter__("keyCode", function() {
            return (this.which);
        });
        Event.prototype.__defineGetter__("fromElement",function() {
            return (this.type == "mouseover") ? this.relatedTarget : (this.type == "mouseout") ? this.srcElement : null;
        });
        Event.prototype.__defineGetter__("toElement", function() {
            return (this.type == "mouseout") ? this.relatedTarget : (this.type == "mouseover") ? this.srcElement : null;
        });
        Event.prototype.__defineGetter__("button", function() {
            return (this.which == 1) ? 1 : (this.which == 2) ? 4 : 2;
        });
        // mimc "returnValue" (default is "true")
        Event.prototype.__defineGetter__("returnValue", function() {
            return true;
        });
        Event.prototype.__defineSetter__("returnValue", function (value) {
            if (this.cancelable && !value) {
                // this can't be undone!
                this.preventDefault();
                this.__defineGetter__("returnValue", function() {
                    return false;
                });
            }
        });
        // mozilla already supports the read-only "cancelBubble"
        //  so we only need to define the setter
        Event.prototype.__defineSetter__("cancelBubble", function (value) {
            // this can't be undone!
            if (value) this.stopPropagation();
        });
        Event.prototype.__defineGetter__("offsetX", function() {
            return this.layerX;
        });
        Event.prototype.__defineGetter__("offsetY", function() {
            return this.layerY;
        });
        
        KeyboardEvent.prototype.__defineGetter__("srcElement", function() {
            return (this.target.nodeType == Node.ELEMENT_NODE) ? this.target : this.target.parentNode;
        });

        KeyboardEvent.prototype.__defineGetter__("keyCode", function() {
            return (this.which);
        });

        // mimc "returnValue" (default is "true")
        KeyboardEvent.prototype.__defineGetter__("returnValue", function() {
            return true;
        });
        KeyboardEvent.prototype.__defineSetter__("returnValue", function (value) {
            if (this.cancelable && !value) {
                // this can't be undone!
                this.preventDefault();
                this.__defineGetter__("returnValue", function() {
                    return false;
                });
            }
        });
        // mozilla already supports the read-only "cancelBubble"
        //  so we only need to define the setter
        KeyboardEvent.prototype.__defineSetter__("cancelBubble", function (value) {
            // this can't be undone!
            if (value) this.stopPropagation();
        });

        
        CSSStyleDeclaration.prototype.__defineGetter__("pixelLeft", function() {
            return parseInt(this.left) || 0;
        });
        CSSStyleDeclaration.prototype.__defineSetter__("pixelLeft", function (value) {
            this.left = value + "px";
        });
        CSSStyleDeclaration.prototype.__defineGetter__("pixelHeight", function() {
            return parseInt(this.height) || 0;
        });
        CSSStyleDeclaration.prototype.__defineSetter__("pixelHeight", function (value) {
            this.height = value + "px";
        });
        CSSStyleDeclaration.prototype.__defineGetter__("pixelTop", function() {
            return parseInt(this.top) || 0;
        });
        CSSStyleDeclaration.prototype.__defineSetter__("pixelTop", function (value) {
            this.top = value + "px";
        });
        CSSStyleDeclaration.prototype.__defineGetter__("pixelWidth", function() {
            return parseInt(this.width) || 0;
        });
        CSSStyleDeclaration.prototype.__defineSetter__("pixelWidth", function (value) {
            this.width = value + "px";
        });
		
		

}
//yessssssssssssssssssssssssssssssssssssssss
else if (isIE)
{
	//============================================
	// Section: IE Initialization
	//============================================
	// Add NodeType constants; missing in IE4, 5 and 6
	if(!window.Node)
	{
		var Node = {
			ELEMENT_NODE: 1,
			ATTRIBUTE_NODE: 2,
			TEXT_NODE: 3,
			CDATA_SECTION_NODE: 4,
			ENTITY_REFERENCE_NODE: 5,
			ENTITY_NODE: 6,
			PROCESSING_INSTRUCTION_NODE: 7,
			COMMENT_NODE: 8,
			DOCUMENT_NODE: 9,
			DOCUMENT_TYPE_NODE: 10,
			DOCUMENT_FRAGMENT_NODE: 11,
			NOTATION_NODE: 12
		}
	}
	// for XSLT parameter names
	IEPREFIX4XSLPARAM = "xsl:";
	// used to store the most recent ProgID available out of the above
	var DOM_PROGID = "";
	var XMLHTTP_PROGID = "";
	// used to pick most recent ProgIDs

}

String.prototype.trim = function() 
{
a = this.replace(/^\s+/, '');
return a.replace(/\s+$/, '');
};

var ext_appliPath;


//diamondlist.js

	 var isInternetExplorer = navigator.appName.indexOf("Microsoft") != -1;

		
		function translateClarity(zClarity,isMax)
		{
		 var rtClarity = (isMax)?12:0;
		 switch(zClarity)
		 {
			case "Fl":
			 rtClarity = 1;
			 break;
			case "IF":
			 rtClarity = 2;
			 break;
			case "VVS1":
			 rtClarity = 3;
			 break;
			case "VVS2":
			 rtClarity = 4;
			 break;
			case "VS1":
			 rtClarity = 5;
			 break;
			case "VS2":
			 rtClarity = 6;
			 break;
			case "SI1":
			 rtClarity = 7;
			 break;
			case "SI2":
			 rtClarity = 8;
			 break;
			case "SI3":
			 rtClarity = 9;
			 break;
			case "I1":
			 rtClarity = 10;
			 break;
			case "I2":
			 rtClarity = 11;
			 break;
			case "I3":
			 rtClarity = 12;
			 break;
		 }
		 return rtClarity;
		}
		function translateReverseClarity(zClarity)
		{
		 var rtClarity = "";
		 switch(zClarity)
		 {
			case "1":
			 rtClarity = "Fl";
			 break;
			case "2":
			 rtClarity = "IF";
			 break;
			case "3":
			 rtClarity = "VVS1";
			 break;
			case "4":
			 rtClarity = "VVS2";
			 break;
			case "5":
			 rtClarity = "VS1";
			 break;
			case "6":
			 rtClarity = "VS2";
			 break;
			case "7":
			 rtClarity = "SI1";
			 break;
			case "8":
			 rtClarity = "SI2";
			 break;
			case "9":
			 rtClarity = "SI3";
			 break;
			case "10":
			 rtClarity = "I1";
			 break;
			case "11":
			 rtClarity = "I2";
			 break;
			case "12":
			 rtClarity = "I3";
			 break;
		 }
		 return rtClarity;
		}
		function translateColoredClarity(zClarity,isMax)
		{
		 var rtClarity = (isMax)?18:0;
		 switch(zClarity)
		 {
			case "F":
			 rtClarity = 13;
			 break;
			case "VL":
			 rtClarity = 14;
			 break;
			case "L":
			 rtClarity = 15;
			 break;
			case "FC":
			 rtClarity = 16;
			 break;
			case "I":
			 rtClarity = 17;
			 break;
			case "V":
			 rtClarity = 18;
			 break;
		 }
		 return rtClarity;
		}
		function translateColoredReverseClarity(zClarity)
		{
		 var rtClarity = "";
		 switch(zClarity)
		 {
			case "13":
			 rtClarity = "F";
			 break;
			case "14":
			 rtClarity = "VL";
			 break;
			case "15":
			 rtClarity = "L";
			 break;
			case "16":
			 rtClarity = "FC";
			 break;
			case "17":
			 rtClarity = "I";
			 break;
			case "18":
			 rtClarity = "V";
			 break;
		 }
		 return rtClarity;
		}		
		
		function toQuotesString(iArr)
		{
		 rtVal = "'-1'";
		 for(var i=0; i<iArr.length; i++)
		 {
		  rtVal += ", '" + iArr[i].trim()+"'";
		 }
		 return rtVal;
		}

		

		function autoSearch(){
			document.search.SetVariable("autoS", "true");
		}

		
		function TriggerSearch(lstParams)
		{

			//lstTShapes = lstParams[0];
			lstTWeight = lstParams[0];
			lstTColors = lstParams[1];
			lstTClarity = lstParams[2];
			lstTPrices = lstParams[3];
			//lstTCut = lstParams[4];
			//lstTLab = lstParams[5];

			/*if(lstTShapes && lstTShapes.length > 0 && lstTShapes[0].trim() != "null")
			 zShape = toQuotesString(lstTShapes);
			else
			 zShape = "";*/


			if(lstTPrices)
			{
			 if(lstTPrices[0].trim() != "null")
			  zPriceMin = lstTPrices[0].trim();
			 else
			  zPriceMin = "";
			 
			 if(lstTPrices[1].trim() != "null")
			  zPriceMax = lstTPrices[1].trim();
			 else
			  zPriceMax = "";
			}
			else
			{
				zPriceMin = "";
				zPriceMax = "";
			}
			
			if(lstTWeight)
			{
			 if(lstTWeight[0].trim() != "null")
			  zWeightMin = lstTWeight[0].trim();
			 else
			  zWeightMin = WeightMin;
			 
			 if(lstTWeight[1].trim() != "null")
			  zWeightMax = lstTWeight[1].trim();
			 else
			  zWeightMax = WeightMax;
			}
			
			if(lstTColors)
			{
			 if(lstTColors[0].trim() != "null")
			  zColorMin = lstTColors[0].trim();
			 else
			  zColorMin = ColorMin;

			 if(lstTColors[1].trim() != "null")
			  zColorMax = lstTColors[1].trim();
			 else
			  zColorMax = ColorMax;
			}	
			else
			{
			zColorMin="";
			zColorMax="";
			}
			if(lstTClarity)
			{
			 if(lstTClarity[0].trim() != "null")
			  zClarityMin = /*(isColoredDiamond)?translateColoredClarity(lstTClarity[0].trim(),false):*/translateClarity(lstTClarity[0].trim(),false);
			 else
			  zClarityMin = ClarityMin;
			 
			 if(lstTClarity[1].trim() != "null")
			  zClarityMax = /*(isColoredDiamond)?translateColoredClarity(lstTClarity[1].trim(),true):*/translateClarity(lstTClarity[1].trim(),true);
			 else
			  zClarityMax = ClarityMax;
			}
			
			/*zCut = Cut;
			if(lstTCut)
			{
			 if(lstTCut.length > 0 && lstTCut[0].trim() != "null")
			  zCut = toQuotesString(lstTCut);
			 else
			  zCut = "";
			}*/

			/*zLab  = Lab;
			if(lstTLab)
			{
			 if(lstTLab.length > 0 && lstTLab[0].trim() != "null")
			  zLab = toQuotesString(lstTLab);
			 else
			  zLab = "";
			}*/
			
			zSkuNumber = skuNumber;

			zCount  = Count ;
			zOffset  = Offset ;
			zOrder  = Order ;
			zoDir = oDir;
			var zzCut =document.search_results.Cut?document.search_results.Cut.value:"";
			var zColor =document.search_results.Color?document.search_results.Color.value:"";
			var zIntensity=document.search_results.Intensity?document.search_results.Intensity.value:"";
			if(isColoredDiamond)
			{
			loadThoseParams(document.search_results.shape.value , zWeightMin , zWeightMax , zColorMin , zColorMax  , zClarityMin , zClarityMax 
	                         , zPriceMin , zPriceMax , zSkuNumber , document.search_results.Certif.value , zzCut , zCount , zOffset , zOrder , zoDir,zColor,zIntensity,treatment )
		    }
			else
			{
			loadThoseParams(document.search_results.shape.value , zWeightMin , zWeightMax , zColorMin , zColorMax  , zClarityMin , zClarityMax 
			 , zPriceMin , zPriceMax , zSkuNumber , document.search_results.Certif.value , zzCut , zCount , zOffset , zOrder , zoDir,"","","")
			}
		}

	function loadThoseParams(zShape , zWeightMin , zWeightMax , zColorMin , zColorMax  , zClarityMin , zClarityMax 
	                         , zPriceMin , zPriceMax , zSkuNumber , zLab , zCut , zCount , zOffset , zOrder , zoDir,zColor,zIntensity ,treatment )
	{
		document.getElementById('msgAdd1').style.visibility='visible';
		Shape  = zShape ;
		WeightMin  = zWeightMin ;
		WeightMax  = zWeightMax ;
		ColorMin  = zColorMin ;
		ColorMax  = zColorMax ;
		ClarityMin  = zClarityMin ;
		ClarityMax  = zClarityMax ;
		PriceMin  = zPriceMin ;
		PriceMax  = zPriceMax ;
		Lab  = zLab ;
		skuNumber = zSkuNumber ;
		Cut  = zCut ;
		Count  = zCount ;
		Offset  = zOffset ;
		Order  = zOrder ;
		oDir  = zoDir ;
		Color=zColor==undefined?"":zColor;
        Intensity=zIntensity==undefined?"":zIntensity;

//alert("index.cfm?do=ring.diamonddata&Shape="+Shape+"&WeightMin="+WeightMin+"&WeightMax="+WeightMax+"&ColorMin="+ColorMin+"&ColorMax="+ColorMax+"&ClarityMin="+ClarityMin+"&ClarityMax="+ClarityMax+"&PriceMin="+PriceMin+"&PriceMax="+PriceMax+"&skuNumber="+skuNumber+"&Lab="+Lab+"&Cut="+Cut+"&Count="+Count+"&offset="+Offset+"&Order="+Order+"&oDir="+oDir+"&OrderQuery="+Order+" "+oDir);
	  showLoading(true);
	  xmlHttp = new HTTPObj();
	  var coloredParam = (isColoredDiamond)?"&ColoredDiamond=true":"";
	  xmlHttp.open("GET","index.cfm?do=ring.diamonddata&Shape="+Shape+"&WeightMin="+WeightMin+"&WeightMax="+WeightMax+"&ColorMin="+ColorMin+"&ColorMax="+ColorMax+"&ClarityMin="+ClarityMin+"&ClarityMax="+ClarityMax+"&PriceMin="+PriceMin+"&PriceMax="+PriceMax+"&skuNumber="+skuNumber+"&Lab="+Lab+"&Cut="+Cut+"&Count="+Count+"&offset="+Offset+"&Order="+Order+"&oDir="+oDir+"&OrderQuery="+Order+" "+oDir+"&zCompare="+document.search_results.compare.value+coloredParam+"&Color="+Color+"&Intensity="+Intensity+"&treatment="+treatment, true);
	  xmlHttp.onreadystatechange = renderGrid;
	  xmlHttp.send("");
	} 
	
	var loadMeterAnim = null;
	function showLoading(zState)
	{
	 //hiding the 'show loading msg' for IE because it will damage the sliders.
	 document.getElementById("meterObj").style.top = 75 + document.body.scrollTop;
	 if(zState == true)
	 {
	  //loadMeterAnim = window.setInterval(animMeter, 250);
	  document.getElementById("loadingMeter").style.display = "inline";
	 }
	 else
	 {
	  //window.clearInterval(loadMeterAnim);
	  document.getElementById("loadingMeter").style.display = "none";
	 }
	 
	}
	
	var nbPts = 0;
	function animMeter()
	{
		var msg = "Loading";
		
		for(var i=0; i<nbPts; ++i)
		{
		 msg += ".";
		}
		
		++nbPts;
		nbPts %=5;
		
		document.getElementById("meterObj").innerHTML = msg;
	}
	   
	function renderGrid()
	{
	 if(xmlHttp.readyState == 4)
	 {
	   document.getElementById("mainHolder").innerHTML = xmlHttp.responseText;
	   //positionHead()
	   showLoading(false);
	   window.scrollBy(0,document.body.offsetHeight-700);
	 }
	}
	
		function reload_page(start, max_rows)
		{
          document.getElementById("minClarity").value = /*(isColoredDiamond)?translateColoredReverseClarity(ClarityMin):*/translateReverseClarity(ClarityMin);
          document.getElementById("maxClarity").value = /*(isColoredDiamond)?translateColoredReverseClarity(ClarityMax):*/translateReverseClarity(ClarityMax);
			if(document.getElementById("minColor"))
			{
           document.getElementById("minColor").value = ColorMin;
			}
			if(document.getElementById("maxColor"))
			{
		  document.getElementById("maxColor").value = ColorMax;	
			}
		 document.getElementById("skuNumber").value = skuNumber;	
         if(isColoredDiamond)
		 {
	      loadThoseParams(Shape, WeightMin, WeightMax, ColorMin, ColorMax, ClarityMin , ClarityMax, PriceMin, PriceMax , skuNumber , 
                 Lab , Cut , max_rows , start , Order , oDir,Color,Intensity,treatment);
		 }
		 else
		 {
			  loadThoseParams(Shape, WeightMin, WeightMax, ColorMin, ColorMax, ClarityMin , ClarityMax, PriceMin, PriceMax , skuNumber , 
                 Lab , Cut , max_rows , start , Order , oDir,"","","");
			 }
				 if(document.getElementById('displayEnd'))
		document.getElementById('displayEnd').value = max_rows;
		if(document.getElementById('display'))
		document.getElementById('display').value = max_rows;
		window.setTimeout(setSliderValues, 1000);
		}
		function setSliderValues()
		{
		  document.getElementById("maxClarity").fireEvent("onblur");		
          if(document.getElementById("maxColor"))
             document.getElementById("maxColor").fireEvent("onblur");
		 if(document.getElementById("minPrice")) 
		  {
		  document.getElementById("minPrice").value = PriceMin;
		  if(PriceMin!="") document.getElementById("minPrice").fireEvent("onblur");
		  }
		  if(document.getElementById("maxPrice"))
		  {
		  document.getElementById("maxPrice").value = PriceMax;
		  if(PriceMax!="") document.getElementById("maxPrice").fireEvent("onblur");
		  }
          document.getElementById("minWeight").value = WeightMin;
          if(WeightMin!="") document.getElementById("minWeight").fireEvent("onblur");		  
		  document.getElementById("maxWeight").value = WeightMax;		  
		  if(WeightMax!="") document.getElementById("maxWeight").fireEvent("onblur");
		  
		  if(document.getElementById("minPrice"))
		  {
		  document.getElementById("minPrice").value = PriceMin;
		  }
		  if(document.getElementById("maxPrice"))
		  {
		  document.getElementById("maxPrice").value = PriceMax;
		  }
		  document.getElementById("minWeight").value = WeightMin;
		  document.getElementById("maxWeight").value = WeightMax;		  
		  
		  shapeRows = document.search_results.shape.value;
		  if(shapeRows!='')
		  for(var i=0;i<shapeRows.split(',').length;i++) {
		    document.getElementById(shapeRows.split(',')[i].substring(1,shapeRows.split(',')[i].length-1)+'Div').className = 'selected'+shapeRows.split(',')[i].substring(1,shapeRows.split(',')[i].length-1)+'Div';
		  }

		  labRows = document.search_results.Certif.value;
		  if(labRows!='')
		  for(var i=0;i<labRows.split(',').length;i++) {
		    document.getElementById(labRows.split(',')[i].substring(1,labRows.split(',')[i].length-1)+'_cbx').className = 'selected'+labRows.split(',')[i].substring(1,labRows.split(',')[i].length-1)+'_cbx';
		  }		 
		  if(document.search_results.Cut)
		  {
		  cutRows = document.search_results.Cut.value;
		  cutRows = cutRows.replace("'AC','BAG','BG','CUS','FANC','KT','OT','PR','RA','SHD','SQ','TARB','TMN','TR'","'other'");
		  if(cutRows!='')
		  for(var i=0;i<cutRows.split(',').length;i++) {
		    document.getElementById(cutRows.split(',')[i].substring(1,cutRows.split(',')[i].length-1)+'_cbx').className = 'selected'+cutRows.split(',')[i].substring(1,cutRows.split(',')[i].length-1)+'_cbx';
		  }
		  }
		}		
		function sort_page(sOrder)
		{

			if(Order == sOrder)
			{
			 if(oDir == "ASC")
			 {
			  oDir = "DESC";
			 }
			 else
			 {
			  oDir = "ASC";
			 }
			}
			else
			{
			 oDir = "ASC"
			}
		
		    Order = sOrder;
			if(isColoredDiamond)
			{
			loadThoseParams(Shape, WeightMin, WeightMax, ColorMin, ColorMax, ClarityMin , ClarityMax, PriceMin, PriceMax , skuNumber , 
                 Lab , Cut , Count , Offset , Order , oDir,Color,Intensity,treatment );
			}
			else
			{
			  loadThoseParams(Shape, WeightMin, WeightMax, ColorMin, ColorMax, ClarityMin , ClarityMax, PriceMin, PriceMax , skuNumber , 
                 Lab , Cut , Count , Offset , Order , oDir,"","","" );
				}

		}
		
		function positionHead()
		{
		 var tH = document.getElementById("tblHead");
		 var tFix = document.getElementById("fixedHead");
		 tFix.innerHTML = "<table CELLPADDING='0' CELLSPACING='0' border='0'>"+tH.innerHTML+"</table>";
		 moveHeader(document.getElementById("diamondList"));
		}
		
		function moveHeader(who)
		{
		 var tFix = document.getElementById("fixedHead");
		 tFix.style.top = who.scrollTop;
		 
		 moveInfo(who);
		}
	
var lstInfo = null;
var shiftFromTop = 0;
	
  function showInfo(who,fixedTop)
  {
   var curInfo = who.cells[(isV3P)? who.cells.length-1 : 0].getElementsByTagName("table")[0];
   //window.open().document.write(who.innerHTML);
   shiftFromTop = who.offsetTop + infoOffset;
   var zTable = who.parentNode.parentNode
   maxShift = (infoOffset-50)+zTable.offsetHeight + 200;
   var nbRows = zTable.rows.length;
   if(curInfo != lstInfo)
   {

    if(lstInfo != null) {
	 lstInfo.style.display = "none";
	 if(lstInfo.parentNode != null)
	 lstInfo.parentNode.parentNode.className = "comparetxt";
	} 
	
	lstInfo = curInfo;
	curInfo.style.display = "";
	if(curInfo.parentNode != null)
	curInfo.parentNode.parentNode.className = "checkbox";

	if((nbRows - who.rowIndex) <=3 && who.rowIndex >6)
	{
	
	 shiftFromTop  = shiftFromTop - 90;
	 if(shiftFromTop < 40)
	  shiftFromTop = 40;
	 curInfo.style.top = (fixedTop!=null)?(shiftFromTop+190)+"px":shiftFromTop+"px";
	}
	else
	{
	 shiftFromTop  = shiftFromTop - 70;
	 if(shiftFromTop < 40)
	  shiftFromTop = 40;
	 curInfo.style.top = (fixedTop!=null)?(shiftFromTop+190)+"px":shiftFromTop+"px";
    }
   
   if(nbRows>6 && maxShift<(shiftFromTop+499)) {curInfo.style.top = (fixedTop!=null)?(maxShift - 265)+"px":(maxShift - 455)+"px";}
   //alert("maxShift="+maxShift+"\n"+"shiftFromTop="+shiftFromTop+"\n"+(maxShift>(shiftFromTop+399)))
    
  }
  }
  
  function moveInfo(who)
  {
   shiftFromTop = who.scrollTop + 45;
   
   if(lstInfo != null)
   {
    lstInfo.style.top = shiftFromTop;
   }
  }

 //Search.js
var lstCaratWeights = new Array();
var lstColorRange = new Array();
var lstClarity = new Array();
var zLstShapes = new Array();
var zLstLabs = new Array();
var lstPrice = new Array();
var scaleWeight = 38.7, scaleColor = 19, scaleClarity = 39.7;
var scalePrice = 0.02153; 
var startSlider = 10;
var isHandEntry = false;
 
var lstCutsInput = new Array("cutExcelent","cutVeryGood", "cutGood", "cutFair");
var lstLabsInput = new Array("gemexCertified");
function constructSliderTable(lstPoints, zId, zWidth, zBound, isPrice)
{
 if(isV3P) 
  wth =  390;
 else if(isColoredDiamond)
   wth= 380;
 else 
  wth =  445;
 var tbl = "<table width='"+zWidth+"' id='"+zId+"' border='0' class='sliderMarkup' cellpadding='0' cellspacing='0'>";
 tbl += "<tr>";
 for(var i=0; i<lstPoints.length; i++)
 {
  zAln = (i==0)?"left":(i==lstPoints.length-1)?"right":"center";
  zWeightUnit = (zId == 'tblWeight')?"ct":"";
  zPriceUnit = (zId == 'tblPrice')?"$":"";
  if(isV3P && (zId == 'tblWeight' || zId == 'tblPrice'))
	tbl +="<td width='"+wth+"px' zValue='"+lstPoints[i].value+"' align='"+zAln+"' class='searchBy'>&nbsp;&nbsp;</td>";  //"+zPriceUnit+lstPoints[i].text+zWeightUnit+"  
  else	
	tbl +="<td width='"+wth+"px' zValue='"+lstPoints[i].value+"' align='"+zAln+"' class='searchBy'>&nbsp;"+zPriceUnit+lstPoints[i].text+zWeightUnit+"&nbsp;</td>";  
 }
 tbl += "</tr></table>";
// alert(tbl);
  return tbl;
}

function constructShapeTable(lstPoints, zId)
{
 var shapeTitle = (isV3P)? "SHAPE" : "SELECT DIAMOND SHAPE";
 var tbl = "<table width='650' height='' border='0' cellspacing='0' cellpadding='2' id='zShapeTbl'>";
 tbl += "<tr><td colspan='25' height='10'></td></tr><tr><td height='18' colspan='25' class='searchByShapeTitle'>"+shapeTitle+"</td></tr><tr><td colspan='25' height='5'></td></tr>"
 var iconStr = "<tr><td width='2%' height='43'></td>"; 
 var titleStr = "<tr><td height='4'></td>";
 for(var i=0; i<lstPoints.length; i++)
 {
  iconStr += "<td width='60' align='center'><a href=\"javascript:addRemoveShape(document.getElementById('"+lstPoints[i].value+"Div'));\"><div style='width:44px;height:43px;cursor:pointer;' class='notSelected"+lstPoints[i].value+"Div' id='"+lstPoints[i].value+"Div'></div></a></td>";
  if(i<lstPoints.length-1)
	iconStr += "<td height='33' align='center' style='text-align:center;'><img src='assets_custom/images/static/v3_diamond_shapes/separator.gif'/></td>";  
  titleStr += "<td width='60' class='searchBy' align='center' style='letter-spacing: 1px;font-size:9px;'>"+lstPoints[i].text+"</td>"
  if(i<lstPoints.length-1)
	titleStr += "<td></td>";
 }
 iconStr += "<td width='8%'></td></td></tr>"; 
 titleStr += "<td></td></tr>"; 
 tbl += iconStr
 tbl += titleStr 
 tbl += "</table>";
 
 //alert(tbl)
 return tbl;
}
function constructLabTable(lstPoints, zId)
{
 var wth = (isV3P)? 300 : 650;
 var tbl = "<table width='100%' bgcolor='#D7D7D7' height='22' border='0' cellspacing='0' cellpadding='0' style="+((isV3P)? '' : 'border-bottom: solid 1px #878787;')+" id='"+zId+"'><tr>";
 if (isV3P || isColoredDiamond)
  tbl += "<td width='100%' height='22' bgcolor='#ACACAC' class='box' align='center'>CERTIFICATION</td>";  
 tbl += "<td><table width='"+wth+"' height='22' border='0' cellspacing='0' cellpadding='0'><tr><td width='17' height='22' bgcolor='#d7d7d7'></td>";
 for(var i=0; i<lstPoints.length; i++)
 {
  tbl += "<td width='18' height='22'><a href=\"javascript:addRemoveCert(document.getElementById('"+lstPoints[i].value+"_cbx'));\">";
  tbl += "<div id='"+lstPoints[i].value+"_cbx' class='notSelected"+lstPoints[i].value+"_cbx' style='width:18px;height:18px;cursor:pointer;background-repeat:no-repeat;'></div></a></td>";
  tbl += "<td height='22' "+(('NON'==lstPoints[i].value && !isColoredDiamond)?"width='120px'":"")+" align='"+(('NON'==lstPoints[i].value && !isColoredDiamond)?"right": (isColoredDiamond)? "left" : "center")+"' bgcolor='#d7d7d7' class='checkbox'>" + ((isColoredDiamond)? "&nbsp;" : "" )+lstPoints[i].text+"</td>";
 }
 tbl += "<td width='5' height='22'></td></tr></table></td>";
 if (!isV3P && !isColoredDiamond)
  tbl += "<td width='100%' height='22' bgcolor='#ACACAC' class='box' align='center'>CERTIFICATION</td>";
  
 tbl += "</tr></table>";
 return tbl;
}
function adjustWeight()
{
 var v0,v1,t0 = eval(lstCaratWeights[0].value),t1 = eval(lstCaratWeights[lstCaratWeights.length-1].value);
 try {v0 = eval((document.getElementById("minWeight").value.trim()=="")?t0:document.getElementById("minWeight").value); if(v0<t0) v0=t0;} catch(e){v0 = t0;}
 try {v1 = eval((document.getElementById("maxWeight").value.trim()=="")?t1:document.getElementById("maxWeight").value); if(v1>t1) v1=t1;} catch(e){v1 = t1;}
 if(v0 > v1) {v0 = t0;v1 = t1;}
 document.getElementById("minWeight").value = v0;
 document.getElementById("maxWeight").value = v1;
 v0 = ((v0.toFixed(2) - t0) * scaleWeight);
 v1 = ((v1.toFixed(2) - t0) * scaleWeight);
 return new Array(v0, v1);
}
function adjustPrice()
{
 var v0,v1,t0 = eval(lstPrice[0].value),t1 = eval(lstPrice[lstPrice.length-1].value);
 try {v0 = eval((document.getElementById("minPrice").value.trim()=="")?t0:document.getElementById("minPrice").value); if(v0<t0) v0=t0;} catch(e){v0 = t0;}
 try {v1 = eval((document.getElementById("maxPrice").value.trim()=="")?t1:document.getElementById("maxPrice").value); if(v1>t1) v1=t1;} catch(e){v1 = t1;}
 if(v0 > v1) {v0 = t0;v1 = t1;}
 document.getElementById("minPrice").value = v0;
 document.getElementById("maxPrice").value = v1;
 v0 = ((v0.toFixed(2) - t0) * scalePrice);
 v1 = ((v1.toFixed(2) - t0) * scalePrice);
 return new Array(v0, v1);
}

function sliderInit() 
{
 initializeData();
 searchInit();
 if(!isNetscape4) {
 (function () {
    YAHOO.namespace('brbv2');
    var Dom = YAHOO.util.Dom;
    // Slider has a range of 200 pixels
    var range = (isV3P)? 382 : (isColoredDiamond)?332:582;
    // No ticks for this example
    var tickSize = 0;
    // We'll set a minimum distance the thumbs can be from one another
    var minThumbDistance = -34;
    // Initial values for the thumbs
    var initValues = (isV3P)? [0,382] : (isColoredDiamond)?[0,332]:[0,582];

    // Conversion factor from 0-200 pixels to 100-1000
    // Note 20 pixels are subtracted from the range to account for the
    // thumb values calculated from their center point (10 pixels from
    // the center of the left thumb + 10 pixels from the center of the
    // right thumb)
    //var cf = 300000/425;
    
    // Set up a function to convert the min and max values into something useful
    //var minPrice = 1000;    
	//var maxPrice = 300000;
	
	var minWeight = document.getElementById("minWeightHid").value;
	var maxWeight =  document.getElementById("maxWeightHid").value;
	minWeight = parseFloat(minWeight);
	maxWeight = parseFloat(maxWeight);
		
	// var minWeight = 0.01;
	//var maxWeight = 27.01;
			
	//Array for the segments of the slider with price ranges and % of diamonds within the ranges
    /* var segArray = new Array(new Array(0,10000,70),new Array(10001,50000,20),new Array(50001,100000,5), new Array(100001, 300000, 3), new Array(300001, 300001, 2));*/
	ttm = ((maxWeight/3).toFixed(2));
	var segArray = new Array();
	segArray.push(new Array(minWeight,ttm,75));
	segArray.push(new Array(ttm,ttm*2,10));
	segArray.push(new Array(ttm*2,ttm*3,15));
	segArray.push(new Array(maxWeight+1,maxWeight+1,1));
	//alert(segArray1.length)
	
    var segArray = new Array(new Array(minWeight,2.5,75),new Array(2.5,3,10),new Array(3.1,maxWeight,15), new Array(maxWeight+1,maxWeight+1,1));
	//var segArray = new Array(new Array(minWeight,0.5,55),new Array(0.5,1,30),new Array(1,maxWeight,15), new Array(maxWeight+1,maxWeight+1,1));


	//Conversion from weight to pixels
	var convertOpposit = function (valC) {	 
		var pos = 0;
		var cum = 0;
		var posPx = 0;
		var delta = 0;
		var deltaNew = 0;
		
		if(valC<minWeight) {
			posPx = initValues[0];
		} else if (valC>maxWeight) {
			//alert("valC>maxPrice");
			posPx = initValues[1];
			//return posPx;
		}

		cum = segArray[0][2];
		for(var i=0;i<segArray.length;i++) {
			if((valC>=segArray[i][0]) && (valC<=segArray[i][1])) {
				if (i==0) {cum=0;}
				delta = segArray[i][1] - segArray[i][0];
				deltaNew = valC - segArray[i][0];
				cum = cum + (deltaNew*segArray[i][2]/delta);
				if((deltaNew*segArray[i][2]/delta)<1) {cum = cum+1};
				posPx = (parseInt(cum)*initValues[1]/100);
				break;
			}
			if(i!=0)
				cum = cum + segArray[i][2];
		}
		return parseInt(posPx);
    };
	
	//conversion function to convert the position of the slider into corresponding price
    var convert = function (val) {
		var pos = 0;
		var cum = 0;
		for(var i=0;i<segArray.length;i++) {
			if(segArray[i][1] == segArray[i][0]) {
				return maxWeight;		
				break;				
			}
			var segWidth = Math.floor(segArray[i][2]*(initValues[1]-initValues[0])/100);
			pos = pos+segWidth;
			//alert(s+":"+segWidth+"::"+segArray[s][2]);
			//demo_deltax.innerHTML = segArray[4][1];
			if(val<pos) {
				var varValue = (val - (pos - segWidth))*(segArray[i][1]-segArray[i][0])/segWidth
				var RoundedvarValue = Math.round(varValue*Math.pow(10,2))/Math.pow(10,2)
				cum = cum + RoundedvarValue;
				break;
			} else
				cum = cum + segArray[i][1]-segArray[i][0];
		
		}
		var returnResult = minWeight+cum;
		var roundedResult = Math.round(returnResult*Math.pow(10,2))/Math.pow(10,2);
		return roundedResult;
    };
    // Slider set up is done when the DOM is ready
    YAHOO.util.Event.onDOMReady(function () {
        var demo_bg = (isColoredDiamond)?Dom.get("weightBackbgColored"):Dom.get("weightBackbg");
		var	info    = Dom.get("demo_info"),
            infoMin    = Dom.get("minWeight"),
			infoMax   = Dom.get("maxWeight");
            //from    = Dom.get("demo_from"),
            //to      = Dom.get("demo_to")

        // Create the DualSlider
        var slider = YAHOO.widget.Slider.getHorizDualSlider(demo_bg, "weight_min_thumb", "weight_max_thumb", range, tickSize, initValues);
        slider.minRange = minThumbDistance;
        // Custom function to update the text fields, the converted value
        // report and the slider's title attribute
        var updateUI = function () {
            // Update the converted values and the slider's title.
            // Account for the thumb width offsetting the value range by
            // subtracting the thumb width from the max value.
            var min = convert(slider.minVal), max = convert(slider.maxVal);
            if(!backToSearchWeight) {
				infoMin.value = min;	
				infoMax.value = max;
            }
			backToSearchWeight=false;
        };
		
		
		YAHOO.util.Event.on('maxWeight','blur',function () {	
			//Joe correct problem min - max value 
			var userValueMin = document.getElementById("minWeight").value;
			//Joe End correct problem min - max value 
			var userValue = document.getElementById("maxWeight").value;
			var XX = convertOpposit(document.getElementById("maxWeight").value);
			var maxWeightVar = document.getElementById("minWeight").value;
			var minWeightVar = document.getElementById("minWeight").value;
			if(parseFloat(maxWeightVar) < parseFloat(minWeightVar)) {
				XX = slider.minVal;
				slider.setValues(slider.minVal,XX);
				document.getElementById("maxWeight").value = document.getElementById("minWeight").value;
			} else {
				slider.setValues(slider.minVal,XX);}
				if (userValue<minWeight) {
					document.getElementById("maxWeight").value = minWeight;
				} else if (userValue>maxWeight) {
					document.getElementById("maxWeight").value = maxWeight;
				} else { 
					document.getElementById("maxWeight").value = userValue;
				}
				//Joe correct problem min - max value 
				document.getElementById("minWeight").value = userValueMin;
				//Joe End correct problem min - max value
		});	

		YAHOO.util.Event.on('minWeight','blur',function () {
			//Joe correct problem min - max value 
			var userValueMax = document.getElementById("maxWeight").value;
			//Joe End correct problem min - max value 
			var userValue = document.getElementById("minWeight").value;
			var XX = convertOpposit(document.getElementById("minWeight").value);
		    var maxWeightVar = document.getElementById("minWeight").value;
			var minWeightVar = document.getElementById("minPrice").value;
			if( parseFloat(minWeightVar) < parseFloat(maxWeightVar)) {
				XX = slider.minVal;
				slider.setValues(XX,slider.maxVal);	
				document.getElementById("minWeight").value = document.getElementById("maxWeight").value;
			} else {
				slider.setValues(XX,slider.maxVal);	
			}
			if (userValue<minWeight) {
				document.getElementById("minWeight").value = minWeight;
			} else if (userValue>maxWeight) {
				document.getElementById("minWeight").value = maxWeight;
			} else { 
				document.getElementById("minWeight").value = userValue;
			}
			//Joe correct problem min - max value 
			document.getElementById("maxWeight").value = userValueMax;
			//Joe End correct problem min - max value 
		});	
		
		YAHOO.lang.augmentObject(slider, 
		{_status : 'fillHighLight',_highlight : Dom.get("highlightWeight"),
		 getStatus : function () { return this._status; },
         updateHighlight : function () {
				var delta = this.maxVal - this.minVal, newStatus = 'fillHighLight';
				//alert(delta)
				if (this.activeSlider === this.minSlider) {
					Dom.setStyle(this._highlight,'left', (this.minVal + 0) + 'px');
				}
				Dom.setStyle(this._highlight,'width', Math.max(delta + 12,0) + 'px');
            }
        },true);
		
        // Subscribe to the dual thumb slider's change and ready events to
        // report the state.
        slider.subscribe('ready', updateUI);
        slider.subscribe('change', updateUI);
		
		slider.subscribe('change',slider.updateHighlight,slider,true);
		YAHOO.brbv2.slider = slider;
        // Attach the slider to the YAHOO.example namespace for public probing
        //YAHOO.example.slider = slider;
    });
})();

// *********************   Color Slider
(function () {
    YAHOO.namespace('brbv2');
    var Dom = YAHOO.util.Dom;
    var range = (isV3P)? 382 : (isColoredDiamond)?332:582;
    var tickSize = 0;
    YAHOO.util.Event.onDOMReady(function () {
        var sliderColor = YAHOO.widget.Slider.getHorizDualSlider("colorBackbg", "color_min_thumb", "color_max_thumb", range, tickSize);
        YAHOO.lang.augmentObject(sliderColor, {_status : 'fillHighLight',_highlight : Dom.get("highlightColor"),
            getStatus : function () { return this._status; },
            updateHighlight : function () {
                var delta = this.maxVal - this.minVal,
                    newStatus = 'fillHighLight';
                if (this.activeSlider === this.minSlider) {
                    Dom.setStyle(this._highlight,'left', (this.minVal + 0) + 'px');
                }
                Dom.setStyle(this._highlight,'width', Math.max(delta +12,0) + 'px');
            }
        },true);
       YAHOO.util.Event.on('maxColor','blur',function () {
	// take into concideration lower case in the search 
	document.getElementById("minColor").value = (document.getElementById("minColor").value).toUpperCase();	
	document.getElementById("maxColor").value = (document.getElementById("maxColor").value).toUpperCase();
	// End take into concideration lower case in the search 
          var idxW = getIdxOfValues(document.getElementById("minColor").value, document.getElementById("maxColor").value, lstColorRange, true);
          sliderColor.setValues(idxW[0] * scaleColor,idxW[1] * scaleColor);			
        });	
       YAHOO.util.Event.on('minColor','blur',function () {
	// take into concideration lower case in the search 
	document.getElementById("minColor").value = (document.getElementById("minColor").value).toUpperCase();	
	document.getElementById("maxColor").value = (document.getElementById("maxColor").value).toUpperCase();
	// End take into concideration lower case in the search      

          var idxW = getIdxOfValues(document.getElementById("minColor").value, document.getElementById("maxColor").value, lstColorRange, true);
          sliderColor.setValues(idxW[0] * scaleColor,idxW[1] * scaleColor);			
        });			
        var report = function () {
	      var minIdx = getIndexFromOffset(sliderColor.minVal, lstColorRange.length, scaleColor);
	      var maxIdx = getIndexFromOffset(sliderColor.maxVal, lstColorRange.length, scaleColor);
          highlightValue(minIdx, maxIdx, document.getElementById("tblColor"),0);
     	  if(minIdx > maxIdx)
	      {
	        var t = minIdx;
	        minIdx = maxIdx;
	        maxIdx = t;
	      }	
		  document.getElementById("minColor").value = lstColorRange[minIdx].value;
		  document.getElementById("maxColor").value = lstColorRange[maxIdx].value;		
		  
        };
        sliderColor.subscribe('change',report);			
        sliderColor.subscribe('change',sliderColor.updateHighlight,sliderColor,true);
        YAHOO.brbv2.sliderColor = sliderColor;
    });
})();
// *********************   Clarity Slider
(function () {
    YAHOO.namespace('brbv2');
    var Dom = YAHOO.util.Dom;
	var range = (isV3P)? 382 : (isColoredDiamond)? 332:582;
    var tickSize = 0;
    YAHOO.util.Event.onDOMReady(function () {
		var zClarity =(isColoredDiamond)?"clarityBackbgColored":"clarityBackbg";
        var sliderClarity = YAHOO.widget.Slider.getHorizDualSlider(zClarity, "clarity_min_thumb", "clarity_max_thumb", range, tickSize);
		YAHOO.lang.augmentObject(sliderClarity, {_status : 'fillHighLight',_highlight : Dom.get("highlightClarity"),
            getStatus : function () { return this._status; },
            updateHighlight : function () {
                var delta = this.maxVal - this.minVal,
                    newStatus = 'fillHighLight';
                if (this.activeSlider === this.minSlider) {
                    Dom.setStyle(this._highlight,'left', (this.minVal + 0) + 'px');
                }
                Dom.setStyle(this._highlight,'width', Math.max(delta + 12,0) + 'px');
            }
        },true);
       YAHOO.util.Event.on('minClarity','blur',function () {
			// take into concideration lower case in the search 
			document.getElementById("minClarity").value = (document.getElementById("minClarity").value).toUpperCase();	
			document.getElementById("maxClarity").value = (document.getElementById("maxClarity").value).toUpperCase();
			// End take into concideration lower case in the search      

          var idxW = getIdxOfValues(document.getElementById("minClarity").value, document.getElementById("maxClarity").value, lstClarity, true);
          sliderClarity.setValues(idxW[0] * scaleClarity,idxW[1] * scaleClarity);			
        });		
       YAHOO.util.Event.on('maxClarity','blur',function () {
			// take into concideration lower case in the search 
	document.getElementById("minClarity").value = (document.getElementById("minClarity").value).toUpperCase();	
	document.getElementById("maxClarity").value = (document.getElementById("maxClarity").value).toUpperCase();
	// End take into concideration lower case in the search      

          var idxW = getIdxOfValues(document.getElementById("minClarity").value, document.getElementById("maxClarity").value, lstClarity, true);
          sliderClarity.setValues(idxW[0] * scaleClarity,idxW[1] * scaleClarity);			
        });		
        var report = function () {
	      var minIdx = getIndexFromOffset(sliderClarity.minVal, lstClarity.length, scaleClarity);
	      var maxIdx = getIndexFromOffset(sliderClarity.maxVal, lstClarity.length, scaleClarity);
          highlightValue(minIdx, maxIdx, document.getElementById("tblClarity"),0);
     	  if(minIdx > maxIdx)
	      {
	        var t = minIdx;
	        minIdx = maxIdx;
	        maxIdx = t;
	      }	
		  document.getElementById("minClarity").value = lstClarity[minIdx].value;
		  document.getElementById("maxClarity").value = lstClarity[maxIdx].value;		
        };
        sliderClarity.subscribe('change',report);			
        sliderClarity.subscribe('change',sliderClarity.updateHighlight,sliderClarity,true);
        YAHOO.brbv2.sliderClarity = sliderClarity;
    });
})();
// *********************   PriceSlider
/**************************************************************************************************/
(function () {
    YAHOO.namespace('brbv2');

    var Dom = YAHOO.util.Dom;

    // Slider has a range of 200 pixels
    var range = (isV3P)? 382 : (isColoredDiamond)?332:582;

    // No ticks for this example
    var tickSize = 0;

    // We'll set a minimum distance the thumbs can be from one another
    var minThumbDistance = -34;

    // Initial values for the thumbs
    var initValues = (isV3P)? [0,382] : (isColoredDiamond)?[0,332]:[0,582];

    // Conversion factor from 0-200 pixels to 100-1000
    // Note 20 pixels are subtracted from the range to account for the
    // thumb values calculated from their center point (10 pixels from
    // the center of the left thumb + 10 pixels from the center of the
    // right thumb)
    
    // Set up a function to convert the min and max values into something useful
	
		var minPrice = document.getElementById("minPriceHid")?document.getElementById("minPriceHid").value:"0";
		var maxPrice =  document.getElementById("maxPriceHid")?document.getElementById("maxPriceHid").value:"0";
		minPrice = parseInt(minPrice);
		maxPrice = parseInt(maxPrice);
	//Array for the segments of the slider with price ranges and % of diamonds within the ranges
   /* var segArray = new Array(new Array(0,10000,70),new Array(10001,50000,20),new Array(50001,100000,5), new Array(100001, 300000, 3), new Array(300001, 300001, 2));*/
    var segArray = new Array(new Array(minPrice,10000,60),new Array(10001,30000,20),new Array(30001,50000,10),new Array(50001,80000,5), new Array(80001, maxPrice,4), new Array(maxPrice+1,maxPrice+1,1));
	
	
	//Convert from price to pixels
	 var convertOpposit = function (valC) { 
	var pos = 0;
	var cum = 0;
	var posPx = 0;
	var delta = 0;
	var deltaNew = 0;
		if(valC<minPrice)
		{
			posPx = initValues[0];
		}
		else if (valC>maxPrice)
		{
			posPx = initValues[1];
		}
	cum = segArray[0][2];
	for(var i=0;i<segArray.length;i++)
	{
		if((valC>=segArray[i][0]) && (valC<=segArray[i][1]))
		{
			if (i==0)
			{cum=0;}
			delta = segArray[i][1] - segArray[i][0];
			deltaNew = valC - segArray[i][0];
			cum = cum + (deltaNew*segArray[i][2]/delta);
			if((deltaNew*segArray[i][2]/delta)<1)
			{cum = cum+1};
			posPx = (parseInt(cum)*initValues[1]/100);
			break;
			
			}
			if(i!=0)
			cum = cum + segArray[i][2];
	}
	return parseInt(posPx);
    };
	
	
	//conversion function to convert the position of the slider into corresponding price
    var convert = function (val) {
	var pos = 0;
	var cum = 0;
	
	for(var i=0;i<segArray.length;i++){
		if(segArray[i][1] == segArray[i][0]){
			return maxPrice;		
			break;				
		}
		var segWidth = Math.floor(segArray[i][2]*(initValues[1]-initValues[0])/100);
		pos = pos+segWidth;
		//alert(s+":"+segWidth+"::"+segArray[s][2]);
		//demo_deltax.innerHTML = segArray[4][1];
		if(val<pos){
			cum = cum + Math.floor((val - (pos - segWidth))*(segArray[i][1]-segArray[i][0])/segWidth);
			break;
		}else
			cum = cum + segArray[i][1]-segArray[i][0];
	
	}
	return minPrice+cum;
	//alert(segArray[1]['max']);
    };
    // Slider set up is done when the DOM is ready
    YAHOO.util.Event.onDOMReady(function () {
        var demo_bg = Dom.get("priceBackbg"),
			info    = Dom.get("demo_info"),
            infoMin    = Dom.get("minPrice"),
			infoMax   = Dom.get("maxPrice");
           // from    = Dom.get("demo_from"),
            //to      = Dom.get("demo_to")

        // Create the DualSlider
        var slider = YAHOO.widget.Slider.getHorizDualSlider(demo_bg,
            "price_min_thumb", "price_max_thumb",
            range, tickSize, initValues);
		
        slider.minRange = minThumbDistance;
        
        // Custom function to update the text fields, the converted value
        // report and the slider's title attribute
        var updateUI = function () {

            // Update the converted values and the slider's title.
            // Account for the thumb width offsetting the value range by
            // subtracting the thumb width from the max value.
			
            var min = convert(slider.minVal),
                max = convert(slider.maxVal);
            if(!backToSearchPrice) {
			infoMin.value = min;	
			infoMax.value = max;
            }
			backToSearchPrice=false;		 
        };
		
	    YAHOO.util.Event.on('maxPrice','blur',function () {
		var userValue = document.getElementById("maxPrice").value;											  
		var XX = convertOpposit(document.getElementById("maxPrice").value);
		var maxPriceVar = document.getElementById("maxPrice").value;
		var minPriceVar = document.getElementById("minPrice").value;
		if(parseInt(maxPriceVar) < parseInt(minPriceVar))
			{
			XX = slider.minVal;	
			slider.setValues(slider.minVal,XX);	
			document.getElementById("maxPrice").value = document.getElementById("minPrice").value;
			}
		else
		{
		slider.setValues(slider.minVal,XX);	
		}
		
	if (userValue<minPrice)
		 {document.getElementById("maxPrice").value = minPrice;}
		 else if (userValue>maxPrice)
		 {document.getElementById("maxPrice").value = maxPrice;}
		 else
		 {document.getElementById("maxPrice").value = userValue;}

	
        });	
       YAHOO.util.Event.on('minPrice','blur',function () {										   
			var userValue = document.getElementById("minPrice").value;
			var XX = convertOpposit(document.getElementById("minPrice").value);
		var maxPriceVar = document.getElementById("maxPrice").value;
		var minPriceVar = document.getElementById("minPrice").value;
		if( parseInt(minPriceVar) > parseInt(maxPriceVar))
			{XX = slider.maxVal;
			slider.setValues(XX,slider.maxVal);	
			document.getElementById("minPrice").value = document.getElementById("maxPrice").value;
			}
			else{
			slider.setValues(XX,slider.maxVal);	}
			
			if (userValue<minPrice)
		 {document.getElementById("minPrice").value = minPrice;}
		 else if (userValue>maxPrice)
		 {document.getElementById("minPrice").value = maxPrice;}
		 else
		 {document.getElementById("minPrice").value = userValue;}
		      });
		
		 YAHOO.lang.augmentObject(slider, {_status : 'fillHighLight',_highlight : Dom.get("highlightPrice"),
            getStatus : function () { return this._status; },
            updateHighlight : function () {
                var delta = this.maxVal - this.minVal,
                    newStatus = 'fillHighLight';
                if (this.activeSlider === this.minSlider) {
                    Dom.setStyle(this._highlight,'left', (this.minVal + 0) + 'px');
                }
                Dom.setStyle(this._highlight,'width', Math.max(delta + 12,0) + 'px');
            }
        },true);
		
        // Subscribe to the dual thumb slider's change and ready events to
        // report the state.
        slider.subscribe('ready', updateUI);
        slider.subscribe('change', updateUI);
		
   slider.subscribe('change',slider.updateHighlight,slider,true);
   YAHOO.brbv2.slider = slider;

        // Attach the slider to the YAHOO.example namespace for public probing
        //YAHOO.example.slider = slider;
    });
})();
} else {
 if(document.getElementById("weightBackbg"))
 document.getElementById("weightBackbg").parentNode.parentNode.parentNode.style.display = "none";
 if(document.getElementById("colorBackbg"))
 document.getElementById("colorBackbg").parentNode.parentNode.parentNode.style.display = "none";
 if(document.getElementById("clarityBackbg"))
 document.getElementById("clarityBackbg").parentNode.parentNode.parentNode.style.display = "none";
 if(document.getElementById("priceBackbg"))
 document.getElementById("priceBackbg").parentNode.parentNode.parentNode.style.display = "none";
 
 if(document.getElementById("weightBackbgColored"))
 document.getElementById("weightBackbgColored").parentNode.parentNode.style.display = "none";
 if(document.getElementById("clarityBackbgColored"))
 document.getElementById("clarityBackbgColored").parentNode.parentNode.style.display = "none"; 
}

/**************************************************************************************************/
//////////////////////
document.getElementById("weightMeasure").innerHTML = constructSliderTable(lstCaratWeights, "tblWeight", "99%", true, false);
if(document.getElementById("colorMeasure"))
document.getElementById("colorMeasure").innerHTML = constructSliderTable(lstColorRange, "tblColor", "98%", false, false);
document.getElementById("clarityMeasure").innerHTML = constructSliderTable(lstClarity, "tblClarity", "98%", false, false);
if(document.getElementById("priceMeasure"))
document.getElementById("priceMeasure").innerHTML = constructSliderTable(lstPrice, "tblPrice", "100%", true, true);
}
function initializeData()
{
 var xmlInit = new XmlObj();
 xmlInit.async = false;
 //alert(document.getElementById("xmlTransArea").value);
 xmlInit.loadXML(document.getElementById("xmlTransArea").value);
 
 var lSearch = xmlInit.selectNodes("//search/type");
 for(var i=0; i < lSearch.length; ++i)
 {
  zLstShapes[i] = {value:lSearch[i].getAttribute("id"), text:lSearch[i].text, shape:lSearch[i].getAttribute("shape")};
 } 
 
 var lSearchLabs = xmlInit.selectNodes("//searchLabs/type");
 for(var i=0; i < lSearchLabs.length; ++i)
 {
  zLstLabs[i] = {value:lSearchLabs[i].getAttribute("id"), text:lSearchLabs[i].text, img:lSearchLabs[i].getAttribute("img")};
 }  
 
 var lWeight = xmlInit.selectNodes("//weightVal/val");
 for(var i=0; i < lWeight.length; ++i)
 {
  lstCaratWeights[i] = {value:eval(lWeight[i].text).toFixed(2), text:eval(lWeight[i].text).toFixed(2)};
 }
 
 var lColor = xmlInit.selectNodes("//colorVal/val");
 for(var i=0; i < lColor.length; ++i)
 {
  lstColorRange[i] = {value:lColor[i].text, text:lColor[i].text};
 }
 
 var lClarity = xmlInit.selectNodes("//wordVal/val");
 for(var i=0; i < lClarity.length; ++i)
 {
  lstClarity[i] = {value:lClarity[i].text, text:lClarity[i].text};
 }
 
 var lPrice = xmlInit.selectNodes("//priceVal/val");
 for(var i=0; i < lPrice.length; ++i)
 {
 if(lstPrice[i])
  lstPrice[i] = {value:lPrice[i].text, text:lPrice[i].text};
 }
 var range = (isV3P)? 382 : (isColoredDiamond)?332:582;
 scaleWeight = range / (eval(lstCaratWeights[lstCaratWeights.length - 1].value)-eval(lstCaratWeights[0].value));//(lstCaratWeights.length - 1);
 if(lstPrice && lstPrice[1] && lstPrice[0])
 {
  scalePrice = range / (eval(lstPrice[1].value)-eval(lstPrice[0].value));
 }
 if(lstColorRange)
 {
 scaleColor = range / (lstColorRange.length - 1);
 }
 scaleClarity = range / (lstClarity.length - 1); 
}

function constructSearch()
{
 document.getElementById("zTblShape").innerHTML = constructShapeTable(zLstShapes, "zShapeTbl");
 document.getElementById("zTblLab").innerHTML = constructLabTable(zLstLabs, "zLabTbl"); 
}

function searchInit()
{
 constructSearch();
 document.getElementById("skuNumber").value = "";
}

function mgtCut(who)
{
 for(var i=0; i < lstCutsInput.length; ++i)
 {
  if(document.getElementById(lstCutsInput[i]) != who)
  {
   //document.getElementById(lstCutsInput[i]).checked = false;
  }
 }
}

function getSelectedCut()
{
 for(var i=0; i < lstCutsInput.length; ++i)
 {
  if(document.getElementById(lstCutsInput[i]).checked)
  {
   return document.getElementById(lstCutsInput[i]).value;
  }
 }
 return "";
}

function getParams()
{
	var lstParams = new Array();		
    /*var lstPShapes = new Array();
    //var allShapes =  document.getElementById("zShapeTbl").rows;
	if(document.search_results.shape.value!="") {
		var allShapes = document.search_results.shape.value.split(",");
		for(var i=0; i<allShapes.length; i++)
		{
		 if(allShapes[i]!='')
		 lstPShapes.push(allShapes[i]);
		}
	}*/	

	var lstPWeight = new Array();
	lstPWeight[0] = document.getElementById("minWeight").value;
	lstPWeight[1] = document.getElementById("maxWeight").value;
	
	if( document.getElementById("minColor") &&  document.getElementById("maxColor"))
	{
	var lstPColors = new Array();
	lstPColors[0] = document.getElementById("minColor").value;
	lstPColors[1] = document.getElementById("maxColor").value;
	}
	
	var lstPClarity = new Array();
	lstPClarity[0] = document.getElementById("minClarity").value;
	lstPClarity[1] = document.getElementById("maxClarity").value;
	
	if( document.getElementById("minPrice") &&  document.getElementById("maxPrice"))
	{
	var lstPPrices = new Array()
	lstPPrices[0] = document.getElementById("minPrice").value;
	lstPPrices[1] = document.getElementById("maxPrice").value;	
	}
	/*var lstPCut = new Array();
	if(document.search_results.Cut.value!="") {
		var allCuts = document.search_results.Cut.value.split(",");
		for(var i=0; i<allCuts.length; i++)
		{
		 if(allCuts[i]!='')
		 lstPCut.push(allCuts[i]);
		}
	}*/	
	
	/*var lstPLabs = new Array();
	if(document.search_results.Certif.value!="") {
		var allCertifs = document.search_results.Certif.value.split(",");
		for(var i=0; i<allCertifs.length; i++)
		{
		 if(allCertifs[i]!='')
		 lstPLabs.push(allCertifs[i]);
		}
	}*/	
	
	/*allLabs = document.getElementById("zLabTbl").getElementsByTagName("td");
	for(var i=0; i<allLabs.length; ++i)
	{
	 var cLabInput = allLabs[i].getElementsByTagName("input")[0]
	 if(cLabInput && cLabInput.checked == true)
	 {
	  lstPLabs.push(cLabInput.value);
	 }
	}*/
	  
	
    //lstParams[0] = lstPShapes;
	lstParams[0] = lstPWeight;
	lstParams[1] = lstPColors;
	lstParams[2] = lstPClarity;
	lstParams[3] = lstPPrices;
    //lstParams[4] = lstPCut;
	//lstParams[5] = lstPLabs;
	skuNumber = document.getElementById("skuNumber").value;
	return lstParams;
}
function clearSearch()
{
 searchInit();
 if(document.getElementById('CutAll_cbx')) {
	document.getElementById('CutAll_cbx').className = "selectedCutAll_cbx";
	addRemoveCut(document.getElementById('CutAll_cbx')); 
 }
 if(document.getElementById('ColorAll_cbx')) {
	document.getElementById('ColorAll_cbx').className = "selectedColorAll_cbx";
	addRemoveColor(document.getElementById('ColorAll_cbx')); 
 }
 if(document.getElementById('IntensityF_cbx')) {
	clearIntensitySelection();
 } 
 document.search_results.compare.value = '';
 if(document.getElementById("minPrice")) {
	document.getElementById("minPrice").value = document.getElementById("minPriceHid").value;
	document.getElementById("maxPrice").value = document.getElementById("maxPriceHid").value;
 }
 document.getElementById("minWeight").value = document.getElementById("minWeightHid").value;
 document.getElementById("maxWeight").value = document.getElementById("maxWeightHid").value;
 if(document.getElementById("minColor")) document.getElementById("minColor").value = document.getElementById("maxColor").value = "";
 document.getElementById("minClarity").value = document.getElementById("maxClarity").value = "";
 if(document.getElementById("maxColor")) document.getElementById("maxColor").fireEvent("onblur");
 document.getElementById("maxClarity").fireEvent("onblur");
 document.getElementById("minWeight").fireEvent("onblur");
 document.getElementById("maxWeight").value = document.getElementById("maxWeightHid").value;
 document.getElementById("maxWeight").fireEvent("onblur");
 if(document.getElementById("minPrice")) {
	document.getElementById("minPrice").fireEvent("onblur");
	document.getElementById("maxPrice").value = document.getElementById("maxPriceHid").value;
	document.getElementById("maxPrice").fireEvent("onblur");
 }	
 if(document.getElementById("minColor")) document.getElementById("minColor").value = document.getElementById("maxColor").value = "";
 document.getElementById("minClarity").value = document.getElementById("maxClarity").value = ""; 
 
 document.search_results.shape.value = '';
 if(document.search_results.Cut) document.search_results.Cut.value = '';
 document.search_results.Certif.value = '';
 
 document.getElementById("mainHolder").innerHTML = "";
 document.getElementById("msgAdd1").style.visibility = "hidden"; 
}
function highlightValue(valStart, valEnd, sZone, drift)
{
 var cells = sZone.rows[0].cells;
 if(valStart >= cells.length)
  valStart = cells.length -1;
 if(valEnd >= cells.length)
  valEnd = cells.length -1;

 for(var i=0; i<cells.length; i++)
 {
   cells[i].className =  'searchBy';
 }
 cells[valStart+drift].className =  'sliderMarkupSelected';
 cells[valEnd+drift].className =  'sliderMarkupSelected';
}
function getIndexFromOffset(zOffset, upperLimit, scale)
{
 var idx = zOffset / scale
 idx = Math.abs(Math.round(idx)); 
 if(idx >= upperLimit)
  idx = upperLimit -1;
 return idx;
}
function getIdxOfValues(minValue, maxValue, zLstValues, getNearest)
{
 var idx = new Array(0, zLstValues.length -1);
 var minFound = false, maxFound = false;
 for(var i=0; i<zLstValues.length; ++i)
 {
  if(zLstValues[i].value == minValue || Number(zLstValues[i].value) == Number(minValue))
  {
   minFound = true;
   idx[0] = i;
  }
  else if(!minFound && getNearest)
  {
   if (i == Number(zLstValues.length) - 1 && Number(minValue) > Number(zLstValues[i].value))
	idx[0] = i;
   else if( Number(minValue) > Number(zLstValues[i].value) && Number(minValue) < Number(zLstValues[i+1].value))
	if(Math.abs(Number(minValue) - Number(zLstValues[i].value)) < Math.abs(Number(minValue) - Number(zLstValues[i+1].value)))
	 idx[0] = i;
	else
	 idx[0] = i+1;
  }
  if(zLstValues[i].value == maxValue || Number(zLstValues[i].value) == Number(maxValue))
  {
   idx[1] = i;
   maxFound = true
  }
  else if(!maxFound && getNearest)
  {
   if( i == Number(zLstValues.length) - 1 && Number(maxValue) > Number(zLstValues[i].value))
	idx[1] = i;
   else
	if( Number(maxValue) > Number(zLstValues[i].value) && Number(maxValue) < Number(zLstValues[i+1].value))
	 if(Math.abs(Number(maxValue) - Number(zLstValues[i].value)) < Math.abs(Number(maxValue) - Number(zLstValues[i+1].value)))
	  idx[1] = i;
	 else
	  idx[1] = i+1;
  }
 }
 return idx;
}
function openGemExReport(page) 
{
	var NewWindow=open('','livereport','menubar=no,scrollbars=no,resizable=no,width=1000,height=664');
	NewWindow.focus();
	window.open(page,target="livereport");
}
function addRemoveCert(obj)
{	 
	var nonExist = false;
	if(document.getElementById('NON_cbx'))
		nonExist = true;
	var certifiedExist = false;
	if(document.getElementById('CERTIFIED_cbx'))
		certifiedExist = true;		
	var eExist = false;
	if(document.getElementById('E_cbx'))
		eExist = true;
	var aExist = false;
	if(document.getElementById('A_cbx'))
		aExist = true;
	var hExist = false;
	if(document.getElementById('H_cbx'))
		hExist = true;
	var iExist = false;
	if(document.getElementById('I_cbx'))
		iExist = true;		
	var gExist = false;
	if(document.getElementById('G_cbx'))
		gExist = true;
	var gemExExist = false;
	if(document.getElementById('GemEx_cbx'))
		gemExExist = true;		
		
	var theDivId = obj.getAttribute('id');
	var clickedCert = "'"+theDivId.substring(0,theDivId.indexOf('_cbx'))+"'";
	var currentDivClass = obj.className;
	obj.className = (currentDivClass==null || currentDivClass=='' || currentDivClass=='notSelected'+theDivId)? 'selected'+theDivId : 'notSelected'+theDivId;
	savedCert = document.search_results.Certif.value;//document.getElementById('Certif')
	certExist = (savedCert!='' && (savedCert.indexOf(clickedCert)>-1))
	if((currentDivClass==('selected'+theDivId)) && certExist) {
	savedCert = savedCert.replace(','+clickedCert,'');
	savedCert = savedCert.replace(clickedCert+',','');
	savedCert = savedCert.replace(clickedCert,'');
	} else if((currentDivClass==('notSelected'+theDivId)) && !certExist)
	savedCert = savedCert+((savedCert=="")?"":",")+clickedCert;		
	document.search_results.Certif.value = savedCert;		  
	//additional logic for other and all
	if(clickedCert=="'all'") {				
	if(obj.className==('selected'+theDivId)) {
		document.search_results.Certif.value = ((certifiedExist)?"'CERTIFIED',":"")+((nonExist)?"'NON',":"")+((eExist)?"'E',":"")+((aExist)?"'A',":"")+((hExist)?"'H',":"")+((iExist)?"'I',":"")+((gemExExist)?"'GemEx',":"")+((gExist)?"'G',":"")+"'all'";
		if(nonExist)
			document.getElementById('NON_cbx').className = 'selectedNON_cbx';
		if(certifiedExist)
			document.getElementById('CERTIFIED_cbx').className = 'selectedCERTIFIED_cbx';			
		if(eExist)document.getElementById('E_cbx').className = 'selectedE_cbx';
		if(aExist)document.getElementById('A_cbx').className = 'selectedA_cbx';
		if(hExist)document.getElementById('H_cbx').className = 'selectedH_cbx';
		if(iExist)document.getElementById('I_cbx').className = 'selectedI_cbx';
		if(gemExExist)document.getElementById('GemEx_cbx').className = 'selectedGemEx_cbx';
		if(gExist)document.getElementById('G_cbx').className = 'selectedG_cbx';
	} else {
		document.search_results.Certif.value = '';
		if(nonExist)
			document.getElementById('NON_cbx').className = 'notSelectedNON_cbx';
		if(certifiedExist)
			document.getElementById('CERTIFIED_cbx').className = 'notSelectedCERTIFIED_cbx';			
		if(eExist)document.getElementById('E_cbx').className = 'notSelectedE_cbx';
		if(aExist)document.getElementById('A_cbx').className = 'notSelectedA_cbx';
		if(hExist)document.getElementById('H_cbx').className = 'notSelectedH_cbx';
		if(iExist)document.getElementById('I_cbx').className = 'notSelectedI_cbx';
		if(gemExExist)document.getElementById('GemEx_cbx').className = 'notSelectedGemEx_cbx';
		if(gExist)document.getElementById('G_cbx').className = 'notSelectedG_cbx';			
	}
	} else if(!obj.checked) {
	document.getElementById('all_cbx').className = 'notSelectedall_cbx';
	savedCert = document.search_results.Certif.value;
	if(savedCert.indexOf('all')>-1) {
		savedCert = savedCert.replace(",'all'","");
		savedCert = savedCert.replace("'all',","");
		savedCert = savedCert.replace("'all'","");		
	}
	document.search_results.Certif.value = savedCert;			
	}
}
function addRemoveShape(obj)
{
	var brExist = false;
	if(document.getElementById('BRDiv'))
		brExist = true;	
	var prnExist = false;
	if(document.getElementById('PRNDiv'))
		prnExist = true;	
	var ecExist = false;
	if(document.getElementById('ECDiv'))
		ecExist = true;	
	var asExist = false;
	if(document.getElementById('ASDiv'))
		asExist = true;
	var mqExist = false;
	if(document.getElementById('MQDiv'))
		mqExist = true;	
	var ovExist = false;
	if(document.getElementById('OVDiv'))
		ovExist = true;		
	var rcExist = false;
	if(document.getElementById('RCDiv'))
		rcExist = true;	
	var psExist = false;
	if(document.getElementById('PSDiv'))
		psExist = true;
	var hsExist = false;
	if(document.getElementById('HSDiv'))
		hsExist = true;	
	var cuExist = false;
	if(document.getElementById('CUDiv'))
		cuExist = true;		


	var theDivId = obj.getAttribute('id');
	var clickedShape = "'"+theDivId.substring(0,theDivId.indexOf('Div'))+"'";
	if(clickedShape=="'other'") {
		clickedShape = "'AC','BAG','BG','CUS','FANC','KT','OT','PR','RA','SHD','SQ','TARB','TMN','TR'";
	}
	//alert("clickedShape="+clickedShape+"<"+"\n"+(clickedShape=='other'));
	var currentDivClass = obj.className;
	obj.className = (currentDivClass==null || currentDivClass=='' || currentDivClass=='notSelected'+theDivId)? 'selected'+theDivId : 'notSelected'+theDivId;
	savedShape = document.search_results.shape.value;
	shapeExist = (savedShape!='' && (savedShape.indexOf(clickedShape)>-1))
	if((currentDivClass==('selected'+theDivId)) && shapeExist) {
	savedShape = savedShape.replace(','+clickedShape,'');
	savedShape = savedShape.replace(clickedShape+',','');
	savedShape = savedShape.replace(clickedShape,'');
	} else if((currentDivClass==('notSelected'+theDivId)) && !shapeExist)
	savedShape = savedShape+((savedShape=="")?"":",")+clickedShape;
	document.search_results.shape.value = savedShape;
	//additional logic for other and all
	if(clickedShape=="'all'") {
	if(obj.className==('selected'+theDivId)) {
		document.search_results.shape.value = ((brExist)?"'BR',":"")+((prnExist)?"'PRN',":"")+((ecExist)?"'EC',":"")+((asExist)?"'AS',":"")
											+((mqExist)?"'MQ',":"")+((ovExist)?"'OV',":"")+((rcExist)?"'RC',":"")
											+((psExist)?"'PS',":"")+((hsExist)?"'HS',":"")+((cuExist)?"'CU',":"")
											+"'AC','BAG','BG','CUS','FANC','KT','OT','PR','RA','SHD','SQ','TARB','TMN','TR','all'";		
		if(brExist)document.getElementById('BRDiv').className = 'selectedBRDiv';
		if(prnExist)document.getElementById('PRNDiv').className = 'selectedPRNDiv';
		if(ecExist)document.getElementById('ECDiv').className = 'selectedECDiv';
		if(asExist)document.getElementById('ASDiv').className = 'selectedASDiv';
		if(mqExist)document.getElementById('MQDiv').className = 'selectedMQDiv';
		if(ovExist)document.getElementById('OVDiv').className = 'selectedOVDiv';
		if(rcExist)document.getElementById('RCDiv').className = 'selectedRCDiv';
		if(psExist)document.getElementById('PSDiv').className = 'selectedPSDiv';
		if(hsExist)document.getElementById('HSDiv').className = 'selectedHSDiv';
		if(cuExist)document.getElementById('CUDiv').className = 'selectedCUDiv';
		document.getElementById('otherDiv').className = 'selectedotherDiv';
	} else {
		document.search_results.shape.value = '';
		if(brExist)document.getElementById('BRDiv').className = 'notSelectedBRDiv';
		if(prnExist)document.getElementById('PRNDiv').className = 'notSelectedPRNDiv';
		if(ecExist)document.getElementById('ECDiv').className = 'notSelectedECDiv';
		if(asExist)document.getElementById('ASDiv').className = 'notSelectedASDiv';
		if(mqExist)document.getElementById('MQDiv').className = 'notSelectedMQDiv';
		if(ovExist)document.getElementById('OVDiv').className = 'notSelectedOVDiv';
		if(rcExist)document.getElementById('RCDiv').className = 'notSelectedRCDiv';
		if(psExist)document.getElementById('PSDiv').className = 'notSelectedPSDiv';
		if(hsExist)document.getElementById('HSDiv').className = 'notSelectedHSDiv';
		if(cuExist)document.getElementById('CUDiv').className = 'notSelectedCUDiv';
		document.getElementById('otherDiv').className = 'notSelectedotherDiv';				
	}		 
	} else if(obj.className==('notSelected'+theDivId)) {
	document.getElementById('allDiv').className = 'notSelectedallDiv';
	savedShape = document.search_results.shape.value;
	if(savedShape.indexOf('all')>-1) {
		savedShape = savedShape.replace(",'all'","");
		savedShape = savedShape.replace("'all',","");
		savedShape = savedShape.replace("'all'","");		
	}
	document.search_results.shape.value = savedShape;
	}
	//alert(document.search_results.shape.value);
}
function addRemoveCut(obj)
{
	var theDivId = obj.getAttribute('id');
	var clickedCut = "'"+theDivId.substring(0,theDivId.indexOf('_cbx'))+"'";
	var currentDivClass = obj.className;
	obj.className = (currentDivClass==null || currentDivClass=='' || currentDivClass=='notSelected'+theDivId)? 'selected'+theDivId : 'notSelected'+theDivId;
	savedCut = document.search_results.Cut.value;
	cutExist = (savedCut!='' && (savedCut.indexOf(clickedCut)>-1))
	if((currentDivClass==('selected'+theDivId)) && cutExist) {
	savedCut = savedCut.replace(','+clickedCut,'');
	savedCut = savedCut.replace(clickedCut+',','');
	savedCut = savedCut.replace(clickedCut,'');
	} else if((currentDivClass==('notSelected'+theDivId)) && !cutExist)
	savedCut = savedCut+((savedCut=="")?"":",")+clickedCut;	
	document.search_results.Cut.value = savedCut;
	//additional logic for other and all
	if(clickedCut=="'CutAll'") {
	if(obj.className==('selected'+theDivId)) {
		if(document.getElementById('FR_cbx')) document.search_results.Cut.value = "'EX','VG','GD','FR','CutAll'";
		else document.search_results.Cut.value = "'EX','VG','GD','CutAll'";
		document.getElementById('EX_cbx').className = 'selectedEX_cbx';
		document.getElementById('VG_cbx').className = 'selectedVG_cbx';
		document.getElementById('GD_cbx').className = 'selectedGD_cbx';
		if(document.getElementById('FR_cbx')) document.getElementById('FR_cbx').className = 'selectedFR_cbx';
		//document.getElementById('PR_cbx').className = 'selectedPR_cbx';
		document.getElementById('CutAll_cbx').className = 'selectedCutAll_cbx';
	} else {
		document.search_results.Cut.value = '';
		document.getElementById('EX_cbx').className = 'notSelectedEX_cbx';
		document.getElementById('VG_cbx').className = 'notSelectedVG_cbx';
		document.getElementById('GD_cbx').className = 'notSelectedGD_cbx';
		if(document.getElementById('FR_cbx')) document.getElementById('FR_cbx').className = 'notSelectedFR_cbx';
		//document.getElementById('PR_cbx').className = 'notSelectedPR_cbx';
		document.getElementById('CutAll_cbx').className = 'notSelectedCutAll_cbx';
	}		 
	} else if(obj.className==('notSelected'+theDivId)) {
	document.getElementById('CutAll_cbx').className = 'notSelectedCutAll_cbx';
	savedCut = document.search_results.Cut.value;
	if(savedCut.indexOf('CutAll')>-1) {
		savedCut = savedCut.replace(",'CutAll'","");
		savedCut = savedCut.replace("'CutAll',","");
		savedCut = savedCut.replace("'CutAll'","");		
	}		
	document.search_results.Cut.value = savedCut;
	}
}
function addRemoveDiamond(obj)
{
	var theDivId = obj.getAttribute('id');
	var clickedDiamond = theDivId.substring(theDivId.indexOf('cbx_')+4,theDivId.length);
	var currentDivClass = obj.className;
	obj.className = (currentDivClass==null || currentDivClass=='' || currentDivClass=='notSelectedDiamond_cbx')? 'selectedDiamond_cbx' : 'notSelectedDiamond_cbx';
	savedDiamond = document.search_results.compare.value;
	diamondExist = (savedDiamond!='' && (savedDiamond.indexOf(clickedDiamond)>-1))
	if((currentDivClass==('selectedDiamond_cbx')) && diamondExist) {
	savedDiamond = savedDiamond.replace(','+clickedDiamond,'');
	savedDiamond = savedDiamond.replace(clickedDiamond+',','');
	savedDiamond = savedDiamond.replace(clickedDiamond,'');
	} else if((currentDivClass==('notSelectedDiamond_cbx')) && !diamondExist)
	savedDiamond = savedDiamond+((savedDiamond=="")?"":",")+clickedDiamond;		
	document.search_results.compare.value = savedDiamond;
}

function continueLoad()
{
 sliderInit();
}
function printSelection()
{
  var o = window.open("index.cfm?do=ring.diamondprint&compare="+document.search_results.compare.value, "printSelection", "menubar=0,resizable=1,width=900,height=400,location=0,status=0,scrollbars=1");
}


function addRemoveColor(obj)
{
	var theDivId = obj.getAttribute('id');
	var clickedColor = "'"+theDivId.substring(5,theDivId.indexOf('_cbx'))+"'";
	var currentDivClass = obj.className;
	obj.className = (currentDivClass==null || currentDivClass=='' || currentDivClass=='notSelected'+theDivId)? 'selected'+theDivId : 'notSelected'+theDivId;
	savedColor = document.search_results.Color.value;
	colorExist = (savedColor!='' && (savedColor.indexOf(clickedColor)>-1))
	if((currentDivClass==('selected'+theDivId)) && colorExist) {
	savedColor = savedColor.replace(','+clickedColor,'');
	savedColor = savedColor.replace(clickedColor+',','');
	savedColor = savedColor.replace(clickedColor,'');
	} else if((currentDivClass==('notSelected'+theDivId)) && !colorExist)
	savedColor = savedColor+((savedColor=="")?"":",")+clickedColor;	
	document.search_results.Color.value = savedColor;
	//additional logic for other and all
	if(clickedColor=="'All'") {
	if(obj.className==('selected'+theDivId)) {
		document.search_results.Color.value = "'Y','G','GY','X','P','R','BN','B','O','PL','All'";
		document.getElementById('ColorY_cbx').className = 'selectedColorY_cbx';
		document.getElementById('ColorG_cbx').className = 'selectedColorG_cbx';
		document.getElementById('ColorGY_cbx').className = 'selectedColorGY_cbx';
		document.getElementById('ColorX_cbx').className = 'selectedColorX_cbx';
		document.getElementById('ColorP_cbx').className = 'selectedColorP_cbx';
		document.getElementById('ColorR_cbx').className = 'selectedColorR_cbx';
		document.getElementById('ColorBN_cbx').className = 'selectedColorBN_cbx';
		document.getElementById('ColorB_cbx').className = 'selectedColorB_cbx';
		document.getElementById('ColorO_cbx').className = 'selectedColorO_cbx';
		document.getElementById('ColorPL_cbx').className = 'selectedColorPL_cbx';
		document.getElementById('ColorAll_cbx').className = 'selectedColorAll_cbx';
	} else {
		document.search_results.Color.value = '';
		document.getElementById('ColorY_cbx').className = 'notSelectedColorY_cbx';
		document.getElementById('ColorG_cbx').className = 'notSelectedColorG_cbx';
		document.getElementById('ColorGY_cbx').className = 'notSelectedColorGY_cbx';
		document.getElementById('ColorX_cbx').className = 'notSelectedColorX_cbx';
		document.getElementById('ColorP_cbx').className = 'notSelectedColorP_cbx';
		document.getElementById('ColorR_cbx').className = 'notSelectedColorR_cbx';
		document.getElementById('ColorBN_cbx').className = 'notSelectedColorBN_cbx';
		document.getElementById('ColorB_cbx').className = 'notSelectedColorB_cbx';
		document.getElementById('ColorO_cbx').className = 'notSelectedColorO_cbx';
		document.getElementById('ColorPL_cbx').className = 'notSelectedColorPL_cbx';
		document.getElementById('ColorAll_cbx').className = 'notSelectedColorAll_cbx';
	}		 
	} else if(obj.className==('notSelected'+theDivId)) {
	document.getElementById('ColorAll_cbx').className = 'notSelectedColorAll_cbx';
	savedColor = document.search_results.Color.value;
	if(savedColor.indexOf('All')>-1) {
		savedColor = savedColor.replace(",'All'","");
		savedColor = savedColor.replace("'All',","");
		savedColor = savedColor.replace("'All'","");		
	}		
	document.search_results.Color.value = savedColor;
	}
}


function addRemoveColor(obj)
{
	var theDivId = obj.getAttribute('id');
	var clickedColor = "'"+theDivId.substring(5,theDivId.indexOf('_cbx'))+"'";
	var currentDivClass = obj.className;
	obj.className = (currentDivClass==null || currentDivClass=='' || currentDivClass=='notSelected'+theDivId)? 'selected'+theDivId : 'notSelected'+theDivId;
	savedColor = document.search_results.Color.value;
	colorExist = (savedColor!='' && (savedColor.indexOf(clickedColor)>-1))
	if((currentDivClass==('selected'+theDivId)) && colorExist) {
	savedColor = savedColor.replace(','+clickedColor,'');
	savedColor = savedColor.replace(clickedColor+',','');
	savedColor = savedColor.replace(clickedColor,'');
	} else if((currentDivClass==('notSelected'+theDivId)) && !colorExist)
	savedColor = savedColor+((savedColor=="")?"":",")+clickedColor;	
	document.search_results.Color.value = savedColor;
	//additional logic for other and all
	if(clickedColor=="'All'") {
	if(obj.className==('selected'+theDivId)) {
		document.search_results.Color.value = "'Y','G','GY','X','P','R','BN','B','O','PL','All'";
		document.getElementById('ColorY_cbx').className = 'selectedColorY_cbx';
		document.getElementById('ColorG_cbx').className = 'selectedColorG_cbx';
		document.getElementById('ColorGY_cbx').className = 'selectedColorGY_cbx';
		document.getElementById('ColorX_cbx').className = 'selectedColorX_cbx';
		document.getElementById('ColorP_cbx').className = 'selectedColorP_cbx';
		document.getElementById('ColorR_cbx').className = 'selectedColorR_cbx';
		document.getElementById('ColorBN_cbx').className = 'selectedColorBN_cbx';
		document.getElementById('ColorB_cbx').className = 'selectedColorB_cbx';
		document.getElementById('ColorO_cbx').className = 'selectedColorO_cbx';
		document.getElementById('ColorPL_cbx').className = 'selectedColorPL_cbx';
		document.getElementById('ColorAll_cbx').className = 'selectedColorAll_cbx';
	} else {
		document.search_results.Color.value = '';
		document.getElementById('ColorY_cbx').className = 'notSelectedColorY_cbx';
		document.getElementById('ColorG_cbx').className = 'notSelectedColorG_cbx';
		document.getElementById('ColorGY_cbx').className = 'notSelectedColorGY_cbx';
		document.getElementById('ColorX_cbx').className = 'notSelectedColorX_cbx';
		document.getElementById('ColorP_cbx').className = 'notSelectedColorP_cbx';
		document.getElementById('ColorR_cbx').className = 'notSelectedColorR_cbx';
		document.getElementById('ColorBN_cbx').className = 'notSelectedColorBN_cbx';
		document.getElementById('ColorB_cbx').className = 'notSelectedColorB_cbx';
		document.getElementById('ColorO_cbx').className = 'notSelectedColorO_cbx';
		document.getElementById('ColorPL_cbx').className = 'notSelectedColorPL_cbx';
		document.getElementById('ColorAll_cbx').className = 'notSelectedColorAll_cbx';
	}		 
	} else if(obj.className==('notSelected'+theDivId)) {
	document.getElementById('ColorAll_cbx').className = 'notSelectedColorAll_cbx';
	savedColor = document.search_results.Color.value;
	if(savedColor.indexOf('All')>-1) {
		savedColor = savedColor.replace(",'All'","");
		savedColor = savedColor.replace("'All',","");
		savedColor = savedColor.replace("'All'","");		
	}		
	document.search_results.Color.value = savedColor;
	}
}


function addRemoveIntensity(obj)
{
	var theDivId = obj.getAttribute('id');
	var clickedIntensity = "'"+theDivId.substring(9,theDivId.indexOf('_cbx'))+"'";
	var currentDivClass = obj.className;
	obj.className = (currentDivClass==null || currentDivClass=='' || currentDivClass=='notSelected'+theDivId)? 'selected'+theDivId : 'notSelected'+theDivId;
	savedIntensity = document.search_results.Intensity.value;
	intensityExist = (savedIntensity!='' && (savedIntensity.indexOf(clickedIntensity)>-1))
	if((currentDivClass==('selected'+theDivId)) && intensityExist) {
	savedIntensity = savedIntensity.replace(','+clickedIntensity,'');
	savedIntensity = savedIntensity.replace(clickedIntensity+',','');
	savedIntensity = savedIntensity.replace(clickedIntensity,'');
	} else if((currentDivClass==('notSelected'+theDivId)) && !intensityExist)
	savedIntensity = savedIntensity+((savedIntensity=="")?"":",")+clickedIntensity;	
	document.search_results.Intensity.value = savedIntensity;
}
function clearIntensitySelection()
{
	document.getElementById('IntensityF_cbx').className = "notSelectedIntensityF_cbx";
	document.getElementById('IntensityI_cbx').className = "notSelectedIntensityI_cbx";
	document.getElementById('IntensityVL_cbx').className = "notSelectedIntensityVL_cbx";
	document.getElementById('IntensityFC_cbx').className = "notSelectedIntensityFC_cbx";
	document.getElementById('IntensityL_cbx').className = "notSelectedIntensityL_cbx";
	document.getElementById('IntensityV_cbx').className = "notSelectedIntensityV_cbx";
	document.getElementById('IntensityFDK_cbx').className = "notSelectedIntensityFDK_cbx";
	document.getElementById('IntensityFD_cbx').className = "notSelectedIntensityFD_cbx";
	document.getElementById('IntensityFL_cbx').className = "notSelectedIntensityFL_cbx";
	document.search_results.Intensity.value = "";
}
