﻿var SelectCMA, NewCMA;
function startSelectCMA(url, newStr, OkStr, e) {
    $(document).ready(function() { $("body").append('<div id="idSelectCMAForLs" class="popupBoxModel mapPopUp fixedPopUp" style="display:none;"></div>'); });
    $(document).ready(function() { e = $("#" + (e ? e : "idSelectCMAForLs")); SelectCMA = new oSelectCMAForLs(url,newStr,OkStr,e); })
}

function getModelData(add)
{
    return {
                IdStr: $("#IdStr").val(),
                Filter: $("#Filter").val(),
                DirectAddLs: (add ? true : ($("#DirectAddLs").length > 0 && $("#DirectAddLs")[0].checked)),
                Number: $("#Number").val(),
                ClientName: $("#ClientName").val(),
                ClientEmail: $("#ClientEmail").val()
    };
}

oSelectCMAForLs = function(url, newStr, OkStr, e) {
    this.NewCMA = new oPopUp(newStr, "#idCreateCMAForLs");
    this.OkCMALs = new oPopUp(OkStr, "#idOkCMAForLs");
    this.Url = url;
    var Elm = e;
    this.Show = function(ids) {
        if (ids)
            this.Ids = ids;
        var d = getModelData();
        d.IdStr = this.Ids;
        //        this.Hide();
        $.ajax({
            type: 'post',
            url: this.Url,
            data: d,
            dataType: 'html',
            success: function(data) {
                Elm.html(data);
                Elm.show();
            }
        });
    };
    this.Hide = function() {
        Elm.html("");
        Elm.hide();
        this.NewCMA.Hide();
        this.OkCMALs.Hide();
    };
    this.PickUp = function(CMAId, number) {
        var d = getModelData();
        d.IdStr = this.Ids;
        d.CMAId = CMAId;
        d.Number = number;
        d.NewCMAId = CMAId;
        $.ajax({
            type: 'POST',
            url: this.Url.replace(/SelectCMAForLs/i, "PickUpLs"),
            data: d,
            dataType: 'json',
            success: function(data) {
                SelectCMA.AfterPickUp(data);
                SelectCMA.Hide();
                SelectCMA.OkCMALs.Show();
            }
        });
    };
    this.CreateCMA = function() {
        validationRules.beginErrGroup();
        $("#Number,#ClientName").change();
        if (validationRules.endErrGroup())
            return;
        var d = getModelData();
        d.IdStr = this.Ids;
        $.ajax({
            type: 'POST',
            url: this.Url.replace(/SelectCMAForLs/i, "CreateCMA"),
            data: d,
            dataType: 'json',
            success: function(data) {
                SelectCMA.AfterPickUp(data);
                if (d.DirectAddLs) {
                    SelectCMA.Hide();
                    SelectCMA.OkCMALs.Show();
                }
                else {
                    alert("СМА создан!");
                    SelectCMA.NewCMA.Hide();
                    SelectCMA.Show()
                }
            }
        });
    }
    this.Refresh = this.Show;
    this.AfterPickUp = function(data) {
        if (data){
            if (data.Err && data.Err > ' ') {
                alert(data.Err);
                this.Ids = data.AddedLs;
            } 
            SelectCMA.Number = data.Number;
            SelectCMA.NewCMAId = data.NewCMAId;
        }
    }
};

oPopUp = function(str, eStr) {
    this.Str = str;
    this.Elm = eStr;
    this.Show = function(dd) {
        $(this.Elm).remove();
        var d = getModelData(true);
        d.IdStr = SelectCMA.Ids;
        if(!d.Number || d.Number<' ')
            d.Number = SelectCMA.Number;
        d.NewCMAId = SelectCMA.NewCMAId;
        d.view = this.Str;
        $.ajax({
            type: 'post',
            url: SelectCMA.Url.replace(/SelectCMAForLs/i, "ViewCMAForLs"),
            data: d,
            dataType: 'html',
            success: function(data) {
                $("body").append(data);
                validationRules.Prepare();
            }
        })
    };
    this.Hide = function() {
        $(this.Elm).remove();
    };
};

