function switchTabs(active_id, inactive_id) {
    document.getElementById(inactive_id).style.display = 'none';
    document.getElementById(inactive_id + '_header').className = 'tab_header';
    document.getElementById(active_id).style.display='';
    document.getElementById(active_id + '_header').className = 'tab_header active';
}

function getDefaultSize(classname) {
    size = 596;
    switch (classname) {
      case "recommendation_small":
        size = 249;
        break;
      case "recommendation":
        size = 745;
        break;
      case "recommendation_manufacturer":
        size = 768;
        break;
      case "recommendation_category":
        size = 770;
        break;
    }
    return size;

}

function pageBackward(window_id, size) {

    size = parseInt(size);

    //if(size == 0) {
        size = getDefaultSize(document.getElementById(window_id).parentNode.parentNode.className);
    //}

    var recomm_window = document.getElementById(window_id);
    curr_page = parseInt(document.getElementById(window_id+'_curr_page').innerHTML);
    curr_pos = parseInt(document.getElementById(window_id+'_curr_pos').innerHTML);
    if(curr_page > 1) {
        recomm_window.style.left = (curr_pos+size)+'px';
        document.getElementById(window_id+'_curr_page').innerHTML = curr_page-1;
        document.getElementById(window_id+'_curr_pos').innerHTML = curr_pos+size;
    }
    document.getElementById(window_id+'_right').style.display = '';
    if(curr_page-1 == 1){
        document.getElementById(window_id+'_left').style.display = 'none';
    }
}

function pageForward(window_id, size) {
    size = parseInt(size)
    size = getDefaultSize(document.getElementById(window_id).parentNode.parentNode.className);
    var recomm_window = document.getElementById(window_id);
    pages = parseInt(document.getElementById(window_id+'_pages').innerHTML);
    curr_page = parseInt(document.getElementById(window_id+'_curr_page').innerHTML);
    curr_pos = parseInt(document.getElementById(window_id+'_curr_pos').innerHTML);
    if(curr_page < pages) {
        recomm_window.style.left = (curr_pos-size)+'px';
        document.getElementById(window_id+'_curr_page').innerHTML = curr_page+1;
        document.getElementById(window_id+'_curr_pos').innerHTML = curr_pos-size;
    }
    document.getElementById(window_id+'_left').style.display = '';
    if(curr_page+1 == pages){
        document.getElementById(window_id+'_right').style.display = 'none';
    }


}

function calcPrice(oAmount, oSingle, oTotal) {
    if(oAmount.value != '' && isUnsignedInteger(oAmount.value)) {
        oTotal.innerHTML = number_format(parseFloat(oSingle.value)*parseInt(oAmount.value), 2, '.', '');
    }
}

function isUnsignedInteger(s) {
  return (s.toString().search(/^[0-9]+$/) == 0);
}

function number_format (number, decimals, dec_point, thousands_sep) {
    // Formats a number with grouped thousands
    //
    // version: 906.1806
    // discuss at: http://phpjs.org/functions/number_format    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://getsprink.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +     bugfix by: Howard Yeend
    // +    revised by: Luke Smith (http://lucassmith.name)
    // +     bugfix by: Diogo Resende
    // +     bugfix by: Rival    // +     input by: Kheang Hok Chin (http://www.distantia.ca/)
    // +     improved by: davook
    // +     improved by: Brett Zamir (http://brett-zamir.me)
    // +     input by: Jay Klehr
    // +     improved by: Brett Zamir (http://brett-zamir.me)    // +     input by: Amir Habibi (http://www.residence-mixte.com/)
    // +     bugfix by: Brett Zamir (http://brett-zamir.me)
    // *     example 1: number_format(1234.56);
    // *     returns 1: '1,235'
    // *     example 2: number_format(1234.56, 2, ',', ' ');    // *     returns 2: '1 234,56'
    // *     example 3: number_format(1234.5678, 2, '.', '');
    // *     returns 3: '1234.57'
    // *     example 4: number_format(67, 2, ',', '.');
    // *     returns 4: '67,00'    // *     example 5: number_format(1000);
    // *     returns 5: '1,000'
    // *     example 6: number_format(67.311, 2);
    // *     returns 6: '67.31'
    // *     example 7: number_format(1000.55, 1);    // *     returns 7: '1,000.6'
    // *     example 8: number_format(67000, 5, ',', '.');
    // *     returns 8: '67.000,00000'
    // *     example 9: number_format(0.9, 0);
    // *     returns 9: '1'    // *     example 10: number_format('1.20', 2);
    // *     returns 10: '1.20'
    // *     example 11: number_format('1.20', 4);
    // *     returns 11: '1.2000'
    // *     example 12: number_format('1.2000', 3);    // *     returns 12: '1.200'
    var n = number, prec = decimals;

    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);return (Math.round(n*k)/k).toString();
    };

    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;

    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
     var abs = toFixedFix(Math.abs(n), prec);
    var _, i;

    if (abs >= 1000) {
        _ = abs.split(/\D/);i = _[0].length % 3 || 3;

        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);} else {
        s = s.replace('.', dec);
    }

    var decPos = s.indexOf(dec);if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';}
    return s;
}

function switchDetailTabs(active_id, inactive_id) {
    document.getElementById(inactive_id).style.display = 'none';
    document.getElementById(inactive_id + '_header').className = '';
    document.getElementById(active_id).style.display='';
    document.getElementById(active_id + '_header').className = 'current';
}

function switchSliderTemplate() {
    slider = document.getElementById('recomm_window');
    if(slider) {
        if(slider.parentNode.parentNode.className == 'recommendation') {
            slider.parentNode.parentNode.className = 'recommendation_category';
        }
    }
}

function vrsn_splash() {
    dn="WWW.NECKERMANN.CH";
    lang="en";
    aff="VeriSignGermany";
    tpt="transparent";
    vrsn_style="WW";
    splash_url="https://sealinfo.verisign.com";
    seal_url="https://seal.verisign.com";
    u1=splash_url+"/splash?form_file=fdf/splash.fdf&dn="+dn+"&lang="+lang;
    u2=seal_url+"/getseal?at=0&&sealid=1&dn="+dn+"&aff="+aff+"&lang="+lang;
    u3=seal_url+"/getseal?at=1&&sealid=1&dn="+dn+"&aff="+aff+"&lang="+lang;
    var sopener;

    if (sopener && !sopener.closed){
        sopener.focus();
    } else {
        tbar = "location=yes,status=yes,resizable=yes,scrollbars=yes,width=560,height=500";
        var sw = window.open(u1,'VRSN_Splash',tbar);
        if(sw) {
            sw.focus();
            sopener=sw;
        }
    }
}



/* basket.tpl form handling to secure vouchers are submitted */
function fcBasketSubmit(){
	var voucherNr = $('#voucherNr').val();
	if (voucherNr != '') {
		$('#voucher').submit();
	} else {
		$('#fcBasketForm').submit();
	}
}

var fcLayerTimerId = null;

function fcShowLayer(id, blUseTimeout) {
    if(blUseTimeout == true) {
        fcStopTimer();
    }
    document.getElementById(id).style.display = 'block';
}

function fcHideLayer(id, blUseTimeout) {
    if(blUseTimeout == true) {
        fcLayerTimerId = window.setTimeout(function(){fcCloseLayer(id);}, 700);
    } else {
        fcCloseLayer(id);
    }
}

function fcCloseLayer(id) {
    document.getElementById(id).style.display = '';
}

function fcStopTimer() {
    if(fcLayerTimerId){
        window.clearTimeout(fcLayerTimerId);
        fcLayerTimerId = null;
    }
}

function fcChangeCheckboxAGB(oCheckbox) {
    document.getElementById('test_OrderConfirmAGBTop').checked = oCheckbox.checked;
    document.getElementById('test_OrderConfirmAGBBottom').checked = oCheckbox.checked;
}
