﻿// Name:        TritonAjax.js
// Assembly:    Triton.Shop
// Version:     1.0.0.0
//-----------------------------------------------------------------------
// Copyright (C) E37 System AB. All rights reserved.
//-----------------------------------------------------------------------
// TritonAjax.js
// Triton AJAX Framework.

/// <reference path="http://ajax.microsoft.com/ajax/3.5/MicrosoftAjax.debug.js" />
/// <reference path="http://code.jquery.com/jquery-1.4.1-vsdoc.js" />

// Registrera namnrymd för Triton
Type.registerNamespace("Triton");
Type.registerNamespace("Triton.Controls");

// [Triton.Application] med funktioner för hela webbapplikationen
Triton._Application = function() { }
Triton._Application.prototype = {
    _initializeRequest: function(sender, args) {
        if ($get(args._postBackElement.id).tagName.toLowerCase() != 'span') {
            $get(args._postBackElement.id).disabled = true;
        }
        document.getElementsByTagName('form')[0].style.cursor = 'wait';
    },
    _endRequest: function(sender, args) {
        if (args._postBackElement != null) {
            $get(args._postBackElement.id).disabled = false;
        }
        document.getElementsByTagName('form')[0].style.cursor = 'auto';
    },
    initialize: function() {
        // Koppla på utökning för statusvisning vid partiell postning
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_initializeRequest(this._initializeRequest);
        prm.add_endRequest(this._endRequest);
        // Koppla på hantering av tangenttryckningar (ex. ENTER)
        jQuery(document).bind('keypress', function (e) { if (e.which == 13) e.preventDefault(); });
    }
}
Triton._Application.registerClass('Triton._Application');
Triton.Application = new Triton._Application();

// [Triton.Debug] med funktioner för lokal felsökning och utveckling
Triton._Debug = function() { }
Triton._Debug.prototype = {
    _infoConfigKeyUp: function(e) {
        if (e.which == 45) Triton.Debug.toggleInfoConfig();
    },
    initInfoConfig: function() {
        jQuery(document).bind('keyup', this._infoConfigKeyUp);
    },
    toggleInfoConfig: function() {
        jQuery('.infoConfig').slideToggle();
    },
    toggleInfoConfigLog: function() {
        jQuery('.infoLog').slideToggle();
    },
    toggleInfoConfigLogEvent: function(infoDivID) {
        jQuery('#' + infoDivID).toggle();
    }
}
Triton._Debug.registerClass('Triton._Debug');
Triton.Debug = new Triton._Debug();

//// [Triton.UI].SearchTextBox med funktioner för söktextbox
//Triton.UI.SearchTextBox = function (textboxID, buttonID) {
//    this._textboxObj = jQuery('#' + textboxID);
//    jQuery(this._textboxObj).bind('keypress', function (e) {
//        alert('kuk');
//        if (e.which == 13) alert('aa');
//    });
//    alert($get(buttonID));
//    $addHandler($get(buttonID), 'click', this._search);
//    //jQuery('#' + buttonID).bind('click', this._search);
//}
//Triton.UI.SearchTextBox.prototype = {
//    _search: function() {
//        alert('söker' + jQuery(this._textboxObj).val());
//    }
//}
//Triton.UI.SearchTextBox.registerClass('Triton.UI.SearchTextBox');

//Triton.Controls.SearchTextBox = function (element) {
//    // Initialisera basens konstruktor
//    Triton.Controls.SearchTextBox.initializeBase(this, [element]);
//    this._keyPressHandler = null; 
//}
//Triton.Controls.SearchTextBox.prototype =
//{
//    initialize: function () {
//        // Basklassens initialize
//        Triton.Controls.SearchTextBox.callBaseMethod(this, 'initialize');
//        // Hämta aktuell söktextbox
//        var target = this.get_element();
//        // Lägg in handler för knapptryckning
//        this._keyPressHandler = Function.createDelegate(this, this._onKeyPress);
//        $addHandlers(target, { 'keypress': this._keyPressHandler }, this);
//    },
//    dispose: function () {
//        // Basklassens dispose
//        Triton.Controls.SearchTextBox.callBaseMethod(this, 'dispose');
//    },
//    _onKeyPress: function (e) {
//        alert(e.which);
//        if (event.which == 13 && e.target.value.length) {
//            alert('KNAPP');
//        }
//    }
//}
//Triton.Controls.SearchTextBox.registerClass('Triton.Controls.SearchTextBox', Sys.UI.Control);

if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();