if(!window.AuIt){window.AuIt={}}if(!AuIt.option){AuIt.option={}}if(!AuIt.ProductTools){AuIt.ProductTools={}}AuIt.ProductTools.StockIndicator=Class.create();AuIt.ProductTools.StockIndicator.prototype={templateSyntax:/(^|.|\r|\n)({{(\w+)}})/,initialize:function(e){this.options=e.cfg;this.aButtons=$(e.ctrlID).select("a.auit-ind-btn");this.panel=$(e.ctrlID).select("div.auit-block-stockindicator-panel")[0];this.template=new Template(e.template,this.templateSyntax);this.templateOut=new Template(e.templateOutOfStock,this.templateSyntax);this.panel.innerHTML="";for(var d=0;d<this.aButtons.length;d++){this.aButtons[d].observe("click",this._tbnClick.bindAsEventListener(this))}this.blocks=[];for(var d=1;d<this.options.ATTRIBUTES.length;d++){var b=this.options.ATTRIBUTES[d];if(d>1){for(var c=0;c<b.OPTIONS.length;c++){var f=[].concat(this.blocks);f[b.ID]=b.OPTIONS[c]["value"];if(this.hasProduct(f)){this.blocks[b.ID]=f[b.ID];break}}}else{this.blocks[b.ID]=b.OPTIONS[0]["value"]}}this.showProduct(this.buildProduct());this.checkButtons()},setAttribute:function(f,h){this.blocks=[];this.blocks[f]=h;try{for(var d=1;d<this.options.ATTRIBUTES.length;d++){var b=this.options.ATTRIBUTES[d];if(b.ID!=f){for(var c=0;c<b.OPTIONS.length;c++){var k=[].concat(this.blocks);k[b.ID]=b.OPTIONS[c]["value"];if(this.hasProduct(k)){this.blocks[b.ID]=k[b.ID];break}}}}this.showProduct(this.buildProduct());this.checkButtons()}catch(g){}},checkButtons:function(){for(var a=0;a<this.aButtons.length;a++){this.aButtons[a].removeClassName("selected");var b=this.aButtons[a].id.split("!")[1].split("-");if(this.blocks[b[0]]==b[1]){this.aButtons[a].addClassName("selected")}}},isFunction:function(a){return(typeof a=="function")},hasProduct:function(d){for(var c=0;c<this.options.PRODUCTS.length;c++){var a=this.options.PRODUCTS[c];var e=true;for(var b in d){if(this.isFunction(d[b])){continue}if(a.ATTRIBUTES[b]!=d[b]){e=false;break}}if(e){return true}}return false},percent:function(g){g=parseFloat(g);var c=this.options.OPTION;var b=parseFloat(c.light_value_yellow);var f=parseFloat(c.light_value_red);var e=parseFloat(c.percent_yellow);var d=parseFloat(c.percent_red);var a=0;if(g>b){a=e*g/b}else{if(g>f){a=(((g-f)*(e-d))/(b-f))+d}else{a=d*g/f}}if(a<0){return 0}if(a>100){return 100}return a},color:function(d){if(this.options.MODE!="light"){return""}d=parseFloat(d);var b=this.options.OPTION;var a=parseFloat(b.light_value_yellow);var c=parseFloat(b.light_value_red);if(d>a){return"auit-bar-green"}else{if(d>c){return"auit-bar-yellow"}}return"auit-bar-red"},getText:function(e){e=parseFloat(e);var c=this.options.OPTION;var a=parseFloat(c.light_value_yellow);var d=parseFloat(c.light_value_red);var b="";if(e<=0){b=this.options.TEXT.OUT}else{if(e<=d){b=this.options.TEXT.RED}else{if(e<=a){b=this.options.TEXT.YELLOW}else{b=this.options.TEXT.GREEN}}}if(!b){b=" "}return b},barText:function(a){if(!this.options.TEXT.ASROWTEXT){return""}return this.getText(a)},barTitle:function(a){if(!this.options.TEXT.ASTOOLTIP){return""}return this.getText(a)},showProduct:function(b){this.panel.innerHTML="";var m=this.options.ATTRIBUTES[0];var l=m.ID;var g="";for(var f=0;f<m.OPTIONS.length;f++){var c=m.OPTIONS[f].value;var k=m.OPTIONS[f].label;var h=m.OPTIONS[f].alabel;for(var d=0;d<b.length;d++){if(b[d].ATTRIBUTES[l]==c){var e={label:k,QTY:b[d].QTY,aid:l,aidvalue:c,alabel:h,rowmode:this.options.CSS.rowmode,percent:this.percent(b[d].QTY),bartext:this.barText(b[d].QTY),title:this.barTitle(b[d].QTY),color:this.color(b[d].QTY)};if(b[d].QTY>0){Element.insert(this.panel,{bottom:this.template.evaluate(e)})}else{Element.insert(this.panel,{bottom:this.templateOut.evaluate(e)})}break}}}},buildProduct:function(){var d=[];for(var e=0;e<this.options.PRODUCTS.length;e++){var b=this.options.PRODUCTS[e];var a=true;for(var c in this.blocks){if(this.isFunction(this.blocks[c])){continue}if(b.ATTRIBUTES[c]!=this.blocks[c]){a=false;break}}if(a){d.push(b)}}return d},_tbnClick:function(a){var c=$(Event.element(a));if(!c){return}if(c.tagName.toLowerCase()!="a"){c=c.up("a")}if(!c){return}var b=c.id.split("!")[1].split("-");this.setAttribute(b[0],b[1]);Event.stop(a)}};