edu=window.edu||{};edu.DropDown=new function(){var F={};var G;var J=null;this.create=function(A,B,C){C=C||{};C.width=C.width||"150px";F[A]={name:A,data:B,params:C,element:null,activeElement:null}};this.remove=function(A){delete F[A]};this.show=function(C,B){var A=$(B).offset();$(B).addClass("activeMenu");F[C].activeElement=B;this.showAt(C,A.left,A.top+$(B).outerHeight())};this.showAt=function(E,D,A){if(!G){I()}var C=F[E].element||H(E);C.css("left",D).css("top",A).css("z-index",1000).slideDown("fast");if(J){this.hide()}var B=function(L){if(L.target.nodeName=="SELECT"||L.target.nodeName=="INPUT"){$(document).one("click",L.data,B);return}else{L.data.hide()}};$(document).one("click",this,B);J=E;if(F[J].params["onMenuShow"]){F[J].params["onMenuShow"](J)}};this.hide=function(){if(J){$(F[J].element).fadeOut("fast").css("z-index",0);if(F[J].params["onMenuHide"]){F[J].params["onMenuHide"](J)}if(F[J].activeElement){$(F[J].activeElement).removeClass("activeMenu");F[J].activeElement=null}J=null}};this.attachGroup=function(C,B,A){A=A||"main";F[B].group=A;if(F[B].data.length!=0){$(C).bind("click",this,function(D){if(J!=B){D.data.show(B,C);return false}})}$(C).bind("mouseenter",this,function(D){if((J)&&(J!=B)&&(F[J].group==A)){D.data.show(B,C)}})};function I(){G=$("<div></div>").css("position","absolute").css("top","0px").css("left","0px").appendTo(document.body).click(function(C){if(J){var A=$(C.target);var D=0;while(typeof(A.data("dropDownIndex"))=="undefined"){if(D++>10){return}A=$(A.parent().get(0));if(A.data("dropDown")){return true}}var B=A.data("dropDownIndex");if(F[J].params["onItemClick"]){F[J].params["onItemClick"](F[J].data[B],B)}}})}function H(L){var B=F[L].data;var D=$("<div>").css("width",F[L].params["width"]).css("position","absolute").addClass("DropDownMenu").data("dropDownMenu",L).appendTo(G).hide();for(var C=0;(C<B.length);C++){var A=$("<a></a>");if(typeof(B[C])=="string"){A.text(B[C])}else{for(var E in B[C]){if(E=="element"){$(B[C][E]).appendTo(A)}else{if(E=="css"){$.each(B[C][E],function(K,N){A.css(K,N)})}else{if(E=="text"){A.text(B[C][E])}else{if(E=="click"){A.click(B[C][E])}else{A.attr(E,B[C][E])}}}}}}A.addClass("DropDownMenuItem").data("dropDownIndex",C).appendTo(D)}if(B.length==0){D.css({"height":"0px","border":"0"})}F[L].element=D;return D}};