(function(b){var a=new MathContext(18,MathContext.prototype.DEFAULT_FORM,MathContext.prototype.DEFAULT_LOSTDIGITS,MathContext.prototype.ROUND_HALF_EVEN);SummitVille.RPNCalc=function(){var l={};var t=0;var h=0;var p=false;var e=function(z,x,y){h=1;b("#calcBar>.selected").removeClass("selected");setTimeout(function(){var A=z.focus();if(x){z.select()}else{if(b.browser.msie){var B=document.selection.createRange();B.moveEnd("character",(z.value.length));B.text=B.text;B.collapse(false)}else{if(b.browser.safari){var B=window.getSelection();B.collapseToEnd()}}}if(y){t=1}b(z).parent().addClass("selected");h=0},0)};var u=function(B,x){var A=this.parentNode;t=0;b(A).removeClass("selectall");if((this.value===null)||(this.value==="")){return true}if(b(A).prev().children(".stackText").val()===""){return o.call(this,B)}var y=A.parentNode;var C;var z;if(x){C=x;z=SummitVille.RPNCalc.newTerm.apply(this,[y,A,0,C,false])}else{C=this.value;z=SummitVille.RPNCalc.newTerm.apply(this,[y,A,1,C,true])}return true};var o=function(y){t=0;b(this.parentNode).removeClass("selectall");if((this.value===null)||(this.value==="")){return g.call(this,y,{go:"up"})}else{var x=b(this).parent().prev().children(".stackText");if(x.length>0){e(b(x).get(0),false,false)}return true}};var d=function(y){t=0;b(this.parentNode).removeClass("selectall");if((this.value===null)||(this.value==="")&&b(this.parentNode).prev().length>0){return g.call(this,y,{go:"down"})}else{var x=b(this).parent().next().children(".stackText");if(x.length>0){e(b(x).get(0),false,false)}return true}};l.swapTerms=function(y){var x=m(this,true);if(x){var z=x[1].val();x[1].val(x[0].val());x[0].val(z)}return true};l.addTerms=function(B){var x=m(this,true);if(x){var z=new BigDecimal(x[1].val());var y=new BigDecimal(x[0].val());var A=z.add(y,a).toString();q(x,B,A)}return true};l.subTerms=function(B){var x=m(this,true);if(x){var z=new BigDecimal(x[1].val());var y=new BigDecimal(x[0].val());var A=z.subtract(y,a).toString();q(x,B,A)}return true};l.divTerms=function(B){var x=m(this,true);if(x){if(parseInt(x[0].val())==0){return true}var z=new BigDecimal(x[1].val());var y=new BigDecimal(x[0].val());var A=z.divide(y,a).toString();q(x,B,A)}return true};l.mulTerms=function(B){var x=m(this,true);if(x){var z=new BigDecimal(x[1].val());var y=new BigDecimal(x[0].val());var A=z.multiply(y,a).toString();q(x,B,A)}return true};l.raiseTerms=function(B){var x=m(this,true);if(x){var z=parseFloat(x[1].val());var y=parseFloat(x[0].val());var A=Math.pow(z,y).toString();q(x,B,A)}return true};var c=function(x){if(x){return x*(Math.PI/180)}else{return 0}};var f=function(x){if(x){return x*(180/Math.PI)}else{return 0}};l.sinTerm=function(z){var x=w(this,true);if(x){var y=Math.sin(c(parseFloat(x.val())));n(x,z,y)}return true};l.cosTerm=function(z){var x=w(this,true);if(x){var y=Math.cos(c(parseFloat(x.val())));n(x,z,y)}return true};l.tanTerm=function(z){var x=w(this,true);if(x){var y=Math.tan(c(parseFloat(x.val())));n(x,z,y)}return true};l.asinTerm=function(z){var x=w(this,true);if(x){var y=f(Math.asin(parseFloat(x.val())));n(x,z,y)}return true};l.acosTerm=function(z){var x=w(this,true);if(x){var y=f(Math.acos(parseFloat(x.val())));n(x,z,y)}return true};l.atanTerm=function(z){var x=w(this,true);if(x){var y=f(Math.atan(parseFloat(x.val())));n(x,z,y)}return true};l.sqrtTerm=function(A){var y=w(this,true);if(y){var x=new BigDecimal(y.val());var z=x.sqroot(a).toString();n(y,A,z)}return true};l.chsTerm=function(A){if(t==1){u.call(this,A,"-")}else{var y=w(this,true);if(y){var x=new BigDecimal(y.val());var z=x.negate().toString();y.val(z)}else{b(this).val("-")}}return true};l.PITerm=function(y){var x=Math.PI;if(t==1){u.call(this,y,x)}else{if(this){n(b(this),y,x)}}return true};l.ETerm=function(y){var x=Math.E;if(t==1){u.call(this,y,x)}else{if(this){n(b(this),y,x)}}return true};l.logTerm=function(z){var x=w(this,true);if(x){var y=Math.log(parseFloat(x.val()));n(x,z,y)}return true};l.log10Term=function(z){var x=w(this,true);if(x){var y=Math.log(parseFloat(x.val()))/Math.LN10;n(x,z,y)}return true};l.log2Term=function(z){var x=w(this,true);if(x){var y=Math.log(parseFloat(x.val()))/Math.LN2;n(x,z,y)}return true};var k=function(x,z){var y=x;if(y&&(y.value===null)||(y.value==="")){y=b(y).parent().next().children(".stackText").get(0);if(!y||(y.value===null)||(y.value==="")){return false}}if(y!=x&&z){g.call(x,false,{go:"down"})}return(b(y))};var r=function(B){if(h==1){return true}b(this.parentNode).removeClass("selectall");var A=String.fromCharCode(B.which||B.keyCode||B.charCode);if(t==1){u.call(this,B,A);return true}var z=w(this,true);if(z&&A=="."){if(z.val().indexOf(".")>=0){return true}var y=new BigDecimal(z.val());var x=new BigDecimal(y.format(-1,0,-1,-1,MathContext.prototype.SCIENTIFIC,MathContext.prototype.ROUND_DOWN));if(y.compareTo(x)!=0){return true}}return false};var w=function(x,z){var y=b("#calcBar>.selected").children(".stackText").get(0);t=0;b(this.parentNode).removeClass("selectall");if(!y||y.value===null||y.value===""){return false}return(b(y))};var n=function(z,A,x){if(z&&x){var y=SummitVille.RPNCalc.newTerm.apply(this,[z.parent().parent().get(0),z.parent(),0,x,true]);b(y).append('<ul class="stackHistory"></ul>');b(y).children(".stackHistory").append('<div class="stackOperation">'+s(A)+"</div>");b(y).children(".stackHistory").append(z.parent());e(b(y).children(".stackText").get(0),false,true)}};var s=function(y){var x=y.which||y.keyCode||y.charCode;x+=y.altKey?"_alt":"";x+=y.ctrlKey?"_ctrl":"";x+=y.shiftKey?"_shift":"";x=y.type+"<"+x+">";return x};var m=function(x,A){var z=b("#calcBar>.selected").children(".stackText").get(0);t=0;b(this.parentNode).removeClass("selectall");if(!z||z.value===null||z.value===""){return false}var y=b(z).parent().next().children(".stackText").get(0);if(!y||y.value===null||y.value===""){return false}return([b(z),b(y)])};var q=function(y,A,x){if(y&&x){var z=SummitVille.RPNCalc.newTerm.apply(this,[y[0].parent().parent().get(0),y[0].parent(),0,x,true]);b(z).append('<ul class="stackHistory"></ul>');b(z).children(".stackHistory").append('<div class="stackOperation">'+s(A)+"</div>");b(z).children(".stackHistory").append(y[0].parent());b(z).children(".stackHistory").append(y[1].parent());e(b(z).children(".stackText").get(0),false,true)}};var j=function(A){t=0;b(this.parentNode).removeClass("selectall");var y=b(this).parent();var x=y.children(".stackHistory");if(x.length>0){x.children(".stackOperation").remove();var z=x.children().children(".stackText").get(0);x.children().insertAfter(y);b(this).val("");g.call(this,A,{nofocus:true,go:"down"});e(z,false,false);return true}};var g=function(B,z){t=0;b(this.parentNode).removeClass("selectall");if((this.value!==null)&&(this.value!=="")){return false}var y=this.parentNode;var C;if(z&&z.go=="up"){if(!(C=b(y).prev().get(0))){return true}}else{if(!(C=b(y).next().get(0))){return true}}var x=C.parentNode;y.parentNode.removeChild(y);if(!z||!z.nofocus){var A=b(".stackText",C).get(0);e(A)}return true};var v=function(x){return true};var i=function(x){return false};l.newTerm=function(x,z,C,F,A){var B=calc_guid();var D="";if(typeof(x)=="string"){x=b(x).get(0)}if(typeof(z)=="string"){x=b(z).get(0)}b("#calcBar>.selected").removeClass("selected");if(C==0){D="stackElement number selected"}else{if(C==1){D="stackElement number selected selectall"}}var y,E;if(z){E=b('<li id="'+B+'" class="'+D+'"><input type="text" class="stackText numberState" autocomplete="off" id="'+B+'_text" value="'+F+'"/></li>').insertBefore(z).get(0);y=b(E).children(".stackText").get(0)}else{E=b('<li id="'+B+'" class="'+D+'"><input type="text" class="stackText numberState" autocomplete="off" id="'+B+'_text" value="'+F+'" /></li>').prependTo(x).get(0);y=b(E).children(".stackText").get(0)}e(y,A);return(E)};l.resetCalculator=function(){b("#calcBar").empty();newTerm=SummitVille.RPNCalc.newTerm("#calcBar",null,1,"0.",true)};l.newCalculator=function(x,A,B){var z=guid();var y;if(x&&x=="saved"){}else{if(b("#calcBar").length==0){b('<div class="calc selected"><div class="hd searchButton"  title="Start a new search.."><div class="searchButtonIcon"></div><!--<div class="deleteButtonIcon" title="Click to remove this saved search.."></div>--></div><ul id="calcBar" class="bd calcArea"></ul><div class="ft"><span></span></div>').appendTo(b("#panel1>.calcbody"))}else{b("#calcBar").empty()}y=SummitVille.RPNCalc.newTerm("#calcBar",null,1,"0.",true)}b(window).focus(function(C){if(p){b("#output").html(b("#output").html()+"<li>Focus:"+C.srcElemet.tagName+"</li>")}});b(window).mousedown(function(C){if(p){b("#output").html(b("#output").html()+"<li>Click:"+b(C.target).attr("id")+"</li>")}if(b(C.target).hasClass("stackText")){b("#calcBar>.selected").removeClass("selected");b(C.target).parent().addClass("selected");return true}else{var D=b("#calcBar>.selected");e(D.children(".stackText").get(0),D.hasClass("selectall"),false);return false}});b(".stackText").livequery("focus",function(C){b(".selectionhelper").css("top",b(this).position().top)});b("#calcBar").sortable({axis:"y",tolerance:"pointer",items:"li",handle:":input",cancel:false,distance:15,stop:function(C,D){e(D.item.children(".stackText").get(0))}});b(".calcButtonReset").click(function(){SummitVille.RPNCalc.resetCalculator()});b(".calcButtonReset").wTooltip({content:"Clear Stackulator"});b(".calcButtonPad").click(function(){b(".calcNumpad").toggle()});b(".calcButtonPad").wTooltip({content:"Show/Hide Keypad"});SummitVille.KeyMapper.add("numberState",{handlers:l.numberState})};l.numberState={keydown:{0:{},8:{defaultAction:g},9:{defaultAction:l.swapTerms},13:{defaultAction:u},38:{defaultAction:o},40:{defaultAction:d},65:{defaultAction:v,ctrlAction:i},67:{defaultAction:l.cosTerm,altAction:l.acosTerm,ctrlAction:i},69:{defaultAction:l.ETerm},76:{defaultAction:l.logTerm,ctrlAction:l.log10Term,altAction:l.log2Term},80:{defaultAction:l.PITerm,ctrlAction:i},81:{defaultAction:v},82:{defaultAction:l.sqrtTerm,ctrlAction:i},83:{defaultAction:l.sinTerm,altAction:l.asinTerm},84:{defaultAction:l.tanTerm,altAction:l.atanTerm},86:{defaultAction:v,ctrlAction:i},88:{defaultAction:v,ctrlAction:i},90:{defaultAction:v,ctrlAction:j}},keypress:{0:{},8:{defaultAction:i},32:{defaultAction:u},37:{defaultAction:i},39:{defaultAction:i},42:{defaultAction:l.mulTerms},43:{defaultAction:l.addTerms},45:{defaultAction:l.subTerms},46:{defaultAction:r},47:{defaultAction:l.divTerms},48:{defaultAction:r},49:{defaultAction:r},50:{defaultAction:r},51:{defaultAction:r},52:{defaultAction:r},53:{defaultAction:r},54:{defaultAction:r},55:{defaultAction:r},56:{defaultAction:r},57:{defaultAction:r},61:{defaultAction:l.chsTerm},82:{ctrlAction:i},94:{defaultAction:l.raiseTerms},97:{ctrlAction:i},99:{ctrlAction:i},112:{ctrlAction:i},114:{ctrlAction:i},118:{ctrlAction:i},120:{ctrlAction:i}}};l.states={numberState:{handlers:l.numberState}};return l}()})(jQuery);
