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