function MVGA_Tracker(e,t,n,r,i,s){this.category_name=t,this.product_link_prefix=e,this.product_code=n,this.product_name=r,this.basketitems=i,this.orderitems=s,this.basketitems_lookup=[],this.orderitems_lookup=[],this.product_links=[],this.product_attributes=[],this.upsell_products=[],this.main_product_form=null,this.Page_Dispatch()}function getScopedElementsByClassName(e,t){for(var n=new RegExp("(?:^|\\s)"+e+"(?:$|\\s)"),r=t.getElementsByTagName("*"),i=[],s=0;null!=r[s];s++)r[s].className&&-1!=r[s].className.indexOf(e)&&n.test(r[s].className)&&i.push(r[s]);return i}function AddEvent(t,n,r){try{return t.addEventListener(n,r,!1),!0}catch(e){try{return t.attachEvent("on"+n,r)}catch(e){return!1}}}function eventPreventDefault(e){return e.preventDefault?e.preventDefault():e.returnValue=!1}MVGA_Tracker.prototype.Page_Dispatch=function(){"BASK"==Screen?this.Process_BASK():"PROD"==Screen?this.Process_PROD():"OUS1"==Screen?this.Process_OUS1():"OUSM"==Screen?this.Process_OUSM():"OSEL"==Screen&&this.Process_OSEL(),"CTGY"!=Screen&&"PLST"!=Screen&&"PROD"!=Screen&&"SRCH"!=Screen||this.Process_List_Page()},MVGA_Tracker.prototype.Process_BASK=function(){for(var e,t=this,n=document.getElementsByTagName("a"),r=document.getElementsByTagName("form"),i=0,s=n.length;i<s;i++)-1==n[i].href.indexOf("Action=RGRP")&&-1==n[i].href.indexOf("Action=RPRD")||AddEvent(n[i],"click",function(e){return t.RemoveFromBasketLinks(e)});for(i=0,s=r.length;i<s;i++)(e=r[i].elements.Action)&&("RGRP"==e.value||"RPRD"==e.value?AddEvent(r[i],"submit",function(e){return t.RemoveFromBasketForms(e)}):"QNTY"!=e.value&&"QTYG"!=e.value||AddEvent(r[i],"submit",function(e){return t.UpdateBasketQuantity(e)}));this.Build_BasketAndOrderItem_Lookup()},MVGA_Tracker.prototype.RemoveFromBasketForms=function(e){var t,n;return e=e||window.event,!(t=e.srcElement||e.target)||!t.elements||(!(n=t.elements.Basket_Group||t.elements.Basket_Line)||(ga("require","ec"),ga("ec:addProduct",{id:this.basketitems_lookup[n.value].code,name:this.basketitems_lookup[n.value].name,quantity:this.basketitems_lookup[n.value].quantity}),ga("ec:setAction","remove"),ga("send","event","remove_button","click","remove from cart",{hitCallback:function(){t.submit()}}),eventPreventDefault(e)))},MVGA_Tracker.prototype.RemoveFromBasketLinks=function(e){var t,n,r,i,s;if(e=e||window.event,!(r=e.srcElement||e.target).href)return!0;for(t=0,n=(i=r.href.split("&")).length;t<n;t++)-1!=i[t].indexOf("Basket_Group=")?s=i[t].substring(i[t].indexOf("Basket_Group=")+13):-1!=i[t].indexOf("Basket_Line=")&&(s=i[t].substring(i[t].indexOf("Basket_Line=")+12));return!s||(ga("require","ec"),ga("ec:addProduct",{id:this.basketitems_lookup[s].code,name:this.basketitems_lookup[s].name,quantity:this.basketitems_lookup[s].quantity}),ga("ec:setAction","remove"),ga("send","event","remove_button","click","remove from cart",{hitCallback:function(){document.location.href=r.href}}),eventPreventDefault(e))},MVGA_Tracker.prototype.UpdateBasketQuantity=function(e){var t,n,r;return e=e||window.event,!(t=e.srcElement||e.target)||!t.elements||(n=t.elements.Basket_Line||t.elements.Basket_Group,r=t.elements.Quantity,!n||!r||(ga("require","ec"),r.value>this.basketitems_lookup[n.value].quantity?(ga("ec:addProduct",{id:this.basketitems_lookup[n.value].code,name:this.basketitems_lookup[n.value].name,quantity:r.value-this.basketitems_lookup[n.value].quantity}),ga("ec:setAction","add"),ga("send","event","update_quantity","click","Update basket quantity",{hitCallback:function(){t.submit()}})):r.value<this.basketitems_lookup[n.value].quantity&&(ga("ec:addProduct",{id:this.basketitems_lookup[n.value].code,name:this.basketitems_lookup[n.value].name,quantity:this.basketitems_lookup[n.value].quantity-r.value}),ga("ec:setAction","remove"),ga("send","event","update_quantity","click","Update basket quantity",{hitCallback:function(){t.submit()}})),eventPreventDefault(e)))},MVGA_Tracker.prototype.Process_PROD=function(){this.Find_PROD_ADPR_Forms()},MVGA_Tracker.prototype.Find_PROD_Attributes=function(){var e,t,n;if(this.main_product_form&&this.main_product_form.elements){for(e=0;e<this.main_product_form.elements.length;e++)"string"!=typeof this.main_product_form.elements[e].type||"string"!=typeof this.main_product_form.elements[e].name||"hidden"!=this.main_product_form.elements[e].type.toLowerCase()||this.main_product_form.elements[e].name.indexOf("]:code")!=this.main_product_form.elements[e].name.length-6||0!=this.main_product_form.elements[e].name.indexOf("Product_Attributes[")||(t=(t=(t=this.main_product_form.elements[e].name.replace(/Product_Attributes\[/g,"")).replace(/ /g,"")).replace(/\]:code/g,""),n=parseInt(t),this.product_attributes[n]=new Object,this.product_attributes[n].code=this.main_product_form.elements[e].value,this.product_attributes[n].value="");for(e=0;e<this.main_product_form.elements.length;e++)"string"!=typeof this.main_product_form.elements[e].type||"string"!=typeof this.main_product_form.elements[e].name||this.main_product_form.elements[e].name.indexOf("]:value")!=this.main_product_form.elements[e].name.length-7||0!=this.main_product_form.elements[e].name.indexOf("Product_Attributes[")||this.main_product_form.elements[e].disabled||(t=(t=(t=this.main_product_form.elements[e].name.replace(/Product_Attributes\[/g,"")).replace(/ /g,"")).replace(/\]:value/g,""),t=parseInt(t),"select-one"==this.main_product_form.elements[e].type.toLowerCase()?this.product_attributes[t].value=encodeURIComponent(this.main_product_form.elements[e].options[this.main_product_form.elements[e].selectedIndex].value):"radio"==this.main_product_form.elements[e].type.toLowerCase()||"checkbox"==this.main_product_form.elements[e].type.toLowerCase()?this.main_product_form.elements[e].checked&&(this.product_attributes[t].value=encodeURIComponent(this.main_product_form.elements[e].value)):"text"==this.main_product_form.elements[e].type?this.main_product_form.elements[e].value.length&&(this.product_attributes[t].value="populated"):"textarea"==this.main_product_form.elements[e].type&&this.main_product_form.elements[e].value.length&&(this.product_attributes[t].value="populated"))}},MVGA_Tracker.prototype.Find_PROD_ADPR_Forms=function(){for(var e,t,n=this,r=document.getElementsByTagName("form"),i=0,s=r.length;i<s;i++)if(e=r[i].elements.Action,t=r[i].elements.Product_Code,e&&t&&"ADPR"==e.value&&t.value==Product_Code){AddEvent(r[i],"submit",function(e){n.Find_PROD_Attributes(),n.AddToBasketSubmit(e)}),this.main_product_form=r[i];break}},MVGA_Tracker.prototype.Process_OUS1=function(){for(var e,t,n=this,r=document.getElementsByTagName("form"),i=0,s=r.length;i<s;i++)e=r[i].elements.Action,t=r[i].elements.Product_Code,e&&t&&("AUPR"!=e.value||AddEvent(r[i],"submit",function(e){return n.UpsellOUS1FormSubmit(e)}))},MVGA_Tracker.prototype.Process_OUSM=function(){for(var e,t=this,n=document.getElementsByTagName("form"),r=0,i=n.length;r<i;r++)if((e=n[r].elements.Action)&&"AUPM"==e.value){AddEvent(n[r],"submit",function(e){return t.Find_OUSM_Selection(e),t.UpsellFormSubmit(e)});break}},MVGA_Tracker.prototype.UpsellOUS1FormSubmit=function(e){var t,n;return e=e||window.event,!(t=e.srcElement||e.target)||!t.elements||(!(n=t.elements.Product_Code)||(ga("require","ec"),ga("ec:addProduct",{name:n.value,quantity:1}),ga("ec:setAction","add"),ga("send","event","upsell_add_to_cart","click","Upsell",{hitCallback:function(){t.submit()}}),eventPreventDefault(e)))},MVGA_Tracker.prototype.UpsellFormSubmit=function(e){var t,n;if(e=e||window.event,!(n=e.srcElement||e.target)||!n.elements)return!0;for(ga("require","ec"),t=0;t<this.upsell_products.length;t++)this.upsell_products[t]&&ga("ec:addProduct",{name:this.upsell_products[t].code,quantity:1});return ga("ec:setAction","add"),ga("send","event","upsell_add_to_cart","click","Upsell",{hitCallback:function(){n.submit()}}),eventPreventDefault(e)},MVGA_Tracker.prototype.Find_OUSM_Selection=function(e){var t,n,r,i;if((i=(e=e||window.event).srcElement||e.target)&&i.elements){for(t=0;t<i.elements.length;t++)"string"!=typeof i.elements[t].type||"string"!=typeof i.elements[t].name||"hidden"!=i.elements[t].type.toLowerCase()||i.elements[t].name.indexOf("]:code")!=i.elements[t].name.length-6||0!=i.elements[t].name.indexOf("Product[")||(n=(n=(n=i.elements[t].name.replace(/Product\[/g,"")).replace(/ /g,"")).replace(/\]:code/g,""),r=parseInt(n),this.upsell_products[r]=new Object,this.upsell_products[r].code=i.elements[t].value,this.upsell_products[r].value="");for(t=0;t<i.elements.length;t++)"string"!=typeof i.elements[t].type||"string"!=typeof i.elements[t].name||"checkbox"!=i.elements[t].type.toLowerCase()||i.elements[t].name.indexOf("]")!=i.elements[t].name.length-1||0!=i.elements[t].name.indexOf("Upsell_Selected[")||i.elements[t].disabled||(n=(n=(n=i.elements[t].name.replace(/Upsell_Selected\[/g,"")).replace(/ /g,"")).replace(/\]/g,""),n=parseInt(n),i.elements[t].checked&&(this.upsell_products[n].value=encodeURIComponent(i.elements[t].value)))}},MVGA_Tracker.prototype.Process_OSEL=function(){for(var e,t,n=this,r=document.getElementsByTagName("form"),i=0;i<r.length;i++)if(t=r[i].elements.ShippingMethod,e=r[i].elements.PaymentMethod,t&&e){this.Build_BasketAndOrderItem_Lookup(),AddEvent(r[i],"submit",function(e){return n.OSELFormSubmit(e)});break}},MVGA_Tracker.prototype.OSELFormSubmit=function(e){var t,n,r;return e=e||window.event,!(t=e.srcElement||e.target)||!t.elements||(n=t.elements.ShippingMethod,r=t.elements.PaymentMethod,n=n instanceof HTMLSelectElement?n.selectedIndex<0?"":n.options[n.selectedIndex].value:n?n.value:"",r=r instanceof HTMLSelectElement?r.selectedIndex<0?"":r.options[r.selectedIndex].value:r?r.value:"",ga("ec:setAction","checkout_option",{step:1,option:n+", "+r}),ga("send","event","Checkout","Option",{hitCallback:function(){t&&t.submit()}}),eventPreventDefault(e))},MVGA_Tracker.prototype.AddToBasketSubmit=function(e){var t,n,r;return e=e||window.event,!(t=e.srcElement||e.target)||!t.elements||(n=t.elements.Product_Code,r=t.elements.Quantity,!n||!r||(ga("require","ec"),ga("ec:addProduct",{id:n.value,name:n.value,quantity:r?parseInt(r.value):1,variant:this.Generate_Variant_Label(),category:this.category_name}),ga("ec:setAction","add"),ga("send","event","detail_add_to_cart","click","add to cart",{hitCallback:function(){t.submit()}}),eventPreventDefault(e)))},MVGA_Tracker.prototype.Generate_Variant_Label=function(){for(var e="",t=0,n=this.product_attributes.length;t<n;t++)this.product_attributes[t]&&this.product_attributes[t].value&&(e.length&&(e+=", "),e+=this.product_attributes[t].code+": "+this.product_attributes[t].value);return e},MVGA_Tracker.prototype.List_AddToBasketSubmit=function(e){var t,n;return e=e||window.event,!(t=e.srcElement||e.target)||!t.elements||(!(n=t.elements.Product_Code)||(ga("require","ec"),ga("ec:addProduct",{id:n.value,name:n.value,quantity:1,category:this.category_name}),ga("ec:setAction","add",{list:this.Get_Listing_Label(Screen)}),ga("send","event","list_add_to_cart","click","add to cart",{hitCallback:function(){t.submit()}}),eventPreventDefault(e)))},MVGA_Tracker.prototype.Find_List_ADPR_Forms=function(){for(var e,t,n=this,r=document.getElementsByTagName("form"),i=0,s=r.length;i<s;i++)e=r[i].elements.Action,t=r[i].elements.Product_Code,e&&t&&(t.value==Product_Code||"ADPR"!=e.value||AddEvent(r[i],"submit",function(e){return n.List_AddToBasketSubmit(e)}))},MVGA_Tracker.prototype.Process_List_Page=function(){for(var t=this,e=document.getElementsByTagName("a"),n=0,r=e.length;n<r;n++)"product-list-link"===e[n].getAttribute("data-mm-linktype")&&AddEvent(e[n],"click",function(e){return t.ProductLinkClick(e)});this.Find_List_ADPR_Forms()},MVGA_Tracker.prototype.ProductLinkClick=function(e){var t,n,r,i,s,o;if(e=e||window.event,r=null,!((o=e.srcElement||e.target)instanceof HTMLElement))return!0;if("string"!=typeof(o="IMG"==o.nodeName?o.parentNode:o).href||0===o.href.length)return!0;if(o.hasAttribute("data-product-code"))for(i=o.getAttribute("data-product-code"),t=0,n=mvga_productlist.length;t<n;t++)if(mvga_productlist[t].code===i){r=mvga_productlist[t];break}if(null===r)for(s=o.href,t=0,n=mvga_productlist.length;t<n;t++)if(mvga_productlist[t].link===s){r=mvga_productlist[t];break}return null===r||(ga("require","ec"),ga("ec:addProduct",{id:r.code,name:r.name,category:this.category_name,position:r.position}),ga("ec:setAction","click",{list:this.Get_Listing_Label(Screen)}),ga("send","event","product_list_click","click","View Product Details",{hitCallback:function(){document.location.href=o.href}}),eventPreventDefault(e))},MVGA_Tracker.prototype.Build_BasketAndOrderItem_Lookup=function(){for(var e=0,t=this.basketitems.length;e<t;e++)this.basketitems_lookup[this.basketitems[e].line_id]=new Object,this.basketitems_lookup[this.basketitems[e].line_id].code=this.basketitems[e].code,this.basketitems_lookup[this.basketitems[e].line_id].name=this.basketitems[e].name,this.basketitems_lookup[this.basketitems[e].line_id].price=this.basketitems[e].price,this.basketitems_lookup[this.basketitems[e].line_id].quantity=this.basketitems[e].quantity;for(e=0,t=this.orderitems.length;e<t;e++)this.orderitems_lookup[this.orderitems[e].line_id]=new Object,this.orderitems_lookup[this.orderitems[e].line_id].code=this.orderitems[e].code,this.orderitems_lookup[this.orderitems[e].line_id].name=this.orderitems[e].name,this.orderitems_lookup[this.orderitems[e].line_id].price=this.orderitems[e].price,this.orderitems_lookup[this.orderitems[e].line_id].quantity=this.orderitems[e].quantity},MVGA_Tracker.prototype.Get_Listing_Label=function(e){switch(e){case"PROD":return"Related Products";case"CTGY":return"Category Listing";case"PLST":return"All Products";case"SRCH":return"Search Results"}};