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){var n,r,i,s;for(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(){var e,t,n,r,i,s=this;for(r=document.getElementsByTagName("a"),i=document.getElementsByTagName("form"),e=0,t=r.length;e<t;e++)-1==r[e].href.indexOf("Action=RGRP")&&-1==r[e].href.indexOf("Action=RPRD")||AddEvent(r[e],"click",function(e){return s.RemoveFromBasketLinks(e)});for(e=0,t=i.length;e<t;e++)(n=i[e].elements.Action)&&("RGRP"==n.value||"RPRD"==n.value?AddEvent(i[e],"submit",function(e){return s.RemoveFromBasketForms(e)}):"QNTY"!=n.value&&"QTYG"!=n.value||AddEvent(i[e],"submit",function(e){return s.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()?this.main_product_form.elements[e].checked&&(this.product_attributes[t].value=encodeURIComponent(this.main_product_form.elements[e].value)):"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(){var e,t,n,r,i,s=this;for(e=0,t=(r=document.getElementsByTagName("form")).length;e<t;e++)if(n=r[e].elements.Action,i=r[e].elements.Product_Code,n&&i&&"ADPR"==n.value&&i.value==Product_Code){AddEvent(r[e],"submit",function(e){s.Find_PROD_Attributes(),s.AddToBasketSubmit(e)}),this.main_product_form=r[e];break}},MVGA_Tracker.prototype.Process_OUS1=function(){var e,t,n,r,i,s=this;for(e=0,t=(r=document.getElementsByTagName("form")).length;e<t;e++)n=r[e].elements.Action,i=r[e].elements.Product_Code,n&&i&&"AUPR"==n.value&&AddEvent(r[e],"submit",function(e){return s.UpsellOUS1FormSubmit(e)})},MVGA_Tracker.prototype.Process_OUSM=function(){var e,t,n,r,i=this;for(e=0,t=(r=document.getElementsByTagName("form")).length;e<t;e++)if((n=r[e].elements.Action)&&"AUPM"==n.value){AddEvent(r[e],"submit",function(e){return i.Find_OUSM_Selection(e),i.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(){var e,t,n,r,i=this;for(t=document.getElementsByTagName("form"),e=0;e<t.length;e++)if(r=t[e].elements.ShippingMethod,n=t[e].elements.PaymentMethod,r&&n){this.Build_BasketAndOrderItem_Lookup(),AddEvent(t[e],"submit",function(e){return i.OSELFormSubmit(e)});break}},MVGA_Tracker.prototype.OSELFormSubmit=function(e){var t,n,r,i,s;return e=e||window.event,!(t=e.srcElement||e.target)||!t.elements||(s=i="",n=t.elements.ShippingMethod,r=t.elements.PaymentMethod,n&&(i=n.options[n.selectedIndex].value),r&&(s=r.options[r.selectedIndex].value),ga("ec:setAction","checkout_option",{step:1,option:i+", "+s}),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(){var e,t,n;for(n="",e=0,t=this.product_attributes.length;e<t;e++)this.product_attributes[e]&&this.product_attributes[e].value&&(n.length&&(n+=", "),n+=this.product_attributes[e].code+": "+this.product_attributes[e].value);return n},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(){var e,t,n,r,i,s=this;for(e=0,t=(r=document.getElementsByTagName("form")).length;e<t;e++)n=r[e].elements.Action,i=r[e].elements.Product_Code,n&&i&&i.value!=Product_Code&&"ADPR"==n.value&&AddEvent(r[e],"submit",function(e){return s.List_AddToBasketSubmit(e)})},MVGA_Tracker.prototype.Process_List_Page=function(){var e,t,n,r=this;for(e=0,t=(n=document.getElementsByTagName("a")).length;e<t;e++)"product-list-link"===n[e].getAttribute("data-mm-linktype")&&AddEvent(n[e],"click",function(e){return r.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("IMG"==o.nodeName&&(o=o.parentNode),"string"!=typeof 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(){var e,t;for(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"}};