﻿var pMiniTimerId = null;
var pMiniBeginHideTimerId = null;

var pMiniFadeValue = 0;
var pMiniFadeConst = 0.08;
var pMiniFadeInterval = pMiniFadeConst;
var pMiniTimerIdFadeOut = null;
var pMiniTimerId = null;
var pMiniDoAbort = false;

var pMiniAjaxObject;
var pMiniPID;
var pMiniItem;
var pMiniOldPID;
var pMiniOldItem;
var bOldItem = null;
var basketEmailBusy = false;

var pProductVarietyOldItem;

var pDetailedBigImage = null;

//Product Detailed Variables
var pDetailedHeader = null;

//Big categories variables
var cBigCategoryItem = null;


function pic(url) {
    document.location.href = url;
};

function pivh(item) {
    var tds = null;

    if (item) {

        tds = item.getElementsByTagName('TD');

        for (var i = 0; i < tds.length; i++)
            tds[i].className = tds[i].className + '_Hover';
    }
    if (pProductVarietyOldItem) {
        tds = pProductVarietyOldItem.getElementsByTagName('TD');

        for (var i = 0; i < tds.length; i++)
            tds[i].className = tds[i].className.replace('_Hover', '');
    }

    pProductVarietyOldItem = item;

};

function bivh(item)
{

    //Fix hovering
    if (item) item.className = item.className + '_Hover';
    if (pMiniOldItem) pMiniOldItem.className = pMiniOldItem.className.replace('_Hover', '');
    pMiniOldItem = item;

};

function openBasketItem(e) {

    var target = e ? e.target : event.srcElement;
    alert(target.tagName);
};

function pih(item, pid) {
    //writeDB('pih(' + (item == null ? 'null' : 'obj') + ',' + (pid == null ? 'null' : pid) + ');');

    if (!pMiniTimerId)
        pMiniTimerId = setInterval(function () { pMiniDoFading(); }, 10);



    //exit if the same product is hovered
    if (item == pMiniOldItem) {
        //pMiniFadeInterval = pMiniFadeConst;
        return;
    }

    //If a load is in progress and and exit is made - abort the load
//    if (pMiniAjaxObject != null && item == null && pid == null) {
//        pMiniAjaxObject.abort();
//        pMiniAjaxObject = null;
//    }

    //Fix hovering
    if (item) item.className = item.className + '_Hover';
    if (pMiniOldItem) pMiniOldItem.className = pMiniOldItem.className.replace('_Hover', '');

    //Handle new selection (if needed)
    if (pid != null && pid != pMiniPID) {
        pMiniLoadProduct(pid, item);
    }
    else if (pid != null && pid == pMiniPID && pMiniFadeValue == 0 && item!=null) {
        if (pMiniBeginHideTimerId)
            clearTimeout(pMiniBeginHideTimerId);

        if (!pMiniAjaxObject) {
            var iip = document.getElementById('iProductMiniImage');
            if (iip.src.indexOf('/images/loading.gif') > -1 && iip.oldSrc) {
                iip.src = iip.oldSrc;
            }

            pMiniFadeInterval = pMiniFadeConst;
        }
    }

    //Hide mini product
    if (pMiniOldItem && !item) {
        pMiniBeginHideTimerId = setTimeout(function () { pMiniFadeInterval = -pMiniFadeConst; }, 250);
    }
    else if (pMiniBeginHideTimerId) {
        clearTimeout(pMiniBeginHideTimerId);
    }

    //Abort showing of product
    if (!item && !pid)
        pMiniDoAbort = true;
    else
        pMiniDoAbort = false;

    //Store data
    pMiniOldItem = item;
    pMiniOldPID = pid;

    //Store last valid item
    if (item != null) pMiniItem = item;
    if (pid != null) pMiniPID = pid;
};


function pMiniLoadProduct(id, item) {

    if (pMiniAjaxObject != null) {
        pMiniAjaxObject.abort();

        pMiniAjaxObject = null;

        //writeDB('Aborted AJAX');
    }

    var loadingItem = item;

    if (loadingItem) {
        loadingItem.childNodes[0].src = '/images/listviewLoading.gif';
    }

    pMiniDoAbort = false;

    pMiniFadeInterval = -pMiniFadeConst;
    pMiniAjaxObject = new sack();

    pMiniAjaxObject.requestFile = '/ajax/productPreview.aspx';

    pMiniAjaxObject.encVar('pid', id);
    pMiniAjaxObject.onCompletion = function () { _pMiniLoadProduct(id, loadingItem); };
    pMiniAjaxObject.onError = function () { _pMiniLoadProduct(id, loadingItem); };
    pMiniAjaxObject.onFail = function () { _pMiniLoadProduct(id, loadingItem); };
    pMiniAjaxObject.runAJAX();

    //writeDB('Open AJAX for pid=' + id);
};

function _pMiniLoadProduct(id, loadingItem) {

    if (loadingItem) {
        loadingItem.childNodes[0].src = '/images/spacer.gif';
    }

    var result = pMiniAjaxObject.response;
    pMiniAjaxObject.reset();
    pMiniAjaxObject.dispose();
    pMiniAjaxObject = null;

    //writeDB('Closed AJAX for ' + id);

    var div = document.createElement('div');
    div.innerHTML = result;

    var objs = div.getElementsByTagName('b');

    //Write new product data
    if (objs.length > 1 && !pMiniDoAbort) {
        _pMiniShowProduct(objs);
    }

};

function _pMiniShowProduct(objs) {

    //Exit show, if new search is initialized!
    if (pMiniAjaxObject) {
        pMiniFadeInterval = -pMiniFadeConst;
        return;
    }

    //make sure the mini product box is hidden before displaying new products.
    if (pMiniFadeValue>0)
    {
        pMiniFadeInterval = -pMiniFadeConst;
        setTimeout(function () { _pMiniShowProduct(objs); }, 50);
        return;
    }
    else
        pMiniFadeInterval = pMiniFadeConst;

    document.getElementById('h1ProductMiniTitle').innerHTML = objs[0].innerHTML;
    document.getElementById('pProductMiniText').innerHTML = objs[1].innerHTML;
    document.getElementById('iProductMiniImage').src = objs[3].getAttribute('url');


    //Todo make width the same as the image!!!
    document.getElementById('pProductMiniText').style.width = '322px';

    //Add varieties
    var vlist = document.getElementById('tbProductMiniVarieties');

    //Remove old
    while (vlist.childNodes.length > 2) {
        var o = vlist.removeChild(vlist.lastChild);
        delete o;
        o = null;
    }

    //Add new

    while (objs[2].hasChildNodes()) {
        var o = objs[2].removeChild((objs[2].firstChild));

        var tr = document.createElement('tr');
        var td1 = document.createElement('td');
        var td2 = document.createElement('td');

        tr.setAttribute('pid', o.getAttribute('pid'));
        tr.setAttribute('xref', o.getAttribute('xref'));
        tr.setAttribute('vid', o.getAttribute('vid'));
        tr.setAttribute('iid', o.getAttribute('iid'));

        tr.appendChild(td1);
        tr.appendChild(td2);

        tr.onmouseover = function () { pivh(this); };
        tr.onmouseout = function () { pivh(); };
        tr.onclick = function () { addToBasket(this); };

        td1.className = 'productMiniDetailsVarietyItem';
        td2.className = 'productMiniDetailsVarietyItem';

        td1.innerHTML = o.getAttribute('xref');
        td2.innerHTML = o.innerHTML;

        vlist.appendChild(tr);
    }

    //Make sure the display is in the correct position
    if (pMiniItem) {
        var pMini = document.getElementById('spProductMiniDetails');
        var plist = document.getElementById('MainContent_spProductList');

        var topMenu = document.getElementById('tblTopScrollableContent');
        pMini.style.marginTop = '';
        pMini.style.display = '';

        if ((topMenu.offsetHeight + pMiniItem.offsetTop) > (getPageYOffset() + pMini.offsetHeight)) {
            pMini.style.marginTop = ((topMenu.offsetHeight + pMiniItem.offsetTop + pMiniItem.offsetHeight + 18) - (getPageYOffset() + pMini.offsetHeight)) + 'px';

        }
    }
};

//Handle the fader
function pMiniDoFading() {
    if (pMiniFadeValue == 0 && pMiniFadeInterval < 0) return;
    if (pMiniFadeValue == 1 && pMiniFadeInterval > 0) return;
    
    pMiniFadeValue += pMiniFadeInterval;

    if (pMiniFadeValue <= 0) {
        pMiniFadeValue = 0;
        var iip=document.getElementById('iProductMiniImage');
        if (iip.src.indexOf('/images/loading.gif') == -1) {
            iip.oldSrc = iip.src;
            iip.src = '/images/loading.gif';
        }
    }
    if (pMiniFadeValue > 1) pMiniFadeValue = 1;

    pMiniSetOpacity(pMiniFadeValue);

};

//Internal fade function
function pMiniSetOpacity(value) {
    var topMenuContentLeft = document.getElementById('tdTopFixedContentBorderLeft');
    var pMini = document.getElementById('spProductMiniDetails');

    pMini.style.opacity = value;
    pMini.style.filter = 'alpha(opacity=' + value * 100 + ')';
    pMini.style.display = value != 0 ? '' : 'none';
    pMini.style.right = (topMenuContentLeft.offsetWidth - parseInt((1 - value) * 100)) + 'px';
};

//Product Detailed Header hover (prepare for filtering items)
function pdh(sender) {
    if (pDetailedHeader)
        pDetailedHeader.style.backgroundColor = '';

    pDetailedHeader = sender;

    if (pDetailedHeader)
        pDetailedHeader.style.backgroundColor = '#ffaa00';
};

//Category With Image hover
function cwih(sender) {
    if (cBigCategoryItem)
        cBigCategoryItem.className = 'categoryWithImage';

    cBigCategoryItem = sender;

    if (cBigCategoryItem)
        cBigCategoryItem.className = 'categoryWithImage_Hover';
};



//Debug handler
function writeDB(dbdata) {
    var db = document.getElementById('txtDebug');
    if (db) {
        db.value = dbdata + '\r\n' + db.value;
    }
};


//Basket handlers
function addToBasket(sender, quantity) {
    

    var ajaxObject = new sack();

    ajaxObject.requestFile = '/ajax/addToBasket.aspx';

    var data = '';

    ajaxObject.encVar('pid', sender.getAttribute('pid'));
    ajaxObject.encVar('xref', sender.getAttribute('xref'));
    ajaxObject.encVar('vid', sender.getAttribute('vid'));
    ajaxObject.encVar('iid', sender.getAttribute('iid'));
    ajaxObject.encVar('qty', quantity || '1');

    data += 'pid=' + sender.getAttribute('pid') + '\n';
    data += 'xref=' + sender.getAttribute('xref') + '\n';
    data += 'vid=' + sender.getAttribute('vid') + '\n';
    data += 'pid=' + sender.getAttribute('pid') + '\n';
    data += 'qty=' + (quantity || '1') + '\n';

    //writeDB(data);

    ajaxObject.onCompletion = function () { __addToBasket(ajaxObject, sender); };
    ajaxObject.onError = function () { __addToBasket(ajaxObject); };
    ajaxObject.onFail = function () { __addToBasket(ajaxObject); };

    ajaxObject.runAJAX();

    if (sender) FlyToBasket(sender);

};

function __addToBasket(ajaxObject, sender) {
    var result = ajaxObject.response;
    ajaxObject.reset();
    ajaxObject.dispose();
    ajaxObject = null;

    //writeDB('ADDTOBASKET RESULT: ' + result);

    //Update timy top basket
    var obj = document.getElementById('tdTopBasket');
    if (obj) {
        var div = document.createElement('DIV');
        div.innerHTML = result;

        while (obj.hasChildNodes()) {
            obj.removeChild((obj.firstChild));
        }
        obj.appendChild(div.firstChild);
    }

    //Update contentliseet
    var obj = document.getElementById('tdTopBasketContent');
    if (obj) {
        var div = document.createElement('DIV');
        div.innerHTML = result;

        while (obj.hasChildNodes()) {
            obj.removeChild((obj.firstChild));
        }
        obj.appendChild(div.lastChild);
    }

};

function FlyToBasket(sender) {
    var fl = document.createElement('DIV');
    fl.className = 'miniBasketFlyer';
    var tbl = document.createElement('TABLE');
    var tb = document.createElement('TBODY');
    tbl.cellPadding = 0;
    tbl.cellSpacing = 0;

    fl.appendChild(tbl);
    tbl.appendChild(tb);
    document.body.appendChild(fl);

    var dest = document.getElementById('tdTopBasket');

    if (fl && sender && dest) {

        try {
            var tr = sender.cloneNode(true);

            while (fl.childNodes[0].childNodes[0].hasChildNodes())
            {
                fl.childNodes[0].childNodes[0].removeChild(fl.childNodes[0].childNodes[0].firstChild);
            }

            fl.childNodes[0].childNodes[0].appendChild(tr);

            var tds = tr.getElementsByTagName('TD');
            for (var i = 0; i < tds.length; i++) {
                tds[i].noWrap = true;
            }

        }
        catch (exp) {
            writeDB(exp);
        }

        var pos = null;

        //writeDB('PARENTID:' + sender.parentNode.id);

        if(sender.parentNode.id != 'tbProductMiniVarieties')
            pos = GetObjectPositionNoScroll(sender);
        else
            pos = GetObjectPosition(sender);

        var destPos = GetObjectPosition(dest);

        fl.style.left = pos[0] + 'px';
        fl.style.top = pos[1] + 'px';
        fl.style.width = sender.offsetWidth + 'px';
        fl.style.height = sender.offsetHeight + 'px';

        fl.childNodes[0].style.width = sender.offsetWidth + 'px';
        fl.childNodes[0].style.height = sender.offsetHeight + 'px';

        fl.style.display = '';

        __FlyToBasket(fl, dest, pos, destPos, 255);
    }
};

function __FlyToBasket(flyer, dest, pos, destPos, opacity) {

    //Move the flyer
    var x = (destPos[0] - pos[0]) / 10;
    var y = (destPos[1] - pos[1]) / 10;

    var w = (dest.offsetWidth - flyer.offsetWidth) / 10;
    var h = (dest.offsetHeight - flyer.offsetHeight) / 10;

    pos[0] += x;
    pos[1] += y;

    if (x < 0.1 && x > -0.1)
        pos[0] = destPos[0];

    if (y < 0.1 && y > -0.1)
        pos[1] = destPos[1];

    flyer.style.left = pos[0] + 'px';
    flyer.style.top = pos[1] + 'px';

    flyer.style.width = (flyer.offsetWidth + w) + 'px';
    flyer.style.height = (flyer.offsetHeight + h) + 'px';

    flyer.childNodes[0].style.width = (flyer.offsetWidth) + 'px';
    flyer.childNodes[0].style.height = (flyer.offsetHeight) + 'px';

    flyer.style.height = (flyer.childNodes[0].offsetHeight - 1) + 'px';

    if (pos[0] != destPos[0] || pos[1] != destPos[1]) {
        //writeDB('move flyer');
        setTimeout(function () { __FlyToBasket(flyer, dest, pos, destPos, opacity); }, 10);
    }
    else {
        //writeDB('Kill flyer');
        __KillFlyer(flyer, opacity);
    }
};


function __KillFlyer(flyer, opacity) {
    opacity -= opacity / 10;
    if (opacity > 0.1) {
        setOpacity(flyer, opacity);
        setTimeout(function () { __KillFlyer(flyer, opacity); }, 10);
    }
    else {
        //writeDB('Killed flyer');
        document.body.removeChild(flyer);
        flyer = null;
    }
};


function GetObjectPosition(obj) {
    var retval = GetObjectPositionNoScroll(obj);

    retval[0] += getPageXOffset();
    retval[1] += getPageYOffset();

    return retval;
};

function GetObjectPositionNoScroll(obj) {
    var x = 0;
    var y = 0;

    if (obj.offsetParent) {
        do {
            x += obj.offsetLeft;
            y += obj.offsetTop;
        }
        while (obj = obj.offsetParent);
    }

    var retval = new Array();

    retval[0] = x;
    retval[1] = y;

    return retval;
};

function setOpacity(obj, value) {
    if (!obj) return;
    obj.style.opacity = value / 100;
    obj.style.filter = 'alpha(opacity=' + value + ')';
};


function mbs(visible) {
    var pop = document.getElementById('tdTopBasketContent');
    var btn = document.getElementById('cmdMiniBasket');

    if (visible) {
        pop.style.display = 'block';
        pop.style.top = (GetObjectPosition(btn)[1] + btn.offsetHeight) + 'px';
        pop.style.left = (btn.offsetLeft + btn.offsetWidth - pop.offsetWidth) + 'px';
    }
    else {
        pop.style.display = '';
    }
};

function mbio(sender, hover) {
    var tds = sender.getElementsByTagName('TD');

    for(var i=0;i<tds.length;i++)
        tds[i].className = hover ? 'miniBasketVarietyItem_Hover' : 'miniBasketVarietyItem';
};

function mbDelete(productId, varietyId) {
    var ajaxObject = new sack();

    ajaxObject.requestFile = '/ajax/updateBasket.aspx';

    ajaxObject.encVar('pid', productId);
    ajaxObject.encVar('vid', varietyId);

    ajaxObject.onCompletion = function () { __addToBasket(ajaxObject); mbs(true); };
    ajaxObject.onError = function () { __addToBasket(ajaxObject); };
    ajaxObject.onFail = function () { __addToBasket(ajaxObject); };

    ajaxObject.runAJAX();
};

function mbUpdate(productId, varietyId, quantity) {
    var ajaxObject = new sack();

    ajaxObject.requestFile = '/ajax/updateBasket.aspx';

    ajaxObject.encVar('pid', productId);
    ajaxObject.encVar('vid', varietyId);
    ajaxObject.encVar('qty', quantity || '0');

    ajaxObject.onCompletion = function () { __addToBasket(ajaxObject); mbs(true); };
    ajaxObject.onError = function () { __addToBasket(ajaxObject); };
    ajaxObject.onFail = function () { __addToBasket(ajaxObject); };

    ajaxObject.runAJAX();
};

function printProduct(productId) {
    var o = document.createElement('IFRAME');
    o.style.width = '200px';
    o.style.height = '200px';
    o.style.position='absolute';
    o.style.left=  '-500px';
    o.style.top=  '-500px';

    document.body.appendChild(o);

    o.src = 'productPrint.aspx?pid=' + productId;

};

function deleteLineFromBasket(sender) {
    var obj = sender.parentNode;

    if (obj != null) {
        var inputs = obj.getElementsByTagName('INPUT');

        if (inputs.length > 0) {
            var ajaxObject = new sack();

            ajaxObject.encVar('action', 'updateqty');
            ajaxObject.requestFile = '/ajax/basketManager.aspx';

            for (var i = 0; i < inputs.length; i++) {
                ajaxObject.encVar(inputs[i].getAttribute('uid'), '0');
                inputs[i].disabled = true;
            }

            ajaxObject.onCompletion = function () { __updateBasketQuantities(ajaxObject); };
            ajaxObject.onError = function () { __updateBasketQuantities(ajaxObject); };
            ajaxObject.onFail = function () { __updateBasketQuantities(ajaxObject); };

            ajaxObject.runAJAX();
        }
    }
};

function clearEntireBasket() {
    var ajaxObject = new sack();

    ajaxObject.encVar('action', 'clearbasket');
    ajaxObject.requestFile = '/ajax/basketManager.aspx';

    ajaxObject.onCompletion = function () { __updateBasketQuantities(ajaxObject); };
    ajaxObject.onError = function () { __updateBasketQuantities(ajaxObject); };
    ajaxObject.onFail = function () { __updateBasketQuantities(ajaxObject); };

    ajaxObject.runAJAX();
};

function updateBasketQuantities() {

    var obj = document.getElementById('MainContent_spBasketListItems');

    if(obj!=null)
    {
        var inputs = obj.getElementsByTagName('INPUT');

        if(inputs.length > 0)
        {
            var ajaxObject = new sack();

            ajaxObject.encVar('action', 'updateqty');
            ajaxObject.requestFile = '/ajax/basketManager.aspx';

            for (var i = 0; i < inputs.length; i++) {
                ajaxObject.encVar(inputs[i].getAttribute('uid'), inputs[i].value);
                inputs[i].disabled = true;
            }

            ajaxObject.onCompletion = function () { __updateBasketQuantities(ajaxObject); };
            ajaxObject.onError = function () { __updateBasketQuantities(ajaxObject); };
            ajaxObject.onFail = function () { __updateBasketQuantities(ajaxObject); };

            ajaxObject.runAJAX();
        }
    }
};

function __updateBasketQuantities(ajaxObject) {
    var result = ajaxObject.response;
    ajaxObject.reset();
    ajaxObject.dispose();
    ajaxObject = null;

    var obj = document.getElementById('MainContent_spBasketListItems');
    obj.innerHTML = result;

    refreshBasketview();
    onBodyScroll();
};

function refreshBasketview()
{
   
    var obj = document.getElementById('MainContent_spBasketListItems');
    var objB = document.getElementById('MainContent_spBasketList');
    var objE = document.getElementById('MainContent_spBasketEmpty');

    if (obj) {

        if (obj.childNodes.length == 0)
        {
            if (objB) objB.style.display = 'none';
            if (objE) objE.style.display = '';
        }
        else
        {
            if (objB) objB.style.display = '';
            if (objE) if (objE) objE.style.display = 'none';
        }
    }
};

function getLineFromPID(pid) {
    var obj = document.getElementById('MainContent_spBasketListItems');

    if (obj != null) {
        var inputs = obj.getElementsByTagName('INPUT');

        for (var i = 0; i < inputs.length; i++) {
            if (inputs[i].getAttribute('uid') == pid) {
                return inputs[i];
            }
        }

    }

    return null;
};

// QUICKIE SEARCH

var oldQuickeQuery = '';
var quickieAjax = null;

function doQuickieSearch(sender) {
    if (sender.value != oldQuickeQuery) {
        if (quickieAjax != null) {
            quickieAjax.abort();
            quickieAjax = null;
        }

        oldQuickeQuery = sender.value;
        writeDB('keypress: ' + sender.value);

        quickieAjax = new sack();
        quickieAjax.requestFile = '/ajax/QuickieSearch.aspx';
        quickieAjax.encVar('query', sender.value);
        quickieAjax.onCompletion = function () { __doQuickieSearch(); };
        quickieAjax.onError = function () { __doQuickieSearch(); };
        quickieAjax.onFail = function () { __doQuickieSearch(); };
        quickieAjax.runAJAX();
    }
};

function __doQuickieSearch() {
    var srcQueryQuickie = document.getElementById('srcQueryQuickie');

    if (quickieAjax != null) {
        var result = quickieAjax.response;
        quickieAjax.reset();
        quickieAjax.dispose();
        quickieAjax = null;

        if (srcQueryQuickie && result != '') {
            srcQueryQuickie.style.width = '';
            srcQueryQuickie.innerHTML = result;
            srcQueryQuickie.style.display = 'block';

            writeDB(srcQueryQuickie.offsetWidth + "<" + document.getElementById('srcQuery').parentNode.parentNode.parentNode.offsetWidth);

            if (srcQueryQuickie.offsetWidth < document.getElementById('srcQuery').parentNode.parentNode.parentNode.offsetWidth) {
                srcQueryQuickie.style.width = document.getElementById('srcQuery').parentNode.parentNode.parentNode.offsetWidth + 'px';
            }
        }
        else {

        }
    }
    else {
        if (srcQueryQuickie) srcQueryQuickie.style.display = 'none';
    }
};

function showQueckieSearch() {
    var srcQueryQuickie = document.getElementById('srcQueryQuickie');
    if (srcQueryQuickie)
    {
        if(srcQueryQuickie.innerHTML != '')
        {
            srcQueryQuickie.style.display = 'block';

            if (srcQueryQuickie.offsetWidth < document.getElementById('srcQuery').parentNode.parentNode.parentNode.offsetWidth) {
                srcQueryQuickie.style.width = document.getElementById('srcQuery').parentNode.parentNode.parentNode.offsetWidth + 'px';
            }
        }
    }
};


function initializeBigImage(sender) {
    pDetailedBigImage = document.getElementById('imgBig');

    if (pDetailedBigImage) {
        //Initiate the sender click
        if (sender) {
            sender.onclick = function () { zoomBigImage(); };
            pDetailedBigImage.onclick = function () { zoomBigImage(); };

            pDetailedBigImage.style.width = sender.offsetWidth +'px';
            pDetailedBigImage.style.height = sender.offsetHeight + 'px';
            pDetailedBigImage.style.display = 'none';

            pDetailedBigImage.orgWidth = sender.offsetWidth;
            pDetailedBigImage.orgHeight = sender.offsetHeight;

            pDetailedBigImage.smallImage = sender;
        }

        if (pDetailedBigImage.smallImage) {
            //Calculate desired zoom size
            var width = document.getElementById('MainContent_spProductDetails').offsetWidth;
            var height = (width / pDetailedBigImage.smallImage.offsetWidth) * pDetailedBigImage.smallImage.offsetHeight;

            pDetailedBigImage.zoomWidth = width;
            pDetailedBigImage.zoomHeight = height;

            pDetailedBigImage.srcUrl = '/image.aspx?iid=' + pDetailedBigImage.smallImage.id.split('_')[1] + '&w=' + width + '&h=' + height;

            pDetailedBigImage.style.width = pDetailedBigImage.orgWidth + 'px';
            pDetailedBigImage.style.height = pDetailedBigImage.orgHeight + 'px';
            pDetailedBigImage.style.marginLeft = '';

        }
    }
};


function zoomBigImage() {
    if (!pDetailedBigImage) return;

    if (pDetailedBigImage.style.display != '') {

        pDetailedBigImage.src = pDetailedBigImage.srcUrl;

        pDetailedBigImage.style.display = '';
        __zoomBigImage();
    }
    else {
        pDetailedBigImage.style.display = 'none';
        pDetailedBigImage.style.width = pDetailedBigImage.orgWidth + 'px';
        pDetailedBigImage.style.height = pDetailedBigImage.orgHeight + 'px';
        pDetailedBigImage.style.marginLeft = '';
    }
};


function __zoomBigImage() {

    if (pDetailedBigImage.style.display != '') return;

    var w = (pDetailedBigImage.zoomWidth - pDetailedBigImage.offsetWidth) / 6;
    var h = (pDetailedBigImage.zoomHeight - pDetailedBigImage.offsetHeight) / 6;

    if (w < 10) w = 10;
    if (h < 10) h = 10;

    var nw = pDetailedBigImage.offsetWidth + w;
    var nh = pDetailedBigImage.offsetHeight + h;

    if (nw > pDetailedBigImage.zoomWidth)
        nw = pDetailedBigImage.zoomWidth;

    if (nh > pDetailedBigImage.zoomHeight)
        nh = pDetailedBigImage.zoomHeight;

    pDetailedBigImage.style.width = nw + 'px';
    pDetailedBigImage.style.height = nh + 'px';
    pDetailedBigImage.style.marginLeft = (pDetailedBigImage.orgWidth - nw) + 'px';

    if (nw != pDetailedBigImage.zoomWidth || nh != pDetailedBigImage.zoomHeight)
        setTimeout(function () { __zoomBigImage(); }, 50);
};



function ShowBeslacoMemberInformation(sender) {
    var obj = document.getElementById('MainContent_bm_' + sender.value);
    if (obj) {
        document.getElementById('txtBeslacoPhone').value = obj.getAttribute('phone') || '-ingen-';
        document.getElementById('txtBeslacoFax').value = obj.getAttribute('fax') || '-ingen-';
        document.getElementById('txtBeslacoEmail').value = obj.getAttribute('email') || '-ingen-';
        document.getElementById('txtBeslacoStoreName').value = obj.getAttribute('store') || '';
    }
    else {
        document.getElementById('txtBeslacoStoreName').value = '';
        document.getElementById('txtBeslacoPhone').value = '-vælg-';
        document.getElementById('txtBeslacoFax').value = '-vælg-';
        document.getElementById('txtBeslacoEmail').value = '-vælg-';
    }
};

function printBasket() {
    var o = document.getElementById('basketPrinter');

    document.getElementById('printAction').value = 'print';

    if (o == null) {
        o = document.createElement('IFRAME');
        o.Id = 'basketPrinter';
        o.name = 'basketPrinter';
        o.style.width = '200px';
        o.style.height = '200px';
        o.style.position = 'absolute';
        o.style.left = '-500px';
        o.style.top = '-500px';
        o.src = 'about:blank';

        document.body.appendChild(o);
    }

    document.forms['frmBasketDetails'].target = 'basketPrinter';
    document.forms['frmBasketDetails'].submit();

};

function sendBasket() {
    if (basketEmailBusy) {
        alert('Vent venligst mens emailen til forretningen sendes!');
        return;
    }



    var selStore = document.getElementById('MainContent_selBeslacoMember');

    if (selStore.value == '') {
        alert('Du skal vælge en beslaco forretning, at sende til huskeliste til!');
        return;
    }

    var txtBeslacoEmail = document.getElementById('txtBeslacoEmail');
    var txtEmail = document.getElementById('txtEmail');

    if (txtEmail == null) return;
    if (txtBeslacoEmail == null) return;

    if (!IsEmail(txtEmail.value)) {
        alert('Du skal indtaste din emailadresse, for at kunne sende huskelisten som en email!');
        return;
    }

    if (!IsEmail(txtBeslacoEmail.value)) {
        alert('Den valgte beslaco forretning kan ikke modtage din huskeliste som email.\n\nDen kan printes og faxes i stedet.');
        return;
    }

    var o = document.getElementById('basketPrinter');

    document.getElementById('printAction').value = 'email';

    if (o == null) {
        o = document.createElement('IFRAME');
        o.Id = 'basketPrinter';
        o.name = 'basketPrinter';
        o.style.width = '200px';
        o.style.height = '200px';
        o.style.position = 'absolute';
        o.style.left = '-500px';
        o.style.top = '-500px';
        o.src = 'about:blank';

        document.body.appendChild(o);
    }

    basketEmailBusy = true;

    document.forms['frmBasketDetails'].target = 'basketPrinter';
    document.forms['frmBasketDetails'].submit();
    
};



function IsEmail(email)
{
    var x = email;
    var filter  = /^([a-zæøåA-ZÆØÅ0-9_\.\-])+\@(([a-zæøåA-ZÆØÅ0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
                
    if(x=='' || x==' ') return false;
	return filter.test(x);
};


function MailOkay() {
    basketEmailBusy = false;
    alert('Huskelisten er sendt til forretningen.');
};


function MailError() {
    basketEmailBusy = false;
    alert('Der opstod desværre en fejl, mens huskelisten blev afsendt.\n\nKontroller venligst din emailadresse og prøv igen.');
};
