﻿Type.registerNamespace("Res.Commerce.Web.Composants.Commandes.V01");
Res.Commerce.Web.Composants.Commandes.V01.CommandeDirecte = function(element) {
    Res.Commerce.Web.Composants.Commandes.V01.CommandeDirecte.initializeBase(this, [element]);
    
    this._saisieTextBoxId=null;
    this._masqueSaisieRef=null;
    this._separateurSaisieRef=null;
};
Res.Commerce.Web.Composants.Commandes.V01.CommandeDirecte.prototype = {
    initialize: function () {
        Res.Commerce.Web.Composants.Commandes.V01.CommandeDirecte.callBaseMethod(this, "initialize");

        var textbox = $get(this._saisieTextBoxId);
        if (textbox != null) {
            this.fireSearchHandler = Function.createDelegate(this, this.onFireSearchHandler);
            $addHandler(textbox, "keypress", this.fireSearchHandler);
        }

        var prm = Sys.WebForms.PageRequestManager.getInstance();

        if (!Array.contains(prm._asyncPostBackControlIDs, "CommandeDirecteSearchArticle")) {
            prm._asyncPostBackControlIDs.push("CommandeDirecteSearchArticle");
        }
        if (!Array.contains(prm._asyncPostBackControlClientIDs, "CommandeDirecteSearchArticle")) {
            prm._asyncPostBackControlClientIDs.push("CommandeDirecteSearchArticle");
        }
    },
    dispose: function () {
        Res.Commerce.Web.Composants.Commandes.V01.CommandeDirecte.callBaseMethod(this, "dispose");
    },
    saveClientState: function () {
        return null;
    },
    onFireSearchHandler: function (event) {
        if (this.verifSaisie(event)) {
            event = (event) ? event : window.event;
            var charcode = (event.which) ? event.which : (event.keyCode) ? event.keyCode : event.charCode;
            var keyCode = (event.keyCode) ? event.keyCode : event.rawEvent.keyCode;
            if (keyCode != Sys.UI.Key.del && keyCode != Sys.UI.Key.backspace && $.browser.msie || keyCode != Sys.UI.Key.left && keyCode != Sys.UI.Key.right && keyCode != Sys.UI.Key.del && keyCode != Sys.UI.Key.backspace && !$.browser.msie) {
                var textbox = $get(this._saisieTextBoxId);
                event.preventDefault();

                var positionSeparateur = -1;
                if (this._masqueSaisieRef == 0) {
                    positionSeparateur = 3;
                }
                else if (this._masqueSaisieRef == 1) {
                    positionSeparateur = 4;
                }
                if (textbox.value.length == positionSeparateur) {
                    textbox.value += this._separateurSaisieRef;
                    textbox.value += String.fromCharCode(charcode);
                }
                else {
                    textbox.value += String.fromCharCode(charcode);
                    if (textbox.value.length == 8 || (textbox.value.length == 7 && this._masqueSaisieRef == 2)) {
                        var loading = $(this._element).find('.memo_chko_saisie').find('.memo_chko_loading');
                        loading.toggle();
                        var banalisation = "";
                        if (this._separateurSaisieRef == ".")
                            banalisation="\\";
                            var reg = new RegExp(banalisation+this._separateurSaisieRef);
                        __doPostBack("CommandeDirecteSearchArticle", textbox.value.replace(reg, ""));
                    }
                }
            }
        }
    },
    verifSaisie: function (evt) {
        evt = (evt) ? evt : window.event;
        var keyCode = (evt.keyCode) ? evt.keyCode : evt.rawEvent.keyCode;
        var charcode = (evt.which) ? evt.which : (evt.keyCode) ? evt.keyCode : evt.charCode;
        if (keyCode != Sys.UI.Key.del && keyCode != Sys.UI.Key.backspace && $.browser.msie || keyCode != Sys.UI.Key.left && keyCode != Sys.UI.Key.right && keyCode != Sys.UI.Key.del && keyCode != Sys.UI.Key.backspace && !$.browser.msie) {
            if (charcode < 48 || charcode > 57) {
                evt.preventDefault();
                evt.stopPropagation();
                evt.returnValue = false;
                return false;
            }
        }
        return true;
    },
    get_SaisieTextBoxId: function () {
        return this._saisieTextBoxId;
    },
    set_SaisieTextBoxId: function (value) {
        this._saisieTextBoxId = value;
    },
    get_MasqueSaisieRef: function () {
        return this._masqueSaisieRef;
    },
    set_MasqueSaisieRef: function (value) {
        this._masqueSaisieRef = value;
    },
    get_SeparateurSaisieRef: function () {
        return this._separateurSaisieRef;
    },
    set_SeparateurSaisieRef: function (value) {
        this._separateurSaisieRef = value;
    }
};
Res.Commerce.Web.Composants.Commandes.V01.CommandeDirecte.registerClass("Res.Commerce.Web.Composants.Commandes.V01.CommandeDirecte", Res.Commerce.Web.Composants.ScriptControlBase);
if(typeof(Sys)!=="undefined")Sys.Application.notifyScriptLoaded(); 