/*
Include this in the Base.master, Best Regards Andreas Gotfredsen, Holviks.
	
The DOM Loaded is triggerd after dom is completed but befour the css and images is loaded
	
The Base Load is triggerd after the page is totaly loaded.
*/

/*
Svenska Specialtechen i Javascript
å   &aring;     unescape("%E5")
Å   &Aring;     unescape("%C5")
ä   &auml;      unescape("%E4")
Ä   &Auml;      unescape("%C4")
ö   &ouml;      unescape("%F6")
Ö   &Ouml;      unescape("%D6")
*/

// This is the Global vars
var scroller1 = null;
var scroller2 = null;
var minasidornav = null;
var calenders = null;
var PageInfoDisplay = null;

// This is initialized in cartMaster.js but need to be declared global
var cartAutocompleter = null;

var prodhandler;

function resizeFrame() {

    var viewportHeight = document.viewport.getHeight();
    var myHeaderDivHeight = $('header').getHeight();
    var myShopfieldDivHeight = $('shopfield').getHeight() + 10;
    var newFrameDivHeight = (viewportHeight - myHeaderDivHeight - myShopfieldDivHeight) - 3;

    $('menu-container').setStyle({ height: (newFrameDivHeight) + 'px', overflowX: 'hidden', overflowY: 'auto' });
    $('products').setStyle({ height: (newFrameDivHeight) + 'px', overflowX: 'hidden', overflowY: 'auto' });

    if (scroller1 != null) scroller1.updateResize();
    if (scroller2 != null) scroller2.updateResize();
}

function PageInfoOpen(url) {
    if (PageInfoDisplay != null) {
        if (scroller2 != null) scroller2.updateView(0);
        PageInfoDisplay.open(url);
        prodhandler.hide();
    }
}

function ChangeCartFromDropdown() {
    ProtoShop.changecart($('options')[$('options').selectedIndex].value)
}

//This is the dom observer
document.observe('dom:loaded', function() {

    if ($('pageinfo')) PageInfoDisplay = new PageInfo();

    InitMasterDOM();
    InitPageDOM();

    document.observe("widget:frob", resizeFrame);
    Event.observe(window, 'resize', resizeFrame);

});

//This is the page loaded obeserver
function InitBaseLoad() {


    //scroller1 = new ProtoScrollBar('menu-container');
    //scroller2 = new ProtoScrollBar('products');
    //scroller1.updateResize();
    //scroller2.updateResize();

    InitMasterLoad();
    InitPageLoad();

    prodhandler = new protoprod('storeitems');

    // Om man inte är inloggad
    if ($('redirecttarget')) {
        // Om inte värdet redan har satts (i VB- koden)
        if ($F('redirecttarget') == '' && location.href.indexOf('/loggain/') == -1) {
            $('redirecttarget').value = location.href;
        }
    }

    LoadCTTree();

    resizeFrame();

}

/*
* Dessa funktioner kan användas för att kontrollera att prodhandler är initierad.
* Om sidan laddas långsamt blir det undantagsfel om användaren försöker ladda info för tidigt...
*/
function OpenProductInfoExtra(stockcode, warehouse) {
    if (prodhandler != null) prodhandler.showExtraProduct(stockcode, warehouse);
}
function OpenProductInfo(capitem, warehouse) {
    if (prodhandler != null) prodhandler.activate(capitem, warehouse);
}

function LoadCTTree() {
    if ($('minicart_loginfield')) {
        // Man är inloggad...
        openWebshop();
    }

    autoOpenCTTree();
}

function ResetPassword(custno, username, email) {
    new Ajax.Request('/AjaxPages/GenericAjaxPage.aspx?resetpassword=1', {
        parameters: 'custno=' + custno + '&username=' + username + '&email=' + email,
        method: 'post',
        onSuccess: function(transport) {
            if (transport.responseText == 'ok') {
                alert('L%F6senordet %E4r %E5terställt, och nytt l%F6senord skickas via mail!')
            } else {
                alert('Fel vid %E5terställning av l%F6senord!')
            }
        }
    });
}

Event.observe(window, 'load', InitBaseLoad, false);
