function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

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 MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function calcPopUp(url) // opens enlarged img in new window
{
    //alert(url);
    calculator = window.open(url,"calculator","menubar=no,directories=no,width=620,height=550,location=no,scrollbars=auto,status=no,resizable=yes");
}

function selecta(formname,selectname) {
    var popup = MM_findObj(selectname, document);
    var topdown = popup.options[popup.selectedIndex].value
//  alert(topdown);
    window.location.href = topdown;
}

function alert_basket(item, variant)
{
    if(!variant)
    {
        var mss = '\''+item+'\'';
    }
    else
    {
        var mss = '\''+item+'\' ['+variant+']';
    }

    alert('You have added: '+mss+' to your shopping cart');
}

function storeNav(rellink)
{
//  alert(link.href);
//  cartForm.action = "<? echo $url."/"; ?>"+link.href+"?hello";
    document.cartForm.url.value = rellink + '?style=4';
    //alert(document.cartForm.url.value);
    document.cartForm.action = document.cartForm.url.value;
    //alert(document.cartForm.action);
//  link.href  = "<? echo basename($PHP_SELF) ?>";
//  link.href  = "javascript:document.cartForm.submit()";
//  alert(cartForm.url.value);
//  alert(cartForm.action);
    document.cartForm.submit();
    return true;
}

function doPopUp(url) // opens enlarged img in new window
{
    //alert(url);
    // /htdocs/cms_ul/SaleClothing/menstherm.htm?item_id=1543
    re = new RegExp("([^?]+)\?item_id=([0-9]+)", "i");  //Create regular expression object.
    if ((regs = url.match(re)))
    {
        item_id = regs[2];
        //alert(item_id);
        window.location.href = "/htdocs/item.php?item_id="+item_id;
    }
    else
        enlargement = window.open(url,"enlargement","menubar=no,directories=no,width=680,height=540,location=no,scrollbars=yes,status=no,resizable=yes");
}

/*function change_variant(id, size)
{
    var text = document.cartForm.cart.value;
    var split_arr = text.split(',');
    var temp_string ='';

    if(document.cartForm.cart.value.length > 0)
    {
        for(var x = 0; x < split_arr.length; x++)
        {
            var vals = split_arr[x].split('/');
            if(vals[0] == id)
            {
                vals[2] = size;
            }

            temp_string += ','+vals[0]+'/'+vals[1]+'/'+vals[2]+'/'+vals[3]+'/'+vals[4];
        }
        document.cartForm.cart.value = temp_string;

        if(document.cartForm.cart.value.charAt(0) == ',')
        {
            document.cartForm.cart.value = document.cartForm.cart.value.substring(1,document.cartForm.cart.value.length);
        }
    }
    //alert (document.cartForm.cart.value);
}*/

function arr_search(needle, stack)
{
    //alert(stack.length);
    if(!needle)
    {
        return 0;
    }
//  alert(needle);
    for(var x = 0;x < stack.length; x++)
    {
//      alert('is '+needle+' equal to '+stack[x])
        if(stack[x] == needle)
        {
            return 1;
        }
    }
    return 0;
}

function ToggleCart(evt,id,desc,variant,quant,price)
{
    var variant_code = '';
    var variant_name = '';
    var valid_clearance = true;

    if (evt.stopPropagation)
        evt.stopPropagation();
    else
        evt.cancelBubble=true;

    if (variant)
    {
        //variant=decodeURIComponent(variant);
//      alert(variant);
        var var_arr = variant.split(",");
        variant_code = var_arr[0];
        variant_name = var_arr[1];
        if (variant_code=="-")
        {
            if (variant_name)
                alert("Please select your required "+variant_name+".");
            else
                alert("Please select an option.");
            //alert(evt.srcElement.tagName);
            return false;
        }
        if (var_arr[2])
            price = var_arr[2];
    }

    if (out_of_stock_arr)
    {
        var stockString = id+'/'+variant_code;
        //alert(stockString+","+out_of_stock_arr[0]);
        //alert(arr_search(stockString, out_of_stock_arr));
        if(arr_search(stockString, out_of_stock_arr))
        {
            if (!confirm('Sorry, this item is currently awaiting new stock.\n\nPlease press OK if you would like to continue with your purchase, and we will contact you to confirm your order and estimated delivery date.\n\nAlternatively, press Cancel if you would rather not add this item to your basket now.'))
            {
                quant=0;
                document.cartForm.action+="?oos="+stockString;
                //alert(document.cartForm.action);
                return false;
            }
        }
    }

    var cart = document.cartForm.cart.value;
    if (typeof this.decodeURIComponent != 'function')
    {
        if (typeof this.unescape == 'function')
            cart = unescape(cart);
    }
    else
        cart = decodeURIComponent(cart);
    //alert(cart);
    var split_arr = cart.split('",');
    var temp_string ='';
    var check = 0; //has item been added already? 0=no, 1=yes
    var newcart = '';

    if (cart.length != 0)
    {
        for(var x = 0; x < split_arr.length; x++)
        {
            //alert(split_arr[x]);
            //var cartitem = split_arr[x].substr(1,split_arr[x].length-1);
            var cartitem = split_arr[x].substr(1);
            //alert(cartitem);
            cartitem = cartitem.replace(/\"$/,"");
            cartitem = cartitem.replace(/[+]/g," ");
            //alert(cartitem);
            var vals = cartitem.split('/');
            //alert(' id '+vals[0]+'  size '+vals[2]);
            var tid = vals[0];
            var tdes = vals[1];
            var tvar = vals[2];
            var tqty = vals[3];
            var tpri = vals[4];
            //temp_string = temp_string + "\n" + vals[0] + "\t" + vals[1];
            //if (vals[2])
            //  temp_string = temp_string + "\t" + vals[2];
            //temp_string = temp_string + "\t" + vals[3];
            //temp_string = temp_string + "\t£" + vals[4].substr(0,vals[4].length);
            //temp_string = temp_string.replace(/\+/g, " ");
            // '"'+id+'/'+desc+'/'+variant_code+'/'+qty+'/'+price+'"';
            //alert (tid+"/"+id+"/"+tvar+"/"+variant_code);
            if(!check && tid == id && (tvar == variant_code))
            {
                //alert('This item is already in your shopping basket.\nYou can adjust the item quantity in the checkout page.\n\n'+'Your shopping basket currently contains:\n'+temp_string);
                check = 1;
                tqty = parseInt(tqty) + quant;
            }
            if (newcart.length > 0)
                newcart += ',';
            newcart = newcart + '"'+tid+'/'+tdes+'/'+tvar+'/'+tqty+'/'+tpri+'"'
            //alert(newcart);
        }
    }
    if(check == 0)
    {
        if (newcart.length > 0)
            newcart += ',';
        newcart += '"'+id+'/'+desc+'/'+(variant_code || "")+'/'+quant+'/'+price+'"';
    }
    if (valid_clearance == true)
    {
        //alert_basket(desc, variant_name);
        document.cartForm.cart.value = newcart;
        //alert(cart);
        document.cartForm.submit();
    }

    return false;
}

function ToggleCart2(evt,id,desc,variant,variant2,quant,price)
{
    var variant_code = '';
    var variant_name = '';
    var valid_clearance = true;

    if (evt.stopPropagation)
        evt.stopPropagation();
    else
        evt.cancelBubble=true;

    //alert('here');
    if(!variant) variant='null';

    if (variant)
    {
        //variant=decodeURIComponent(variant);
        //alert(variant);
        var var_arr = variant.split(",");
        variant_code = var_arr[0];
        variant_name = var_arr[1];
        if (variant_code=="-")
        {
            if (variant_name)
                alert("Please select your required "+variant_name+".");
            else
                alert("Please select an option.");
            //alert(evt.srcElement.tagName);
            return false;
        }
        if (var_arr[2])
        {
            /*var tpri = parseFloat(var_arr[2]) + parseFloat(price);
            var tpri_i = parseInt(var_arr[2]) + parseInt(price);*/
            var tpri = parseFloat(var_arr[2]);
            var tpri_i = parseInt(var_arr[2]);
            if (parseFloat(price) != tpri)
            {
                alert("Price / variant mismatch - alert developer: '"+price+"' '"+tpri+"'");
            }
            price = tpri_i.toString();
            if (tpri_i != tpri)
                price = tpri.toPrecision(2);
        }
    }

    if(variant2)
    {
        if(variant)
        {
            variant_code += ", ";
            variant_name += ", ";
        }
        var var_arr = variant2.split(",");
        variant_code += var_arr[0];
        variant_name += var_arr[1];
        if (var_arr[0]=="-")
        {
            if (var_arr[1])
                alert("Please select your required "+var_arr[1]+".");
            else
                alert("Please select an option.");
            //alert(evt.srcElement.tagName);
            return false;
        }
        if (var_arr[2])
        {
            var tpri = parseFloat(var_arr[2]) + parseFloat(price);
            var tpri_i = parseInt(var_arr[2]) + parseInt(price);
            price = tpri_i.toString();
            if (tpri_i != tpri)
                price = tpri.toPrecision(2);
        }
    }

    var stockString = id+'/'+variant_code;

    if (out_of_stock_arr)
    {
        var stockString = id+'/'+variant_code;
        //alert(stockString+","+out_of_stock_arr[0]);
        //alert(arr_search(stockString, out_of_stock_arr));
        if(arr_search(stockString, out_of_stock_arr))
        {
            if (!confirm('Sorry, this item is currently awaiting new stock.\n\nPlease press OK if you would like to continue with your purchase, and we will contact you to confirm your order and estimated delivery date.\n\nAlternatively, press Cancel if you would rather not add this item to your basket now.'))
            {
                quant=0;
                document.cartForm.action+="?oos="+stockString;
                //alert(document.cartForm.action);
                return false;
            }
        }
    }

    var cart = document.cartForm.cart.value;
    if (typeof this.decodeURIComponent != 'function')
    {
        if (typeof this.unescape == 'function')
            cart = unescape(cart);
    }
    else
        cart = decodeURIComponent(cart);
    //alert(cart);
    var split_arr = cart.split('",');
    var temp_string ='';
    var check = 0; //has item been added already? 0=no, 1=yes
    var newcart = '';

    if (cart.length != 0)
    {
        for(var x = 0; x < split_arr.length; x++)
        {
            //alert(split_arr[x]);
            //var cartitem = split_arr[x].substr(1,split_arr[x].length-1);
            var cartitem = split_arr[x].substr(1);
            //alert(cartitem);
            cartitem = cartitem.replace(/\"$/,"");
            cartitem = cartitem.replace(/[+]/g," ");
            //alert(cartitem);
            var vals = cartitem.split('/');
            //alert(' id '+vals[0]+'  size '+vals[2]);
            var tid = vals[0];
            var tdes = vals[1];
            var tvar = vals[2];
            var tqty = vals[3];
            var tpri = vals[4];
            //temp_string = temp_string + "\n" + vals[0] + "\t" + vals[1];
            //if (vals[2])
            //  temp_string = temp_string + "\t" + vals[2];
            //temp_string = temp_string + "\t" + vals[3];
            //temp_string = temp_string + "\t£" + vals[4].substr(0,vals[4].length);
            //temp_string = temp_string.replace(/\+/g, " ");
            // '"'+id+'/'+desc+'/'+variant_code+'/'+qty+'/'+price+'"';
            //alert (tid+"/"+id+"/"+tvar+"/"+variant_code);
            if(!check && tid == id && (tvar == variant_code))
            {
                //alert('This item is already in your shopping basket.\nYou can adjust the item quantity in the checkout page.\n\n'+'Your shopping basket currently contains:\n'+temp_string);
                check = 1;
                tqty = parseInt(tqty) + quant;
            }
            if (newcart.length > 0)
                newcart += ',';
            newcart = newcart + '"'+tid+'/'+tdes+'/'+tvar+'/'+tqty+'/'+tpri+'"'
            //alert(newcart);
        }
    }
    if(check == 0)
    {
        if (newcart.length > 0)
            newcart += ',';
        newcart += '"'+id+'/'+desc+'/'+(variant_code || "")+'/'+quant+'/'+price+'"';
    }
    if (valid_clearance == true)
    {
        //alert_basket(desc, variant_name);
        document.cartForm.cart.value = newcart;
        //alert(cart);
        document.cartForm.submit();
    }

}

function switch_page(page)
{
    document.exchangeForm.action = page;

    //alert(document.exchangeForm.action);

    document.exchangeForm.cart.value = document.cartForm.cart.value;
    document.exchangeForm.submit();
}

function set_boxes()
{

    var text = document.cartForm.cart.value;

    //alert('Text - '+text);
    var split_arr = text.split(',');

    if(text.search('/') != -1)
    {

        for(var x = 0; x < split_arr.length; x++)
        {
            //alert('loop counter: '+x);
            var vals = split_arr[x].split('/');
            var id = vals[0];
            var id1 = vals[2];
            //alert(id);alert(id1);
            var object_id=MM_findObj(id);
//          alert(object_id);
            //first check if the id exists in the page
            if(object_id)
            {
                //the checkbox
                object_id.checked=true;
            }
            //alert(id1);
            if(document.id && id1 != null)
            {
                var object_name = "cart_form_"+id;
                var formName = MM_findObj(object_name);
    //          alert(formName);
                formName.variant0.value=id1;
            }

        }
    }
}

function do_checkout()
{
    //alert('check '+document.cartForm.cart.value);
    document.cartForm.submit();
}

function inp_alert(iobj,msg)
{
    var obg=iobj.style.backgroundColor;
    iobj.style.backgroundColor="#FFA0A0";
    iobj.focus();
    alert(msg);
    iobj.style.backgroundColor=obg;
}
function emailCheck(oField)
{
    if (!oField) alert ("Invalid field: "+oField);

    var regEmail = /^[_\.0-9a-z-]+\@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/i;
        
    if(!regEmail.test(oField.value))
    {
        inp_alert(oField,"Please enter a valid email address.");
        return false;
    }
    else
        return true;
}
function pcCheckUK(oField)
{
    if (!oField) alert ("Invalid field: "+oField);

    //(((^[BEGLMNS][1-9]\d?)|(^W[2-9])|(^(A[BL]|B[ABDHLNRST]|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]|F[KY]|G[LUY]|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]|M[EKL]|N[EGNPRW]|O[LX]|P[AEHLOR]|R[GHM]|S[AEGKL-PRSTWY]|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)\d\d?)|(^W1[A-HJKSTUW0-9])|(((^WC[1-2])|(^EC[1-4])|(^SW1))[ABEHMNPRVWXY]))(\s*)?([0-9][ABD-HJLNP-UW-Z]{2}))$|(^GIR\s?0AA$)
    var regPC = /^[A-Z]{1,2}[1-9][0-9]? [0-9][A-Z]{2}$/i;
    if(!regPC.test(oField.value))
    {
        inp_alert(oField,"Please enter a valid UK PostCode.");
        return false;
    }
    else
        return true;
}
function phoneCheck(oField)
{
    if (!oField) alert ("Invalid field: "+oField);

    //var regPhone = /^((([+]|00)?[ -]?44)|0)[ -]?([ -]?[0-9]){7,25}$/;
    var regPhone = /^((([\+]|00)[ -]?[1-9][0-9]{1,2})|0)[ -]?([-0-9\(\) \.ext]){7,25}$/;
    if(!regPhone.test(oField.value))
    {
        //inp_alert(oField,"Please enter a valid UK Phone Number.");
        inp_alert(oField,"Please enter a valid UK (0xxxxxxx...) or international (+33 xxxxxxx...) telephone number.");
        return false;
    }
    else
        return true;
}



















