﻿function searchresultPopup(data) {
    if (data.length >= 2) {
        abortAjaxCall(_callbackHandleSearchPopup);  // vorige request discarden

        _perf = new Date().getTime();
        _callbackHandleSearchPopup = ShopWebService._staticInstance.SearchPopupResult(sid, data, SearchPopupResult_callback, SearchPopupResult_failed, data);
        //_callbackHandleSearchPopup = ShopWebService._staticInstance.SearchPopupResultv2(sid, data, SearchPopupResult_callback, SearchPopupResult_failed, data);
    } else {
        resetSearchPopupView();
    }
}

var SearchDivZindex = '';

function resetSearchPopupView() {
    if (_btnIsSearchPopupVisible) {
        if (SearchDivZindex != '') {
            $get('divFade').style.zIndex = SearchDivZindex;
            SearchDivZindex = '';
        }
        fadeHide()
        $get('divSearchResultPopup').style.display='none';
        //$get('divSearchArea').style.background="url('images/main/SearchBackground_Plain.png')";
        $get('txtSearch').style.backgroundColor='white';
        $get('divSearchArea').style.backgroundRepeat='no-repeat';
        _btnIsSearchPopupVisible=false;
    }
}

function closeSearchResultPopup() {
    resetSearchPopupView();
    if (_pageid=='cart') {
        window.location.href=window.location.href;
    } else {
        //ShopWebService.LogSearch(sid, _strPopupCurrentSearch, _strPopupCurrentSearchHits, 0, LogSearch_callback, generic_callbackerror);
    }
}

function LogSearch_callback(result) {
    //
}

function SearchPopupResult_failed(err) {
    //
}

function SearchPopupResult_callback(result, search) {
    var strHTML='';
    var blnIsOdd=true;
    var intHashSize=0;
    var blnShowCountOnly=false;

    var start = new Date().getTime();
    
    _strPopupCurrentSearch = search;
    _strPopupCurrentSearchHits = intHashSize;

    if (result==null) {
        resetSearchPopupView();
    } else {
    
        if (result.error!='') {
            //alert(result.error);
            return;
        }
    
        intHashSize = result.rows;

        strHTML += '<ul class="ulSearchResults">';

        if (result.showdetail==true) {
            blnShowCountOnly = false;
            if (intHashSize > 8) {
                intHashSize=8;  //clip op 8 artikelen
            }
        } else {
            blnShowCountOnly = true;
        }

        if (intHashSize==0) {
            strHTML += '<li>' + result.nodatatext + '</li>';
            $get('divMoreResults').style.display='none';
        } else {
            $get('spnMoreResults').innerHTML=result.rows.toString();
            $get('divMoreResults').style.display='block';
            if (blnShowCountOnly) {
                strHTML += '<li>' + result.detailtext + '</li>';
            }
            else {
                for (i=0;i<intHashSize;i++) {
                    var strTemplate = '<li class="row{alternate}">' + 
                                          '<img class="picture" id="cardimgpopup_{ItemCode}" src="{ImageSource}" '+
                                                'onclick="return openBigImage(\'{ItemCode}\');" />' +
                                          '<div class="info{FirstLast}" artcode="{ItemCode}" seourl="{SeoUrl}" ' +
                                                        'onclick="return clickPopupRow(this,event)">' +
                                              '{stockDiv}' +
                                              '<div class="orderInfo">{orderInfo}</div>' +
                                              '<div class="itemInfo">' +
                                                  '<span class="itemCode">{artikelcode} - {description}</span>' +
                                                  '{bigDescription}' +
                                              '</div>' +
                                          '</div>' +
                                      '</li>';
                                      
                    /*Picture column*/
                    var strAlternate = '';
                    if (!blnIsOdd) {
                        strAlternate = ' alternate';
                    }
                    strHTML += strTemplate.replace(/{alternate}/gi, strAlternate);
                    strHTML = strHTML.replace(/{ImageSource}/gi, _thumbnailStub + result.data[i].ImageName + '.jpg');

                    /*Info column*/
                    if (result.data[i].VoorraadIndicatie != -1 && result.data[i].HasVariants == 0)
                        strHTML = strHTML.replace(/{stockDiv}/gi, '<div class="stockindicator stock_' + result.data[i].VoorraadIndicatie + '"></div>');
                    else
                        strHTML = strHTML.replace(/{stockDiv}/gi, '');
                    
                    /*Order info (price, qty, addToCart*/
                    if ((result.data[i].UwPrijs == 0) && (result.data[i]['Price0Label'] && result.data[i].Price0Label != ''))
                        strHTML = strHTML.replace(/{orderInfo}/gi, '<span>' + result.data[i].Price0Label + '</span>');
                    else
                        strHTML = strHTML.replace(/{orderInfo}/gi, '<span>&euro; {price}</span>' +
                        '<input type="text" id="txtAantalPopup_{Itemcode}" value="{minOrderQty}" />' +
                        '<div class="basebutton btnCart{Active}" onclick="stopevent(event); ' +
                        '{functioncall} return false;"><p>' + _ML("Knoppen.Bestellen") + '</p></div>');
                    /*Info template is complete, fill with data!*/
                    if (result.data[i].MaxRight > 1) {
                        strHTML = strHTML.replace(/{Active}/gi, '');
                        strHTML = strHTML.replace(/{functioncall}/gi, 'addtocartfromsearchpopup_wrapper(\'' + CWEncode(result.data[i].Artikelcode) + '\',this,0,true,\'txtAantalPopup_\',' + result.data[i].MinBestelEenheid + ');');
                    }
                    else {
                        strHTML = strHTML.replace(/{Active}/gi, " disabled");
                        strHTML = strHTML.replace(/{functioncall}/gi, '');                        
                    }
                    strHTML = strHTML.replace(/{price}/gi, result.data[i].DisplayPrijs);
                    strHTML = strHTML.replace(/{minOrderQty}/gi, result.data[i].MinBestelEenheid);
                    
                    if (result.data[i].ArtikelcodeKlant != '')
                        strHTML = strHTML.replace(/{artikelcode}/gi, CWHtmlEncode(result.data[i].Artikelcode) + '/' + CWHtmlEncode(result.data[i].ArtikelcodeKlant));
                    else
                        strHTML = strHTML.replace(/{artikelcode}/gi, CWHtmlEncode(result.data[i].Artikelcode));
                    strHTML = strHTML.replace(/{description}/gi, CWHtmlEncode(result.data[i].Description));
                    if (result.data[i].ShortDescription == null && !_blnShowBigDescriptionsInSearchPopup)
                        strHTML = strHTML.replace(/{bigDescription}/gi, '');
                    else
                        strHTML = strHTML.replace(/{bigDescription}/gi, '<p class="bigDescription">' + CWHtmlEncode(result.data[i].ShortDescription) + '</p>');                    
                    
                    var FirstLastClass = '';
                    if (i == 0)
                        FirstLastClass = ' first';
                    if (i==intHashSize-1)
                        FirstLastClass += ' last';
                    strHTML = strHTML.replace(/{FirstLast}/gi, FirstLastClass);
                    strHTML = strHTML.replace(/{SeoUrl}/gi, CWEscape(result.data[i].seo_url));
                    
                    /*Overall replace*/
                    strHTML = strHTML.replace(/{ItemCode}/gi, CWEncode(result.data[i].Artikelcode));
                    
                    blnIsOdd = !blnIsOdd;
                }
            }
        }
        strHTML += '</ul>';
        
        $get('divSearchResultContent').innerHTML=strHTML;
        $get('divSearchResultPopup').style.display='block';
        $get('divSearchArea').style.background = '';
        
        if (SearchDivZindex = '')
            SearchDivZindex = $get('divFade').style.zIndex;
        fadeShow();
        $get('divFade').style.zIndex = '8100';

        _btnIsSearchPopupVisible=true;
    }
    
    var diff = new Date().getTime() - start;
    var fulldiff = new Date().getTime() - _perf;
    
    //window.status = 'Total front-to-back:' + fulldiff + 'ms, CLIENT:' + diff + 'ms, SERVER:' + result.took + 'ms (step1:' + result.step1 + ', step2:' + result.step2 + ', step3:' + result.step3 + ')';
}

function clickPopupRow(obj, evt) {
    var tag;
    if (evt.target) {
        tag=evt.target.tagName;
    }
    if (evt.srcElement) {
        tag=evt.srcElement.tagName;
    }
    
    if (tag=='INPUT' || tag=='IMG') {
        return false;
    }

    // Log het doorklikken naar detail (id=1)
    ShopWebService.LogSearch(sid, _strPopupCurrentSearch, 1, 1, clickPopupRow_callback, generic_callbackerror, obj);
}

function clickPopupRow_callback(result, obj) {
    return showdetail(obj.attributes["artcode"].value, obj.attributes["seourl"].value);
}

