﻿
// **** GLOBAL STUFF ********************************

function pageLoad() {

    //GetCultureInfo();

    $get('divModals').style.display='block';

    switch (_pageid) {
        case 'assortiment':
            if ($get('divbadgeProductDetail_ascx')!=null) {
                ProductDetail_ascx_Load();
            }
            refreshCartContents();
            if(typeof fakeflashLoad == 'function') { 
                fakeflashLoad(); 
            }
            break;

        case 'cart':
            launchCartWizard2();
            break;
        
        case 'barcode':
            if (al=='E' && !isB2BSelected()) {
                PopupSelectKlant();
            }
            refreshCartContents();
            break;
        
        case 'profile':
        case 'content':
        case 'corporate':
        case 'iframe':
            refreshCartContents();
            break;
        default:
            break;
    }

    // handler aan searchbox hangen, mits de searchbox zichtbaar is
    if ($get('txtSearch') != null) {
        new Form.Element.Observer('txtSearch', 0.4, function(el) {searchresultPopup(el);});
        new Form.Element.Observer('txtSearch', 1.0, function(el) {FormulaResultPopup(el);});
    }

    // Heartbeat elke 5 minuten verzenden zolang de browser aan de IIS hangt.
    window.setInterval("HeartBeat();",5 * 60 * 1000);
    HeartBeat();
    
    CheckAnnouncements();
}

function doReload() {
    window.location.reload();
}

function isB2BSelected() {
    return (bid!='');
}

function stopevent(evt) {
    if (evt.preventDefault) {
      evt.preventDefault();
      evt.stopPropagation();
    } else {
      evt.returnValue = false;
      evt.cancelBubble = true;
    }
}

var _currentArtikelCode;
var _currentMyArtikelCode;
var _searchmoreIsVisible=false;

var TranConLocal = {
            setQS: function(param,value) {
                    var blnFound=false;
                    var arrParts='';
                    var strAppend='';
                    arrParts = window.location.href.split('&');
                    for (i=0;i<arrParts.length;i++) {
                        var arrNameValue=arrParts[i].split('=');
                        if (arrNameValue[0]==param) {
                            arrParts[i]=param+'='+value;
                            blnFound=true;
                            break;
                        }
                    }
                    if (!blnFound) {
                        strAppend='&'+param+'='+value;
                    }
                    return arrParts.join('&') + strAppend;
                },
            changeQS: function(srcstring,param,value) {
                    var blnFound=false;
                    var arrParts='';
                    var strAppend='';
                    arrParts = srcstring.split('&');
                    for (i=0;i<arrParts.length;i++) {
                        var arrNameValue=arrParts[i].split('=');
                        if (arrNameValue[0]==param) {
                            arrParts[i]=param+'='+value;
                            blnFound=true;
                            break;
                        }
                    }
                    if (!blnFound) {
                        strAppend='&'+param+'='+value;
                    }
                    return arrParts.join('&') + strAppend;
                }
            }

function GetCultureInfo() {
    ShopWebService.GetCulture(GetCulture_callback, generic_callbackerror);
}

function GetCulture_callback(result) {
    culture=result;
}

function generic_callbackerror(result) {
    window.status=result.get_message();
}

function HeartBeat() {
    ShopWebService.HeartBeat(sid,function (result) {
        //window.status='[HB]' + result + '[S]' + sid + '[U]' + uid;
        return true;
    },HeartBeatFailure_callback);
}

function HeartBeatFailure_callback(err) {
    //window.location.href='login.aspx';
}

function searchKeyPress(txtbox,evt) {
    if (evt.keyCode == 13) {
        //evt.cancelBubble=true;
        stopevent(evt);
        
        if (txtbox.value.substr(0,1)=='=') {
            if (_blnFormulaIsValid) {
                if (isNaN(parseInt(_strFormulaNumber))) {
                    alert(_ML('Zoeken.Geef een geldig aantal op'));
                } else {
                    ShopWebService.AddToCart(sid,_strFormulaArtCode,Number(_strFormulaNumber),cart_callback, generic_callbackerror);                    
                    resetFormulaPopupView();
                    txtbox.value='';
                }
            } else {
                //alert("Het artikel is niet gevonden.");
            }
        } else {
            dosearch();
        }
        return false;
    }
}

function searchboxKeyPress(txtbox,evt) {
    if (evt.keyCode == 13) {
        //evt.cancelBubble=true;
        stopevent(evt);
        dosearchSearchBox();
        return false;
    }
}

function subfilterKeyPress(txtbox,evt) {
    if (evt.keyCode == 13) {
        evt.cancelBubble=true;

        var strURL;
        strURL=TranConLocal.changeQS(window.location.href,'finalfilter',txtbox.value);
        strURL=TranConLocal.changeQS(strURL,'page','1');
        window.location.href=strURL;
        return false;
    }
}

function searchboxClicked(txtbox,evt) {
    if (txtbox.value.toLowerCase()==_ML("Zoeken.Zoek").toLowerCase()) {
        txtbox.value='';
    } else {
        txtbox.select();
    }
    txtbox.focus();
    stopevent(evt);
    return false;
}

function searchAreaClicked(div,evt) {
    toggleSearchMore();
}

function checknumber(value) {
    var anum=/(^\d+$)|(^\d+\.\d+$)/;
    if (anum.test(value))
        testresult=true
    else {
        alert(_ML('Algemeen.Voer a.u.b. een getal in'))
        testresult=false
    }
    return (testresult)
}

function checkCartAantal(value,minbesteleenheid) {
    if (!checknumber(value)) {
        return false;
    }
    
    if (value <= 0) {
        alert(_ML('Algemeen.Voer a.u.b. een aantal groter dan 0 in'));
        return false;
    }
    
    if (value > 999) {
        alert(_ML('Algemeen.Voer a.u.b. een aantal kleiner dan 1000 in.'));
        return false;
    }
    
    if (value % minbesteleenheid != 0) {
        $get('spnMinOrderUnit').innerHTML=minbesteleenheid;
        $get('txtOrderUnitValue').value=(parseInt(value/minbesteleenheid)+1)*minbesteleenheid;

        if (_currentCartAdd_method=='wizardupdateaantal') {
            $find('ModalCartWizardBehaviour').hide();
        }

        $find("ModalBehaviourInvalidOrderUnit").show();
        //alert("De besteleenheid is " + minbesteleenheid + ".");
        return false;
    }
    
    return true;
}

function dosearch() {
    var strSearch = encodeURIComponent($get('txtSearch').value);
    
    dosearch_callback(null, strSearch);

//    // Log het raadplegen van het resultaat (id=2)
//    ShopWebService.LogSearch(sid, _strPopupCurrentSearch, _strPopupCurrentSearchHits, 2, dosearch_callback, generic_callbackerror, strSearch);
}

function dosearch_callback(result, strSearch) {
    window.location.href='assortiment.aspx?action=search&q=' + strSearch + '&page=1';
}

function dosearchSearchBox() {
    var strMore;
    var strSearch = encodeURIComponent($get('txtSearchBoxText').value);
    var strIC1 = $get('cboIC1Searchbox').value;
    var strIC2 = $get('cboIC2Searchbox').value;
    
    strMore = '';
    if (strIC1!="(Alles)") {
        strMore = strMore + '&ic1=' + strIC1;
    }

    if (strIC2!="(Alles)") {
        strMore = strMore + '&ic2=' + strIC2;
    }
            
    window.location.href='assortiment.aspx?action=search&q=' + strSearch + strMore + '&page=1';
}

function dosearchsubtree(path, txtbox) {
    var q = encodeURIComponent(txtbox.value);
    window.location.href='assortiment.aspx?action=searchsubtree&aspath=' + path + '&q=' + q;
}

function showdetail(artcode) {
    window.location.href='assortiment.aspx?action=detail&artcode=' + artcode +'';
}

function comboNavigate(cbo, url) {
    window.location.href = url.replace(/{page}/gi,cbo.value)
}


var _currentCartAdd_method;
var _currentCartAdd_artikelcode;
var _currentCartAdd_buttonid;
var _currentCartAdd_columnindex;
var _currentCartAdd_doanimation;
var _currentCartAdd_aantalstub;
var _currentCartAdd_minbesteleenheid;
var _currentCartAddInputbox;
var _currentCartAdd_OrderRegel_PK;

function addtocartfromdetail(artikelcode,buttonid,columnindex,doanimation,aantalstub,minbesteleenheid) {
    _currentCartAdd_method='addtocart';
    _currentCartAdd_artikelcode=artikelcode;
    _currentCartAdd_buttonid=buttonid;
    _currentCartAdd_columnindex=columnindex;
    _currentCartAdd_doanimation=doanimation;
    _currentCartAdd_aantalstub=aantalstub;
    _currentCartAdd_minbesteleenheid=minbesteleenheid;

    if (al=='E' && bid=='') {
        alert(_ML('Algemeen.Selecteer eerst een klant a.u.b.'));
        return false;
    }

    var obj=$get("cardimg_" + artikelcode.toString());
    var aantal=$get(aantalstub + artikelcode).value;

    if (checkCartAantal(aantal,minbesteleenheid)) {
        buttonid.disabled=true;
        
        if (doanimation==true) {
            //do animation (for card and thumbnail view)
            obj.style.border='1px solid red';
            new Effect.Parallel(
                [
                    new Effect.Move (obj,{ x: 630 - (((_view=='card') ? 0:columnindex)*200), y: 0, mode: 'relative', transition: Effect.Transitions.sinoidal, sync:true}),
                    new Effect.Opacity(obj, { sync: true, from: 1.0, to: 0.0 } )
                ],
                { duration: 1.1,
                  afterFinish: function af() {restoreCardImagePosition(artikelcode,aantal,obj.id,buttonid,doanimation,aantalstub)}
                } 
              );
        } else {
            //no animation (e.g. for list view)
            restoreCardImagePosition(artikelcode,aantal,'',buttonid,doanimation,aantalstub);
        }
    }
}

function addtocart(artikelcode,buttonid,columnindex,doanimation,aantalstub,minbesteleenheid) {
    _currentCartAdd_method='addtocart';
    _currentCartAdd_artikelcode=artikelcode;
    _currentCartAdd_buttonid=buttonid;
    _currentCartAdd_columnindex=columnindex;
    _currentCartAdd_doanimation=doanimation;
    _currentCartAdd_aantalstub=aantalstub;
    _currentCartAdd_minbesteleenheid=minbesteleenheid;

    if (al=='E' && bid=='') {
        alert(_ML('Algemeen.Selecteer eerst een klant a.u.b.'));
        return false;
    }

    var obj=$get("cardimg_" + artikelcode.toString());
    var aantal=$get(aantalstub + artikelcode).value;

    if (checkCartAantal(aantal,minbesteleenheid)) {
        buttonid.disabled=true;
        
        if (doanimation==true) {
            //do animation (for card and thumbnail view)
            obj.style.border='1px solid red';
            new Effect.Parallel(
                [
                    new Effect.Move (obj,{ x: 630 - (((_view=='card') ? 0:columnindex)*200), y: 200-obj.parentNode.offsetTop, mode: 'relative', transition: Effect.Transitions.sinoidal, sync:true}),
                    new Effect.Opacity(obj, { sync: true, from: 1.0, to: 0.0 } )
                ],
                { duration: 1.1,
                  afterFinish: function af() {restoreCardImagePosition(artikelcode,aantal,obj.id,buttonid,doanimation,aantalstub)}
                } 
              );
        } else {
            //no animation (e.g. for list view)
            restoreCardImagePosition(artikelcode,aantal,'',buttonid,doanimation,aantalstub);
        }
    }
}

function addtocartfromsearchpopup(artikelcode,buttonid,columnindex,doanimation,aantalstub,minbesteleenheid) {
    _currentCartAdd_method='addtocartfromsearchpopup';
    _currentCartAdd_artikelcode=artikelcode;
    _currentCartAdd_buttonid=buttonid;
    _currentCartAdd_columnindex=columnindex;
    _currentCartAdd_doanimation=doanimation;
    _currentCartAdd_aantalstub=aantalstub;
    _currentCartAdd_minbesteleenheid=minbesteleenheid;

    if (al=='E' && bid=='') {
        alert(_ML('Algemeen.Selecteer eerst een klant a.u.b.'));
        return false;
    }
    
    var obj=$get("cardimgpopup_" + artikelcode.toString());
    var aantal=$get(aantalstub + artikelcode).value;

    if (checkCartAantal(aantal,minbesteleenheid)) {
        buttonid.disabled=true;

        // Log de bestelling (id=3)
        ShopWebService.LogSearch(sid, _strPopupCurrentSearch, _strPopupCurrentSearchHits, 3, LogSearch_callback, generic_callbackerror);
        
        if (doanimation==true) {
            //do animation (for card and thumbnail view)
            obj.style.border='1px solid red';
            new Effect.Parallel(
                [
                    new Effect.Move (obj,{ x: 800, y: 50-obj.parentNode.offsetTop, mode: 'relative', transition: Effect.Transitions.sinoidal, sync:true}),
                    new Effect.Opacity(obj, { sync: true, from: 1.0, to: 0.0 } )
                ],
                { duration: 1.1,
                  afterFinish: function af() {restoreCardImagePosition(artikelcode,aantal,obj.id,buttonid,doanimation,aantalstub)}
                } 
              );
        } else {
            //no animation (e.g. for list view)
            restoreCardImagePosition(artikelcode,aantal,'',buttonid,doanimation,aantalstub);
        }
    }
}

function addtocartbasic(artikelcode,aantal,minbesteleenheid) {
    if (al=='E' && bid=='') {
        alert(_ML('Algemeen.Selecteer eerst een klant a.u.b.'));
        return false;
    }
    
    if (checkCartAantal(aantal,minbesteleenheid)) {
        // Log de bestelling (id=3)
        ShopWebService.LogSearch(sid, _strPopupCurrentSearch, _strPopupCurrentSearchHits, 3, LogSearch_callback, generic_callbackerror);

        // Doe de bestelling
        ShopWebService.AddToCart(sid, artikelcode, aantal, cart_callback, generic_callbackerror);
    }
}

function removefromcart(artikelcode,callbackoptions) {
    ShopWebService.RemoveFromCart(sid, artikelcode, callbackoptions, cart_callback, generic_callbackerror);
}

function restoreCardImagePosition(artikelcode,aantal,id,buttonid,doanimation,aantalstub) {

    var obj;
    if (id!='') {
        obj=$get(id);
    }
    
    var txtAantal;
    
    txtAantal = $get(aantalstub + artikelcode)
    //txtAantal.value = "1";

    ShopWebService.AddToCart(sid,artikelcode,aantal,cart_callback, generic_callbackerror);

    if (doanimation==true) {
        //do animation (for card and thumbnail view)
        new Effect.Parallel(
            [
                new Effect.Move (obj,{ x: 0, y: 0, mode: 'absolute', transition: Effect.Transitions.sinoidal, sync:true})
            ],
            { duration: 0.0,
              afterFinish: function af() {restoreCardImageFadeIn(id.toString(),buttonid,doanimation)}
            } 
          );
    } else {
        //no animation (for list view)
        restoreCardImageFadeIn(id.toString(),buttonid,doanimation);
    }
}

function restoreCardImageFadeIn(id,buttonid,doanimation) {
    var obj = $get(id);

    if (doanimation==true) {
        //do animation (for card and thumbnail view)
        obj.style.border='1px solid white';

        new Effect.Parallel(
            [
                new Effect.Opacity(obj, { sync: true, from: 0.0, to: 1.0 } )
            ],
            { duration: 1.1,
              afterFinish: function af() { buttonid.disabled=false; } } 
          );
    } else {
        //no animation (for list view)
        buttonid.disabled=false;
    }
    
    // specifieke page callbacks na het toevoegen van een artikel
    if (_pageid=='barcode') {
        barcodeAddedToCartCallback();
    }
}

function cart_callback(result) {
    if (result.CallBackOptions=='reloadcartpage') {
        window.navigate('cart.aspx');
        return;
    }

    if ($get('divCartAantalArtikelen')==null) {return}; //indien cart niet zichtbaar is, dan stoppen we hier

    $get('divCartAantalArtikelen').innerHTML = _ML('Winkelwagen.Aantal artikelen') + ': ' + result.AantalArtikelen.toString()
    
    if (result.ReqArtikelCode!='') {
        var pnl=$get('pnlCartLine_' + result.ReqArtikelCode + '_tdAantal')
        if (pnl!=null) {
            // In het geval van een remove uit de cart control is er geen item meer aanwezig in het middelste pane
            pnl.innerHTML = "(" + result.CurrentArtikelAantal + ") " + _ML('Winkelwagen.Artikelen in winkelwagen');;
        }
    }

    refreshCartContents(result);
}

function refreshCartContents(result) {
    var strHTML = '';
    
    if (typeof(result)=="undefined" || result==null ) {
        ShopWebService.LoadCart(sid, cart_callback, generic_callbackerror);
        return;
    }

    var intIndex=0;
    var strDescription='';

    if (result!=null) {
        $A($H(result.CartItems).values()).each(function(item) {
            intIndex++;

            strDescription=item.Description;
            if (strDescription.length >= 26) {
                strDescription = strDescription.substring(0,24) + '..';
            }

            strHTML += '<tr class="'
            if (result.ReqArtikelCode==item.ArtikelCode) {
                strHTML += 'trCartRowCurrent';
            } else {
                if (intIndex % 2==1) {
                    strHTML += 'trCartRowAlternate';
                } else {
                    strHTML += 'trCartRow';
                }
            }
            strHTML += '"';

            strHTML += '><td style="text-align:right;padding-right:4px;font-weight:bold;border-right:1px solid #e0e0e0;width:25px;">'
            strHTML += '<input type="text" maxlength="3" ';
            strHTML += 'onfocus="return CartAantal_enter(this,event,' + item.MinBestelEenheid + ');" ';
            strHTML += 'onblur="return CartAantal_blur(this,event,' + item.MinBestelEenheid + ');" ';
            strHTML += 'onkeypress="return CartAantal_keypress(this,event,' + item.MinBestelEenheid + ');" ';
            strHTML += 'style="font-size:7pt;width:20px;border:1px solid #808080;text-align:right;" value="';
            strHTML += item.Aantal.toString() + '" ';
            strHTML += 'artcode="' + item.ArtikelCode + '" ';
            strHTML += '/></td>';
            strHTML += '<td style="width:157px;"><div style="width:157px;overflow:hidden;height:20px;"><a style="text-decoration:none;color:black;" href="assortiment.aspx?action=detail&artcode=';
            strHTML += item.ArtikelCode;
            strHTML += '">';
            strHTML += strDescription;
            strHTML += '</div></td><td style="color:#808080;cursor:pointer;border-left:1px solid #e0e0e0;padding-left:2px;padding-right:2px;" ';
            strHTML += "onclick=\"removefromcart('";
            strHTML += item.ArtikelCode;
            strHTML += "','')\">x</td>";
            strHTML += '</a></td></tr>';
        })
    }
    
    if (intIndex==0) {
        $get("divAfronden").style.display="none";
    } else {
        $get("divAfronden").style.display="block";
    }
    
    if (intIndex!=0) {
        $get('divCartTotal').innerHTML='<table id="tblCart" cellspacing="0" cellpadding="0">' + strHTML + '</table>';
    } else {
        $get('divCartTotal').innerHTML = '';
    }
}


var _strCartAantalPrevious;

function CartAantal_enter(inputbox,evt,minbesteleenheid) {
    inputbox.style.backgroundColor="#ffff00";
    _strCartAantalPrevious = inputbox.value;
    return false;
}

function CartAantal_blur(inputbox,evt,minbesteleenheid) {
    _currentCartAdd_method='changeaantalindockingpanel';
    _currentCartAddInputbox=inputbox;
    _currentCartAdd_minbesteleenheid=minbesteleenheid;
    if (checkCartAantal(inputbox.value,minbesteleenheid)) {
        inputbox.style.backgroundColor="white";
        // LET OP: TC-specifiek
	    if (inputbox.attributes['artcode'].value=='9999901') {
		    inputbox.value='1';
	    }
        CartAantal_updateaantal(inputbox, evt, inputbox.attributes['artcode'].value);
        return true;
    } else {
        inputbox.value=_strCartAantalPrevious;
        inputbox.style.backgroundColor="white";
        return false;
    }
}

function CartAantal_keypress(inputbox,evt,minbesteleenheid) {
    if (evt.keyCode == 13) {
        stopevent(evt);
        CartAantal_blur(inputbox,evt,minbesteleenheid);
    }
}

function CartAantal_updateaantal(inputbox,evt,artikelcode) {
    var Aantal;

    Aantal = inputbox.value;
    ShopWebService.UpdateAantalByArtikelcode(sid,artikelcode,Aantal,CartAantal_updateaantal_callback, generic_callbackerror);
    return false;
}

function CartAantal_updateaantalfrominvalidqty(artikelcode, aantal) {
    _currentCartAddInputbox.value=aantal;
    CartAantal_blur(_currentCartAddInputbox,window.event,_currentCartAdd_minbesteleenheid);
    return false;
}

function CartAantal_updateaantal_callback(result) {
    refreshCartContents(null);
}

function highlightcard(tr) {
    return false;
}

function changeCartQty(txtbox,artikelcode) {
    $get('btnMakeOrder').disabled=true;
    
    ShopWebService.UpdateCartQty(sid,artikelcode,txtbox.value,cart_callback, generic_callbackerror);
}

function changeCartPrice(txtbox,artikelcode) {
    $get('btnMakeOrder').disabled=true;
    
    ShopWebService.UpdateCartPrice(sid,artikelcode,txtbox.value,cart_callback, generic_callbackerror);
}

function recalculateCart() {
    window.location.reload();
}

function makeOrder_callback(result) {
    $get('divCartContents').style.display='none';
    $get('divThankYou').style.display='block';
}

function getKeyCode(e) {
    var keynum;
    var keychar;
    var numcheck;
    var mycode;
    
    if (window.event) // IE
        {
        keynum = e.keyCode
        }
        else if(e.which) // Netscape/Firefox/Opera
        {
        keynum = e.which
        }
    
    switch(keynum) {
        case 13:
            mycode='enter';
            break;
        case 40:
            mycode='down';
            break;
        case 37:
            mycode='left';
            break;
        case 39:
            mycode='right';
            break;
        case 38:
            mycode='up';
            break;
        case 9:
            mycode='tab';
            break;
        case 27:
            mycode='esc';
            break;
        case 8:
            mycode='backspace';
            break;
        case 46:
            mycode='del';
            break;
        case 35:
            mycode='end';
            break;
        case 36:
            mycode='home';
            break;
        case 190:
            mycode='.';
            break

        //numpad
        case 96:
            mycode='0';
            break;
        case 97:
            mycode='1';
            break;
        case 98:
            mycode='2';
            break;
        case 99:
            mycode='3';
            break;
        case 100:
            mycode='4';
            break;
        case 101:
            mycode='5';
            break;
        case 102:
            mycode='6';
            break;
        case 103:
            mycode='7';
            break;
        case 104:
            mycode='8';
            break;
        case 105:
            mycode='9';
            break;
        case 110:
            mycode='.';
            break;
        default:
            mycode=String.fromCharCode(keynum);
            break;
    }
    return mycode;
}

function expandUpload(artcode) {
    $('tblProductCard_' + artcode).style.height="209px";
    $('divUpload_' + artcode).style.display='block';
}

function toggleSearchMore() {
//    if (_btnIsSearchPopupVisible || _btnIsFormulaPopupVisible) {
//        return false;
//    } else {
//        if (_searchmoreIsVisible) {
//            _searchmoreIsVisible=false;
//            $get("divSearchArea").style.backgroundImage="url('images/main/SearchBackground_Expand.png')";
//            Effect.SlideUp('divSearchMore', {duration:0.5});
//        } else {
//            _searchmoreIsVisible=true;
//            $get("divSearchArea").style.backgroundImage="url('images/main/SearchBackground_Collapse.png')";
//            Effect.SlideDown('divSearchMore', {duration:0.5});
//        }
//    }
}

function changeSorting() {
    var strSorting;
    
    strSorting=$get("cboSorting").value;
    ShopWebService.ChangeSorting(sid,strSorting,changeSorting_callback, generic_callbackerror);
}

function changeSorting_callback(result) {
    window.location.reload();
}

function changeAantalPerPagina() {
    var intAantal;
    
    intAantal=$get("cboAantalPerPagina").value;
    ShopWebService.ChangeAantalPerPagina(sid,intAantal,changeAantalPerPagina_callback, generic_callbackerror);
}

function changeAantalPerPagina_callback(result) {
    window.location.reload();
}

function flashTR(tr) {
    tr.style.backgroundColor='#ffffd0';
    //
}

function flashTR_execute(tr) {
    //
}

function changeLanguage(languageCode) {
    ShopWebService.ChangeLanguage(sid, languageCode, changeLanguage_callback, generic_callbackerror);
    return false;
}

function changeLanguage_callback(result) {
    window.location.reload(false);
}

function CheckAnnouncements() {
    // automatische meldingen
    if (_blnShowAnnouncement) {
        ShowAnnouncementAndResetFlags();
    }
    
    // handmatige meldingen (bijv. orders zijn samengevoegd)
    if (_blnIsManualAnnouncement) {
        $get('divAnnouncement_Subject').innerHTML=_strManualAnnouncementSubject;
        $get('divAnnouncement_Message').innerHTML=_strManualAnnouncementMessage;
        ShowAnnouncementAndResetFlags();
    }
}

function ShowAnnouncementAndResetFlags() {
    ShopWebService.ResetAnnouncementFlags(sid, ResetAnnouncementFlags_callback, generic_callbackerror);
}

function ResetAnnouncementFlags_callback(result) {
    $find('ModalBehaviourAnnouncement').show();
}

// Multi-language
function _ML(TranslationID, param0, param1, param2, param3, param4, param5 ,param6, param7, param8, param9) {
    var strText = _MLT[lang.toLowerCase() + '.' + TranslationID.toLowerCase()];

    if (param0!=undefined) {strText = strText.replace("{0}",param0);}
    if (param1!=undefined) {strText = strText.replace("{1}",param1);}
    if (param2!=undefined) {strText = strText.replace("{2}",param2);}
    if (param3!=undefined) {strText = strText.replace("{3}",param3);}
    if (param4!=undefined) {strText = strText.replace("{4}",param4);}
    if (param5!=undefined) {strText = strText.replace("{5}",param5);}
    if (param6!=undefined) {strText = strText.replace("{6}",param6);}
    if (param7!=undefined) {strText = strText.replace("{7}",param7);}
    if (param8!=undefined) {strText = strText.replace("{8}",param8);}
    if (param9!=undefined) {strText = strText.replace("{9}",param9);}
    
    if (strText == null) {
        return "[!" + TranslationID + " not found!]";
    }
    ShopWebService.RecordTranslationHit(sid,TranslationID.toLowerCase(),function() {return true;}, generic_callbackerror);
     
    return strText;
}

function validateEmail(text) {
    var filter=/^.+@.+\..{2,4}$/;

    if (filter.test(text))
        return true;
    else {
        return false;
    }
}

function isMouseLeaveOrEnter(e, handler)
{		
	if (e.type != 'mouseout' && e.type != 'mouseover') return false;
	var reltg = e.relatedTarget ? e.relatedTarget :
	e.type == 'mouseout' ? e.toElement : e.fromElement;
	while (reltg && reltg != handler) reltg = reltg.parentNode;
	return (reltg != handler);
}

function basebutton_hover(div, evt) {
    div.style.backgroundColor='#505050';
    div.style.color='white';
}

function basebutton_leave(div, evt) {
    div.style.backgroundColor='#c0c0c0';
    div.style.color='#404040';
}

function abortAjaxCall(request) {
    if (request != null)
    {
        var executor = request.get_executor();

        if (executor.get_started())
        {
            executor.abort();
        }
    }
}


function fadeShow() {
    $get('divFade').style.zIndex='4000';

    //IE
    if (document.body.clientHeight) {
        if (document.body.clientHeight < 1200) {
            $get('divFade').style.height='1200px';
        } else {
            $get('divFade').style.height=document.body.clientHeight.toString() + 'px';
        }
    }
    //FF
    if (document.height) {
        if (document.height < 1200) {
            $get('divFade').style.height='1200px';
        } else {
            $get('divFade').style.height=document.height.toString() + 'px';
        }
    }

    $get('divFade').style.display='block';
}

function fadeHide() {
    $get('divFade').style.zIndex='4000';
    $get('divFade').style.display='none';
}

function switchToShowroomMode() {
    ShopWebService.SwitchToShowroomMode(sid, SwitchToShowroomMode_callback, generic_callbackerror);
}

function SwitchToShowroomMode_callback(result) {
    window.location.reload();
}
