﻿(function() {
    var defaultPage = window.defaultPage = function() {
        return new defaultPage.prototype.init();
    };

    if (!window.defaultPage) {
        window.defaultPage = defaultPage;
    }

    defaultPage.proto = defaultPage.prototype = {
        init: function() {
            return new defaultPage();
        }
    }

    defaultPage.Load = function(pnlSendVisible, userName, txtGroupsId, txtContactsId, hfIsContactId, txtMessageId, uniqueID) {
        this.TxtGroupsId = txtGroupsId;
        this.TxtContactsId = txtContactsId;
        this.HfIsContactId = hfIsContactId;
        this.TxtMessageId = txtMessageId;
        this.UniqueID = uniqueID;
        this.UserName = userName;
        this.DefaultMsg = 'اختر نوع الارسال: لرقم او لمجموعة ثم اكتب  فى الاعلى رقم المحمول او اسم الشخص او المجموعة';
        this.Contacts = null;
        this.Groups = null;
        if (pnlSendVisible == 'true') {
            $('#DivLoader').removeClass('hide');
            masrawy.services.UserContacts.GetUserGroups({ UserID: userName }, this.RetriveGroups);
            masrawy.services.UserContacts.GetUserContact({ UserID: userName }, this.RetriveContacts);
        }
        if (masrawy.getQSValue('toGroup') != null) {
            $('#chkToGroup')[0].checked = true;
            this.ChangeConType($('#chkToGroup')[0])
        }
        if (masrawy.getQSValue('msgId') != null) {
            this.SetCounter();
        }
        $("#btnSend").click(function() {
            defaultPage.Send();
        })
        $("#" + txtMessageId).focus(function() {
            masrawy.inputIn(this, defaultPage.DefaultMsg);
        })
        $("#" + txtMessageId).blur(function() {
            masrawy.inputOut(this, defaultPage.DefaultMsg);
        })
        $("#" + txtMessageId).keyup(function() {
            defaultPage.SetCounter();
        })
        $('#btnKB').click(function() {
            showHideKeyboard(this);
            $("#keyboard").easydrag();
            return false;
        });
        keystart(txtMessageId, 'btnKB', defaultPage);

    }
    defaultPage.RetriveContacts = function(data) {
        defaultPage.Contacts = data;
        defaultPage.SetContacts(data);
    }
    defaultPage.RetriveGroups = function(data) {
        defaultPage.Groups = data;
        defaultPage.SetGroups(data);
    }
    defaultPage.SetContacts = function(data) {
        $('#' + this.TxtContactsId).autocomplete(data,
        {
            minChars: 0,
            matchContains: 'word',
            autoFill: false,
            formatItem: function(row, i, max) {
                return row.Name + ' [' + row.Mobile + ']';
            },
            formatMatch: function(row, i, max) {
                return row.Name + ' ' + row.Mobile;
            },
            formatResult: function(row) {
                return row.Mobile;
            }
        }, false);
        $('#DivLoader').addClass('hide');
    }
    defaultPage.SetGroups = function(data) {
        $('#' + this.TxtGroupsId).autocomplete(data,
        {
            minChars: 0,
            autoFill: false,
            formatItem: function(row, i, max) {
                return row.Name + ' (' + row.ContactsCount + ')';
            },
            formatMatch: function(row, i, max) {
                return row.Name;
            },
            formatResult: function(row) {
                return row.Name;
            }
        }, false);
        $('#DivLoader').addClass('hide');
    }

    defaultPage.SetCounter = function() {
        var messageLength = 160;
        for (var i = 0; i < $("#" + this.TxtMessageId).val().length; i++) {
            if (($("#" + this.TxtMessageId).val().charCodeAt(i) == 1569 || $("#" + this.TxtMessageId).val().charCodeAt(i) > 1569) && ($("#" + this.TxtMessageId).val().charCodeAt(i) == 1609 || $("#" + this.TxtMessageId).val().charCodeAt(i) < 1609)) {
                messageLength = 70;
                break;
            }
        }
        var messagesCount = Math.ceil($("#" + this.TxtMessageId).val().length / messageLength);
        if (messagesCount == 0)
            messagesCount++;
        $("#spnChacters").text((messagesCount * messageLength) - $("#" + this.TxtMessageId).val().length + '/' + messageLength + ' (' + messagesCount + ')');
    }
    defaultPage.ChangeConType = function(fld) {
        if (fld.value == 'Groups') {
            $('#' + this.TxtGroupsId).fadeIn();
            $('#' + this.TxtContactsId).hide();
            document.getElementById(this.HfIsContactId).value = '0';
        }
        else {
            $('#' + this.TxtContactsId).fadeIn();
            $('#' + this.TxtGroupsId).hide();
            document.getElementById(this.HfIsContactId).value = '1';
        }
    }
    defaultPage.CheckAndResetMessage = function() {
        if ($('#' + this.TxtMessageId).val() == this.DefaultMsg) {
            $('#' + this.TxtMessageId).val('');
        }
    }
    defaultPage.Send = function() {
        if ($('#' + this.TxtMessageId).val() == this.DefaultMsg || $('#' + this.TxtMessageId).val() == '') {
            $('#' + this.TxtMessageId)[0].style.borderColor = 'red';
        }
        else {
            $('#' + this.TxtMessageId)[0].style.borderColor = '';
            hideKeyboard(btn_kbimg, "keyboard");
            $("#keyboard")[0].style.display = "none";
            $('#DivLoader').removeClass('hide');
            var PostData = 'Send' + document.getElementById(this.HfIsContactId).value + '^' + $('#' + this.TxtContactsId).val() + '^' + $('#' + this.TxtGroupsId).val() + '^' + $('#' + this.TxtMessageId).val();
            masrawy.ajax.doCallbackHtml(this.UniqueID, PostData, this.SetData);
        }
    }
    defaultPage.SetData = function(data, status) {
        if (data.indexOf('Send') != -1) {
            if (data.indexOf('Error') != -1) {
                $('#lblcsend').html(data.substring(data.indexOf('Error') + 5, data.indexOf('Send')));
                $('#lblcsend').removeClass('rightMsg');
                $('#lblcsend').addClass('wrongMsg');
            }
            else {
                $('#lblcsend').html(data.substring(data.indexOf('Msg') + 3, data.indexOf('Send')));
                $('#lblcsend').removeClass('wrongMsg');
                $('#lblcsend').addClass('rightMsg');
            }
            data = data.replace('Send', '');
            SetUserBalance(data);
            $('#DivLoader').addClass('hide');
            if (data.indexOf('AddNumber') != -1) {
                $('#spnNumber').text($('#' + defaultPage.TxtContactsId).val());
                $('#spnExistName').text('');
                defaultPage.PromptAddNumber($('#' + defaultPage.TxtContactsId).val());
            }
            $('#' + defaultPage.TxtContactsId).val('');
            $('#' + defaultPage.TxtGroupsId).val('');
        }
    }
    defaultPage.AddNumber = function(number) {
        if (!masrawy.validation.isEmpty($('#txtAddNotExistName')[0])) {
            $('#btnConfirmPromptMsg').unbind('click');
            var PostData = 'AddNumber' + $('#txtAddNotExistName').val() + ',' + number;
            masrawy.services.UserContacts.AddNumber({ firstName: $('#txtAddNotExistName').val(), mobile: number, userId: this.UserName }, this.AddNumberSetData);
            $('#PromptMsg').parent().dialog('close');

        }
    }
    defaultPage.AddNumberSetData = function(data, status) {
        if (data.indexOf('Success') != -1) {
            $('#imgAddContact').show();
            $('#liAddContact').show();
            masrawy.showPrompt('تم أضافة الاسم بنجاح', 'ConfirmtMsg', 200, 120, .5, null)
        }
        else {

            $('#imgAddContact').hide();
            $('#liAddContact').hide();
            $('#spnExistName').text('عفوا هذا الاسم مسجل لديك برقم آخر برجاء اجراء محاولة اخرى');
            defaultPage.PromptAddNumber(data.replace('Failed', ''));
        }
    }
    defaultPage.PromptAddNumber = function(number) {

        $('#txtAddNotExistName').val('');
        $('#txtAddNotExistName')[0].style.borderColor = '';
        $('#btnConfirmPromptMsg').click(
            function() {
                defaultPage.AddNumber(number);
            });
        masrawy.showPrompt('أضف اسم', 'PromptMsg', 320, 250, .5, null);
    }
})();