﻿/// <reference path="jquery-1.3.2-vsdoc2.js" />

function addItemToBasket(productNumber, productTitle) {

   // $('html, body').animate({ scrollTop: 0 }, 'fast');
    
    var date = new Date();

    $('#basketAjaxLoader').show();

    $.ajax(
        { type: 'POST',
            async: true,
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            url: '/Shop/services/BasketService.asmx/AddItem',
            data: "{ 'productNumber': '" + productNumber + "' }",
            success: function (result) { itemAddedComplete(result, productTitle); animateBasket(); },
            error: function(error) { alert('Error: ' + error); }
        });

}

function addCourseToBasket(productNumber, productTitle) {
    var date = new Date();
    var updated = null;

    $('.courseBox').each(function() {
        if (this.checked) {
            var info = $(this).val().split(/~/);
            var courseNo = info[0];
            var courseGroup = info[1];

            $.ajax(
            { type: 'POST',
                async: true,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                url: '/Shop/services/BasketService.asmx/AddCourseItem',
                data: "{ 'productNumber': '" + productNumber + "', 'courseGroup': '" + courseGroup + "', 'courseNo': '" + courseNo + "' }",
                success: function (result) { itemAddedComplete(result, productTitle); animateBasket(); },
                error: function(error) { alert('Error: ' + error); }
            });
            this.checked = false;
        }
    });
}

function animateBasket() {
    $('.cart-panel').animate({ borderTopColor: '#c90119', borderBottomColor: '#c90119' }, 'slow', function() { $('.cart-panel').animate({ borderTopColor: '#b9b9b9', borderBottomColor: '#b9b9b9' }, 'slow'); });
    $('.cart-panel .inner').animate({ borderLeftColor: '#c90119', borderRightColor: '#c90119' }, 'slow', function() { $('.cart-panel .inner').animate({ borderLeftColor: '#b9b9b9', borderRightColor: '#b9b9b9' }, 'slow'); });
}

function itemAddedComplete(data, productTitle) {
    var result = eval('(' + data.d + ')');
    if (result.Success == true) {
        $('#baskettotal').html(result.BasketTotal);
        $('#basketarticles').html(result.ItemsInBasket);

        var browser = navigator.appName;
        var b_version = navigator.appVersion;
        var version = parseFloat(b_version);

        $.jGrowl.defaults.position = 'center';
        $.jGrowl.defaults.theme = 'prev';
        $.jGrowl("<b>" + productTitle + " är lagd i varukorgen. </b>");
    }
    else {
        showBasketError(result.Message);
    }

    $('#basketAjaxLoader').hide();

    sndSCD();
}

function sndSCD() {
    SendCatalystData('1');
}

function showBasketError(message) {
    if (message.length > 0) {
        $("#basketErrorDialog").html(message);
        $("#basketErrorDialog").attr("title", "Meddelande");
    }
    $("#basketErrorDialog").dialog({
        bgiframe: true,
        modal: true,
        resizable: false,
        buttons: {
            Ok: function() {
                $(this).dialog('destroy');
            }
        }
    });
}

var dibsWindow = null;
function openDibsWindow(windowUrl) {
    dibsWindow = window.open(windowUrl, 'paywin', 'scrollbars,status,width=550,height=600');
    dibsWindow.focus();
    return true;
}

(function($) {
    $.fn.readOnly = function(b) {
        return ((b === undefined || b) ? this.attr('readonly', 'readonly').addClass('gray') : this.removeAttr('readonly').removeClass('gray'));
    };

    var _original = window._;
    window._ = window.AvanBar = {
        version: 'AvanBar 1.0',
        site: 'Default',
        noConflict: function(name) {
            if (name !== undefined) {
                window[name] = window._;
            }
            window._ = _original;
        },
        log: function(m) {
            if (typeof console === 'object') {
                console.log(m);
            }
            else {
                alert(m);
            }
        },
        listProperties: function(o) {
            if (o === undefined)
                o = this;
            for (var v in o)
                AvanBar.log(v);
        }
    };

    AvanBar.clearInputsOnFocus = (function() {
        function focusHandler(e) {
            var $t = $(e.target);
            if ($t.val() === $t.data('placeholder'))
                $t.val('');
        }
        function blurHandler(e) {
            var $t = $(e.target);
            if ($t.val() === '')
                $t.val($t.data('placeholder'));
        }
        function init(selector, context) {
            $(function() {
                $(selector, $(context)[0]).each(function() {
                    var $t = $(this);
                    $t.data('placeholder', $t.val())
                    .focus(focusHandler)
                    .blur(blurHandler);
                });
            });
        }
        return { init: init }
    })();

    AvanBar.getAttention = (function() {
        function init() {
            $(function() {
                function getSuccessHandler($tbs, $hidden) {
                    return function(msg) {
                        var d = msg.d;
                        if (d.Found) {
                            $tbs.eq(0).val(d.Telephone).readOnly(d.Telephone != '');
                            $tbs.eq(1).val(d.FirstName).readOnly(d.FirstName != '');
                            $tbs.eq(2).val(d.LastName).readOnly(d.LastName != '');
                            $tbs.eq(3).val(d.JobTitle).readOnly(d.JobTitle != '');
                        }
                        else {
                            $tbs.val('').readOnly(false);
                        }
                        $hidden.show();
                    };
                }
                function getSearch($email, handleSuccess) {
                    return function() {
                        var email = $email.val();
                        if (email) {
                            $.ajax({
                                type: 'POST',
                                async: true,
                                contentType: "application/json; charset=utf-8",
                                dataType: "json",
                                url: '/Shop/services/AttentionService.asmx/GetAttentionInformation',
                                data: "{ 'email': '" + email + "' }",
                                success: handleSuccess
                            });
                        }
                    }
                }

                // hook up all 'hämta information'-buttons and do a search for all signups with an entered e-mail address
                $('.main-column').each(function() {
                    var $container = $(this);
                    var $btn = $container.find('.get-info');
                    var $tbs = $container.find('input:text').not(':first');
                    var $hidden = $btn.closest('.input-holder').next();
                    var $email = $container.find('input:first');

                    var handleSuccess = getSuccessHandler($tbs, $hidden);
                    var search = getSearch($email, handleSuccess);

                    $btn.click(function(e) {
                        search();
                        e.preventDefault();
                    })
                    if ($email.val() != '' && $tbs.filter(':empty').size() !== 0) {
                        $hidden.show();
                    }
                });

            });
        }
        return { init: init }
    })();
})(jQuery)
