﻿$(document).ready(function () {
    var searchHasFocus = false;
    $('#itemsearchbutton').click(function () {
        itemSearch(true);
        return false;
    });
    document.lookupHash = new Hash();
    var lastValue;

    $("#itemsearchinput").keydown(function (e) {
        switch (e.keyCode) {
            case KEY.RETURN:
                //$('#itemsearchinput').val(lastValue);
                itemSearch(true);
                return false;
            default:
                lastValue = $('#itemsearchinput').val();
                return true;
        }
    })
	.click(function () {
	    if (!searchHasFocus) {
	        $("#itemsearchinput").select();
	        searchHasFocus = true;
	    }
	})
	.blur(function () {
	    searchHasFocus = false;
	});

    BSFunction();
});

function BSFunction() {
    var checkedbox = document.getElementById('tradeterms');
    if (checkedbox == null) {
        return;
    }
    if (!checkedbox.checked) {
        $('#checkoutbuttonid').removeClass("formsubmit");//.addClass("disabled");
    }

    //$('#bs_skjulutgaattevarer_chb_id').attr('checked', 'checked');
}

$('#checkoutbuttonid').click(function () {
    var checkboxes = document.getElementById('tradeterms');
    if (!checkboxes.checked) {
        alert("Bekreft at du har lest handlebetingelser først.");
    }

});
$('#tradeterms').change(function func() {
    var checkboxes = document.getElementById('tradeterms');
    if (checkboxes.checked) {
        $('#checkoutbuttonid').removeClass("disabled").addClass("formsubmit");
        $('#checkoutbuttonid').click(function () {
            submitCurrentForm(this);
        });
    }
    else {
        $('#checkoutbuttonid').removeClass("formsubmit").addClass("disabled").unbind().removeData('events');
    }
});

function toggleCheckBox(chbId, classStr, styleStr, hostingControl) {

    if ($('#' + chbId + ':checked').length > 0) {
        
        $('#' + chbId).removeAttr('checked');
    }
    else {

        if ($('#' + chbId).length == 0) {
            
            $(document.createElement("input")).attr({
                type: 'checkbox'
                    , id: chbId
                    
                    , style: styleStr
                    , value: hostingControl.value
            }).addClass(classStr).appendTo(hostingControl);

//            var inputEl = $.create("input");
//            //hostingControl.append(inputEl);
//            inputEl.attr({
//                type: 'checkbox'
//                    , id: chbId

//                    , style: styleStr
//                    , value: hostingControl.value
//            }).addClass(classStr).appendTo(hostingControl);
        }

        $('#' + chbId).attr('checked', 'checked');
    }
}

var removedFilterClass;
function setRemovedFilter(filterClass) 
{
    removedFilterClass = filterClass;
}

function uncheckCheckBoxes(classStr, hostingControl) {
    //alert('uncheckCheckBoxes');
    try {

        //alert('length = ' + $('.' + classStr + ':checked').length);
        //alert('.' + classStr + ':checked');
        $('.' + classStr + ':checked').each(function (n3, chbCt) {
            chbCt.removeAttr('checked');
            chbCt.removeAttribute('checked');
            chbCt.remove();
            hostingControl.removeChild(chbCt);
        });
    }
    catch (err) { }
}


function uncheckCheckBoxesAndToggleCheckBox(chbId, classStr, styleStr, hostingControl) {
    //alert('uncheckCheckBoxesAndToggleCheckBox');
    uncheckCheckBoxes(classStr, hostingControl);
    toggleCheckBox(chbId, classStr, styleStr, hostingControl);
}

function applySearchFilters(field2typeStr) {

    var allFilterArr = Array();
    var i = 0;

    if (removedFilterClass != 'ALL') {

        $.each(field2typeStr.split('&'), function (n, field2typeV) {

            var field2typeArr = field2typeV.split('=');
            var fieldName = field2typeArr[0]; //alert(fieldName);
            var fieldType = field2typeArr[1];

            if (removedFilterClass != 'filter_' + fieldName) {

                var fieldSelectedValuesArr = Array();

                $('.filter_' + fieldName + ':checked').each(function (n2, chbCtrl) {
                    //alert(chbCtrl.id);
                    //if (chbCtrl.id.indexOf('_ALLUNCHECKED') < 0) {
                    fieldSelectedValuesArr[n2] = encodeURIComponent(chbCtrl.value ? chbCtrl.value : '_empty_');
                    //}
                });

                if (fieldSelectedValuesArr.length > 0) {
                    allFilterArr[i] = fieldName + '=' + fieldSelectedValuesArr.join('|');
                    i++;
                }
            }
        });
    }
    removedFilterClass = "";


    // utgaatte varer
    var checkedValue = $('#bs_skjulutgaattevarer_chb_id').attr('checked').toString().toLowerCase();
    isHideUtgaatteVarer = (checkedValue == 'true') || (checkedValue == 'checked');

    if (isHideUtgaatteVarer) {
        allFilterArr[i] = 'VarigUtsolgt_BSInventTable' + '=' + '0';
    }
    else {
        allFilterArr[i] = 'VarigUtsolgt_BSInventTable' + '=' + '0|1';
    }
    i++;


    $('#itemfilterexpinput').val(allFilterArr.join('&'));
    
    //alert($('#itemfilterexpinput').val() + '       2');
}

function itemSearch(isProcessOnlySearchWord) {
    if(document.productViewWebPartId === undefined)
        document.productViewWebPartId = 'ProductView.ax';
        
    var sortfieldv = '';
    var sortdirv = '';
    var filterexpv = '';

    if (!isProcessOnlySearchWord) {
        sortfieldv = $('#itemsortvalueinput').val() != undefined ? $('#itemsortvalueinput').val() : "";
        sortdirv = $('#itemsortdirinput').val() != undefined ? $('#itemsortdirinput').val() : "";
        filterexpv = $('#itemfilterexpinput').val() != undefined ? $('#itemfilterexpinput').val() : "";
        filterexpv = encodeURIComponent(filterexpv);
    }

    var urlExistingArr = Array();
    var i = 0;

    $.each(getUrlVars(), function (key, value) {
        
        if (key != 'search'
            && key != 'searchparam'
            && key != 'itemsearchinput'
            && key != 'sortfield'
            && key != 'sortdir'
            && key != 'filterexp'
            && key != 'webpartid'
            && key != 'isshowmorefilters') {

            urlExistingArr[i] = key + '=' + value;
            i++;
        }
    });

    // show more filters
    if ($('#chbShowMoreFilters').length > 0) {
        var checkedValueSMF = $('#chbShowMoreFilters').attr('checked').toString().toLowerCase();
        isShowMoreFilters = (checkedValueSMF == 'true') || (checkedValueSMF == 'checked');
        if (isShowMoreFilters) {
            urlExistingArr[i] = 'isshowmorefilters' + '=' + 'true';
        }
    }

    var existingUrlStr = '';
    if (!isProcessOnlySearchWord)
        existingUrlStr = urlExistingArr.length > 0 ? '&' + urlExistingArr.join('&') : '';

    if ($('#itemsearchinput').val() || sortfieldv || filterexpv || existingUrlStr.indexOf('productgroupid') > 0) {

        if ($('#dialogVent').length > 0) {
            $('#dialogVent').show();
        }
        
        window.location = '/?'
                            + 'webpartid=' + document.productViewWebPartId
                            +  existingUrlStr
                            + '&search=true'
                            + '&searchparam=itemsearchinput' 
                            + '&itemsearchinput=' + encodeURIComponent($('#itemsearchinput').val()) 
                            + '&sortfield=' + sortfieldv 
                            + '&sortdir=' + sortdirv 
                            + '&filterexp=' + filterexpv;
    }
    return true;
}

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (m, key, value) {
        vars[key] = value;
    });
    return vars;
}


function refreshMiniBasket() {
    if (document.miniBasketWebPartId === undefined)
        document.miniBasketWebPartId = 'MiniSalesBasket.ax';
    var options = { loadinto: '.minibasketwrapper', webpartid: document.miniBasketWebPartId };
    serverConnector.loadHtml(options);
}

function refreshMenuVert(){
    var options = { loadinto: '.ctl00_prodnavdynamic', webpartid: 'ProductCatalog.ax' };
    serverConnector.loadHtml(options);

}

