(function(){var I=function(K,J){J=J||{};if(arguments.length==1&&!YAHOO.lang.isString(K)&&!K.nodeName){J=K;K=K.element||null;}if(!K&&!J.element){K=document.body;}I.superclass.constructor.call(this,K,J);H.call(this);};YAHOO.extend(I,YAHOO.util.Element);var C=I.prototype;var D=YAHOO.util.Event;var E=YAHOO.util.Dom;var F=YAHOO.util.Connect;C.initAttributes=function(J){this.constructor.superclass.initAttributes.call(this,J);this.setAttributeConfig("checkClassName",{value:J.checkClassName||"delete-select"});this.setAttributeConfig("deleteClassName",{value:J.deleteClassName||"delete-button"});this.setAttributeConfig("deleteUrl",{value:J.deleteUrl||""});this.setAttributeConfig("editCallback",{value:J.editCallback||function(){},validator:YAHOO.lang.isFunction});this.setAttributeConfig("editClassName",{value:J.editClassName||"edit-button",validator:YAHOO.lang.isArray});this.setAttributeConfig("errorMsg",{value:J.errorMsg||""});this.setAttributeConfig("formEl",{value:J.formEl||null,validator:YAHOO.lang.isObject});this.setAttributeConfig("priorityClassNames",{value:J.priorityClassNames||["up-button","down-button"],validator:YAHOO.lang.isArray});this.setAttributeConfig("priorityUrl",{value:J.priorityUrl||""});this.setAttributeConfig("activeColor",{value:J.activeColor||"#ecf4db"});};var G=function(L,K){while(L["parentNode"]){L=L["parentNode"];var J=L["tagName"];if(J&&J.toLowerCase()==K.toLowerCase()){return L;}}return null;};var B=[];var A=[];C.selectAllRows=function(){var K=this;var N=K.get("element");var O=N.tBodies[0].getElementsByTagName("tr");for(var M=0,L=O.length;M<L;M++){var J=YUD.getElementsByClassName("delete-select","input",O[M])[0];if(!J.checked){B[B.length]=O[M];A[A.length]=J;J.checked=true;}}};C.deselectAllRows=function(){var K=this;var N=K.get("element");var O=N.tBodies[0].getElementsByTagName("tr");for(var M=0,L=O.length;M<L;M++){var J=YUD.getElementsByClassName("delete-select","input",O[M])[0];if(J.checked){J.checked=false;}}B.length=0;A.length=0;};var H=function(){var L=this;var J=L.get("element");L.onRowBeforeAdjust=new YAHOO.util.CustomEvent("rowBeforeAdjust");L.onRowBeforeDelete=new YAHOO.util.CustomEvent("rowBeforeDelete");L.onRowDeleted=new YAHOO.util.CustomEvent("rowDeleted");L.onCheckChange=new YAHOO.util.CustomEvent("checkChange");var K=function(){var P=J.tBodies[0].rows;E.removeClass(P,"first");E.removeClass(P,"last");for(var O=0,N=P.length;O<N;O++){var M=E.getElementsByClassName("priority","td",P[O])[0].getElementsByTagName("div")[0];switch(true){case (O==0):E.addClass(P[0],"first");if(P.length>1){M.innerHTML='<a href="?" class="down-button"><img class="down-img" src="http://l.yimg.com/tw.yimg.com/i/tw/ks/i8_coe/btn_down.gif?date=20071226" alt="下"></a>';}else{M.innerHTML="";}break;case (O==P.length-1):E.addClass(P[P.length-1],"last");M.innerHTML='<a href="?" class="up-button"><img class="up-img" src="http://l.yimg.com/tw.yimg.com/i/tw/ks/i8_coe/btn_down.gif?date=20071226" alt="上"></a>';break;default:M.innerHTML=['<a href="?" class="up-button"><img class="up-img" src="http://l.yimg.com/tw.yimg.com/i/tw/ks/i8_coe/btn_up.gif?date=20071226" alt="上"></a>','<a href="?" class="down-button"><img class="down-img" src="http://l.yimg.com/tw.yimg.com/i/tw/ks/i8_coe/btn_down.gif?date=20071226" alt="下"></a>'].join("\n");}}};E.generateId(J.getElementsByTagName("tr"));D.on(J,"click",function(Q){var R=D.getTarget(Q);var P=L.get("checkClassName");var N=G(R,"tr");if(E.hasClass(R,P)){if(R.checked){B[B.length]=N;A[A.length]=R;}else{for(var O=0,M=B.length;O<M;O++){if(B[O].id==N.id){B.splice(O,1);A.splice(O,1);break;}}}L.onCheckChange.fire();}});D.on(J,"click",function(P){var Q=D.getTarget(P);var O=L.get("deleteClassName");if(E.hasClass(Q,O)){D.stopEvent(P);L.onRowBeforeDelete.fire();var M=function(){var U=[];for(var S=0,R=B.length;S<R;S++){E.setStyle(B[S],"background",L.get("activeColor"));U[U.length]=B[S].id;if(S==B.length-1){var T=new YAHOO.util.Motion(B[S],{opacity:{to:0}});T.onComplete.subscribe(function(){while(B.length){var V=B.shift();V.parentNode.removeChild(V);}while(A.length){var V=A.shift();V.checked=false;V.parentNode.removeChild(V);}K();L.onRowDeleted.fire(U);});T.animate();}else{(new YAHOO.util.Motion(B[S].id,{opacity:{to:0}})).animate();}}};var N=function(){if(!A.length){return ;}var R=L.get("formEl");var S=L.get("deleteUrl");if(!S||!R){return ;}F.setForm(R);F.asyncRequest("POST",S,{success:function(T){if(T.responseText.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,"")=="true"){M();}else{if(L.get("errorMsg")){alert(L.get("errorMsg"));}}},failure:function(T){if(L.get("errorMsg")){alert(L.get("errorMsg"));}}});};N();}});D.on(J,"click",function(R){var W=D.getTarget(R);var N=L.get("priorityClassNames");if(E.hasClass(W.parentNode,N[0])||E.hasClass(W.parentNode,N[1])){W=W.parentNode;}if((E.hasClass(W,N[0])||E.hasClass(W,N[1]))){D.stopEvent(R);L.onRowBeforeAdjust.fire();var T=(E.hasClass(W,L.get("priorityClassNames")[0]))?"up":"down";var P=G(W,"tr");var U=E.getElementsByClassName("delete-select","input",P)[0];var O=P.id;E.generateId(O);var M=P.cloneNode(true);var Q=P.rowIndex;var V=function(){for(var a=0,Y=B.length;a<Y;a++){if(P.id==B[a].id){B.splice(a,1,M);A.splice(a,1,E.getElementsByClassName(L.get("checkClassName"),"*",M)[0]);break;}}P.parentNode.removeChild(P);E.setStyle(M,"background",L.get("activeColor"));var X=(T=="up")?(Q-1):(Q+1);var Z=J.rows[X];if(X!=J.tBodies[0].rows.length+1){J.tBodies[0].insertBefore(M,Z);}else{J.tBodies[0].appendChild(M);}K();setTimeout(function(){(new YAHOO.util.ColorAnim(M,{backgroundColor:{to:"#ffffff"}})).animate();},500);};var S=function(){var Y=L.get("formEl");var X=L.get("priorityUrl");if(!X||!Y){return ;}F.setForm(Y);F.asyncRequest("POST",X,{success:function(Z){if(Z.responseText.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,"")==="true"){V();}else{if(L.get("errorMsg")){alert(L.get("errorMsg"));}}},failure:function(Z){if(L.get("errorMsg")){alert(L.get("errorMsg"));}}},"dir="+T+"&id="+U.value);};S();}});D.on(J,"click",function(O){var P=D.getTarget(O);var M=L.get("editClassName");if(E.hasClass(P,M)){D.stopEvent(O);var N=G(P,"tr");if(L.get("editCallback")){L.get("editCallback")(N,P);}}});};YAHOO.widget.DataGrid=I;}());
