﻿/* Standardfuntkion bei Erfolg */
function CallSuccess(res, destCtrl)
{    
    var dest = document.getElementById(destCtrl);
    dest.innerHTML = res;
}

function reload() {
    window.location.href = window.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>';
    logicbase.Shop.LBShopWebService.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) {
    logicbase.Shop.LBShopWebService.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';
        logicbase.Shop.LBShopWebService.startSearch(content, tbSearchUniqueID, CallSuccessWSSearch, CallFailed, 'searchresultpreview');
    }
    else{
        document.getElementById('searchresultpreview').style.display = 'none';
    }
}

function CallSuccessWSSearch(res, destCtrl) {
    if (res.length != 0) {
        document.getElementById('searchresultpreview').style.display = 'inline';
    }
    else {
        document.getElementById('searchresultpreview').style.display = 'none';
    }
    var dest = document.getElementById(destCtrl);
    dest.innerHTML = res;
}

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, '');
            //nach Enter die Textbox sperren
            Ctrl.disabled = true;
        }
    }
    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*/

function doCompare() {
    document.getElementById('divItemCompare').style.display = 'inline';
    logicbase.Shop.LBShopWebService.GetItemsCompare(CallSuccess, CallFailed, 'divItemCompare');
}

function boxClicked(itemId,title,state){
    logicbase.Shop.LBShopWebService.SetItemCompare(itemId, title, state);

    if (state === true) {
        document.getElementById('DIVCompareClass_' + itemId).className = 'lb_itembg3_compare';
    }
    else {
        document.getElementById('DIVCompareClass_' + itemId).className = 'lb_itembg3';
    }
    
    if (document.getElementById('divItemCompare').style.display == 'inline'){
        window.setTimeout('logicbase.Shop.LBShopWebService.GetItemsCompare(CallSuccess, CallFailed, "divItemCompare")',0);
    }
}

/* Artikelvergleich END*/

/* Sachmerkmale BEGIN */
function ddlSMLClass_changed(emptyMSG){
    if (document.getElementById(ddlSMLClassClientID).value == ''){
        document.getElementById("divSMLAttributes").innerHTML = emptyMSG;
    }
    else{
        CallWebService('');
    }
}

function GetVersions(){
    var attrIDs = '';
    var counter = 0;
    var classID = document.getElementById(ddlSMLClassClientID).value;
    while (document.getElementById('DDLAttribute' + counter) != null){
        var AttrID = document.getElementById('AttributeID' + counter).value;
        var AttrValue = document.getElementById('DDLAttribute' + counter).value;
        attrIDs = attrIDs + AttrID + 'µ' + AttrValue + '~';
        counter++;
    }
    attrIDs = attrIDs.replace (/^~+/, '').replace (/~+$/, '');
    CallWebService(attrIDs);
}

function CallWebService(attrIDs){
    var classID = document.getElementById(ddlSMLClassClientID).value;
    var hoehe = document.getElementById("divSMLAttributes").style.height;
    document.getElementById("divSMLAttributes").innerHTML = '<img src="' + waitIMG + '" width="20px" />';
    document.getElementById("divSMLAttributes").style.height = hoehe;
    logicbase.Shop.LBShopWebService.GetClassAttributes(classID, attrIDs , CallSuccess, CallFailed, 'divSMLAttributes');
}

function ResetClass(){
    var classID = document.getElementById(ddlSMLClassClientID).value;
    var hoehe = document.getElementById("divSMLAttributes").style.height;
    document.getElementById("divSMLAttributes").innerHTML = '<img src="' + waitIMG + '" width="20px" />';
    document.getElementById("divSMLAttributes").style.height = hoehe;
    logicbase.Shop.LBShopWebService.ResetSML(classID, CallSuccess, CallFailed, 'divSMLAttributes');
}
/* Sachmerkmale END*/

/* Gibt die Pflichtzubehörartikel zu einem Artikel zurück, die im Warenkorb sind */
function GetAccessoryItems(shoppingCartPositionId, DivId)
{
    logicbase.Shop.LBShopWebService.GetAccessoryItems(shoppingCartPositionId, CallSuccess, CallFailed, DivId);
}

/* Passwort Sicherheit prüfen */
function checkPWSafety(user, pwd, DivId) {
    if (pwd != null) {
        logicbase.Shop.LBShopWebService.checkPWSafety(user, pwd, CallSuccess, CallFailed, DivId);
    }
}

/* Telefonnummer ergänzen */
function addPhone(ctrl) {
    logicbase.Shop.LBShopWebService.addPhone(ctrl.value);
}
