/* Copyright (c) 2008 Akatoo Inc. */

function addEvent(C,B,A){if(C.addEventListener){C.addEventListener(B,A,false);EventCache.add(C,B,A)}else{if(C.attachEvent){C["e"+B+A]=A;C[B+A]=function(){C["e"+B+A](window.event)};C.attachEvent("on"+B,C[B+A]);EventCache.add(C,B,A)}else{C["on"+B]=C["e"+B+A]}}}var EventCache=function(){var A=[];return{listEvents:A,add:function(B,D,C){A.push(arguments)},flush:function(){var B,C;for(B=A.length-1;B>=0;B=B-1){C=A[B];if(C[0].removeEventListener){C[0].removeEventListener(C[1],C[2],C[3])}if(C[1].substring(0,2)!="on"){C[1]="on"+C[1]}if(C[0].detachEvent){C[0].detachEvent(C[1],C[2])}C[0][C[1]]=null}}}}();addEvent(window,"unload",EventCache.flush);function $(A){return document.getElementById(A)}function stopEventPropagation(A){if(!A){A=window.event}A.cancelBubble=true;if(A.stopPropagation){A.stopPropagation()}}function preventEventDefault(A){if(!A){A=window.event}if(A.preventDefault){A.preventDefault()}else{A.returnValue=false}}Function.prototype.bind=function(){var B=[],D=arguments[0],C=this,A;for(A=1;A<arguments.length;++A){B.push(arguments[A])}return function(){for(var E=0;E<arguments.length;++E){B.push(arguments[E])}return C.apply(D,B)}};function focusFirstEmptyAfterPageLoads(){var A=arguments;addEvent(window,"load",function(){focusFields(A)})}function focusFirstEmpty(){var A=arguments;focusFields(A)}function focusFields(B){var A=B.length,D,C,E;for(D=0;D<A;D++){C=null;E=$(B[D]);if(null!=E){if(E.style.display!="none"&&E.style.visibility!="hidden"){if("text"==E.type||"password"==E.type){C=E.value}else{if("textarea"==E.type){C=E.innerHTML}}if(null!=C){if(""==C){try{E.focus()}catch(E){}break}}}}}}function focusAfterPageLoads(A){addEvent(window,"load",function(){try{$(A).focus()}catch(B){}})};function AjaxActivityRenderer(){this._signature=0;this._elements=[]}AjaxActivityRenderer.prototype.start=function(C){this._elements.push(C);YAHOO.util.Dom.addClass(C,"ajax-activity-pending");var B=++this._signature,D=this,A=function(){if(B==D._signature){YAHOO.util.Dom.replaceClass(D._elements,"ajax-activity-pending","ajax-activity")}};window.setTimeout(A,500)};AjaxActivityRenderer.prototype.stop=function(){++this._signature;YAHOO.util.Dom.removeClass(this._elements,"ajax-activity-pending|ajax-activity");this._elements=[]};function StarRating(A,C,I,B,O,J,G){this.id=A;this.numStars=C;this.onChangeFn=I||null;this.onChangeFnData=B||null;this.scope=O||null;this.descriptionID=J;this.descriptionList=G;var N=document.getElementById(A);var H="";var F;var D=document.createElement("span");D.className="stars-js";var L=this.getValue();var K='<img src="images/blank.gif" style="width:8px" alt=""/>';var M='<img src="images/blank.gif" style="width:14px" alt=""/>';for(F=0;F<=C*2;++F){a=document.createElement("a");a.href="javascript:void(0)";a.id=A+"_"+F;addEvent(a,"mouseover",this.onSelectStar.bind(this,F));addEvent(a,"focus",this.onSelectStar.bind(this,F));addEvent(a,"click",this.onClickStar.bind(this,F));if(F>0){a.innerHTML=K;var E=a.firstChild;if(F%2==1){E.className=(F<=L?"star-left-on":"star-left-off")}else{E.className=(F<=L?"star-right-on":"star-right-off")}}else{a.innerHTML=M;var E=a.firstChild;E.className="remove"}D.appendChild(a)}N.appendChild(D);desc=document.createElement("span");desc.id=A+"_description";desc.className="rating-description";N.appendChild(desc);addEvent(N,"mouseout",this.onDeselect.bind(this,false));addEvent(N,"blur",this.onDeselect.bind(this,false));addEvent(N,"mousemove",this.onMouseMove.bind(this))}StarRating.prototype.hoverSelection=null;StarRating.prototype.isFlashing=false;StarRating.prototype.isEnabled=true;StarRating.prototype.getValue=function(){return this._getInputElem().value};StarRating.prototype.setValue=function(B){var A=this.getValue();this._getInputElem().value=B;this.updateStars();if(B>0){this.showRemoveIcon(true)}this.flash(1);if(B!=A){if(this.onChangeFn){if(this.scope){this.onChangeFn.call(this.scope,B,this.onChangeFnData)}else{this.onChangeFn(B,this.onChangeFnData)}}}};StarRating.prototype.setEnabled=function(A){this.isEnabled=A};StarRating.prototype.flash=function(A){if(A==5){return }this.isFlashing=((A&1)==1);this.updateStars();var B=this;++A;setTimeout(function(){B.flash(A)},100)};StarRating.prototype._getInputElem=function(){return $(this.id+"_sel")};StarRating.prototype._getLinkElem=function(A){return $(this.id+"_"+A)};StarRating.prototype.onMouseMove=function(A){if(this.isEnabled){this.updateStars()}};StarRating.prototype.setDescription=function(A){desc=document.getElementById(this.descriptionID);desc.innerHTML=A};StarRating.prototype.onSelectStar=function(A,B){if(this.isEnabled){this.hoverSelection=A;if(A>=1){this.setDescription(this.descriptionList[A-1])}if(this.getValue()>0){this.showRemoveIcon(true);if(A==0){this.setDescription("Cancel Rating")}}this.updateStars()}preventEventDefault(B)};StarRating.prototype.onDeselect=function(){if(this.isEnabled){this.hoverSelection=null;this.showRemoveIcon(false);this.setDescription("");this.updateStars()}};StarRating.prototype.updateStars=function(){var B;if(this.hoverSelection!=null){B=this.hoverSelection}else{B=this.getValue()}for(var A=1;A<=this.numStars*2;++A){if(this.tracking||this.isFlashing){continue}if(A%2==1){this._getLinkElem(A).firstChild.className=(A<=B?"star-left-on":"star-left-off")}else{this._getLinkElem(A).firstChild.className=(A<=B?"star-right-on":"star-right-off")}}};StarRating.prototype.onClickStar=function(A,B){if(this.isEnabled){this.setValue(A)}preventEventDefault(B)};StarRating.prototype.showRemoveIcon=function(A){var B=$(this.id+"_0");B.className=A?"visible":""};function AnswerRatingControl(E,B,C,A){var D=new Array("Not Helpful","Not Helpful","Somewhat Helpful","Somewhat Helpful","Helpful","Helpful","Very Helpful","Very Helpful","Extremely Helpful","Extremely Helpful");StarRating.call(this,E,B,this._onChange,C,this,A,D)}AnswerRatingControl.prototype=StarRating.prototype;AnswerRatingControl.prototype._ajax_activity=new AjaxActivityRenderer();AnswerRatingControl.prototype._onChange=function(B,C){B=B/2;var A="answer_id="+C+"&rating="+B,D={success:this._onSuccess,failure:this._onFailure,scope:this,argument:{numStars:B,answer_id:C}};YAHOO.util.Connect.asyncRequest("POST","/ajax/rate.answer.html",D,A);this._ajax_activity.start(this.id);this.setEnabled(false)};AnswerRatingControl.prototype._onSuccess=function(A){var C=false,D,E,B;if(A.responseText!==undefined){D=YAHOO.lang.JSON.parse(A.responseText);if(D.is_success){E="answer-"+A.argument.answer_id+"-rating-section";YAHOO.util.Dom.removeClass(E,"multiple-ratings|single-rating|no-rating|user-rated|not-user-rated");YAHOO.util.Dom.addClass(E,(A.argument.numStars>0?"user-rated":"not-user-rated"));if(D.TotalRatings>1){YAHOO.util.Dom.addClass(E,"multiple-ratings")}else{if(D.TotalRatings==1){YAHOO.util.Dom.addClass(E,"single-rating")}else{YAHOO.util.Dom.addClass(E,"no-rating")}}B=document.getElementById("answer-"+A.argument.answer_id+"-rate-counter");if(B){while(B.hasChildNodes()){B.removeChild(B.firstChild)}B.appendChild(document.createTextNode(D.TotalRatings))}this._ajax_activity.stop();this.setEnabled(true);C=true}}if(!C){this._onFailure(A)}};AnswerRatingControl.prototype._onFailure=function(A){document.getElementById("rate_form_answer_id").value=A.argument.answer_id;document.getElementById("rate_form_rating").value=A.argument.numStars;document.getElementById("rate_form").submit()};var page_message_box_container_id=null;var page_message_box=null;function init_page_message_box(A){page_message_box_container_id=A}function remove_page_message_box(){if(page_message_box!==null){page_message_box.hide();page_message_box.destroy();page_message_box=null}}function display_page_message_box(A,E,F,D,C,B){remove_page_message_box();if(!C){C="300px"}if(!B){B=remove_page_message_box}page_message_box=new YAHOO.widget.SimpleDialog(A,{width:C,fixedcenter:true,visible:false,draggable:false,close:true,text:E,icon:D,modal:true,constraintoviewport:true,buttons:[{text:"OK",handler:B}]});page_message_box.setHeader(F);if(page_message_box_container_id!==null){page_message_box.render(page_message_box_container_id)}else{page_message_box.render(document.body)}page_message_box.show()}function display_ajax_error(B,A){display_page_message_box("error_msgbox_id","<span id='error_msg'>"+B+"</span>","Action Failed.",YAHOO.widget.SimpleDialog.ICON_BLOCK,A)}function display_page_confirm_dialog(F,H,E,D,A,I,C,G,B){remove_page_message_box();if(!B){B="300px"}if(!I){I=remove_page_message_box}if(!G){G=remove_page_message_box}page_message_box=new YAHOO.widget.SimpleDialog(F,{width:B,fixedcenter:true,visible:false,modal:true,constraintoviewport:true,draggable:false,text:H,icon:D,buttons:[{text:A,handler:I},{text:C,handler:G,isDefault:true}]});page_message_box.setHeader(E);if(page_message_box_container_id!==null){page_message_box.render(page_message_box_container_id)}else{page_message_box.render(document.body)}page_message_box.show()};function set_menu_link_enabled(B,A){if(A){YAHOO.util.Dom.removeClass(B,"disabled-anchor")}else{YAHOO.util.Dom.addClass(B,"disabled-anchor")}}function is_menu_link_enabled(A){return !YAHOO.util.Dom.hasClass(A,"disabled-anchor")}function set_menu_link_ajax_activity(B,A){if(A){YAHOO.util.Dom.addClass(B,"ajax-activity")}else{YAHOO.util.Dom.removeClass(B,"ajax-activity")}}function show_menu_link_menu(B,A){if(is_menu_link_enabled(B)){var C=new YAHOO.widget.Menu("menucontainer",{context:[B,"tl","bl"],constraintoviewport:false});C.addItems(A);C.subscribe("show",C.focus);C.subscribe("hide",function(){C.hide();window.setTimeout(function(){C.destroy()},20)});C.render("m"+B);C.show()}};function cancel_deferred_ajax_activity_indicator(A){if(A.ajax_activity_timer){window.clearTimeout(A.ajax_activity_timer);A.ajax_activity_timer=false}}function submit_flag_object_request_completed(A){set_menu_link_enabled(A.argument.flag_request_param.container_id,true);set_menu_link_ajax_activity(A.argument.flag_request_param.container_id,false);cancel_deferred_ajax_activity_indicator(A.argument.flag_request_param)}function set_flag_link_text(A,B){var C=document.getElementById(A);while(C.firstChild){C.removeChild(C.firstChild)}C.appendChild(document.createTextNode(B))}function submit_flag_object_request_success(A){submit_flag_object_request_completed(A);if(A.responseText!==undefined){var B=YAHOO.lang.JSON.parse(A.responseText);if(B.is_error){handle_flag_object_ajax_error(B,A.argument.flag_request_param)}else{set_flag_link_text(A.argument.flag_request_param.container_id,A.argument.flag_request_param.flag_type.FlagName);set_menu_link_enabled(A.argument.flag_request_param.container_id,false);display_flag_object_completed()}}}function submit_flag_object_request_failure(A){submit_flag_object_request_completed(A);display_ajax_error("Operation failed.")}function submit_flag_relogin_failure(A){display_ajax_error(A.argument.error_message)}function submit_flag_relogin_success(A){var C=true,B;if(A.responseText!==undefined){B=YAHOO.lang.JSON.parse(A.responseText);if(B.redirect_url){window.location=B.redirect_url;C=false}}if(C){submit_flag_relogin_failure(A)}}function handle_flag_object_ajax_error(A,C){if(A.redirect_url){if(A.is_relogin){var D={success:submit_flag_relogin_success,failure:submit_flag_relogin_failure,argument:{error_message:A.error_message}},B="relogin_url="+encodeURIComponent(C.relogin_url)+"&object_id="+C.object_id+"&flag_type_id="+C.flag_type.FlagTypeID;YAHOO.util.Connect.asyncRequest("POST","/ajax/flag.exception.html",D,B)}else{window.location=A.redirect_url}}else{display_ajax_error(A.error_message)}}function display_flag_object_completed(){display_page_message_box("flag_completed_msgbox_id","<span id='flag_success_msg'>Thank you for flagging this content.<br /> The akatoo team will look at this content shortly and take appropriate action.</span>","Action Completed.",YAHOO.widget.SimpleDialog.ICON_INFO)}function create_flag_ajax_activity_handler(A){return function(){A.ajax_activity_timer=false;set_menu_link_ajax_activity(A.container_id,true)}}function submit_flag_object_request(B){set_menu_link_enabled(B.container_id,false);cancel_deferred_ajax_activity_indicator(B);B.ajax_activity_timer=window.setTimeout(create_flag_ajax_activity_handler(B),300);var C={success:submit_flag_object_request_success,failure:submit_flag_object_request_failure,argument:{flag_request_param:B}},A="object_id="+B.object_id+"&flag_type_id="+B.flag_type.FlagTypeID;YAHOO.util.Connect.asyncRequest("POST","/ajax/flag.object.html",C,A)}function on_flag_menu_item_click(C,A,B){YAHOO.util.Event.preventDefault(A);submit_flag_object_request(B)}function create_flag_object_menu_items(D){var E,B,A,C;if(D.can_flag&&D.flag_types){E=new Array(D.flag_types.length+1);for(B=0;B<D.flag_types.length;++B){A=D.flag_types[B];C={flag_type:A,can_flag:D.can_flag,object_id:D.object_id,relogin_url:D.relogin_url,container_id:D.container_id};E[B]={text:A.FlagName,value:A.FlagTypeID,id:"flagmenu-"+A.FlagTypeID,classname:"flag-severity-"+A.FlagSeverity,onclick:{fn:on_flag_menu_item_click,obj:C}}}E[B]={text:"What is this?",url:"/help/flagging.html",classname:"whats-this"}}else{E=[{text:"Sorry, your flagging limit has been exceeded."}]}return E}function create_flag_link(L,K,F,I,D,C){var B=null,H=false,M,G,J,A,E;if(I){for(M=0;M<I.length&&!H;++M){G=I[M];if(D==G.FlagTypeID){B=G.FlagName;H=true}}}if(H){set_flag_link_text(F,B);set_menu_link_enabled(F,false)}A={flag_types:I,can_flag:L,object_id:K,relogin_url:C,container_id:F};E=function(N){YAHOO.util.Event.preventDefault(N);J=create_flag_object_menu_items(A);show_menu_link_menu(F,J)};YAHOO.util.Event.addListener(F,"click",E)};function synchNonProfit(){synchNonProfit2("")}function synchNonProfit2(B){var C=document.getElementById("answer_non_profit"+B);var A=document.getElementById("answer_chk_donate"+B);if(C&&A){C.disabled=!A.checked}}function show_answer_div(){var A=document.getElementById("answer_text");if(A){try{A.focus()}catch(B){}}}function do_delete(A){var B=document.getElementById("delete_answer_id");if(B){B.setAttribute("value",A)}YAHOO.akatoo.app.delete_dialog.show();return false}function init_delete_dialog(B){var A=function(){window.beforeunload=null;this.submit()};var C=function(){this.cancel()};YAHOO.akatoo.app.delete_dialog=new YAHOO.widget.Dialog(B,{width:"36em",fixedcenter:true,visible:false,modal:true,constraintoviewport:true,postmethod:"form",hideaftersubmit:true,buttons:[{text:"Yes",handler:A,isDefault:true},{text:"No",handler:C}]});YAHOO.akatoo.app.delete_dialog.render();YAHOO.util.Dom.removeClass(B,"nodisplay")}function show_edit_control(A){answer_display=document.getElementById("answer_display_"+A);answer_edit=document.getElementById("answer_edit_"+A);YAHOO.util.Dom.removeClass(answer_display,"displayed_answer");YAHOO.util.Dom.addClass(answer_display,"hidden_answer");YAHOO.util.Dom.removeClass(answer_edit,"hidden_answer");YAHOO.util.Dom.addClass(answer_edit,"displayed_answer")}function show_replace_dialog(C){remove_page_message_box();var B=function(){remove_page_message_box();if(C!=null){document.forms["edit_form"+C].action.value="replace_answer";document.forms["edit_form"+C].submit()}};var A=function(){remove_page_message_box()};display_page_confirm_dialog("warning_dialog","You've changed your answer substantially.  If you post these changes, users\nwho have already rated this answer will be able to rate it again.  (Any rating\npoints gained or lost for your old answer will still contribute to your IKU.)\nAre you sure you want to replace your old answer with this one?","Replace Answer",YAHOO.widget.SimpleDialog.ICON_INFO,"Yes, replace my answer",B,"No, keep my old answer",A,"600px");return false}function handle_ajax_error(A){if(A.redirect_url){window.location=A.redirect_url}else{display_ajax_error(A.error_message)}}function compare_answer_request_success(A){if(A.responseText!==undefined){answer_id=A.argument.answer_id;document.getElementById("edit_answer_text"+answer_id).disabled=false;var B=YAHOO.lang.JSON.parse(A.responseText);if(B.is_error){handle_ajax_error(B)}else{if(B.is_similar==1){document.forms["edit_form"+answer_id].submit()}else{show_replace_dialog(answer_id)}}}}function try_edit_answer(B){var E=document.getElementById("edit_answer_text"+B);E.disabled=true;var A="new_answer="+E.value+"&answer_id="+B;var D={success:compare_answer_request_success,failure:submit_flag_object_request_failure,argument:{answer_id:B}};var C=YAHOO.util.Connect.asyncRequest("POST","/ajax/compare.answer.html",D,A)}function create_change_answer_menu_items(A){return[{text:"Delete answer",id:"flagmenu-4",classname:"flag-severity-delete",onclick:{fn:function(){do_delete(A)}}},{text:"Edit answer",id:"flagmenu-edit",onclick:{fn:function(){show_edit_control(A)}},classname:"flag_severity_edit"},{text:"What is this?",url:"/help/changing.html",classname:"whats-this"}]}function create_edit_answer_link(C,B){var D=function(F){YAHOO.util.Event.preventDefault(F);var E=create_change_answer_menu_items(B);show_menu_link_menu(C,E)};YAHOO.util.Event.addListener(C,"click",D);synchNonProfit2(B);var A=function(){synchNonProfit2(B)};YAHOO.util.Event.addListener("answer_chk_donate"+B,"click",A)}function init_recategorize_dialog(B){var A=function(){window.beforeunload=null;this.submit()};var C=function(){this.cancel()};YAHOO.akatoo.app.recategorize_dialog=new YAHOO.widget.Dialog(B,{width:"36em",fixedcenter:true,visible:false,modal:true,constraintoviewport:true,postmethod:"form",hideaftersubmit:true,buttons:[{text:"Recategorize",handler:A,isDefault:true},{text:"Cancel",handler:C}]});YAHOO.akatoo.app.recategorize_dialog.render();YAHOO.util.Dom.removeClass(B,"nodisplay")}function show_recategorize_dialog(){YAHOO.akatoo.app.recategorize_dialog.show();return false};function toggle_signing(A){if(A=="Sign Up"){YAHOO.util.Dom.addClass("inline_sign_up","visible_question");YAHOO.util.Dom.removeClass("inline_sign_up","hidden_question");YAHOO.util.Dom.addClass("inline_sign_in","hidden_question");YAHOO.util.Dom.removeClass("inline_sign_in","visible_question");YAHOO.util.Dom.addClass("inline_anon","hidden_question");YAHOO.util.Dom.removeClass("inline_anon","visible_question")}else{if(A=="Sign In"){YAHOO.util.Dom.addClass("inline_sign_up","hidden_question");YAHOO.util.Dom.removeClass("inline_sign_up","visible_question");YAHOO.util.Dom.addClass("inline_sign_in","visible_question");YAHOO.util.Dom.removeClass("inline_sign_in","hidden_question");YAHOO.util.Dom.addClass("inline_anon","hidden_question");YAHOO.util.Dom.removeClass("inline_anon","visible_question")}else{if(A=="anon"){YAHOO.util.Dom.addClass("inline_sign_up","hidden_question");YAHOO.util.Dom.removeClass("inline_sign_up","visible_question");YAHOO.util.Dom.addClass("inline_sign_in","hidden_question");YAHOO.util.Dom.removeClass("inline_sign_in","visible_question");YAHOO.util.Dom.addClass("inline_anon","visible_question");YAHOO.util.Dom.removeClass("inline_anon","hidden_question")}}}};
