if(typeof String.prototype.trim!=="function"){String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}var micoLoadTotalpricing;var micoAddToCartButtonCanDisable=1;var micoAddToCartButtonDisabled=0;var micoAddToCartButton="#product_addtocart_form .add-to-cart button";var micoBannerPrintTemplate="";MicoBannerPrint=Class.create();MicoBannerPrint.prototype={initialize:function(a){this.config=a;this.config.items=new Array();this.itemX=0;this.itemY=0;this.itemMaterial=0;this.materialValue=a.customizematerial;this.customize=0;this.sizeItem=0;this.sizeX=0;this.sizeY=0;this.radix=0;this.error="";this.twosideItem=0;this.micoPriceprocessing=0;if(a&&a.customize){return this.customizeFormLoad()}else{if(a&&a.X&&a.Y){if(this.config.pricesheet.config.radix){this.radix=parseFloat(this.config.pricesheet.config.radix)}else{this.radix=parseFloat(this.config.radix)}this.config.X.id=this.config.X.id*1;this.config.Y.id=this.config.Y.id*1;this.load()}}},customizeFormLoad:function(){$("bannerprint-customize-product").observe("change",this.selectProduct.bind(this));$("bannerprint-customize-material").observe("change",this.selectMaterial.bind(this));$("bannerprint-customize-width").observe("change",this.customizeFormShowPrice.bind(this));$("bannerprint-customize-height").observe("change",this.customizeFormShowPrice.bind(this));$("bannerprint-customize-unit").observe("change",this.customizeFormShowPrice.bind(this));$("bannerprint-customize-two-side").observe("click",this.customizeFormShowPrice.bind(this));$("bannerprint-customize-qty").observe("change",this.customizeFormShowPrice.bind(this));$("bannerprint-customize-shipping").observe("change",this.customizeFormShowPrice.bind(this));$("bannerprint-customize-width").observe("keyup",this.customizeFormShowPrice.bind(this));$("bannerprint-customize-height").observe("keyup",this.customizeFormShowPrice.bind(this));$("bannerprint-customize-qty").observe("keyup",this.customizeFormShowPrice.bind(this));this.selectProduct();this.customizeClearError()},selectProduct:function(){var c=$("bannerprint-customize-product").getValue();if(c<1){this.customizeShowError(this.config.config.errorproduct);return false}else{this.customizeClearError()}var d=this.config.products[c];this.log("productId="+c);var a=d.url;var b=d.type;$("bannerprint-customize-form").writeAttribute("action",a);this.customizeFormShowPrice();return true},selectMaterial:function(){var a=$("bannerprint-customize-material").getValue();if(!a){this.customizeShowError("Please select material");return false}else{this.customizeClearError()}this.materialValue=a;this.customizeFormShowPrice();return true},customizeFormShowPrice:function(){var a=this.customizeSq();if(a<=0){return 0}var h=this.customizeValue("bannerprint-customize-product",0);if(!h||(h<1)){return 0}var r=1;var k=this.customizeValue("bannerprint-customize-qty",0);if($("bannerprint-customize-two-side").checked){r=2}if(k<=0){k=1}a=r*a;var o=this.getPriceBySq(a/r,this.config.price);var m=this.customizeValue("bannerprint-customize-shipping",0);var n=0;var q=0;var l=0;var p=0;q=this.getDiscountByQty(k,o,this.config.tier);p=(o-q)*a;l=p*k;if(m){n=this.customizeShippingPrice(m,l,this.config.shipping)}l=l+n;$("bannerprint-shipping-price").update(this.customizeFormatPrice(n));$("bannerprint-price").update(this.customizeFormatPrice(p));$("bannerprint-total-price").update(this.customizeFormatPrice(l))},customizeFormatPrice:function(a){return formatCurrency(a,this.config.priceFormat)},customizeValue:function(c,a){this.log(c);if(!($(c))){return a}var b=$(c).getValue();if((b=="")||(b==null)){return a}if(isNaN(b)){return a}return parseFloat(b)*1},customizeValidate:function(){this.error="";var g=this.customizeValue("bannerprint-customize-width",1);var f=this.customizeValue("bannerprint-customize-height",1);var h=this.customizeValue("bannerprint-customize-unit",1);var e=this.customizeValue("bannerprint-customize-product",0);if(h<=0){h=1}if(g<=0){g=1}if(f<=0){f=1}g=(g*h)/12;f=(f*h)/12;if(e<1){this.error=this.config.config.errorproduct}else{if(!this.betweenValue(g,this.config.config.minx,this.config.config.maxx)){this.error=this.getErrorMinMaxMsg(this.config.config.errorsizex,g,this.config.config.minx,this.config.config.maxx)}else{if(!this.betweenValue(f,this.config.config.miny,this.config.config.maxy)){this.error=this.getErrorMinMaxMsg(this.config.config.errorsizey,f,this.config.config.miny,this.config.config.maxy)}}}return this.error?0:1},customizeSq:function(){var b=this.customizeValue("bannerprint-customize-width",1);var a=this.customizeValue("bannerprint-customize-height",1);var c=this.customizeValue("bannerprint-customize-unit",1);if(a<=0){a=1}if(b<=0){b=1}if(c<=0){c=1}return(b*a*c*c)/144},customizeAddToCart:function(){if(this.customizeValidate()){this.customizeClearError();$("bannerprint-customize-form").submit();return true}else{this.customizeShowError(this.error);return false}},getPriceBySq:function(d,a){var e;var b=0;var c=this.materialValue?this.materialValue:"price";this.log("getPriceBySq->type="+c);a.each(function(f){e=parseFloat(f.sq);if(d>=e){if(f[c]){b=parseFloat(f[c])}else{}}}.bind(this));this.log("getPriceBySq->price="+b);return b},customizeShippingPrice:function(h,i,j){var g;var f=0;j.each(function(a){g=parseFloat(a.option);if(h==g){if(a.type=="fix"){f=parseFloat(a.price)}else{f=(parseFloat(a.price)*i)/100}}}.bind(this));return f},getDiscountByQty:function(h,i,g){if(!g){return 0}var f;var j=0;g.each(function(a){f=parseFloat(a.quantity);if(h>=f){if(a.type=="fix"){j=parseFloat(a.discount)}else{j=(parseFloat(a.discount)*i)/100}}}.bind(this));return j},customizeShowError:function(b){$("bannerprint-customize-error").update(b)},customizeClearError:function(){$("bannerprint-customize-error").update("")},load:function(){this.log("start load");if(!micoBannerPrintTemplate){micoBannerPrintTemplate=$("mico-bannerprint-template").innerHTML}$("mico-bannerprint-template").update("");this.tpl=micoBannerPrintTemplate;this.visible=0;this.log("option X=["+this.config.X.id+"]");this.log("option Y=["+this.config.Y.id+"]");$$(".product-custom-option").each(function(a){var b=0;a.name.sub(/[0-9]+/,function(c){b=c[0]});this.log("optionId=["+b+"]");if((this.config.X.id==b)||(this.config.Y.id==b)){this.log("option x y=["+b+"]");if(this.config.X.id==b){this.itemX=a}else{this.itemY=a}if(!this.visible){this.initXY(a)}else{this.hideElement(a)}if(a.type=="checkbox"||a.type=="radio"){a.observe("click",this.showPrice.bind(this))}else{a.observe("change",this.showPrice.bind(this));if(a.type=="text"){a.observe("keyup",this.showPrice.bind(this))}}}else{if(this.config.material&&(this.config.material.id==b)){this.changeTextToSelect(b,a,this.config.materials,"setMaterialTextFromSelect",this.config.customizematerial)}else{if(this.config.twosides&&(this.config.twosides.id==b)){this.twosideItem=a;if(a.type=="checkbox"||a.type=="radio"){a.observe("click",this.showPrice.bind(this))}else{a.observe("change",this.showPrice.bind(this))}}else{if(this.config.upchargeOption&&(this.config.upchargeOption.id==b)){this.optionalUpchargeItem=a;if(a.type=="checkbox"||a.type=="radio"){a.observe("click",this.showPrice.bind(this))}else{a.observe("change",this.showPrice.bind(this))}}else{if(a.type=="checkbox"||a.type=="radio"){a.observe("click",this.showPrice.bind(this))}else{a.observe("change",this.showPrice.bind(this))}}}}}}.bind(this));$("qty").observe("change",this.showPrice.bind(this));$("qty").observe("keyup",this.showPrice.bind(this));this.setValueXY();if(this.config.material){this.setMaterialTextFromSelect(this.config.material.id)}this.loadFromQuery();this.log("end load")},loadFromQuery:function(){this.micoPriceprocessing=0;var d=window.location.search.toQueryParams();if((d.width===undefined)||(d.height===undefined)||(d.unit===undefined)||(d.qty===undefined)){return 0}var k=0;var i="";if(d.side===undefined){k=0}else{k=1}if(d.unit!=1){d.unit=12}if(d.material===undefined){i=""}else{i=d.material}if(i&&this.config.material.id){var c="mico_bannerprint_select_"+this.config.material.id;$(c).setValue(i);this.materialValue=$(c).getValue()}var a=(d.width*d.unit)/12;var l=(d.height*d.unit)/12;var f=parseInt(d.qty);var j=a+"x"+l;var h=this.config.pricesheet.sizes[j];if(!h){j=a+"xY";h=this.config.pricesheet.sizes[j];if(!h){j="Xx"+l;h=this.config.pricesheet.sizes[j];if(!h){j="XxY";h=this.config.pricesheet.sizes[j]}}}if(k&&this.twosideItem){this.twosideItem.checked=true}$("qty").setValue(f);$("mico-bannerprint-select").setValue(h.key);this.setValueXY();if(this.customize){this.sizeX=a;this.sizeY=l;if(d.unit==12){$("mico-bannerprint-x").setValue(a);$("mico-bannerprint-y").setValue(l);$("mico-bannerprint-x-in").setValue(0);$("mico-bannerprint-y-in").setValue(0);this.itemX.setValue(this.getFtInText(a,0));this.itemY.setValue(this.getFtInText(l,0))}else{$("mico-bannerprint-x").setValue(0);$("mico-bannerprint-y").setValue(0);$("mico-bannerprint-x-in").setValue(d.width);$("mico-bannerprint-y-in").setValue(d.height);this.itemX.setValue(this.getFtInText(0,d.width));this.itemY.setValue(this.getFtInText(0,d.height))}}this.showPrice();this.enableButton()},hideElement:function(c){var b=c.up("dd");var a=b.previous("dt");b.addClassName("mico-bannerprint-inactive");a.addClassName("mico-bannerprint-inactive")},initXY:function(e){this.itemMaterial=e;this.visible=1;var d=e.up("dd");var c=d.previous("dt");var b='<option value="{val}">{title}</option>';opts="";this.log("tpl=["+this.tpl+"]");this.log("opts=["+opts+"]");var a=this.tpl.replace(/<option><\/option>/ig,opts);a=a.replace(/<option selected><\/option>/ig,opts);a=a.replace(/{LX}/ig,this.config.X.title);a=a.replace(/{LY}/ig,this.config.Y.title);new Insertion.Before(c,a);this.log("selectOpts=["+a+"]");d.addClassName("mico-bannerprint-inactive");c.addClassName("mico-bannerprint-inactive");this.customizeItem=$("mico-bannerprint-custom-size");$("mico-bannerprint-container").addClassName("mico-bannerprint-inactive")},updateSizeXY:function(){this.micoPriceprocessing=1;var b=$("mico-bannerprint-select");var e="";var c='<option value="{val}">{title}</option>';var d;var g;var f;if(this.materialValue){this.config.pricesheet.sizes=this.config.pricesheet.sizematrix[this.materialValue];var a=$H(this.config.pricesheet.sizes);a.each(function(h){g=h.key;f=h.value.title;d=c.replace(/{val}/g,g);d=d.replace(/{title}/g,f);e+=d}.bind(this))}b.update(e);if(e){$("mico-bannerprint-container").removeClassName("mico-bannerprint-inactive")}else{$("mico-bannerprint-container").addClassName("mico-bannerprint-inactive")}this.micoPriceprocessing=0;this.setValueXY()},setValueXY:function(){if(this.micoPriceprocessing){return 0}this.micoPriceprocessing=1;var a=$("mico-bannerprint-select");var b=a.getValue();if(!b){this.micoPriceprocessing=0;return 0}this.sizeItem=this.config.pricesheet.sizes[b];this.customize=0;$("mico-bannerprint-x-in").setValue(0);$("mico-bannerprint-y-in").setValue(0);if(this.sizeItem.X!="X"){this.itemX.setValue(this.getFtInText(this.sizeItem.X,0));this.sizeX=this.sizeItem.X}else{this.itemX.setValue(0);this.customize=1;this.sizeX=0}if(this.sizeItem.Y!="Y"){this.itemY.setValue(this.getFtInText(this.sizeItem.Y,0));this.sizeY=this.sizeItem.Y}else{this.itemY.setValue(0);this.customize=1;this.sizeY=0}this.clearErrors();if(this.customize){this.disableButton()}else{this.enableButton()}this.showCustomize();this.micoPriceprocessing=0},setValueX:function(){if(this.micoPriceprocessing){return 0}this.micoPriceprocessing=1;var a=this.getValueFtIn("mico-bannerprint-x","mico-bannerprint-x-in");this.itemX.setValue(a.textVal);this.sizeX=a.totalVal;this.showPrice();this.validateX();this.micoPriceprocessing=0},setValueY:function(){if(this.micoPriceprocessing){return 0}this.micoPriceprocessing=1;var a=this.getValueFtIn("mico-bannerprint-y","mico-bannerprint-y-in");this.itemY.setValue(a.textVal);this.sizeY=a.totalVal;this.showPrice();this.validateY();this.micoPriceprocessing=0},getValueFtIn:function(b,e){var f=$(b);var a=$(e);var d=parseFloat(f.getValue());var g=parseFloat(a.getValue());var c=new Array();c.textVal=this.getFtInText(d,g);c.inVal=g;c.ftVal=d;c.totalVal=d+g/12;return c},getFtInText:function(b,c){var a="";if(b){a=b+" ft. "}if(c){a+=c+" in."}return a.trim()},setValueToXY:function(){var a=$("mico-bannerprint-x");var b=$("mico-bannerprint-y");a.setValue(this.sizeX);b.setValue(this.sizeY);if(this.sizeX){a.disable();b.focus()}else{a.enable();a.focus()}},showCustomize:function(){if(this.customize){this.customizeItem.removeClassName("mico-bannerprint-inactive");this.setValueToXY()}else{this.customizeItem.addClassName("mico-bannerprint-inactive")}this.showPrice()},showPrice:function(){if(!this.sizeX&&!this.sizeY){return 0}var j=this.sizeX*this.sizeY*this.config.pricesheet.config.radix*this.config.pricesheet.config.radix;if(j<=0){return 0}var i=1;var n=this.customizeValue("qty",0);if(this.twosideItem&&this.twosideItem.checked){i=2}j=i*j;if(n<=0){n=1}var m=this.getPriceBySq(j/i,this.config.pricesheet.price);var h=0;var l=0;var g=0;var k=0;l=this.getDiscountByQty(n,m,this.config.pricesheet.tier);k=(m-l)*j;g=k*n;optionsPrice.productPrice=k;optionsPrice.reload();if(micoLoadTotalpricing!==undefined){micoLoadTotalpricing.loadTotalPrice()}},getXxY:function(){var d=parseFloat(this.sizeX)*this.radix;var c=parseFloat(this.sizeY)*this.radix;if(d<=0){d=1}if(c<=0){c=1}return d*c},betweenSize:function(g,h,f){if(!f){return 1}var i=1;var j=1;if(f.X){i=this.betweenValue(g*1,f.X.from*1,f.X.to*1)}if(f.Y){j=this.betweenValue(h*1,f.Y.from*1,f.Y.to*1)}return i&&j?1:0},betweenValue:function(e,f,d){if(f&&(e<f)){return 0}if(d&&(e>d)){return 0}return 1},isExtColor:function(b){return b.indexOf("*")!==-1?1:0},checkMaxMin:function(i,g,f,h,j){},showError:function(d,e,f){this.log("error->"+e);var a="mico-bannerprint-failed-"+f;var c=Validation.getAdvice(a,d);if(c==null){c=Validation.createAdvice(a,d,false,e)}else{c.update(e)}Validation.showAdvice(d,c,a);d.addClassName("validation-failed")},clearErrors:function(c,d){this.clearError($("mico-bannerprint-x"),"x-bannerprint-error");this.clearError($("mico-bannerprint-y"),"y-bannerprint-error")},clearError:function(c,d){var b="mico-bannerprint-failed-"+d;var a=Validation.getAdvice(b,c);if(a){c.removeClassName("validation-failed");a.remove()}},validateX:function(){if(this.validateData(this.sizeX,"x")){if(!this.sizeY){this.disableButton()}}},validateY:function(){if(this.validateData(this.sizeY,"y")){if(!this.sizeX){this.disableButton()}}},validateData:function(f,d){var c=parseFloat(this.config.pricesheet.config["min"+d]);var a=parseFloat(this.config.pricesheet.config["max"+d]);var b=this.getError(c,a,f);var g=d+"-bannerprint-error";var e=$("mico-bannerprint-select");this.config.alert=this.config.pricesheet.config["errorsize"+d];if(!b){this.clearError(e,g);this.enableButton();return 1}this.disableButton();this.showError(e,b,g);return 0},getError:function(b,a,c){if((b>c)||(a<c)){return this.getErrorMinMaxMsg(this.config.alert,c,b,a)}return 0},getErrorMinMaxMsg:function(g,h,e,f){g=g.replace(/{min}/g,e);g=g.replace(/{max}/g,f);return g.replace(/{val}/g,h)},disableButton:function(){if(micoAddToCartButtonCanDisable){$$(micoAddToCartButton).each(function(b){b.disabled=true}.bind(this))}else{micoAddToCartButtonDisabled=1}},enableButton:function(){if(micoAddToCartButtonCanDisable){$$(micoAddToCartButton).each(function(b){b.disabled=false}.bind(this))}else{micoAddToCartButtonDisabled=0}},changeTextToSelect:function(g,d,j,m,n){var h=d.hasClassName("required-entry");var b=d.name;var i=d.id;var a=h?"required-entry":"";if(!m){m="setTextFromSelect"}var l=h?"":'<option value="">-- Please Select --</option>';var k='<select onchange="micoBannerPrint.'+m+'({optionId});" class="product-custom-option {cls}" id="mico_bannerprint_select_{optionId}">'+l+"{options}</select>";var c='<option value="{option}" {selected}>{val}</option>';var o="";var f="";k=k.replace(/{name}/g,b);k=k.replace(/{optionId}/g,g);k=k.replace(/{id}/g,i);k=k.replace(/{cls}/g,a);var e;if(j){$H(j).each(function(p){f=p.key==n?"selected":"";e=c.replace(/{option}/g,p.key);e=e.replace(/{val}/g,p.value);e=e.replace(/{selected}/g,f);o=o+e}.bind(this))}k=k.replace(/{options}/g,o);new Insertion.Before(d,k);d.setStyle({display:"none"})},setTextFromSelect:function(d){var c=$("mico_bannerprint_select_"+d);var b=$(this.getFieldText(d));var a=c.selectedIndex;var e=a>=0?c.options[a].innerHTML:"";b.setValue(e)},getFieldText:function(a){return"options_"+a+"_text"},setMaterialTextFromSelect:function(c){this.setTextFromSelect(c);var b=$("mico_bannerprint_select_"+c);var a=b.getValue();this.log("material="+a);this.materialValue=a;this.updateSizeXY()},log:function(a){}};
