﻿var timer;
var complete = 0; //true or false variable
var lookedup = false;

function chkClick(chk){
    if (chk.checked){
        complete ++;
    }
    else{
        complete --;
    }
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function SwapVis(hideitem,showitem) {
    try {
        MM_findObj(hideitem).style.display = 'none';
        MM_findObj(showitem).style.display = '';   
    }catch(e){}
}

function ShowHide(item, show) {
    try {
        var itemObj = MM_findObj(item);
        if (show){
            itemObj.style.display = '';
        }
        else{
            itemObj.style.display = 'none';
        }
    } catch (e) {}
}

function timedRefresh(interval){
    timer = setTimeout("location.reload(true); clearTimeout(timer);", interval);
}


function openclose(triggerid, itemid, showhide, hidetrigger, openedtext, closedtext){
    var trigger = MM_findObj(triggerid);
    var item = MM_findObj(itemid);
    if (MM_findObj(triggerid).getAttribute('disabled') != 'disabled')
        { 
            if (hidetrigger){
                trigger.setAttribute('disabled','disabled')
            }    
            var currentclass = trigger.className;
            if (currentclass.indexOf('opened') > -1)
            {
                if (showhide != '')
                {
                    MM_findObj(showhide).setAttribute('disabled','disabled');
                }
                Effect.BlindUp(item, {duration:0.5,afterFinish:function(){
                    trigger.removeAttribute('disabled'); 
                    trigger.className = trigger.className.replace('opened','closed');
                    //alert(openedtext.length);
                    if(openedtext.length > 1){
                        trigger.innerHTML = openedtext; 
                        trigger.title = openedtext;
                    }
                }});
            }
            else{        
                trigger.className = trigger.className.replace('closed','opened');
                //alert(openedtext.length);
                if(closedtext.length > 0){
                    trigger.innerHTML = closedtext; 
                    trigger.title = closedtext;
                }
                Effect.BlindDown(item, {duration:0.5, afterFinish:function() {
                    if (showhide != ''){ MM_findObj(showhide).removeAttribute('disabled'); }
                    trigger.removeAttribute('disabled');
                }});
            }
        }
}

function showBasket() {
    TogglePanel('MCOpenClose','MCStretch','slide',8,'SHOW BASKET','CLOSE BASKET');
    var isOpened = MM_findObj('MCOpenClose').className.indexOf('opened');
    if (isOpened > -1) {
      s.events='scView';void(s.t());
    }
}

function bounceCart(isasync) {
  try{
    if (isasync) {
      bounceTheCart();
    } else {
      Event.observe(window,'load',bounceTheCart,false);
    }
  }catch(e){
    alert(e.message);
  }
}

function bounceTheCart() {
    TogglePanel('MCOpenClose','MCStretch','slide',8,'SHOW BASKET','CLOSE BASKET');
    setTimeout("TogglePanel('MCOpenClose','MCStretch','slide',8,'SHOW BASKET','CLOSE BASKET');",3000);
}

function TogglePanel(triggerid, itemid, effect, speed, openedtext, closedtext){
    var length = (speed/10);
    var trigger = MM_findObj(triggerid);
    var item = MM_findObj(itemid);   
    var currentclass;          
    if (trigger) {
        currentclass = trigger.className;        
    }else{
        currentclass=''
    }
    /*** Start Effect ***/  
    Effect.toggle(item, effect, {duration:length, beforeStart:function() {
    /*** Change class and text of trigger ***/  
    if (currentclass.indexOf('opened') > -1)
        {
            trigger.className = trigger.className.replace('opened','closed');
            //alert('closing');
            if(openedtext.length > 1){
                trigger.innerHTML = openedtext; 
                trigger.title = openedtext;
            }
        }
        else
        {
            trigger.className = trigger.className.replace('closed','opened');
            //alert('opening');
            if(closedtext.length > 1){
                trigger.innerHTML = closedtext; 
                trigger.title = closedtext;
            }                        
        }
    }});
}


function textCounter(textboxid,messageid,maxlimit) {
var textbox = MM_findObj(textboxid);
var message = MM_findObj(messageid);
if (textbox.value.length > maxlimit) // if too long...trim it!
textbox.value = textbox.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else
message.innerHTML = "(" + (maxlimit - textbox.value.length) + " characters remaining)";
}



function toggleeffect(elem, effect, dur){
    var length = (dur/10);
    //alert(length);
    Effect.toggle(MM_findObj(elem), effect, {duration: length });
}

function setupDraggable(elem, handle){
    MM_findObj(elem).style.zIndex = 10000;
    new Draggable(MM_findObj(elem), { handle: MM_findObj(handle) });
    MM_findObj(handle).style.cursor = 'move';
}

var sliderValuesChanged=false;
function setupPriceSlider(minid, maxid, minrangeval, maxrangeval, minsetval, maxsetval, ctrlPrefix, updateBuiltQs, fBtn){
         
    var handles = [(MM_findObj(ctrlPrefix + 'pshandlel')), (MM_findObj(ctrlPrefix + 'pshandler'))];
    var values = [minsetval, maxsetval];
    MM_findObj(ctrlPrefix + 'psrange').innerHTML = "&pound;" + Math.round(minsetval) + "  -  " + "&pound;" + Math.round(maxsetval);
    minid = ctrlPrefix + minid;
    maxid = ctrlPrefix + maxid;
    var slider = new Control.Slider(handles, MM_findObj(ctrlPrefix + 'pstrack'), {
        range:$R(minrangeval, maxrangeval, false),
        step:1,
        restricted:true,
        sliderValue: values,
        onSlide: function(values) {
            sliderValuesChanged=true;
            (MM_findObj(minid)).value = Math.round(values[0]);
            (MM_findObj(maxid)).value = Math.round(values[1]);
            MM_findObj(ctrlPrefix + 'psrange').innerHTML = "£" + Math.round(values[0]) + "  -  " + "£" + Math.round(values[1]);
            if (updateBuiltQs) { setPriceQs(); }
            if (fBtn != null) {
              if (Math.round(values[0]) != minrangeval || Math.round(values[1]) != maxrangeval) {
                if (slctFltrCnt[fBtn] == null || slctFltrCnt[fBtn] == 0) {
                  selectedCountChange(fBtn, 1);
                }
              } else {
                if (slctFltrCnt[fBtn] == null) {
                  selectedCountChange(fBtn, 0);
                } else if (slctFltrCnt[fBtn] == 1) {
                  selectedCountChange(fBtn, -1);
                }
              }
            }
        } 
        });
}
 
function filterByPrice(btn,ctrlprefix,QS_PRICE_FROM,QS_PRICE_TO,RedirectURL) {
try{   
    var minPrice = MM_findObj(ctrlprefix + QS_PRICE_FROM).value;
    var maxPrice = MM_findObj(ctrlprefix + QS_PRICE_TO).value;    
    var redirecturl = RedirectURL;
    if (redirecturl.indexOf("%7b") >0) {
        redirecturl = redirecturl.replace("%7b0%7d", minPrice);
        redirecturl = redirecturl.replace("%7b1%7d", maxPrice);
    }else{
        redirecturl = redirecturl.replace("{0}", minPrice);
        redirecturl = redirecturl.replace("{1}", maxPrice);
    }
    btn.href=redirecturl;
}catch(e){
    alert(e.message);
}
}

function fadeoutin(action, setid, setcount, buttonid, hidden, altbuttonid){
        if (MM_findObj(buttonid).getAttribute('disabled') != 'disabled')
        {            
            var currentset = parseInt((MM_findObj(hidden).value)); 
            var settofade = setid+"_"+currentset;
            var nextsettofade = setid+"_"+(currentset+1);
            var previoussettofade = setid+"_"+(currentset-1);
            MM_findObj(altbuttonid).setAttribute('disabled','disabled')
            MM_findObj(buttonid).setAttribute('disabled','disabled')
            if (action == 'next'){ 
                if (currentset < setcount){       
                    Effect.Fade((MM_findObj(settofade)),{duration: 0.5, afterFinish: function(){
                        currentset++;
                        if (currentset < setcount){
                            MM_findObj(buttonid).removeAttribute('disabled')                            
                        }
                        (MM_findObj(hidden)).value = currentset;
                        Effect.Appear((MM_findObj(nextsettofade)),{duration: 0.5});                                      
                    }});
                }
                if (currentset >= 1){
                    MM_findObj(altbuttonid).removeAttribute('disabled')
                }
            }
            if (action == 'previous'){ 
                if (currentset > 1){       
                    Effect.Fade((MM_findObj(settofade)),{duration: 0.5, afterFinish: function(){
                        currentset--;
                        if (currentset > 1){
                           MM_findObj(buttonid).removeAttribute('disabled')
                        }
                        MM_findObj(hidden).value = currentset;
                        Effect.Appear((MM_findObj(previoussettofade)),{duration: 0.5});                    
                    }});
                }
                if (currentset <= setcount){
                    MM_findObj(altbuttonid).removeAttribute('disabled')
                }
            }
        }
        
    
}
function ResetCarousel(hidden) {
    MM_findObj(hidden).value = 1;
}
function ResetCarosel(hidden){
    ResetCarousel(hidden);
}
//Newsletter
function checkEmail(chkemail, chkevents, chkoffers, chknews){
    if(chkemail.checked){     
        chkevents.checked = true;
        chkoffers.checked = true;
        chknews.checked = true;
        checkNews(chknews);
    }
    else{
        chkevents.checked = false;
        chkoffers.checked = false;
        chknews.checked = false;
        checkNews(chknews);
    }
}
function checkNews(chknews){
    if(chknews.checked){     
       Effect.BlindDown((MM_findObj('regnewsc')),{duration: 0.5});
    }
    else{
        Effect.BlindUp((MM_findObj('regnewsc')),{duration: 0.5});
    }
}
function checkMobile(chkmobile, txtmobile){
    if(chkmobile.checked){     
        if(txtmobile.value.length == 0){
            clearTimeout(timer);
            //alert(txtmobile.value.length);
            chkmobile.checked = false;
            toggleeffect('nomobile', 'Appear', 5);
            if(MM_findObj('nomobile').style.display == "none"){
                timer = setTimeout("toggleeffect('nomobile','Appear', 5);", 3000);
            }
        }
        else{
            MM_findObj('nomobile').style.display = "none";
            complete ++;
        }
    }
    else{
        if (complete > 0){complete --};
    }
}
function checkMobileLength(chkmobile, txtmobile){
    if(txtmobile.value.length == 0){
        chkmobile.checked = false;
    }
}
function newsletterSwapVisibility(showId,hideId,stage,validationGroup) {
    var showMePane = MM_findObj(showId);
    var hideMePane = MM_findObj(hideId);    
    var isOk = true;
    if (stage==1) { //need to validate
      for (i=0; i<Page_Validators.length; i++) {
        if (validationGroup==Page_Validators[i].validationGroup) {
           ValidatorValidate(Page_Validators[i])           
           if (!Page_Validators[i].isvalid) {
            isOk = false;
           }
        }         
      }   
    }

    if (isOk) { hideValidationSummaries('newsletter'); } else { showValidationSummaries('newsletter'); }

    if (isOk && (showMePane) && (hideMePane)) {
        showMePane.style.display = '';
        hideMePane.style.display = 'none';   
        return false;
    }else{
        return false;   
    }
}
function showValidationSummaries(valGroup) {
  setValidationSummaries(valGroup, '');
}
function hideValidationSummaries(valGroup) {
  setValidationSummaries(valGroup, 'none');   
}
function setValidationSummaries(valGroup, displayVal) {
    var summaries = getElementsByClassName(document, "div", "errorsum");
    for (i=0; i<summaries.length; i++) {
      if (summaries[i] && (summaries[i].getAttribute('valgrp') == null || summaries[i].getAttribute('valgrp') == (valGroup))) {
        summaries[i].style.display = displayVal;
      }
    }
}
function configureValidationSummaries(valGroup) {
    var isValid = false;
    if (typeof(Page_ClientValidate) == 'function') {
       isValid = Page_ClientValidate(valGroup);
    }

    if(isValid) {
        hideValidationSummaries(valGroup);
    } else {
        showValidationSummaries(valGroup);
    }
}
/** product image hover **/
function setimgtimer(hpanelid,imgSrcId){
    timer = setTimeout("ShowHoverImg('" + hpanelid + "','" + imgSrcId + "');", 300);
}
function ShowHoverImg(hpanelid, imgSrcId) {
    //CHECK IEMENUFIX.JS
    var img;
    MM_findObj(hpanelid).style.display = '';
    img = MM_findObj(imgSrcId);
    img.src = img.getAttribute("prdsrc");
    img.src = img.src.replace("pllarge","plhover");  
}
function clearimgtimer(hpanelid){
     clearTimeout(timer);
}
function closehover(hpanelid){
    timer = setTimeout("hidehoverpanel('" + hpanelid + "');", 300);    
}
function hidehoverpanel(hpanelid) {
    //CHECK IEMENUFIX.JS
    MM_findObj(hpanelid).style.display = 'none';
}
function showhover(hpanelid) {
    clearTimeout(timer);
    MM_findObj(hpanelid).style.display = "";
}

/** swatch click **/
var isInHover = true;
function swatchClick(styCode,colourId,prefix  ,isSale,isNew,newImageUrl,price) {
   
        var mainImg = getSwatchControl("img",styCode,"imgprod",prefix);
        var swatchContainer = getSwatchControl("div",styCode,"swcont",prefix);
        var saleSwatchContainer = getSwatchControl("div",styCode,"saleswcont",prefix);
        var saleImg = getSwatchControl("img",styCode,"sale",prefix);
        var newImg = getSwatchControl("img",styCode,"new",prefix);
        var priceCtrl = getSwatchControl("span",styCode,"price",prefix);
        var slctdColour = getSwatchControl("input",styCode,"slctd",prefix);
        var clkSwatch = getSwatchControl("img",styCode,"swtch-"+colourId,prefix);
        var detailsLnk = getSwatchControl("a",styCode,"pdlink",prefix);
        var labelLnk = getSwatchControl("a",styCode,"labellink",prefix);
        if (prefix=='-') {
            var hoverSwatch = getSwatchControl("img",styCode,"swtch-"+colourId,"-hvr-");
            if (hoverSwatch != null) {
                isInHover = false;
                hoverSwatch.onclick();
                isInHover = true;
            }
        }
        var curActiveSwatch;
        if (swatchContainer) {
            curActiveSwatch = getElementsByClassName(swatchContainer, "img", "active_swatch");
        }       
        if ((!curActiveSwatch) && (saleSwatchContainer)) {
            curActiveSwatch = getElementsByClassName(saleSwatchContainer,"img","active_swatch");
        }
        setNewArrivalState(isNew,newImg);
        setSaleState(isSale,swatchContainer,saleSwatchContainer,saleImg,newImg);
        // if we're hovering then set the src directly, otherwise set the prdsrc attribute so it doesn't get loaded every time.
        setMainImg(mainImg,newImageUrl,(prefix=='-hvr-') && !isInHover);
        setActiveSwatch(curActiveSwatch,clkSwatch);
        setActivePrice(priceCtrl,price);

        slctdColour.value = colourId;
        setProductDetailsUrl(labelLnk,colourId);
        setProductDetailsUrl(detailsLnk,colourId);

}

function getSwatchControl(tagName,styCode,ctrlName,prefix) {
    return getElementsByAttributeAndValue(document, tagName, "swctrl", styCode+prefix+ctrlName)[0];
}
function setNewArrivalState(isJustIn,imgJustin) {
    if ((isJustIn) && (imgJustin)){
        imgJustin.style.display ='';
    }
}
function setSaleState(isSale,swatchContainer,saleSwatchContainer,imgSale,imgNew) {
    if (isSale) { //swap the active tab
        if (swatchContainer) {
            swatchContainer.className ='tab inactive_tab'
        }
        if(saleSwatchContainer) {
            saleSwatchContainer.className ='tab active_tab'    
            if (imgSale) {                
                imgSale.style.display ='';                            
            }
            if (imgNew){
                imgNew.style.display ='none';
            }                   
        }
    }else{
        if (imgSale) {                
            imgSale.style.display ='none';           
        }        
        if (swatchContainer) {
            swatchContainer.className ='tab active_tab'
        }
        if(saleSwatchContainer) {
            saleSwatchContainer.className ='tab inactive_tab'
        }        
    }
}
function setMainImg(mainImg,newImageUrl,doNotPreload) {
    if ((mainImg) && (newImageUrl.length >0)) { //swap imgUrl
        if (doNotPreload) {
            mainImg.setAttribute("prdsrc", newImageUrl);
        } else {
            mainImg.src = newImageUrl;
        }
    }
}
function setActiveSwatch(curActiveSwatch,clkSwatch) {

    if ((curActiveSwatch)) {
        for (i=0; i<curActiveSwatch.length; i++) {
            curActiveSwatch[i].className = '';
        }
    }
    if (clkSwatch) {
        clkSwatch.className = 'active_swatch';
    }
}
function setActivePrice(priceCtrl,priceText) {
    if (priceCtrl != null) {
        priceCtrl.innerHTML = priceText;
    }
}

function setProductDetailsUrl(detailsLnk,colourId) {
    var newQsPart='colourRef='+colourId;
    if (!detailsLnk){ return; }
    if (detailsLnk.href.indexOf('colourRef=') > 0) {
        detailsLnk.href=detailsLnk.href.replace(/colourRef=[0-9]+-[A-Z %20]+/g,newQsPart);
    } else {
        detailsLnk.href+='?'+newQsPart;
    }
}

/* Gift Voucher Selection */
var subtotals = new Array(100);
function changeVoucherQuantity(ddId, removeId, subTotalId, unitPrice, grandTotalId, currency) {
    var dd;
    var removeLink;
    var subTotalCtrl;
    var subTotal;
    var quantity;
    try{
        dd = MM_findObj(ddId);
        removeLink = MM_findObj(removeId);
        subTotalCtrl = MM_findObj(subTotalId);

        quantity=dd.value;
        
        if (quantity > 0) {
            subTotalCtrl.style.display="inline"
            removeLink.style.display="inline"
        } else {
            subTotalCtrl.style.display="none"
            removeLink.style.display="none"
        }
        subTotal=quantity*unitPrice;
        subtotals[ddId]=subTotal;
        subTotalCtrl.innerHTML=currency+subTotal;
        recalculateGiftVoucherTotal(grandTotalId, currency);
    }catch(e){
        //voucher quantity click error 
        alert(e.message);
    }
}

function recalculateGiftVoucherTotal(grandTotalId, currency) {
    var tot = 0;
    var grandTotal;
    grandTotal = MM_findObj(grandTotalId);

    for (var id in subtotals) {
        if (typeof(subtotals[id])=='number') {
            tot += subtotals[id];
        }
    }
    grandTotal.innerHTML=currency+tot;
}

/* Vertical Scrolling */
function scrollVertical(value, element, slider) {
    element.scrollTop = Math.round(value/slider.maximum*(element.scrollHeight-element.offsetHeight));
}

function checkscrollable(element, scrollatheight){
    MM_findObj('scrollable').scrollTop = 0;
    var elheight = MM_findObj(element).offsetHeight;
    if (elheight < scrollatheight){
        MM_findObj('scrollbar').style.display = "none";
    } 
    else{
        MM_findObj('scrollbar').style.display = "";
        setupscrollbar();
    }
}
function setupscrollbar(){        
    var slider1 = new Control.Slider('handle', 'track', {
        axis: 'vertical',
        onSlide: function(v) { scrollVertical(v, $('scrollable'), slider1);  },
        onChange: function(v) { scrollVertical(v, $('scrollable'), slider1); }
    });
}

/* TABS */

/** 
if count > 1 then add onclicks 
set active tab to active tab
**/
function registerTabs(namingcontainer,tabcount,activetab) {    
    var tabcontainer;
    var tabactionbutton;
    if (tabcount ==1) {
        tabcontainer = MM_findObj(namingcontainer + '_tabc_' + activetab);
        tabactionbutton = MM_findObj(namingcontainer + '_tab_' + activetab);
        SetTabBtnActive(tabactionbutton,namingcontainer,tabcount,activetab);
        SetTabVisibility(tabcontainer);
    }else if(tabcount >1){
        for(var i=1;i<=tabcount;i++){
            tabcontainer = MM_findObj(namingcontainer + '_tabc_' + i);
            tabactionbutton = MM_findObj(namingcontainer + '_tab_' + i);        
            SetTabClick(tabactionbutton,namingcontainer,tabcount,i);
            if(activetab==i){
                SetTabBtnActive(tabactionbutton);
                SetTabVisibility(tabcontainer);                
            }
        }    
    }
}

function SetTabBtnActive(tabactionbutton) {
    var button = (tabactionbutton);
    button.className = "active";
}

function SetTabClick(tabactionbutton,namingcontainer,tabcount,currenttab) {
    var button = (tabactionbutton);
    if (button) {
        //
        button.setAttribute("namingcontainer",namingcontainer)
        button.setAttribute("currenttab",currenttab)
        button.setAttribute("tabcount",tabcount)
        button.onclick = function() {showTabByBtnId(button.id);};
    }
}
function showTabByBtnId(buttonId) {
    var button = MM_findObj(buttonId);
    showtab(button.getAttribute("namingcontainer"),button.getAttribute("currenttab"),button.getAttribute("tabcount"));
}
function SetTabVisibility(tabcontainer) {
    if (tabcontainer) {
        tabcontainer.style.display ='';
    }
}

/** End new tab **/

function showtab(namingcontainer,tab,tabcount){
    var tabclicked = namingcontainer + '_tab_'+tab;
    var tabtoshow = namingcontainer + '_tabc_'+tab;
    var objtabs;
    for (i=1; i<(tabcount+1); i++) 
	{
	    try{
            var tabs = namingcontainer + '_tab_'+i
            var tabtoclear = namingcontainer + '_tabc_'+i
            objtabs = MM_findObj(tabs);
            if (objtabs) {
                objtabs.className = '';                
                MM_findObj(tabtoclear).style.display = "none";	      
            }          
	    }catch(e){}
    } 
    MM_findObj(tabclicked).className += ' active';
    MM_findObj(tabtoshow).style.display = "";		
    return false;			
}
function postBackHiddenField(hiddenFieldID, hiddenFieldValue) {
    //alert('changing hidden field');
    var hiddenField = MM_findObj(hiddenFieldID);
    if (hiddenField) {
        hiddenField.value = hiddenFieldValue;
        __doPostBack(hiddenFieldID,'');
    }
}


//function to show other stores if other is selected
function showOtherStoresDropDown(panelid,checkboxid,storeddlId){
    try {      
        var panel = MM_findObj(panelid);
        var chk = MM_findObj(checkboxid);
        var ddlStore = MM_findObj(storeddlId);
        if (chk.checked) {
            panel.style.display = "";
            ddlStore.style.display ="";
        }else{
            panel.style.display = "none";
            ddlStore.style.display ="none";
        }
        
    }catch(e){}
}
//function to show postcode search button if UK only
function showpclookup(list,button,address,postcode,instructions,results) {
    try {      
        var buttonobj = MM_findObj(button);
        var addressobj = MM_findObj(address);
        var instructionsobj = MM_findObj(instructions);
        var postcodeobj = MM_findObj(postcode);
        var resultsobj = MM_findObj(results);
        if(MM_findObj(list).value != ""){
            if ((MM_findObj(list).value == "GB") || (MM_findObj(list).value == "JE") || (MM_findObj(list).value == "GG")){
                if (buttonobj){buttonobj.style.display = "";}
                if (addressobj){addressobj.style.display = "none";}
                if (instructionsobj){instructionsobj.style.display = "";}
                if (postcodeobj){postcodeobj.style.display = "";}
            }
            else
            {
                if (buttonobj){buttonobj.style.display = "none";}
                if (addressobj){addressobj.style.display = "";}
                if (instructionsobj){instructionsobj.style.display = "none";}
                if (postcodeobj){postcodeobj.style.display = "";}
                if (resultsobj){resultsobj.style.display = "none";}
            }
        }
        else{
            if (buttonobj){buttonobj.style.display = "none";}
            if (addressobj){addressobj.style.display = "none";}
            if (instructionsobj){instructionsobj.style.display = "none";}
            if (postcodeobj){postcodeobj.style.display = "none";}
        }
    }
    catch(e){alert('showpclookup: ' + e);}       
}

function OpenSendWLForm(panelid, buttonid){
    MM_findObj(buttonid).style.display = "none";
    Effect.BlindDown(MM_findObj(panelid), {duration:0.5});
}


/** helper method to find elements by class name **/

function getElementsByClassName(oElm, strTagName, strClassName){
    return getElementsByAttributeAndValue(oElm, strTagName, "class", strClassName);
}

function getElementsByAttributeAndValue(oElm, strTagName, strAttName, strAttValue) {
    if (!oElm) { return }
    var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strAttValue = strAttValue.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strAttValue + "(\\s|$)");
    var oElement;    
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];
        if(oRegExp.test(oElement.getAttribute(strAttName))){
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}

function getElementsByIdList(elementIdArray) {
    var arrReturnElements = new Array();
    var foundObj;
    for(var i=0; i<elementIdArray.length; i++){
        foundObj = MM_findObj(elementIdArray[i]);
        if(foundObj) {
            arrReturnElements.push(foundObj);
        }
    }
    return (arrReturnElements)
}
var selectBox = true;
function changedCheckState(selectLinkList,checkIdList) {    
    var checkboxes  = getElementsByIdList(checkIdList);
    if(checkboxes) {
        for(var i=0; i<checkboxes.length; i++) {
          checkboxes[i].checked = selectBox;
        }
    }    
    if(!selectBox) {
        text ='SELECT ALL';
    }else{
        text ='DESELECT ALL';
    }       
    selectBox = !selectBox;
    if(selectLinkList) {              
        for(var j=0; j<selectLinkList.length; j++) {
          var link = MM_findObj(selectLinkList[j]);
          link.innerHTML = text;             
        }        
    }
}

/** Show / Hide Size Guide **/

function showProductGuide(pnlId,ifrmId) {
    try {     
        MM_findObj(pnlId).style.display = '';
        var ifrm = MM_findObj(ifrmId)
        if (ifrm) {
          var src = ifrm.getAttribute("ppsrc");
          if (src) {
            ifrm.setAttribute("src", src);
          }
        }
    }catch(e){alert(e);}
}
function hideProductGuide(pnlId) {
    try { 
        MM_findObj(pnlId).style.display = 'none';   
    }catch(e){}
}

/** End  SG **/

/** jump menu **/
function applySearch(dropdownId) {                
    var dropDown = MM_findObj(dropdownId);
    var redirecturl = dropDown[dropDown.selectedIndex].value;
    window.location=redirecturl;
}
function applySearchWithBase(dropdownId,baseUrl) {   
    var dropDown = MM_findObj(dropdownId);
    var redirecturl = dropDown[dropDown.selectedIndex].value;
    if(!baseUrl) {
        baseUrl ='';
    }
    window.location=baseUrl + redirecturl;   
}

function popCurrencies(hid) {
    if (MM_findObj(hid).value == "") {
        postBackHiddenField(hid,'true');
    }
}

/** searching **/

    function StripDoubleSlashes(inputstr) {
        var outputstr =inputstr;
        while (outputstr.match('//')) {
          outputstr = outputstr.replace('//','/');
        }
        return outputstr;
    }

    function PerformSearch(baseUrl, searchtextboxId, dropdownId) {
    var base = baseUrl;
    var searchTerm = escape(MM_findObj(searchtextboxId).value);
    var department = MM_findObj(dropdownId).value;
    var redirecturl ='';
    if (!(department) || (department.toLowerCase() !='/About_Us/FAQs/'.toLowerCase())) {
        redirecturl = base + department + 'search.aspx';
        redirecturl = StripDoubleSlashes(redirecturl).replace(':/','://');
        redirecturl = redirecturl + '?term=' + searchTerm;    
        window.location=redirecturl.toLowerCase();
    }else{
        redirecturl = base +'/FAQs/Questions.aspx'
        redirecturl = StripDoubleSlashes(redirecturl).replace(':/','://');
        redirecturl = redirecturl + '?term=' + searchTerm;    
        window.location=redirecturl.toLowerCase();
    }        
}
    function PerformFaqSearch(baseUrl, searchtextboxId, dropdownId) {
    var base = baseUrl;
    var searchTerm = escape(MM_findObj(searchtextboxId).value);
    var department = MM_findObj(dropdownId).value;
    window.location=(base + department + 'questions.aspx?term=' + searchTerm).toLowerCase();
}


var registeredActiveMutual;
function setMutualExclusiveStyle(classname,objId,group) {
  setMutualExclusiveStyle(classname,objId,group,'',false);
}

function setMutualExclusiveStyle(classname,objId,group,appendToOldClassName) {
    var objectToChange;
    var oldObject;
    var registeredActiveMutualItem;
    var index;
    var appendOnNew = false;
    try{
        objectToChange = MM_findObj(objId);
        if (registeredActiveMutual && registeredActiveMutual.length > 0) {
            index = groupIndex(group);
            if (index > -1) {
                registeredActiveMutualItem = registeredActiveMutual[index];
            }
        }

        if(registeredActiveMutualItem != null && objId == registeredActiveMutualItem.objectDOMId) { return; }

        if(registeredActiveMutualItem) {
            oldObject = MM_findObj(registeredActiveMutualItem.objectDOMId);
            oldObject.className = registeredActiveMutualItem.oldClassName;
            registeredActiveMutualItem.objectDOMId = objId;
            registeredActiveMutualItem.oldClassName = objectToChange.className;
            if (appendToOldClassName && appendToOldClassName != '' && registeredActiveMutualItem.oldClassName.indexOf(appendToOldClassName) < 0) {
              registeredActiveMutualItem.oldClassName = registeredActiveMutualItem.oldClassName + ' ' + appendToOldClassName;
            }
            registeredActiveMutual[index] = registeredActiveMutualItem;
        }else{
          var cn = objectToChange.className;
          if (appendToOldClassName && appendToOldClassName != '') {
            cn = cn + ' ' + appendToOldClassName;
          }
          registeredActiveMutualItem = {objectDOMId:objId,oldClassName:cn,group:group};
          if (!(registeredActiveMutual)) {
            registeredActiveMutual = [registeredActiveMutualItem];
          }else{
            registeredActiveMutual[registeredActiveMutual.length] = registeredActiveMutualItem;
          }
        }
        objectToChange.className = classname;
    }catch(e){
        alert(e.message)
    }
}
function groupIndex(group) {
    if (!registeredActiveMutual) { return -1; }
    var i=-1;
    for (i=0;i< registeredActiveMutual.length;i++) {
        if(registeredActiveMutual[i] && registeredActiveMutual[i].group==group) {
            return i;
        }
    }
    return -1;
}
function setMutualExclusiveStyleWithEffect(classname,pnlId,lnkId,group) {
  var index = groupIndex(group);
  if (index > -1) {
    if(registeredActiveMutual[index] != null && pnlId == registeredActiveMutual[index].objectDOMId) { return; }
    TogglePanel(lnkId,registeredActiveMutual[index].objectDOMId,'slide',4,'','');
  }
  setMutualExclusiveStyle(classname,pnlId,group);
  TogglePanel(lnkId,pnlId,'slide',4,'','');
}

var builtUpString;
var filterApplyBtn;
var fltrPageBase;
var priceFltr;
var priceFrmt;
var minPriceCtrl;
var maxPriceCtrl;
var slctFltrCnt;
function setFilterApplyBtn(btnId,fltrPageBase,qsBase,priceFrmt,priceFltr,minPriceCtrl,maxPriceCtrl) {
    filterApplyBtn = MM_findObj(btnId);
    //alert(filterApplyBtn);
    this.fltrPageBase=fltrPageBase;
    builtUpString=qsBase;
    this.priceFrmt=priceFrmt;
    this.priceFltr=priceFltr;
    this.minPriceCtrl=minPriceCtrl;
    this.maxPriceCtrl=maxPriceCtrl;
}
function addToQs(filter,lnkFltrId) {
    builtUpString = builtUpString + "&" + filter.toLowerCase();
    setBuiltUpUrl();
    selectedCountChange(lnkFltrId,1);
}
function removeFromQs(filter,lnkFltrId) {
    builtUpString = builtUpString.replace("&" + filter.toLowerCase(), '');
    setBuiltUpUrl();
    selectedCountChange(lnkFltrId,-1);
}
function setBuiltUpUrl() {
    try{
        //sort the querystring parameters
        if (builtUpString.length > 0) {
            var qsArray = builtUpString.split("&");
            qsArray.sort(function(x,y){ 
              var a = String(x).toUpperCase(); 
              var b = String(y).toUpperCase(); 
              if (a > b) 
                 return 1 
              if (a < b) 
                 return -1 
              return 0; 
            }); 
            builtUpString = qsArray.join("&");
        }
        //end
        if (builtUpString.length > 0) {
            if (priceFltr != null && priceFltr.length > 0) {
                if (priceFltr.indexOf('&') == 0) {
                  filterApplyBtn.href = fltrPageBase + '?' + builtUpString.substring(1) + priceFltr;
                } else {
                  filterApplyBtn.href = fltrPageBase + '?' + builtUpString.substring(1) + '&' + priceFltr;
                }
            } else {
                filterApplyBtn.href = fltrPageBase + '?' + builtUpString.substring(1);
            }
        } else {
            if (priceFltr != null && priceFltr.length > 0) {
                if (priceFltr.indexOf('&') == 0) {
                  filterApplyBtn.href = fltrPageBase + '?' + priceFltr.substring(1);
                } else {
                  filterApplyBtn.href = fltrPageBase + '?' + priceFltr;
                }
            } else {
                filterApplyBtn.href = fltrPageBase;
            }
        }    
    }catch(e){
        alert('setBuiltUpUrl:' + e.message);
    }    
}
function setSelectedCount(lnkFltrId,qty) {
    if (slctFltrCnt == null) {
        slctFltrCnt = new Array();
    }
    if (slctFltrCnt[lnkFltrId] == null) {
        slctFltrCnt[lnkFltrId] = qty;
    }
}
function selectedCountChange(lnkFltrId,qty) {
    var lnkFltr = MM_findObj(lnkFltrId);
    var oldQty = slctFltrCnt[lnkFltrId];
    var newQty = slctFltrCnt[lnkFltrId] + qty;
    if (oldQty != null) {
        var rami;
        if (registeredActiveMutual) {
            for (i=0;i< registeredActiveMutual.length;i++) {
                if(registeredActiveMutual[i]) {
                    if (registeredActiveMutual[i].group=='filtersb') {
                        rami = registeredActiveMutual[i];
                    }
                }
            }
        }
        if ((rami) && (newQty == 0)) {
            rami.oldClassName = rami.oldClassName.replace(' selected', '');
        } else if ((rami) &&(oldQty == 0)) {
            rami.oldClassName += ' selected';
        }
        slctFltrCnt[lnkFltrId] = newQty;        
    } else {
        slctFltrCnt[lnkFltrId] = qty;
    }
}
function toggleFilterCheck(checked,filter,lnkFltrId) {
    if (checked) {
        addToQs(filter,lnkFltrId);
    } else {
        removeFromQs(filter,lnkFltrId);
    }
}
function setPriceQs() {
    if (sliderValuesChanged) {
        var minPrice = MM_findObj(minPriceCtrl).value;
        var maxPrice = MM_findObj(maxPriceCtrl).value;
        var newQs = priceFrmt.replace("%7b0%7d", minPrice);
        newQs = newQs.replace("%7b1%7d", maxPrice);
        priceFltr = '&' + newQs;        
        setBuiltUpUrl();
    }
}

function checkShipTo(option) {
   if (option) {
        var lblErrorId = option.getAttribute("shiptoerrorlbl");
        var lblError = MM_findObj(lblErrorId);
        if (lblError) {
            lblError.style.display ='none';
            var availableList =  option.getAttribute("shiptolist");
            if ((availableList.indexOf(option[option.selectedIndex].value) < 0)) {
                lblError.style.display ='';
            }
        }
    }
}

function updateDeliveryCost(myid,lPrice)
{
    var rbl = MM_findObj(myid);
    var lblPrice = MM_findObj(lPrice);

    td=rbl.getElementsByTagName("TD")
    rdo=rbl.getElementsByTagName("INPUT")    
    for (var x = 0;x < td.length;x++)
    {     
        if (rdo[x].checked == true)
        {
            lblPrice.innerHTML = '£' + rdo[x].value.split('|')[1];
        }
   }
}

String.prototype.count = function(char){
    return this.split(char).length-1;
}

function PositionModal(modalid, modalheight)
{
    var windowheight = window.innerHeight;
    if (windowheight == undefined){windowheight = document.body.clientHeight}
    var remainder = windowheight - modalheight;
    remainder = remainder/2;    
    if (remainder < 100){MM_findObj(modalid).style.top = remainder+"px";}
    else{MM_findObj(modalid).style.top = "100px";}
    if (remainder < 0){MM_findObj(modalid).style.top = "0px";}
}

function openAccordionPanel(accordionId) {
    var accordion = MM_findObj(accordionId);
    if(accordion) {
        triggerClick(accordionId);
    }
}

function triggerClick(buttonID) {
    if ($get(buttonID).dispatchEvent) 
    {
        var e = document.createEvent("MouseEvents"); 
        e.initEvent("click", true, true);
        $get(buttonID).dispatchEvent(e); 
    }
    else
    {
        $get(buttonID).click(); 
    }
}

/** CHECKOUT **/
var completeSteps;
function markStepAsComplete(lblId) {
  if (!completeSteps) {
    completeSteps = [lblId];
  } else {
    var inArrayAlready = false;
    for (var i = 0; i < completeSteps.length; i++) {
      if (completeSteps[i] == lblId) { inArrayAlready = true; }
    }
    if (!inArrayAlready) {
      completeSteps[completeSteps.length] = lblId;
    }
  }
}
function applyCompleteClassName(lblId) {
  if (!isStepComplete(lblId)) {
    var lbl = MM_findObj(lblId);
    if (lbl.className.indexOf('complete') < 0) { lbl.className += ' complete'; }
  }
}
function applyAllCompletedSteps() {
  if (!completeSteps) { return; }

  for (var i = 0; i < completeSteps.length; i++) {
    var lbl = MM_findObj(completeSteps[i]);
    if (lbl.className.indexOf('complete') < 0) { lbl.className += ' complete'; }
  }
}
function isStepComplete(lblId) {
  if (!completeSteps) { return false; }
  var inArrayAlready = false;
  for (var i = 0; i < completeSteps.length; i++) {
    if (completeSteps[i] == lblId) { inArrayAlready = true; }
  }
  return inArrayAlready;
}

function CheckNLetter(sender, args)
{    
    if (complete > 0){
        args.IsValid = true;
    }
    else{
        args.IsValid = false;
    }    
}

function showPanelIfChecked(chkBoxId, elementToShowId) {
    var checkbox = MM_findObj(chkBoxId);
    var elementToShow = MM_findObj(elementToShowId);
    if (checkbox.checked) {
        elementToShow.style.display = '';
    }else{
        elementToShow.style.display = 'none';
    }
}
function setSwatchClicksForStore(inStoreStock,classname,activeclassname) {
    var links = getElementsByClassName(document,"a",classname);
    var activelinks = getElementsByClassName(document,"a",activeclassname);
    if (links) {        
        setSwatchClicks(inStoreStock,links);
    }
    if (activelinks) {
        setSwatchClicks(inStoreStock,activelinks);
    }
}
function setSwatchClicks(inStoreStock,links) {
    for (var i = 0; i < links.length; i++) {
        if((!(links[i].hash)) && (inStoreStock)) {
            links[i].hash ='#store';
        }else if((links[i].hash == '#store') && (inStoreStock)){
            links[i].hash ='#online';
        }
    }
}
/*** BazaarVoice Height Hack ***/
function checkBVWRCont(){
    var elheight = MM_findObj('BVSubmissionContainer').offsetHeight;
    //alert(elheight);
    if(elheight > 300){
        MM_findObj('bvfakec').style.height = elheight+"px";     
        MM_findObj('bvcont').style.top = "-"+(elheight + 90)+"px";
    } 
}

/** ASP.NET Validation Injection **/

var aspPage_ClientValidate;
var clientscriptIfFailed;
var clientscriptIfFailedSet;
function hijackValidation() {
  if (typeof(Page_ClientValidate) != "undefined" && aspPage_ClientValidate == null) {
    aspPage_ClientValidate = Page_ClientValidate;
    Page_ClientValidate = LpPage_ClientValidate;
  }
}

function LpPage_ClientValidate(validationGroup) {
  var valid = aspPage_ClientValidate(validationGroup);
  
  try {
    UpdateLivePersonErrorVariables();
    if (!valid) {
      s.eventList="event6";
      try {
        GenerateOmnitureValidationSummary();
        void(s.t());
      }catch(e){
        //alert(e);      
      }     
      //alert(1); 
      if (clientscriptIfFailedSet) {eval(clientscriptIfFailed);}
    } else {
      s.eventList="event5";
      void(s.t());
    }
  } catch(e) {
    //alert(e);
  }
  
  return valid;
}

function UpdateLivePersonErrorVariables() {
    var messages = '';
    var errorCount = 0;
    
    for (var i = 0; i < Page_Validators.length; i++) {
        if (Page_Validators[i] != null && !Page_Validators[i].isvalid) {
            messages = messages + ";" + Page_Validators[i].errormessage;
            errorCount++;
        }
    }
    
    if (errorCount > 0) { messages = messages.substring(1); }
    lpAddVars('page', 'ErrorName', messages);
    lpAddVars('page', 'ErrorCounter', errorCount);
}

function GenerateOmnitureValidationSummary() {
  for (i=0;i<Page_Validators.length;i++) {
    var val = Page_Validators[i];
    try{
        if (!val.isvalid && val.controltovalidate) {
          var form_name = val.validationGroup;
          var label_name = getElementsByAttributeAndValue(document, "label", "for", val.controltovalidate);
          var control_name;
          if (label_name && label_name.length > 0) {
            control_name = label_name[0].textContent.replace('*', '').trim();
          } else {
            control_name = val.controltovalidate.substring(val.controltovalidate.lastIndexOf('_') + 1).replace('Txt', '').replace('Tb', '').replace('ddl', '').trim();
          }
          var element_error = control_name + ': ' + val.title;
          s.sendFormEvent('e', '" + s.pageName + "', '" + form_name + "', '" + element_error + "');
        }    
    }catch(e){
    }
  }
}

/** Open Popup **/

//function to nicely open popup

function openPopup(destination,options,name) {
    try {
        window.open(destination,name,options);
    }catch(e){
   }
}


function disableAnchor(obj, disable) 
{ 
	if(obj != null) 
	{ 
		if(disable) 
		{ 
			var href = obj.getAttribute("href"); 
			var onclick = obj.getAttribute("onclick"); 
			//First we store previous value in a new attribute 
			obj.setAttribute('disabled', 'disabled'); 
			if(href && href != "" && href != null) 
			{ 
				obj.setAttribute('href_bak', href); 
			} 
			if(onclick != null) 
			{ 
				obj.setAttribute('onclick_back', onclick); 
				obj.removeAttribute('onclick'); 
			} 
			obj.removeAttribute('href'); 
		} 
		else 
		{ 
			var hrefBack = obj.getAttribute("href_bak"); 
			var onclickBack = obj.getAttribute("onclick_back"); 
			obj.removeAttribute('disabled'); 
			if(onclickBack !=null ) 
			{ 
				obj.setAttribute('onclick', onclickBack); 
				obj.removeAttribute('onclick_back'); 
			} 
			if(hrefBack !=null ) 
			{ 
				obj.setAttribute('href', hrefBack); 
				obj.removeAttribute('href_bak'); 
			} 
		} 
	} 
} 

function moveCoStepCond(prevStepLblId,ctrlContainerId,sectionContainerId,activatingHlId,stepLblId,pageName) {
  if (isStepComplete(prevStepLblId)) {
    moveCoStep(ctrlContainerId,sectionContainerId,activatingHlId,stepLblId,pageName);
  }
}

function moveCoStep(ctrlContainerId,sectionContainerId,activatingHlId,stepLblId,pageName) { 
  setMutualExclusiveStyleWithEffect('cotostretch',ctrlContainerId,stepLblId,'co');
  setMutualExclusiveStyle('step current',activatingHlId,'costeps');
  setMutualExclusiveStyle('sectiontop current',sectionContainerId,'copnl','edit');
  applyAllCompletedSteps();
  
  try {
    s.pageName = pageName;
    void(s.t());
  } catch (e) { }
}


function pageTrack(hyperlink,trackref) {
    var newurl;
    newurl = hyperlink.href;
    if (newurl.indexOf("?") >= 0) { //i have a querystring
        newurl = newurl + '&pfm=' + trackref;
    }else{
         newurl = newurl + '?pfm=' + trackref;
    }
    hyperlink.href = newurl;
    //document.location = newurl;
}
/********************** random padding to see if this fixes ie8 problem (https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=434997) *********************

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse vehicula, arcu non suscipit vulputate, tortor nisl pretium lorem, 
non cursus arcu dui quis nisl. Vestibulum molestie porta nunc et accumsan. In in sem sed odio suscipit sagittis. 
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse potenti. 
Ut auctor neque urna, quis sollicitudin est. Aenean sem tortor, posuere sit amet accumsan eu, blandit ac lacus. 
Vivamus dapibus scelerisque lorem, ac dapibus dui rutrum sed. Donec aliquet, tellus et iaculis cras amet. 

**/
