var co_name = 'Lily Lolo';
var def_full_size = 'FUL';
var def_samp_size = 'SAM';
var pageId = 'home';
var postcodeCountries = 'UK,GB,JE,GY,US,CA,';  // override by copying to custom.js if needed
var customSelectDoAll = false; // override in custom.js if needed - false = only do selects with data-custom="" attribute
alertConfig = { defaultHeaders : false, cssButtons : false, buttonExt : 'png',  buttonAlt : false, buttonAlign: 'right', buttonWidth: 'auto', useIcons : false, leftFillHeader : false, printButton : false }

// -------------------- web site functions
function menuFixup() {
  var to = document.getElementById('menu')
  var to1 = document.getElementById('lmenu')
  var to2 = document.getElementById('sitemapmenu')
  var from = document.getElementById('menu_holder')
  to.innerHTML = from.innerHTML;
  if (to1) {
    var pm = to1.getAttribute('data-preset_menu');
    if (!pm) { to1.innerHTML = from.innerHTML; }
  }
  if (to2) { to2.innerHTML = from.innerHTML;}
  from.innerHTML = '';
}
function saveWallp(el) {
  if (typeof(el) == 'string') {
   id = el;
  } else {
    var id = el.getAttribute('data-id');
    id = id.replace('-extra','');
  }
  setCookie('wallp',id);
}
function setWallp() {
  var wid = '';
  if (window.crumbGroup && (crumbGroup != '<elucid_crumbGroup>')) { wid = crumbGroup; }
  if (!wid && thisPageId && thisPageId != '<elucid_pageid_placeholder>') { wid = thisPageId; }
  if (!wid) { wid = getCookie('wallp'); }
  if (!wid) { wid = pageId; }
  if (wid) {
    pageId = wid;
    var menu = document.getElementById('menu');
    if (menu) {
      var els = menu.getElementsByTagName('li');
      for (var i=0; i<els.length; i++) {
        var did = els[i].getAttribute('data-id');
        if (did == pageId) {
          if (pageId != 'home') {
            els[i].style.backgroundImage = 'url('+thisUrl+'assets/images/menu-pointer.jpg)';
          }
          var aas = els[i].getElementsByTagName('a');
          for (var j=0; j<aas.length; j++) {
            var clas = aas[j].className;
            if (clas == 'toponly') {
              aas[j].className = 'toponlySelected';
            }
          }
        }
      }
    }
  }
}
var menuTimer = null;
var menuTId = '';
var menuCaller = null;
function onMenuTimer() {
  var wofs = isIE6() ? 2 : 8;
  if (menuTId) {
    var el = document.getElementById(menuTId);
    if (el) {
      if (window.imgtrans1) {
//        if (!isIE()) { imgtrans1.stop(); }
      }
      if (menuCaller) { el.style.left = menuCaller.offsetLeft + 'px'; }
      el.style.zIndex = '2000';
      el.style.display = 'block';
      var els = el.getElementsByTagName('span');
      for (var i=0; i<els.length; i++) {
        if (els[i].className = 'menucover') {
          els[i].style.width = menuCaller.offsetWidth - wofs + 'px';
        }
      }
    }
  }
}
function delayMenu(id,caller) {
  clearTimeout(menuTimer);
  menuTId = id;
  menuCaller = caller;
  menuTimer = setTimeout( 'onMenuTimer()', 200 );
}

function hideMenu(ev) {
  clearTimeout(menuTimer);
  if (!ev) var ev = window.event;
	 var t = ev.relatedTarget || ev.toElement;

  if (t && menuTId) {
    var gone = true; var checked = false;
    if (t.parentElement) {
      checked = true;
   			while (t && t.parentElement != null) {
   //alert(t.tagName+' '+t.className);
   			 if (t == menuCaller) { gone = false; }
   				t = t.parentElement;
   			}
   	} else if (t.parentNode) {
      checked = true;
   			while (t && t.parentNode != null) {
   			 if (t == menuCaller) { gone = false; }
   				t = t.parentNode;
   			}
   	}

    if (gone && checked && menuTId) {
      var el = document.getElementById(menuTId);
      if (el) { el.style.display = 'none'; menuTId = '';}
      if (window.imgtrans1) {
//        if (!isIE()) { imgtrans1.restart(); }
      }
    }
  }
}

// dynamic pager
var dyn_pager_type_1 = { // page 1,2,3 etc bits
  'showPrevNextArrows' : true,
  'position' : 'right',
  'classBaseName' : 'dynPager1',
  'prevButton'   : '<a    class="[xx_base]prev" href="prev" onclick="dynPageTo(\'[xx_idx]\',\'[xx_prev_page]\'); return false;" alt="Page [xx_prev_page]" title="Page [xx_prev_page]"><!--xx--></a>',
  'noPrevButton' : '<span class="[xx_base]prev">&nbsp</span>',
  'nextButton'   : '<a    class="[xx_base]next" href="next" onclick="dynPageTo(\'[xx_idx]\',\'[xx_next_page]\'); return false;" alt="Page [xx_next_page]" title="Page [xx_next_page]"><!--xx--></a>',
  'noNextButton' : '<span class="[xx_base]next">&nbsp;</span>',
  'thisPage'     : '<span class="[xx_base]this" alt="This Page">[xx_pageno]</span>',
  'linkPage'     : '<a    class="[xx_base]page" onclick="dynPageTo(\'[xx_idx]\',\'[xx_pageno]\')" alt="Page [xx_pageno]" title="Page [xx_pageno]">[xx_pageno]</a>',
  'layout'       : '[xx_prev][xx_pages][xx_next]'
}

var dyn_pager_type_2 = { // page 1,2,3 etc bits
  'showPrevNextArrows' : true,
  'position' : 'center',
  'classBaseName' : 'dynPager2',
  'prevButton'   : '<a    class="[xx_base]prev" href="prev" onclick="dynPageTo(\'[xx_idx]\',\'[xx_prev_page]\'); return false;" alt="Page [xx_prev_page]" >prev</a>',
  'noPrevButton' : '<span class="[xx_base]prev">&nbsp</span>',
  'nextButton'   : '<a    class="[xx_base]next" href="next" onclick="dynPageTo(\'[xx_idx]\',\'[xx_next_page]\'); return false;" alt="Page [xx_next_page]" >next</a>',
  'noNextButton' : '<span class="[xx_base]next">&nbsp;</span>',
  'thisPage'     : '<span class="[xx_base]this" alt="This Page">[xx_pageno]</span>',
  'linkPage'     : '<a    class="[xx_base]page" onclick="dynPageTo(\'[xx_idx]\',\'[xx_pageno]\')" alt="Page [xx_pageno]" title="Page [xx_pageno]">[xx_pageno]</a>',
  'layout'       : '[xx_prev][xx_pages][xx_next]'
}

var bigpicInitSize = { w:0, h:0 }
var bigpicImage = null;
var bigpicName = 'bigImage';
//
function printbigpic() {
  printDiv(bigpicName+'Img');
}
function initBigImage() {
  var div = createDynamicPopup(bigpicName);
  var s = '';
  s+='<div id="'+bigpicName+'Head"></div>';
//  s+='<img id="'+bigpicName+'PrintBtn" src="'+thisUrl+'assets/images/alertprint.jpg" alt="print" title="print" onclick="printbigpic();"/>';
  s+='<img id="'+bigpicName+'CloseBtn" src="'+thisUrl+'assets/images/alertclose.png" alt="close" title="close" />';
  s+='<div id="'+bigpicName+'Img"><img src="'+thisUrl+'assets/images/blank.gif" id="'+bigpicName+'ImgImage" xonerror="imageErr(this,\'zoom\')" /></div>';
  div.innerHTML = s;
  var el = document.getElementById('bigImageHead');
  if (el && window.DragHandler) { dhBig = DragHandler.attach(el,div); } // make it draggable on the header
}
function bigPicClose() {
  hideShadowBox();
  var el = document.getElementById(bigpicName);
  if (el) { el.style.display='none'; }
}
function bigpicLoaded() {
  var div = document.getElementById(bigpicName);
  var im = document.getElementById(bigpicName+'ImgImage');
  var el = bigpicImage;
//alert(im.src+' '+im.offsetWidth);
//alert(el.width+' '+el.height+' '+bigpicInitSize.wi+' '+bigpicInitSize.hi+' '+bigpicInitSize.w+' '+el.src)
  if (el.width > 1 && (el.width != bigpicInitSize.wi || el.height != bigpicInitSize.hi)) {
    var x = xOnPage(0,el.width+bigpicInitSize.wx,true);
    var y = yOnPage(0,el.height+bigpicInitSize.hx,true);

    var w = el.width; var h = el.height;  var wx = 0; var hx = 0;
    var ss = screenSize();
    if (w > ss.w-bigpicInitSize.wx-20) { w = ss.w-bigpicInitSize.wx-20; hx = 20;}
    if (h > ss.h-bigpicInitSize.hx-20) { h = ss.h-bigpicInitSize.hx-20; wx = 20;}
    if (w < 80) { w = 80; } if (h < 50) { hw = 50; }
    bigpicInitSize.innerDiv.style.width = w+wx+'px';
    bigpicInitSize.innerDiv.style.height = h+hx+'px';
    div.style.width = w+bigpicInitSize.wx+wx+'px';
    div.style.height = h+bigpicInitSize.hx+hx+'px';
//alert(bigpicInitSize.innerDiv.style.height+' '+div.style.height);
    div.style.left = x + 'px';
    div.style.top = y + 'px';
  }
  if (el.width > 10) {
    im.src = el.src;
  } else {
    var im1 = document.getElementById(bigpicName+'Img');
    im1.style.background = 'none';
  }
//  showShadowBox(bigpicName);
}
function showbigpic() {
  if (window.opera || bigpicImage.width > 0) { bigpicLoaded(); }
}
function bigPic(ele, txt_id, imgname) {
   if (typeof(ele) == 'string') { ele = document.getElementById(ele); }
   initBigImage();
   popupInit(bigPicClose,bigpicName+'CloseBtn');
   var el = document.getElementById(bigpicName);
   var eli = document.getElementById(bigpicName+'Img');
   if (el && eli) {
     el.style.display = 'none';
     if (imgname) {
       var c = imgname;
     } else {
       var c = '';
       var src = ele.src;
       if (!src) { src = ele.style.backgroundImage.replace('url(','').replace(')',''); }
       var im = nonPHPImageName(src);
//       if (im.match('coming_soon') || im.match('blank.gif')) { return false; }  // dont show if its a coming soon image
       var dz = ele.getAttribute('data-zoom')
       if (dz) {
         dz = dz.split('->');  // format = largefolder->zoomfolder
         if (dz.length == 2) { c = im.replace(dz[0],dz[1]); }
       }
       if (c == '') {
         c = im.replace('/large/','/zoom/');
         c = c.replace('/thumb/','/zoom/');
         c = c.replace('/small/','/zoom/');
         c = c.replace('/medium/','/zoom/');
       }
     }
     if (bigpicInitSize.w == 0) {
       bigpicInitSize.w = cssStyle(el,'width');
       bigpicInitSize.h = cssStyle(el,'height');
       bigpicInitSize.wi = cssStyle(eli,'width');
       bigpicInitSize.hi = cssStyle(eli,'height');
       bigpicInitSize.wx = bigpicInitSize.w - bigpicInitSize.wi;
       bigpicInitSize.hx = bigpicInitSize.h - bigpicInitSize.hi;
     }
     bigpicInitSize.innerDiv = eli;
     el.style.width = bigpicInitSize.w + 'px';
     el.style.height = bigpicInitSize.h + 'px';
     eli.style.width = bigpicInitSize.wi + 'px';
     eli.style.height = bigpicInitSize.hi + 'px';
     el.style.display = 'block';

     var x = el.offsetLeft;
     var y = el.offsetTop;
     x = xOnPage(x,600,true);
     y = yOnPage(y,554,true);

     el.style.left = x + 'px';
     el.style.top = y + 'px';
//     el1.style.width = wd + 'px';
//     el1.style.height = ht + 'px';

     bigpicImage = new Image();
     bigpicImage.onload = bigpicLoaded;
     bigpicImage.onerror = bigpicLoaded;
     bigpicImage.src = c;

     if (txt_id) {
       el = document.getElementById(txt_id);
       if (el) { document.getElementById(bigpicName+'Head').innerHTML = el.innerHTML ; }
     }
//alert(c);
//     document.getElementById(bigpicName+'Head').innerHTML = c;
//     document.getElementById('bigImageText').style.textAlign = 'right';
     showbigpic();
   }
   return false;
}

//--------------------------------------
function explode(div, classs, endfunc, fromcust) {
  showModalCover();
  div.style.left = '-2000px';
  explodeStage = 1; // exploding
  var too = { x:div.origleft, y:div.offsetTop, w:div.offsetWidth, h:div.offsetHeight };
  if (fromcust) { var from = fromcust; } else { var from = { el:div }; }
  transition( from, too, { speed:1000, classname:classs, grow:'Y', onend:endfunc, action:'h,w' } );
//  transition( from, too, { speed:700, classname:'bigImage', movediv:'Y', onend:exploded, action:'fi' } );
}
//--------------------------------------
function initSizeChart() {
  var id = 'sizeChartDiv';
  var div = createDynamicPopup(id);
  var sct = document.getElementById('sizechartHost');
  if (sct) { sct = sct.innerHTML; } else { sct = 'Size Chart Not Found'; }

  var s = '';
  s+='<div id="sizeChartHead">Size Chart Help</div>';
  s+='<img id="sizeChartCloseBtn" src="assets/images/headerbtn.jpg"  alt="close" title="close" />';
  s+='<div id="sctable">'+sct+'</div>';
  div.innerHTML = s;
  var el = document.getElementById('sizeChartHead');
  if (el) { dhSize = DragHandler.attach(el,div); } // make it draggable on the header
  return div;
}
function showSizeChart() {
  var div = initSizeChart();
  if (div) {
    popupInit(hideSizeChart,'sizeChartCloseBtn');

    div.style.display = 'block';
    var posd = getBounds(div);
    var x = xOnPage(0,posd.w,true);
    var y = yOnPage(0,posd.h,true);
    div.style.left = x + 'px';
    div.style.top = y + 'px';
//    showShadowBox(div);
  }
}
function hideSizeChart() {
  var el = document.getElementById('sizeChartDiv');
  hideShadowBox();
  if (el) { el.style.display = 'none'; }
}
//--------------------
function tidyFunc() {
  // manage left menu - its a copy of the main menu
  // - remove the mouseover handlers
  var lm = document.getElementById('leftMenu');
  if (lm) {
    var lia = lm.getElementsByTagName("LI");
    for (var i=0; i < lia.length; i++ ) {
      lia[i].onmouseover=null;
      lia[i].onmouseout=null;
    }
    // make visible all menus with data-id = pageid or data-id = pageid+'extra'
    // pageid can have a _??? section, the _??? allows for different background but same menu
    // remove the _??? to get the correct menu
    var pid = pageId;
    if (pid.indexOf('_') > 0) { pid = pid.substr(0,pid.indexOf('_')); }
    var lia = lm.getElementsByTagName("LI");
    for (var i=0; i < lia.length; i++ ) {
      var id = lia[i].getAttribute('data-id');
      if (id == pid) { lia[i].style.display = 'block'; }
      if (id == pid+'-extra') { lia[i].style.display = 'block'; }
    }
//    resetMenuHeight();
  }
}

function resetMenuHeight() {  // used in tabbed info pages
/*
  var lm = document.getElementById('leftMenu');
  if (lm) {
    lm.style.height = 'auto';
    var el = document.getElementById('innerContainer');
    if (el) {
      // make sure images on the page have a specified height, otherwise this will calc the wrong height
      var ht = el.offsetHeight;
      ht = (ht > 100 ? ht - 10 : 100); // -10 to match innerContainer padding
      lm.style.height = ht + 'px';
    }
  }
*/
}
//--------------------------------------
function doProductBookmark() {
var url = location.href;
var title = document.title;
if (window.sidebar) // firefox
	{ window.sidebar.addPanel(title, url, ""); }
else if(window.opera && window.print) // opera
 {	var elem = document.createElement('a');
  	elem.setAttribute('href',url);
  	elem.setAttribute('title',title);
  	elem.setAttribute('rel','sidebar');
  	elem.click();
 }
else if(document.all && window.external)// ie
 {	window.external.AddFavorite(url, title); }
else
 { alertX('Bookmark could not be created\r\nPlease use your browsers menu to add a bookmark'); }
}
//--------------------------------------
//
function scok() {
  var res = false;
  var pwel = document.getElementById('sctot');
  if (pwel) {
    var opel = document.getElementById('opswd');
    if (opel) {
      var scpw = opel.value.toUpperCase();
      var pwht = 0;
      for (var i=0; i < scpw.length; i++) {
        pwht += scpw.charCodeAt(i) * (1+Math.pow(i*256,2));
      }
      if (pwht == pwel.value) res = true;
//  alert(pwht+' '+pwel.value);
    }
  }
  if (!res) {
    if (scpw == '') { alert('Please enter your old password'); }
    else { alert('The password you entered does not match your old password'); }
  }
  return res;
}
//
function searchOk(el,def) {
  var val = document.getElementById(el).value;
  if ((val == '' || val == def)) { return false; }
  if (trim(val).length < 2) { alertX('<br>&nbsp;&nbsp;Please enter at least 2 characters to search for&nbsp;&nbsp;<br>'); return false; }
  else {
    // dont let the form post. I want all the data in the querystring
    val = escape(trim(val.replace(/:/g,'')));
    if (delim404 == '*') {
      var s = thisUrl.replace('https:','http:')+'prodpage.asp?type=search&action=Search&searchwhat='+val;
      document.location = s;
    } else {
      var s = thisUrl.replace('https:','http:')+'product'+delim404+'t'+delim404+val;
      document.location = s;
    }
    popupClose('','');  // close any open popups
  }
  return false;
}
function setNumber(num) {
	var n = document.getElementById("r_updateNo");
	n.value = num;
	return true;
}

function pagerHead() {  // gets called from pagerText in common.js
//  var s = '<span class="ptext">Page '+pager_Page+' of '+pager_Max+' </span>';
  var s = '<span class="ptext">Page </span>';
  showPagerArrows = true;
  return s;
}

function makeTable(fmt, s, tclass) {
// fmt is an array of columns defined as ['width','th justify','td justify','head text']
// justify is C, L or R
  var justy = new Array; justy['L']='Left'; justy['C'] = 'center'; justy['R'] = 'right';
//  if (tclass) { tclass = ' class="'+tclass+'"'; } else { tclass='';}
  if (tclass) {} else {tclass='';}

  var dohead = false;  // set to true if text supplied in the fmt array
  var totw = 0;
  var cols = fmt.length;
  for (var i=0; i<cols; i++) {
    var col = fmt[i];
    if (col[3]) { dohead = true; }
    totw += col[0]-0;
  }

  res = '<table cellspacing="0" cellpadding="4" border="0" width="'+totw+'" '+tclass+'>';
  if (dohead) {
    res += '<tr>';
    for (var i=0; i<fmt.length; i++) {
      var col = fmt[i];
      var val = (col[3] ? col[3] : '&nbsp;');
      res += '<th width="'+col[0]+'" align="'+justy[col[1]]+'">'+val+'</th>';
    }
    res += '</tr>';
  }

  var a = s.split('|');
  var col = 0;
  for (var i=0; i<a.length-1; i++) {
    col++;
    if (col == 1) { res += '<tr>'; }
    var val = (a[i] ? a[i] : '&nbsp;');
    res += '<td width="'+fmt[col-1][0]+'" align="'+justy[fmt[col-1][2]]+'">'+val+'</td>';
    if (col == cols) { res += '</tr>'; col = 0; }
  }

  res += '</table>';
  return res;
}

var ajaxax = null;
function helpPopup(file) {
  if (!pageIsLoaded) return;
  loadFileAjax(file, helpPopupCallback);
  ajaxax = alertX('<div id="basketHelp">Loading. Please wait....<img src="'+thisUrl+'assets/images/wait.gif" alt="" ></div>');
}

function helpPopupCallback(state, status, res) {
  if (state == 4) {
    closeAlertX(ajaxax,null);
    ajaxax = alertX('<div id="basketHelp">'+res+'</div>','',630);
  }
}

function showHideTabs(div_id) {
  if (div_id=="<elucid_tab>") { return }
  var ids = new Array('a','b','c','d','e','f');
  for (var i=0; i<ids.length; i++) {
   	var el = document.getElementById('s'+ids[i]);
    if (el) { el.style.display = 'none'; }
   	el = document.getElementById('p'+ids[i]);
    if (el) {el.className = 'off'; }
  }

	// show the requested div
 	var el = document.getElementById('s'+div_id);
  if (el) { el.style.display = 'block'; }
 	el = document.getElementById('p'+div_id);
  if (el) {el.className = 'on'; }

  resetMenuHeight();
}

// switch on intellisense (search drop down) by calling initSearchBox()
var searchBoxId = 'searchwhat';  // the id of the search input box
addLoadEvent(initSearchBox,50);
addLoadEvent(doCustomSelects,1); // get it done as early as possible
addLoadEvent(doCustomSelects,4000);  // do it again incase new selectors have been created
preLoadImages += 'assets/images/cselDD_swatch.png,assets/images/errbox3.png,assets/images/search-dd-back.png,assets/images/menu-dd-back.png,';
//stopRightClick();
//addLoadEvent(templateSwitch);
addLoadEvent(preLoad);
//addLoadEvent(setHeight);
