﻿
/* Standardfuntkion bei Erfolg */
function CallSuccess(res, destCtrl)
{    
    var dest = document.getElementById(destCtrl);
    dest.innerHTML = res;
}

function reload() {
    location.href = location.href;
}

/* Standardfuntkion bei Fehler */
function CallFailed(res)
{
    //alert(res.get_message());
}

/* SingleItem */

function ManageTabs(id, opt, itemID) {
    document.getElementById('divContent').innerHTML = '<div class="lb_wait"></div>';
    webServiceProxy.GetTabContent(id, opt, itemID, ManageTabsSuccess, CallFailed, 'divContent');
}

function ManageTabsSuccess(res, destCtrl) {
    var dest = document.getElementById(destCtrl);
    dest.innerHTML = res;

    //Erweiterung für den Accordion-Effekt im Reiter Sachmerkmale
    if (res.indexOf("Accordion1") > 0) {
        var Accordion1 = new Spry.Widget.Accordion("Accordion1");
    }
}

/* ItemRatings */
function SetAndGetUseful(id, dest, useful) {
    webServiceProxy.SetAndGetUsefulString(id, useful, CallSuccess, CallFailed, dest);
}

/* Webservice Suche BEGIN*/
var pressedKeyCode = 0;
var SearchCtrl = null;
var timer = 0;

function KeyHandler(e) {
    if (!e) var e = window.event
    if (e.keyCode) pressedKeyCode = e.keyCode;
    else if (e.which) pressedKeyCode = e.which;
}

function startSearch(content, tbSearchUniqueID) {
    if (content != ''){
        document.getElementById('searchresultpreview').style.display = 'inline';
        webServiceProxy.startSearch(content, tbSearchUniqueID, CallSuccess, CallFailed, 'searchresultpreview');
    }
    else{
        document.getElementById('searchresultpreview').style.display = 'none';
    }
}

function doChange(tbSearchUniqueID,itemName, itemID, categoryID) {
    __doPostBack(tbSearchUniqueID,itemName + '~' + itemID + '~' + categoryID);
}
function tbSearchEvent(MinimumLetters4Search, Ctrl, e) {
    timer = 0;
    KeyHandler(e);
    if (pressedKeyCode >= 37 && pressedKeyCode <= 40) {
        scrollSearch();
    }
    else if (pressedKeyCode == 13) {
        if (document.getElementById("lblSearchPlugin_SelectedRow") != null && document.getElementById("lblSearchPlugin_SelectedRow").innerHTML != '') {
            try {
                window.setTimeout(document.getElementById(document.getElementById("lblSearchPlugin_SelectedRow").innerHTML).onclick,0);
            }
            catch (e){
                document.getElementById(document.getElementById("lblSearchPlugin_SelectedRow").innerHTML).click();
            }
        }
        else {
            __doPostBack(Ctrl.uniqueID, '');
        }
    }
    else {
        if (Ctrl.value.length > MinimumLetters4Search) {
            SearchCtrl = Ctrl;
            startTimer();
            //startSearch(Ctrl.value, Ctrl.name);
        }
        else {
            document.getElementById('searchresultpreview').style.display = 'none';
        }
    }
}

function startTimer() {
    timer++;

    if (timer > 1) {
        startSearch(SearchCtrl.value, SearchCtrl.name);
    }
    else {
        setTimeout('startTimer()', 1000);
    }
}

function selectRow(ctrl) {
    if (document.getElementById("lblSearchPlugin_SelectedRow").innerHTML != '') {
        unSelectRow(document.getElementById(document.getElementById("lblSearchPlugin_SelectedRow").innerHTML));
    }
    document.getElementById("lblSearchPlugin_SelectedRow").innerHTML = ctrl.id;
    ctrl.className = "tb_WSSearch_selected";
}

function unSelectRow(ctrl) {
    var i = parseInt(ctrl.id.replace("SearchPlugin_Row", ""));
    if (i % 2 == 0) {
        ctrl.className = "tb_WSSearch_evenrow";
    }
    else {
        ctrl.className = "tb_WSSearch_oddrow";
    }
}

function scrollSearch() {
    var selectedRow = document.getElementById("lblSearchPlugin_SelectedRow");
    var i;
    if (pressedKeyCode == 38) {
        //Pfeil nach oben
        if (selectedRow.innerHTML == '') { selectedRow.innerHTML = 'SearchPlugin_Row1'; }
        i = parseInt(selectedRow.innerHTML.replace("SearchPlugin_Row", ""));
        
        if (i - 1 >= 0) {
            selectRow(document.getElementById("SearchPlugin_Row" + (i - 1)));
        }
    }
    else if (pressedKeyCode == 39 || pressedKeyCode == 40) {
        //Pfeil nach unten
        if (selectedRow.innerHTML == '') {
            i = -1;
        }
        else {
            i = parseInt(selectedRow.innerHTML.replace("SearchPlugin_Row", ""));
        }
        if (document.getElementById("SearchPlugin_Row" + (i + 1)) != null) {
            selectRow(document.getElementById("SearchPlugin_Row" + (i + 1)));
        }
    }
}

/* Webservice Suche END*/


/* Artikelvergleich BEGIN*/
var comparePopup;

function doCompare() {
    document.getElementById('divItemCompare').style.display = 'inline';
    webServiceProxy.GetItemsCompare(CallSuccess, CallFailed, 'divItemCompare');
}

function checkCompareItems() {
    webServiceProxy.CheckCompareItems(checkCompareItemsDone, CallFailed);
}

function checkCompareItemsDone(res) {
    if (res.split('|')[0] == '1') { 
        //comparePopup = window.open(res.split('|')[1],'','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=835,height=800,top=150,left=250');
        location.href = res.split('|')[1];
    }
    else {
        alert(res.split('|')[1]);
    }
}

function resetItemCompare() {
    webServiceProxy.ResetItemCompare(resetItemCompareDone, CallFailed);
}

function resetItemCompareDone(res, destCtrl) {
    //comparePopup.close();
    reload();
}

function boxClicked(itemId,title,state){
    webServiceProxy.SetItemCompare(itemId, title, state);

    if (state === true) {
        document.getElementById('DIVCompareClass_' + itemId).className = document.getElementById('DIVCompareClass_' + itemId).getAttribute('compareon');
    }
    else {
        document.getElementById('DIVCompareClass_' + itemId).className = document.getElementById('DIVCompareClass_' + itemId).getAttribute('compareoff');
    }
    
    if (document.getElementById('divItemCompare').style.display == 'inline'){
        window.setTimeout('logicbase.Shop.LBShopWebService.GetItemsCompare(CallSuccess, CallFailed, "divItemCompare")', 0);
    }
}

/* Artikelvergleich END*/

/* Sachmerkmale BEGIN */
function GetAttributesCharacteristic(classId) {
    webServiceProxy.GetAttributes2ClassId(classId, GetAttributesCharacteristicDone, CallFailed, 'divSMLAttributes');
}

function GetAttributesCharacteristicDone(res, destCtrl) {   
    
    //gerendeteres Control auf Seite bringen
    var dest = document.getElementById(destCtrl);
    dest.innerHTML = res;

    //Slider initialisieren
    var mySlideA = new Slider($('slider_minmax_gutter_m'), $('slider_minmax_minKnobA'), $('slider_bkg_img'), {
        start: 0,
        end: 5,
        offset: 8,
        snap: false,
        onChange: function(pos) { $('slider_minmax_min').setHTML('min ' + pos.minpos); $('slider_minmax_max').setHTML('max ' + pos.maxpos); }
    }, $('slider_minmax_maxKnobA')).setMin(2).setMax(3);
    
    var mySlideB = new Slider($('slider_gutter_1'), $('slider_knob_1'), $('slider_bkg_img_1'), {
        start: 0,
        end: 120,
        offset: 10,
        onChange: function(pos) {
            $('slider_current_val').setHTML(pos + ' inches');

        }
    }, null).setMin(100);
}

/* Sachmerkmale END*/

/* Gibt die Pflichtzubehörartikel zu einem Artikel zurück, die im Warenkorb sind */
function GetAccessoryItems(shoppingCartPositionId, DivId)
{
    webServiceProxy.GetAccessoryItems(shoppingCartPositionId, CallSuccess, CallFailed, DivId);
}

/* Passwort Sicherheit prüfen */
function checkPWSafety(user, pwd, DivId) {
    if (pwd != null) {
        webServiceProxy.checkPWSafety(user, pwd, CallSuccess, CallFailed, DivId);
    }
}

/* Erweiterung PayPal Express BEGIN */
function setPayPalExpressCheckout(messageControlId) {
    webServiceProxy.SetPayPalExpressCheckout(setPayPalExpressCheckoutSuccess, CallFailed, messageControlId);
}

function setPayPalExpressCheckoutSuccess(res, destCtrl) {
    if (res != '') {
        redirect(res);
    }
    else {
        document.getElementById(destCtrl).style.display = 'none';
        webServiceProxy.GetMessages(CallSuccess, CallFailed, 'divMessages');
    }
}
/* Erweiterung PayPal Express END */

/// <summary locid="Zeigt die Fehlermeldungen an" />
function displayMessages() {
    webServiceProxy.GetMessages(CallSuccess, CallFailed, 'divMessages');
}

/* Kreditkartendaten abfragen */
function SetCC(CreditCard, CCNumber, CCOwner, CCValidToMonth, CCValidToYear, SecurityPin) {
    logicbase.Shop.LBShopWebService.SetCC(CreditCard, CCNumber, CCOwner, CCValidToMonth, CCValidToYear, SecurityPin);
}

function createSpecialAccount(mailCtrl, messagesDiv) {
    logicbase.Shop.LBShopWebService.CreateSpecialAccount(document.getElementById(mailCtrl).value, createSpecialAccountSuccess, CallFailed, messagesDiv);
}

function createSpecialAccountSuccess(res, destCtrl) {
    if (res.split('|')[0] == '0') {
        location.href = res.split('|')[1];
    }
    else {
        document.getElementById(destCtrl).innerHTML = res.split('|')[1];
    }
}
