function localstore(key, value){
    // to set localStore('key','value');
    // to get localStore('key') will return value;        
    if (typeof(Storage) !== "undefined") {
        if(arguments.length > 1){     
            console.log('localstoreage', arguments);       
            localStorage.setItem(key, value);
        }
        else{
            return localStorage.getItem(key);
        }
    } else {
        console.log("Sorry! No Web Storage support..");
    }
}

// It is mandate to add page name in this array
var validateRouteConst = {
    "reseller": [
        "send_sms", 
        "manage_reseller", 
        "clientSearch", 
        "reseller-settings", 
        "manage_website", 
        "manageClientsInner"
    ],
    "developer": [
        "approved_r4_template", 
        "api", 
        "approved_otp_template", 
        "list_email_template", 
        "voice_sms", 
        "webhook", 
        "sender-id", 
        "email-settings",
        "otp", 
        "trans_email_report",
        "transactional-emails-reports",
        "trans_supressions",
        "new_flow_template1"
    ],
    "virtual-number": [
        "lci", 
        "lci_keyword", 
        "lci_number"
    ]
}
var userType = '' //reserller/user/developer
var urlGroup = '';

function _load(page) {    
    function pageNotFound(){
        $.ajax({
            url: 'not-found.php',
            success: function (data) {
                $("#contentright").html("<div>" + data);
            }
        });
    }
    //@modification by Lalit Patidar, UI changes as per new plan.
    var groupTitle = {
        "developer": "SMS",
        "virtual-number": "Virtual number",
        "campaign": "Campaign",
        "reseller": "Reseller",
        "reports": "Reports"
    }
    try {
        var pageSlash = page.split("/"); 
        var hash = page;
        var pageSplit = page.split("?");
        var url = page + '.php';                
        if (pageSlash.length > 1) {
            urlGroup = pageSlash[0];
            pageSplit = pageSlash[1].split("?");
            url = pageSlash[1] + '.php';            
        }
        if (pageSplit.length > 1) {
            page = pageSplit[0];
            url = page + '.php?' + pageSplit[1];
        }
        try{
            if(segmentTrackingEnabled!==undefined)
            {    
                AnalyticsCookie=parseAnalyticsCookie();
                analytics.page(page,{'url':url},{'Analytics':AnalyticsCookie,'userInfo':segmentTrackingUserInfo});
            }
        }catch(r)
        {

        }
        /*if (pageSlash.length > 1) {
            if(urlGroup in validateRouteConst){
                if(validateRouteConst[urlGroup].indexOf(pageSlash[1]) === -1 ){
                    pageNotFound();
                    return false;
                }
            }
        }
        */        
       //console.log('isReseller',isReseller, 'isResellerClient', isResellerClient, 'page', page, 'urlGroup', urlGroup, 'url: ', url, 'pageSlash:', pageSlash[1]);
        //Intercom('trackEvent', page);
        $.ajax({
            url: url,
            beforeSend: function () {
                window.location.hash = hash; //set hash to url
                if (page != 'manage_resellers') {
                    $("#rtBtWrap").remove(); // sid 20 06 2014
                }
                $("#cnt_ul li").removeClass('active');
            },
            error: function (jqXHR, textStatus, errorThrown) {
                $("#contentright").html("");
                if (errorThrown == 'Not Found') {
                    // show_message('This page does not exists', "warning");
                    pageNotFound();
                }
            },
            success: function (data) {
                $("#contentright").html("");
                page == 'blockNumber' ? $("." + page).addClass('active') : $(".blockNumber").removeClass('active');

                $("#contentright").html(data);
                setTimeout(function () {
                    window.scrollTo(0, 0);                        
                },1000)
                
                updateClock(1);
                $("#nav-title-text").html( groupTitle[urlGroup] ? groupTitle[urlGroup] : urlGroup) ;
                
                // START - To change the page title according to the tile clicked on dashboard
                if($("#nav-title-text").text() == "business_phone")
                {
                    document.title = "Hello";
                }
                else if ($("#nav-title-text").text() == "Campaign"){
                    document.title = "Send SMS";
                }
                else if ($("#nav-title-text").text() == "Virtual number"){
                    document.title = "Virtual Number";
                }
                else if ($("#nav-title-text").text() == "Flows & APIs"){
                    document.title = "Flows & APIs";
                }
                else if ($("#nav-title-text").text() == "Reseller"){
                    document.title = "Reseller";
                }
                else if ($("#nav-title-text").text() == "Reports"){
                    document.title = "Reports";
                }
                else if ($("#nav-title-text").text() == "dashboard"){
                    document.title = "SMS control panel";
                }
                // END - To change the page title according to the tile clicked on dashboard    
                if(otherPanelCheckTest){
                    $("#userProfile, #companyUserNav").addClass('isReseller');
                    $(".leftSection").removeClass('menu-desktop');
                } else {
                    if (pageSlash.length > 1) {
                        $(".leftSection").removeClass('menu-desktop');
                        $('.menu li').hide(); 
                        $('.menu li.' + urlGroup).show();
                        
                        if(isReseller && urlGroup === 'reseller'){
                            $(".leftSection").removeClass('menu-desktop');
                            $("#userProfile, #companyUserNav").addClass('isReseller');
                            $("#nav-title, #userProfile-footer").removeClass('developer');
                        } else {
                            $("#userProfile, #companyUserNav").removeClass('isReseller');                          
                        }
                        
                        switch (urlGroup) {
                            case 'developer':
                            case 'campaign':
                            case 'virtual-number':
                            case 'reports':
                                $("#nav-title, #userProfile-footer").addClass('developer');
                            break;
                            default:
                        }
                        
                        switch (pageSlash[1]) {
                            case 'dashboard':
                                $('.menu li').hide();
                                $(".leftSection").addClass('menu-desktop');
                                $("#nav-title, #userProfile-footer").addClass('developer');
                            break;
                            default:
                        }
                        
                    } else {
                        $(".leftSection").removeClass('menu-desktop');
                        switch (page) {
                            case 'dashboard':
                            case 'translog1':
                            case 'business_phone':
                            case 'settings':
                            case 'privileges':
                            case 'feedback':
                            case 'company_invitations':
                                $('.menu li').hide();
                                $(".leftSection").addClass('menu-desktop');
                                $("#nav-title, #userProfile-footer").addClass('developer');
                            break;
                            default:
                          }                        
                        if(isReseller && urlGroup === 'reseller'){
                            $("#userProfile, #companyUserNav").addClass('isReseller');
                        }                        
                    }                
                }
                
                $('#menu li a, #leftBtmMenus li a').removeClass('active');
                $('#menu li a[href="#' + page + '"]').addClass('active');
                $('#leftBtmMenus li a[href="#' + page + '"]').addClass('active');

                // Phone book
                if(urlGroup === 'campaign'){
                    $("#cnt_ul li.shwGrp").show();
                }
                if(urlGroup === 'reseller'){
                    $("#phonebook-title").show();
                }                
                
                if (page == 'mongoScheduleGrid' || page == 'newExeSummary' || page == 'failed_api')
                    $('#menu li a[href="#delivery_reports_text"]').addClass('active');

                if (page === "send_sms" || page === "advanced")
                    $('#buy-credit').show();

                setTimeout(function () {
                    $(".tip").tooltip({
                        track: true
                    });                    
                }, 1500)
            }
        });
    } catch (e) {
        alert("Error: Please refresh page an error has been occured")
    }
}

//modification by vedant : no need duplicate code
// //code by sarfaraz
// $(window).bind('hashchange', function (e) {
//     var page = window.location.hash.substring(1);
//     _load(page);
// });
/*
Author : MP
Google analytics cookie reader
*/
var parseAnalyticsCookie = function() {

    var values = {};
    var cookie = getCookie("__utmz");
    var utmname={'utmcsr':'utm source','utmccn':'utm campaign','utmcmd':'utm medium','utmcct':'utm content'};
    if (cookie) {
        var z = cookie.split('.');
        if (z.length >= 4) {
            delete z[0];
            delete z[1];
            delete z[2];
            delete z[3];
            var nz=new Array();
            for (i = 4; i < z.length; i++) 
            {
                nz.push(z[i]);
            }
            m=nz.join('.');
            var y = m.split('|');
            for (i = 0; i < y.length; i++) 
            {
                var pair = y[i].split("=");
                values[utmname[pair[0]]] = pair[1];
            }
        }
    }
    values['source']=getCookie("source");
    return values;
}

//author themechanic date 15 july 2016
function animateHamburger(ths) {
    $('#nav-icon3', ths).toggleClass('open');
    $('body').toggleClass('mobile');
}

function toggleDropRoutes(event) {
    if (event != undefined) {
        var target = $('.route-tabs .nav-tabs');

        if (target.hasClass('open')) {
            target.removeClass('open');
        } else {
            target.addClass('open');
        }


    }

}

/*for small screen */
$(document).on('touchstart click', '#menu-toggle', function (e) {
    $('body').toggleClass('mobile');
});

// Jquery Page Load Functions
$(document).ready(function () {

    // toggleDropRoutes()
    // Modification By Vedant Jain || prevented extra reloading of page || 17 Aug 2022  
    if (window.location.hash) {
        $(window).bind('hashchange load', function(e) {
            var page = window.location.hash.substring(1);
            _load(page);
        });
    } else {
        if(typeof isReseller !== "undefined" && isReseller){
            window.location.hash = 'dashboard_other';
        }        
    }

    //http://www.vtermination.com/old/reseller/manage_admin.php
    $(".manage_admin").click(function () {
        $("#loading").show();
        $("#contentright").load("manage_admin.php", function () {
            $('#loading').hide();
        });
    });
    $(".manage_tariff").click(function () {
        $("#loading").show();
        $("#contentright").load("manage_plans.php", function () {
            $('#loading').hide();
        });
    });


    $(".downloads").click(function () {
        $("#loading").show();
        $("#contentright").load("downloads.php", function () {
            $('#loading').hide();
        });
    });

    $(".my_rates").click(function () {
        $("#loading").show();
        $("#contentright").load("my_rates.php", function () {
            $('#loading').hide();
        });
    });

    // make clicked link active//by Ashish
    $('#menu li a').click(function (e) {
        hash = window.location.hash.substring();
        if ($(this).attr('href') == hash)
            e.preventDefault();

        $('#menu li a').removeClass('active');
        $('#menu123 li a').removeClass('active');
        $(this).addClass('active');
        //return false;
    });
    
    $('#menu123 li a').click(function (e) {
        hash = window.location.hash.substring();
        if ($(this).attr('href') == hash)
            e.preventDefault();

        $('#menu123 li a').removeClass('active');
        $(this).addClass('active');
        //return false;
    });
});

$(document).click(function (e) {
    // console.log(e.target);
    if ($(e.target).is('#sender') ||
            $(e.target).is('#mobile_no') ||
            $(e.target).parents().is('#message-wrpr') ||
            $(e.target).is('#campaign') ||
            $(e.target).parents().is("#smsright") ||
            $(e.target).parents().is("#smsleft") ||
            $(e.target).parents().is("#shortUrlModal") ||
            $(e.target).parents().is(".inputapi-transliterate-language-menu") ||
            $(e.target).is("#smsleft") ||
            $(e.target).is("#ssset"))
    {
        // do nothing; 
    } else {
        $("#smsright .content").hide();
        $("#disp_msg").show();
    }
});

function loadPage(url) {
    $("#loading").show();
    $("#contentright").load(url, function () {
        $('#loading').hide();
    });
}

function requestKeyword() {
    $(".requestKeyword").toggle();
}

function LCAddClient() {
    $(".LCAddClient").toggle();
}

function showdiv(id) {
    document.getElementById(id).style.display = 'block';
}

function isdefined(variable) {
    return (typeof (window[variable]) == "undefined") ? false : true;
}

function hidediv(id1, id2) {
    $('#' + id1).hide();
    $('#' + id2).hide();
}

function update_counter(counter, text_elem) {
    //alert("in update conter");
    var counterElem = document.getElementById(counter);
    var textElem = document.getElementById(text_elem);
    var len = textElem.value.length;
    var Count = textElem.value.length;
    var newchar;
    for (var i = 0; i < len; i++) {
        newchar = textElem.value.charAt(i);
        if (newchar == "\n")
            Count = parseInt(Count) + 1;

    }
    if ($("#userSign").length > 0 && $("#addSign").length > 0 && $('#addSign').is(':checked') && counter == 'text_counter') //if user's signature exist
        Count = Count + parseInt($("#userSign").val().length) + 1; //plus one for extra space. added between sms and signature.
    counterElem.innerHTML = Count;
    if (counter == 'text_counter') {
        if (Count > 160) {
            $('#characterCount').addClass("chngclr");
        } else {
            $('#characterCount').removeClass("chngclr");
        }
    }
    if (parseInt(counterElem.innerHTML) <= 306) {
        var credit = parseInt(parseInt(counterElem.innerHTML) / 160);
        if (parseInt(counterElem.innerHTML) % 160 != 0)
            credit = credit + 1;
    } else {
        var credit = parseInt(parseInt(counterElem.innerHTML) / 153);
        if (parseInt(counterElem.innerHTML) % 153 != 0)
            credit = credit + 1;
    }
    document.getElementById("credits_span").innerHTML = credit;
}



function update_sms_counter(counter, text_elem) {
    // console.log(counter, text_elem);
    var msgData = $("#" + text_elem).val();
    if ($("#userSign").length > 0 && $("#addSign").length > 0 && $('#addSign').is(':checked'))
        var msgData = $("#" + text_elem).val() + ' ' + $("#userSign").val();

    var myCount = SmsCounter.count(msgData);
    var msgCount = myCount.length;
    var msgCredit = myCount.messages;
    // console.log("in a ams", myCount);
    var counterElem = document.getElementById(counter);
    /* if ($("#userSign").length > 0 && $("#addSign").length > 0 && $('#addSign').is(':checked') && counter == 'text_counter') //if user's signature exist
     msgCount = msgCount + parseInt($("#userSign").val().length) + 1; //plus one for extra space. added between sms and signature. */
    counterElem.innerHTML = msgCount;
    if (counter == 'text_counter') {
        if (msgCount > 160) {
            $('#characterCount').addClass("chngclr");
        } else {
            $('#characterCount').removeClass("chngclr");
        }
        document.getElementById("credits_span").innerHTML = msgCredit;
    }
}

//---------------------------------AJAX LIBRARY FUNCTINS------------------------------------------//
function xmlhttp_object() {
    var http;
    try {
        http = new XMLHttpRequest;
        get_http_object = function () {
            return new XMLHttpRequest;
        };
    } catch (e) {
        var msxml = [
            'MSXML2.XMLHTTP.3.0',
            'MSXML2.XMLHTTP',
            'Microsoft.XMLHTTP'
        ];
        for (var i = 0, len = msxml.length; i < len; ++i) {
            try {
                http = new ActiveXObject(msxml[i]);
                get_http_object = function () {
                    return new ActiveXObject(msxml[i]);
                };
                break;
            } catch (e) {
            }
        }
    }
    return http;
}
;

function send_request(url, divid, loader) {
    var xmlhttp = xmlhttp_object();
    if (xmlhttp.readyState == 0)
        xmlhttp.open("GET", url, true);
    else
        alert("Script Execution Error # 1");
    xmlhttp.onreadystatechange = function () { //Function Start
        if ((xmlhttp.readyState == 1) || (xmlhttp.readyState == 2) || (xmlhttp.readyState == 3)) //This is when the Request is in Progress. IF # 1
        {
            if (divid != '') {
                if (loader == 0)
                    img_loader = 'image_loader';
                else
                    img_loader = 'image_loader' + loader;
            }
            try {
                document.getElementById(divid).style.visibility = 'hidden';
            } catch (e) {
            }
            try {
                //document.getElementById(img_loader).style.display = 'inline';
                //document.getElementById(img_loader).style.visibility = 'visible'
            } catch (e) {
            }
        } //End IF # 1
        if (xmlhttp.readyState == 4) //This is when request has been completely executed IF # 2
        {
            var response = xmlhttp.responseText;
            if (divid == '')
                alert(response);
            else {
                try {
                    document.getElementById(divid).innerHTML = response;
                } catch (e) {
                    /*alert(document.forms[divid].inneHTML);
                     alert(document.getElementById(divid).innerHTML);
                     document.all[divid].inneHTML=response;*/
                    someHtml = response;
                    oldDiv = document.getElementById(divid);
                    newDiv = document.createElement(oldDiv.tagName);
                    newDiv.id = oldDiv.id;
                    newDiv.className = oldDiv.className;
                    newDiv.innerHTML = someHtml;
                    oldDiv.parentNode.replaceChild(newDiv, oldDiv);
                }
            }
            try {
                //document.getElementById(img_loader).style.visibility = 'hidden';
                //document.getElementById(img_loader).style.diplay = 'none';
            } catch (e) {
            }
            try {
                document.getElementById(divid).style.visibility = 'visible';
            } catch (e) {
            }
        } //End IF # 2
    }; //End Function
    xmlhttp.send(null);
}

//-------------------------------------AJAX LIBRARY FUNCTIONS---------------------------------


function show_border(grpid) {
    document.getElementById("name_label_" + grpid).style.border = '#99E7FD solid 1px';
}

function hide_border(grpid) {
    document.getElementById("name_label_" + grpid).style.border = '#FFFFFF solid 1px';
}


function add_new_draft_record() {
    rand = parseInt(Math.random() * 99999999);
    if (document.getElementById("hindi_check").selectedIndex == 1) {
        msg_type = 2;
        msg = document.getElementById("hindibox").value;
        if (document.getElementById("hindibox").value == '') {
            show_message("Please enter a message, Message field cannot be empty.", "error");
            return false;
        }
    } else {
        msg_type = 1;
        msg = document.getElementById("message").value;
        if (document.getElementById("message").value == '') {
            show_message("Please enter a message, Message field cannot be empty.", "error");
            return false;
        }
    }
    if (document.getElementById("message").value.length > 1024) {
        show_message("English SMS cannot be greater that 1024 characters", "error");
        return false;
    }
    if (document.getElementById("hindibox").value.length > 1024) {
        show_message("Hindi SMS cannot be greater that 1024 Characters", "error");
        return false;
    }
    msg = encodeURIComponent(msg);
    DLT_TE_ID = '';
    var DLT_TE_ID = document.getElementById('DLT_TE_ID');
    if (JSON.stringify(DLT_TE_ID) != "null") {
        DLT_TE_ID = document.getElementById("DLT_TE_ID").value;
        DLT_TE_ID = DLT_TE_ID.trim();
        if(isNaN(DLT_TE_ID)){
            show_message("DLT TEMPLATE ID Must be Numeric", "error");
            return false;
        }
    }
    $.ajax({
        url: "../action_layer.php?action=9&rand=" + rand + "&message=" + msg + "&msg_type=" + msg_type + "&DLT_TE_ID=" +DLT_TE_ID, 
        dataType: 'json',
        success: function (data) {
            show_message(data.msg, data.msgtype);
            if (data.msgtype == 'success') {
                load_send_drafts(msg_type);
                closeDraftBox();
            }
        }
    });
}



function loadTranslit() {
    if (!$("#transliterationcss").length) {
        $("head").append("<link id='transliterationcss'>");

        css = $("head").children(":last");
        css.attr({
            rel: "stylesheet",
            type: "text/css",
            href: "/css/transliteration.css"
        });
    }

    $.getScript('/js/transliteration.js').done(function (script, textStatus) {
        var options = {
            sourceLanguage: 'en',
            destinationLanguage: ['hi', 'gu', 'mr', 'ta', 'te', 'ml', 'bn', 'or', 'kn', 'am', 'ar', 'ne', 'ur', 'fa', 'pa', 'ru', 'sa', 'ti'],
            shortcutKey: 'ctrl+g',
            transliterationEnabled: true
        };

        // Create an instance on TransliterationControl with the required
        // options.
        var control =
                new google.elements.transliteration.TransliterationControl(options);


        // Enable transliteration in the editable DIV with id
        // 'transliterateDiv'.
        control.makeTransliteratable(['hindibox']);
        if (!$("#translControl").children().length)
            control.showControl('translControl');

        //$('#ss-loader').hide();
    })

}

function load_hindi_field_sms(checked) {
//    console.log(checked);

    $.ajaxSetup({
        cache: true
    });

    rand = parseInt(Math.random() * 99999999);
    if (checked == 1) {
        //$('#ss-loader').show();
        $("#translControl, #translControlWrp").show()
        document.getElementById("text_counter").innerHTML = 0;
        document.getElementById("hindibox").style.display = 'Inline';
        document.getElementById("message").style.display = 'none';
        var message = $("#message").val();
        $("#message").val('');
        $("#hindibox").val(message);
        load_send_drafts(2);
        $.getScript('/js/jsapi.js').done(loadTranslit());
        setTimeout(function () {
            $('#hindibox').focus();
        }, 500);
    } else {
        $("#translControl, #translControlWrp").hide()
        document.getElementById("text_counter").innerHTML = 0;
        document.getElementById("hindibox").style.display = 'none';
        document.getElementById("message").style.display = 'Inline';
        var message = $("#hindibox").val();
        $("#hindibox").val('');
        $("#message").val(message);
        load_send_drafts(1);
        setTimeout(function () {
            $('#message').focus();
        }, 500);
    }
}

function load_send_drafts(type) {
    rand = parseInt(Math.random() * 99999999);
    send_request("user_saved_draft.php?type=" + type, "drafts_show", 1);
}

function load_send_file() {
    filename = document.getElementById("file2").value;
    send_request("file_select.php?fname=" + filename, "file_count", 1);
}

function load_schedule_fields() {
    if (document.getElementById("time2").checked == true)
        document.getElementById("schedule_fields").style.display = 'block';
    if (document.getElementById("time1").checked == true) {
        document.getElementById("schedule_fields").style.display = 'none';
        $('#repeatContent').hide();
        $("#repeatChk").removeAttr("checked");
        document.getElementById("sdate").value = '';
        document.getElementById("shr").selectedIndex = 0;
        document.getElementById("smin").selectedIndex = 0;
    }
}

function load_repeat_fields() {
    if ($('#repeatChk').is(':checked')) {
        $('#repeatContent').show();
    } else {
        $('#repeatContent').hide();
    }
}

function load_group_contacts(grpid) {
    rand = parseInt(Math.random() * 99999999);
    send_request("group_contacts.php?rand=" + rand + "&group_id=" + grpid, "groupright", 0);
}

var GcontactCount = 0;
function toInfo() {
    CalGrandTotalContacts();
    var selectedGroupCount = $("#groupleft input[type=checkbox]:checked").length;
    var contactCount = $('#GrandTotalContacts').val();
    if (contactCount > 0) {
        $("#to-info").html(selectedGroupCount + " Groups, " + contactCount + " Contacts (approx)");
    } else {
        $("#to-info").html('');
    }
}

function loadUnload(grpid, grname, count) {
    if ($('#chk' + grpid).is(':checked')) {
        $("#group").val(grpid + ',' + $("#group").val());
        // load_group_contacts_new(grpid, grname, count);        
        GcontactCount += parseInt(count);
    } else {
        // unload_group_contacts(grpid, count); 
        var group = $("#group").val();
        var grp_new = group.replace(grpid + ',', "");
        $("#group").val(grp_new);
        GcontactCount -= parseInt(count);
    }
    $('#grouptotalnum').val(GcontactCount);
    toInfo();
}
var _checkBoxTemp = {};

function renderGroupInfo() {
    $("#selected-group-tags ul").html('');
    $("#groupleft .chkClass:checked").each(function () {
        var grpid = $(this).attr('data-id'),
                grname = $(this).attr('data-name'),
                count = $(this).attr('data-count');
        $("#selected-group-tags ul").append('<li id="tags' + grpid + '"> ' + grname + ' <span onclick="unload_group_contacts(\'' + grpid + '\', ' + count + ');" > ✕ </span> </li>');
    })
}

function load_group_contacts_new(grpid, grname, count) {
    $('#groupleft').addClass('showPreview');
    $('#grnamecpy').append('<a id="a' + grpid + '" href="javascript:;" class="tip a' + grpid + '" title="' + grname + '"><span class="ui-icon ui-icon-person"></span><span class="fl">' + grname + '</span>,</a>');
    /*$('#unselect' + grpid).show();
     $('#select' + grpid).hide();*/
    $("#total_con_" + grpid).html('Wait...');
    var gc = 0; //group count
    var cc = 0; //contact count
    $('#groupleft .select,#groupleft .unselect').val('Wait...').attr('disabled', 'disabled');
    // renderGroupInfo();
    $.ajax({
        url: "group_contacts_new.php?group=" + grpid,
        dataType: "json",
        success: function (html) {
            console.log(html);
            if ($('#groupCount').length != 0) {
                gc = parseInt($('#groupCount').html(), 10);
                cc = parseInt($('#selcon').html(), 10);
            }
            var previousCount = $('#grpTotalCount').html() | Number(0);
            if (gc != 0) {
                gc = gc + 1;
            } else {
                gc = 1;
            }
            $("#group").val(grpid + ',' + $("#group").val());
            if (html.data == "undefined" || html.data == null)
                $("#groupright").html('Unable to show preview May be group contain special characters.');
            else
                $("#groupright").html(html.data);
            _checkBoxTemp[grpid] = $("#previewTable").html();
            //_checkBoxTemp.push($("#groupright").html());
            $("#total_con_" + grpid).html('( <span id="gtotal' + grpid + '">' + html.total + '</span> )');
            $('#groupCount').html(gc);

            var actualCount = Number(previousCount) + Number(count);
            $('#grpTotalCount').html(actualCount);
            if (gc != 1) {
                $("#groupCount").next('span').text('Groups');
            } else {
                $("#groupCount").next('span').text('Group');
            }
            $('#selcon').html(cc + parseInt(html.total))
            $('#groupleft .select').val('Select').removeAttr('disabled');
            $('#groupleft .unselect').val('Unselect').removeAttr('disabled');
        }
    });
    $(".tip").tooltip({
        track: true
    });
    toInfo();
}

function unload_group_contacts(grpid, count) {
    // $("#tags"+grpid).remove();
    /* group, custome number and file upload check*/

    $("#chk" + grpid).prop("checked", false);
    if (!$('#groupleft input[type=checkbox]:checked').length) {
        $('#groupleft').removeClass('showPreview');
        $("#groupright").html('');
    }

    //$('#previewTable').hide();
    var gc = parseInt($('#groupCount').html(), 10);
    $('#groupCount').html(gc - 1);
    if (gc == 2) {
        $("#groupCount").next('span').text('Group');
    } else {
        $("#groupCount").next('span').text('Groups');
    }
    var cc = parseInt($('#selcon').html(), 10);
    var gtotal = parseInt($("#gtotal" + grpid).html());
    $('#selcon').html(cc - gtotal);
    var previousCount = $('#grpTotalCount').html() | Number(0);
    $("#total_con_" + grpid).html('');
    var group = $("#group").val();
    var grp_new = group.replace(grpid + ',', "");
    $("#group").val(grp_new);
    $("#a" + grpid).remove();

    /*$('#unselect' + grpid).hide();
     $('#select' + grpid).removeAttr('style');*/
    var actualCount = Number(previousCount) - Number(count);
    $('#grpTotalCount').html(actualCount);
    if (grp_new == "")
        $('#groupright').html('');
    if (Object.keys(_checkBoxTemp).length > 1) {
        delete _checkBoxTemp[grpid];
        $("#previewTable").html(_checkBoxTemp[Object.keys(_checkBoxTemp)[Object.keys(_checkBoxTemp).length - 1]]);
    }
    renderGroupInfo();
    toInfo();
}

function load_sender(senderid, maxLimit, minLimit) {
    var senderLen = senderid.length;

    if (senderLen < minLimit || senderLen > maxLimit) {
        show_message("Select SenderID in between " + minLimit + " to " + maxLimit + " characters", "error");
        return false;
    } else {
        $("#sender").val(senderid);
        $("#sender-id-conunter").text(senderLen);
        return true;
    }
}

function get_msg(msg, DLT_TE_ID = null) {
    if (document.getElementById("hindi_check").selectedIndex == 1) {
        $("#hindibox").val($.trim($(msg).text()));
    } else {
        $("#message").val($.trim($(msg).text()));
        //document.getElementById("templ_id").value=template;
    }
    var DLT_field = document.getElementById('DLT_TE_ID');
    if (JSON.stringify(DLT_field) != "null") {
        $("#DLT_TE_ID").val(DLT_TE_ID);
    }
}

//function get_msg(msg,template)
//{
//  if(document.getElementById("hindi_check").selectedIndex==1)
//  {
//      document.getElementById("hindibox").value=msg;
//  }
//  else
//  {
//      document.getElementById("message").value=msg;
//      document.getElementById("templ_id").value=template;
//  }
//}

function select_all_contacts() {
    for (i = 0; i < document.getElementById('contact').length; i++)
        try {
            document.getElementById('contact')[i].selected = true;
        } catch (e) {
        }
}

/*don't know function is in running or not*/

function check_availability(uname) {
    rand = parseInt(Math.random() * 99999999);
    send_request("action_layer.php?action=14&rand=" + rand + "&uname=" + uname, "", 0);
    send_request("action_layer.php?action=14&rand=" + rand + "&uname=" + uname, "show_availability", 0);
}

function check_availability1(uname) {
    rand = parseInt(Math.random() * 99999999);
    send_request("../action_layer.php?action=14&rand=" + rand + "&uname=" + uname, "", 0);
    send_request("../action_layer.php?action=14&rand=" + rand + "&uname=" + uname, "show_availability", 0);
}

function load_user_det(user_id) {
    rand = parseInt(Math.random() * 99999999);
    send_request("user_det.php?user_id=" + user_id + "&rand=" + rand, "show_user_det", 0);
    send_request("user_expiry.php?user_id=" + user_id + "&rand=" + rand, "show_expiry", 1);
}

function show_subsite_grid() {
    rand = parseInt(Math.random() * 99999999);
    send_request("subsite_grid.php?rand=" + rand, "show_user_subsites", 0);
}

function fill_blank(field, value) {
    //alert(document.getElementById(field).value);
    if ((document.getElementById(field).value) == '') {
        try {
            document.getElementById(field).value = value;
        } catch (e) {
            alert("1" + e);
        }
    } else if ((document.getElementById(field).value) == value) {
        try {
            document.getElementById(field).value = '';
        } catch (e) {
            alert("2" + e);
        }
    }
}
/*don't know function is in running or not  end*/

function update_counter_hindi(counter, text_elem) {
    var counterElem = document.getElementById(counter);
    var textElem = document.getElementById(text_elem);
    var len = textElem.value.length;
    var Count = textElem.value.length;
    var newchar;
    for (var i = 0; i < len; i++) {
        newchar = textElem.value.charAt(i);
        if (newchar == "\n")
            Count = parseInt(Count) + 1;
    }

    if ($("#userSign").length > 0 && $('#addSign').is(':checked') && counter == 'text_counter') //if user's signature exist
        Count = Count + parseInt($("#userSign").val().length);

    counterElem.innerHTML = Count;
    if (text_elem == 'hindibox') {
        if (Count > 160) {
            $('#' + text_elem).addClass("chngclr");
        } else {
            $('#' + text_elem).removeClass("chngclr");
        }
    }
    var credit;
    if (parseInt(counterElem.innerHTML) <= 70) //60
        credit = 1;

    else {
        credit = parseInt(parseInt(counterElem.innerHTML) / 67); //57
        if (parseInt(counterElem.innerHTML) % 67 != 0)
            credit = credit + 1;
    }
    document.getElementById("credits_span").innerHTML = credit;
    document.getElementById("hindiCr").value = credit;
    update_sms_counter('text_counter', text_elem);
}
/**
 * Verify that elem_id doesn't contain more than max_len characters
 * @param string elem_id id of elem to count characters in
 * @param int    max_len maxmimum input string (including spaces and returns)
 * @return boolean
 */
function check_content_length(elem_id, max_len) {
    var elem = document.getElementById(elem_id);
    if (elem.value.length > max_len) {
        return false;
    }
    return true;
}

//-----------------------Open New Window
var win = null;

function NewWindow(mypage, myname, w, h, scroll, pos) {

    //Depricated
    if (pos == "random") {
        LeftPosition = (screen.width) ? Math.floor(Math.random() * (screen.width - w)) : 100;
        TopPosition = (screen.height) ? Math.floor(Math.random() * ((screen.height - h) - 75)) : 100;
    }
    if (pos == "center") {
        LeftPosition = (screen.width) ? (screen.width - w) / 2 : 100;
        TopPosition = (screen.height) ? (screen.height - h) / 2 : 100;
    } else if ((pos != "center" && pos != "random") || pos == null) {
        LeftPosition = 0;
        TopPosition = 20
    }
    settings = 'width=' + w + ',height=' + h + ',top=' + TopPosition + ',left=' + LeftPosition + ',scrollbars=' + scroll + ',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no,titlebar=no';
    var urlvar = document.getElementById("filename").value;
    mypage = mypage + "?fname=" + urlvar;
    win = window.open(mypage, myname, settings);
}
//-----------------------End Open New Window

// Start Load details of uploaded csv file
function loadFileDetails(mypage, myname, w, h, scroll, pos) {
    $("#fileCountMsg").html('');
    mypage = mypage + "?fname=" + $("#filename").val();
    $("#fileCountMsg").load(mypage)
}
// End Load details of uploaded csv file



//-------------------------------------ajaxfileupload.js code

jQuery.extend({
    createUploadIframe: function (id, uri) {
        //create frame
        var frameId = 'jUploadFrame' + id;

        if (window.ActiveXObject) {
            var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
            if (typeof uri == 'boolean') {
                io.src = 'javascript:false';
            } else if (typeof uri == 'string') {
                io.src = uri;
            }
        } else {
            var io = document.createElement('iframe');
            io.id = frameId;
            io.name = frameId;
        }
        io.style.position = 'absolute';
        io.style.top = '-1000px';
        io.style.left = '-1000px';

        document.body.appendChild(io);

        return io
    },
    createUploadForm: function (id, fileElementId) {
        //create form
        var formId = 'jUploadForm' + id;
        var fileId = 'jUploadFile' + id;
        var form = $('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');
        var oldElement = $('#' + fileElementId);
        var newElement = $(oldElement).clone();
        $(oldElement).attr('id', fileId);
        $(oldElement).before(newElement);
        $(oldElement).appendTo(form);
        //set attributes
        $(form).css('position', 'absolute');
        $(form).css('top', '-1200px');
        $(form).css('left', '-1200px');
        $(form).appendTo('body');
        return form;
    },
    ajaxFileUpload: function (s) {
        // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout
        s = jQuery.extend({}, jQuery.ajaxSettings, s);
        var id = new Date().getTime()
        var form = jQuery.createUploadForm(id, s.fileElementId);
        var io = jQuery.createUploadIframe(id, s.secureuri);
        var frameId = 'jUploadFrame' + id;
        var formId = 'jUploadForm' + id;
        // Watch for a new set of requests
        if (s.global && !jQuery.active++) {
            jQuery.event.trigger("ajaxStart");
        }
        var requestDone = false;
        // Create the request object
        var xml = {}
        if (s.global)
            jQuery.event.trigger("ajaxSend", [xml, s]);
        // Wait for a response to come back
        var uploadCallback = function (isTimeout) {
            var io = document.getElementById(frameId);
            try {
                if (io.contentWindow) {
                    xml.responseText = io.contentWindow.document.body ? io.contentWindow.document.body.innerHTML : null;
                    xml.responseXML = io.contentWindow.document.XMLDocument ? io.contentWindow.document.XMLDocument : io.contentWindow.document;

                } else if (io.contentDocument) {
                    xml.responseText = io.contentDocument.document.body ? io.contentDocument.document.body.innerHTML : null;
                    xml.responseXML = io.contentDocument.document.XMLDocument ? io.contentDocument.document.XMLDocument : io.contentDocument.document;
                }
            } catch (e) {
                jQuery.handleError(s, xml, null, e);
            }
            if (xml || isTimeout == "timeout") {
                requestDone = true;
                var status;
                try {
                    status = isTimeout != "timeout" ? "success" : "error";
                    // Make sure that the request was successful or notmodified
                    if (status != "error") {
                        // process the data (runs the xml through httpData regardless of callback)
                        var data = jQuery.uploadHttpData(xml, s.dataType);
                        // If a local callback was specified, fire it and pass it the data
                        if (s.success)
                            s.success(data, status);

                        // Fire the global callback
                        if (s.global)
                            jQuery.event.trigger("ajaxSuccess", [xml, s]);
                    } else
                        jQuery.handleError(s, xml, status);
                } catch (e) {
                    status = "error";
                    //                    jQuery.handleError(s, xml, status, e);

                    jQuery.event.trigger("ajaxError", [s, e]);
                }

                // The request was completed
                if (s.global)
                    jQuery.event.trigger("ajaxComplete", [xml, s]);

                // Handle the global AJAX counter
                if (s.global && !--jQuery.active)
                    jQuery.event.trigger("ajaxStop");

                // Process result
                if (s.complete)
                    s.complete(xml, status);

                jQuery(io).unbind()

                setTimeout(function () {
                    try {
                        $(io).remove();
                        $(form).remove();

                    } catch (e) {
                        jQuery.handleError(s, xml, null, e);
                    }

                }, 100)

                xml = null

            }
        }
        // Timeout checker
        if (s.timeout > 0) {
            setTimeout(function () {
                // Check to see if the request is still happening
                if (!requestDone)
                    uploadCallback("timeout");
            }, s.timeout);
        }
        try {
            // var io = $('#' + frameId);
            var form = $('#' + formId);
            $(form).attr('action', s.url);
            $(form).attr('method', 'POST');
            $(form).attr('target', frameId);
            if (form.encoding) {
                form.encoding = 'multipart/form-data';
            } else {
                form.enctype = 'multipart/form-data';
            }
            $(form).submit();

        } catch (e) {
            jQuery.handleError(s, xml, null, e);
        }
        if (window.attachEvent) {
            document.getElementById(frameId).attachEvent('onload', uploadCallback);
        } else {
            document.getElementById(frameId).addEventListener('load', uploadCallback, false);
        }
        return {
            abort: function () {}
        };

    },
    uploadHttpData: function (r, type) {
        var data = !type;
        data = type == "xml" || data ? r.responseXML : r.responseText;
        // If the type is "script", eval it in global context
        if (type == "script")
            jQuery.globalEval(data);
        // Get the JavaScript object, if JSON is used.
        if (type == "json")
            eval("data = " + data);
        // evaluate scripts within html
        if (type == "html")
            jQuery("<div>").html(data).evalScripts();
        //alert($('param', data).each(function(){alert($(this).attr('value'));}));
        return data;
    }
})

//--------------------------------------end ajaxfileupload.js





/*
 * iitain
 * functions callSubmit, showRequestMalsup, showResponseMalsup, showRequestMalsup
 * for malsup ajax form upload
 */


function callSubmit(ths) {
    var fileSize = ths.files[0].size;
    //33554432
    if (fileSize > 33554432) {
        showNotification(1769);
        return false;
    }
    var formId = $(ths).closest('form').attr('id');
    var id = ths.id;
    var type = $(ths).attr("fileType");
    var successFunc = $(ths).attr("successFunc");
    var errorFunc = $(ths).attr("errorFunc");

    var options = {
        //            target:        '#'+id   ,   // target element(s) to be updated with server response
        success: window[successFunc], // post-submit callback
        error: window[errorFunc],
        iframe: false,
        // other available options:
        url: '../action_layer.php?action=815&id=' + id + '&type=' + type, // override for form's 'action' attribute
        //        type:      type,        // 'get' or 'post', override for form's 'method' attribute
        dataType: 'json' // 'xml', 'script', or 'json' (expected server response type)
                //clearForm: true        // clear all form fields after successful submit
                //resetForm: true        // reset the form after successful submit
                //        fileElementId: id,
                //        secureuri: false
                // $.ajax options can be used here too, for example:
                //timeout:   3000
    };
    $('#overlay-loader').removeClass('d-none');
    $('#fileError-msg').addClass('d-none');
    $('#' + formId).ajaxSubmit(options);
    
}
var showScheduler = 0;
var csvData;
// post-submit callback
function showResponseMalsup(data, statusText, xhr, $form) {
    $('#overlay-loader').addClass('d-none');

    // for normal html responses, the first argument to the success callback
    // is the XMLHttpRequest object's responseText property

    // if the ajaxSubmit method was passed an Options Object with the dataType
    // property set to 'xml' then the first argument to the success callback
    // is the XMLHttpRequest object's responseXML property

    // if the ajaxSubmit method was passed an Options Object with the dataType
    // property set to 'json' then the first argument to the success callback
    // is the json data object returned by the server

    inputElement = $form.find('input');
    type = inputElement.attr('fileType');
    if (typeof (data.error) != 'undefined') {
        
        if (data.error != '') {
            alert(data.error);
        } else {

            if (type == 1 || type == 4) {
                $("#dyCnt").hide();
                $("#unselflufb2").removeAttr('checked');
                document.getElementById("uploadedFileNameA").innerHTML = data.name;
                /* check limit of send sms on number of contacts defalut limit 5000 
                 if(data.numcols>=5000 )
                 {
                 if(showScheduler==1)
                 $('#PreviewAndSend').text('Preview and schedule');
                 $('#btnCheckSendingQuota,#schedule-btn').hide();
                 $('#PreviewAndSend').show();
                 }*/
                setTimeout(function () {
                    doingCajole();
                }, 1000)
            }

            if (type == 2) {

                $("#contentright").load('advanced.php?file_name=' + encodeURIComponent(data.name), function () {
                    if (document.getElementById("filename")) {
                        document.getElementById("filename").value = data.msg;
                    }
                });
            } else if (type == 3) {
                document.getElementById("filename").value = data.msg;
                var group_import = group;
                /*var group_import=document.getElementById("filter_group").value;*/
                var file_name = document.getElementById("filename").value;
                $.ajax({
                    type: "POST",
                    url: "../action_layer.php?action=27&group_import=" + group_import + "&file_name=" + file_name,
                    success: function (msg) {
                        if (msg == "Phonebook entries added/ duplicate entries updated successfully.") {
                            show_message(msg, "success");
                        } else {
                            show_message(msg, "error");
                        }
                        /* $("#notifications").load("notifications.php");
                         
                         $("#contentright").load("phone_book.php");
                         window.setTimeout("hide_message()",2000); */
                    }
                });
            } else if (type == 5) {
                document.getElementById("filename").value = data.msg;
                /*var group_import=document.getElementById("filter_group").value; */
                var file_name = document.getElementById("filename").value;

                $.ajax({
                    type: "POST",
                    /*  url: "../read_number.php?filename="+data.filename */
                    url: "../action_layer.php?action=27&file_name=" + file_name,
                    success: function (msg) {
                        if (msg == "Phonebook entries added/ duplicate entries updated successfully.")
                            show_message(msg, "success");
                        else
                            show_message(msg, "error");
                    }
                });
            } else {
                document.getElementById("filename").value = data.msg;
                document.getElementById("numberOfContacts").value = data.num;
                numberOfContacts = contactsInFile = data.num;
                document.getElementById("select_file2").style.display = "block";

                if (data.numcols > 1)
                {
                    csvData = data;
                    // $('#routeToSendCustomSms').trigger('click');
                    showCustomMsg();
                    /*            var conf = confirm("Do you wish to use custom sms service");
                     delGTemp = '<div class="white-popup _wid400 topbar closeOut zoom-anim-dialog modal-gray-theme" id="dialog-confirm"><button class="mfp-close noDisplay" type="button" title="Close (Esc)">×</button><h3 class="pd2">Do you wish to use custom sms service</h3><div class="pd2 clear"><button onclick="showCustomMsg();$.magnificPopup.close()" class="btn btn-medium btn-danger mrR1">Yes</button><button class="btn btn-medium btn-grayd" onclick="$.magnificPopup.close()">No</button></div></div>';
                     $.magnificPopup.open({
                     items: {
                     src: delGTemp,
                     type: 'inline',
                     },
                     callbacks: {
                     open: function () {
                     },
                     close: function () {
                     $("#disable").prop("checked", true)
                     }
                     }
                     }); */
                }

                return true;
            }
            toInfo();
        }
    }
}
function createCsvFromSpreadsheet(sheetId , sheetName)
{
    var postData = {'sheetId' : sheetId , 'sheetName' :sheetName};
    $.post('../action_layer.php?action=630', {'data': JSON.stringify(postData)}, function (respData) {
        var data = JSON.parse(respData);
        document.getElementById("uploadedFileNameA").innerHTML = data.name;
        document.getElementById("filename").value = data.filename;
        $("#unselflufb2").attr('checked','checked');
        document.getElementById("numberOfContacts").value = data.num;
        numberOfContacts = contactsInFile = data.num;
        document.getElementById("select_file2").style.display = "block";
        console.log(data.numcols);
        if (data.numcols > 1)
        {
            csvData = data;
            showCustomMsg();
            toInfo();
        }
    });
}
function showCustomMsg() {
    data = csvData;
    $.ajax({
        url: '../read_xls.php?this',
        dataType: 'json',
        contentType: 'application/json',
        success: function (data) {
            $('#advancePreview').html(data.dropdown);
            $('#advancePreview').show();
            $("#insertColumnSel").html(data.buttons);
            $("#insertColumnSel .dropdown-item").hover(function () {
                var indx = $(this).index() + 1;
                $('#advancePreview colgroup col').eq(indx).toggleClass('hover');
            })

            $("#mobileColumn").on("change", function () {
                var val = $(this).val();

                toInfo();

                if (val) {
                    $(this).removeClass('error');
                    $('.labelformobileno').removeClass('error');
                } else {
                    $(this).addClass('error');
                    $('.labelformobileno').addClass('error');
                }
            })

        }});
    $('#fileupdloadright').hide();
    csvData = {};
}
function convertIntoNormal(val) {
    if (val.trim() != '') {
        $('#mobile-right').show();
        $('#form1').prop('action', '../action_layer.php?action=11');
    } else {
        $('#mobile-right').show();
    }
    if ($('#unselflufb2:checked').length > 0)
    {
        $('#advancePreview').show();
    } else
    {
        $('#fileupdloadright').show();
    }
}
/*
 * if needed to extend
 */
function showErrorMalsup(XMLHttpRequest, textStatus, errorThrown) {
    $("#dyCnt").show();
    $("#unselflufb2").attr('checked', false);
    $('#overlay-loader').addClass('d-none');

    if(XMLHttpRequest.status == "413"){
        alert(errorThrown);
    }   
}

function ajaxFileUpload(id, type, group) {
    $('#loading').show();
    $.ajaxFileUpload({
        url: '../action_layer.php?action=815&id=' + id + '&type=' + type,
        secureuri: false,
        fileElementId: id,
        dataType: 'json',
        success: function (data, status) {
            //alert(data);
            //alert(data.error);
            if (typeof (data.error) != 'undefined') {

                if (data.error != '') {
                    $('#loading').hide();
                    alert(data.error);
                } else {

                    if (type == 1 || type == 4) {

                        document.getElementById("uploadedFileNameA").innerHTML = data.name;
                    }

                    if (type == 2) {
                        $("#contentright").load("advanced.php?file_name=" + data.msg, function () {
                            document.getElementById("filename").value = data.msg;
                            $('#loading').hide();
                        });
                    } else if (type == 3) {
                        document.getElementById("filename").value = data.msg;
                        var group_import = group;
                        /*var group_import=document.getElementById("filter_group").value;*/
                        var file_name = document.getElementById("filename").value;
                        $.ajax({
                            type: "POST",
                            url: "../action_layer.php?action=27&group_import=" + group_import + "&file_name=" + file_name,
                            success: function (msg) {
                                if (msg == "Phonebook entries added/ duplicate entries updated successfully.") {
                                    show_message(msg, "success");
                                } else {
                                    show_message(msg, "error");
                                }
                                /* $("#notifications").load("notifications.php");
                                 
                                 $("#contentright").load("phone_book.php");
                                 window.setTimeout("hide_message()",2000); */
                            }
                        });
                        $('#loading').hide();
                    } else if (type == 5) {
                        document.getElementById("filename").value = data.msg;
                        /*var group_import=document.getElementById("filter_group").value; */
                        var file_name = document.getElementById("filename").value;

                        $.ajax({
                            type: "POST",
                            /*  url: "../read_number.php?filename="+data.filename */
                            url: "../action_layer.php?action=27&file_name=" + file_name,
                            success: function (msg) {
                                if (msg == "Phonebook entries added/ duplicate entries updated successfully.")
                                    show_message(msg, "success");
                                else
                                    show_message(msg, "error");
                            }
                        });
                        $('#loading').hide();
                    } else {
                        document.getElementById("filename").value = data.msg;
                        /* document.getElementById("select_file").style.visibility = "";
                         document.getElementById("select_file").style.display = "block"; */
                        document.getElementById("select_file2").style.display = "block";
                        document.getElementById("impcon2").style.display = "none";
                        $('#loading').hide();
                        return true;
                    }
                }
            }
        },
        error: function (data, status, e) {
            $('#loading').hide();
            alert(e);
        }
    })

    return false;

}

function voiceFileUploader(id) {
    var formData = new FormData();
    files = document.getElementById("file3").files && document.getElementById("file3").files[0];
    if (files.length < 1)
        return;
    formData.append("uploaded", files);
    filename = files && files.name;
    document.getElementById("file3").value = "";
    $.ajax({
        url: '/action_layer.php?action=260', //Server script to process data
        type: 'POST',
        dataType: 'json',
        xhr: function () { // Custom XMLHttpRequest
            var myXhr = $.ajaxSettings.xhr();
            if (myXhr.upload) { // Check if upload property exists
                myXhr.upload.addEventListener('progress', progressHandlingFunction, false); // For handling the progress of the upload
            }
            return myXhr;
        },
        //Ajax events
        // beforeSend: beforeSendHandler,
        success: function (data) {
            if (data.msg_type == 'error')
                return show_message(data.msg, data.msg_type);
            $('#browseFileName').val(data.file);

            $('#fileNameWrap').show();
            $('#file_name').html('<a href="javascript:;" id="removeFile"><sup>x </sup></a>' + filename);
            return show_message(data.msg, data.msg_type);
        },
        error: function () {
            show_message('Unable to upload file please try again later', 'error');
        },
        // Form data
        data: formData,
        //Options to tell jQuery not to process data or worry about content-type.
        cache: false,
        contentType: false,
        processData: false
    });

}

function progressHandlingFunction(e) {
    if (e.lengthComputable) {
        $('#fileNameWrap').show();
        $('#file_name').html('<progress></progress>');
        $('progress').attr({value: e.loaded, max: e.total});
    }
}

$(document).on('click', '#removeFile', function () {
    $('#browseFileName').val('');
    $('#fileNameWrap').hide();
    $('#file_name').html('');

})
$(document).on('change', '#url_file_name', function () {
    urlFileName = $(this).val();
    $('#sendbtn').hide();
    $.ajax({
        url: '/action_layer.php?action=260',
        data: {'url_file_name': urlFileName},
        dataType: 'json',
        success: function (data) {

            show_message(data.msg, data.msg_type);
            if (data.msg_type == 'error')
                return false;
            $('#sendbtn').show();
            return $('#url_file_name').val(data.file);

        },
        error: function () {
            show_message('Invalid Url file not found', 'error');
        }


    })
})



/*set cursor position when focus input */
function setSelectionRange(input, selectionStart, selectionEnd) {
    if (input.setSelectionRange) {
        input.focus();
        input.setSelectionRange(selectionStart, selectionEnd);
    } else if (input.createTextRange) {
        var range = input.createTextRange();
        range.collapse(true);
        range.moveEnd('character', selectionEnd);
        range.moveStart('character', selectionStart);
        range.select();
    }
}

function setCaretToPos(input, pos) {
    setSelectionRange(input, pos, pos);
}


/* function append_column(id) {
 var hindicheck = $("#hindi_check").val();
 
 if (hindicheck == 2) {
 str_area = $('#hindibox').val();
 str_select = '##' + id + '$$';
 if ($('#hindibox').val() != '')
 str_area = str_area + ' ';
 $('#hindibox').val(str_area + str_select);
 pos = $('#hindibox').val().length;
 setCaretToPos(document.getElementById('hindibox'), pos)
 } else {
 str_area = $('#message').val();
 str_select = '##' + id + '$$';
 if ($('#message').val() != '')
 str_area = str_area + ' ';
 $('#message').val(str_area + str_select);
 pos = $('#message').val().length;
 setCaretToPos(document.getElementById('message'), pos)
 }
 
 } */


function preview_message(arg) {
    $('#loading').show();
    var field = 'message';
    if ($('#hindi_check').val() == '1')
        field = 'hindibox';
    if ($("#addSign").is(':checked')) {
        var message = $('#' + field).val() + ' ' + $("#userSignAtDraft").val();/* added extra space. added between sms and signature. */
    } else {
        var message = $('#' + field).val();
    }
    if ($("#groupleft .chkClass:checked").length == 0 && $("#mobile_no").val() == '' && $("#numberOfContacts").val() > 0) {
        $.ajax({
            type: "POST",
            url: "../action_layer.php?action=57",
            cache: false,
            data: {msg: message, field: field},
            success: function (data) {
                $('#PrvDrafts_show').html(data);
                $('#SingleDraftsShow').html('');
                $('#loading').hide();
            }
        });
    } else {
        message = $('<div>').text(message).html();
        $('#PrvDrafts_show').html('');
        $('#SingleDraftsShow').html(message);
    }
}
/*advance sms page functions end */

jQuery.fn.highlight = function (pat) {
    function innerHighlight(node, pat) {
        var skip = 0;
        if (node.nodeType == 3) {
            var pos = node.data.toUpperCase().indexOf(pat);
            if (pos >= 0) {
                var spannode = document.createElement('span');
                spannode.className = 'rt2';
                var middlebit = node.splitText(pos);
                var endbit = middlebit.splitText(pat.length);
                var middleclone = middlebit.cloneNode(true);
                spannode.appendChild(middleclone);
                middlebit.parentNode.replaceChild(spannode, middlebit);
                skip = 1;
            }
        } else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) {
            for (var i = 0; i < node.childNodes.length; ++i) {
                i += innerHighlight(node.childNodes[i], pat);
            }
        }
        return skip;
    }
    return this.each(function () {
        innerHighlight(this, pat.toUpperCase());
    });
};

jQuery.fn.removeHighlight = function () {
    return this.find("span.highlight").each(function () {
        this.parentNode.firstChild.nodeName;
        with (this.parentNode) {
            replaceChild(this.firstChild, this);
            normalize();
        }
    }).end();
};

function update_user_sign_pref(val, displ ,flag=1) {
    $("#userSignId").css('display', displ);
    $.ajax({
        type: "POST",
        url: "../action_layer.php?action=123",
        dataType: "json",
        data: "userSignPref=" + val,
        success: function (response) {
            if(flag==1){
               show_message(response.message, response.msgtype);
            }
            else{
                show_message('Signature is empty','error');
            }
        }
    });
}
//added by the mechanic on 18th march 2014
function doingCajole() {
    $("#unselflufb2").trigger('click');
    return false;
}
;

function CalGrandTotalContacts()
{
    grpTotalCount = 0;
    if ($("#grouptotalnum").val() > 0)
    {
        grpTotalCount = parseInt($("#grouptotalnum").val());
    }
    custometotalnum = 0;
    if ($('#custometotalnum').val() > 0)
    {
        custometotalnum = parseInt($('#custometotalnum').val());
    }
    numberOfContacts = 0;
    if ($('#numberOfContacts').val() != '')
    {
        numberOfContacts = parseInt($('#numberOfContacts').val());
    }
    $('#GrandTotalContacts').val(eval(numberOfContacts + custometotalnum + grpTotalCount));
    var previewButtonShow = 0;
    if (
            $("#groupleft .chkClass:checked").length == 0 &&
            $("#mobile_no").val() == '' &&
            $("#numberOfContacts").val() > 0 &&
            $("#unselflufb2:checked").length > 0 &&
            $("#mobileColumn").val() != 'all'
            ) {
        previewButtonShow = 1;
        $('#insertColumn').show();
        if (showScheduler != 1)
            $('#btnCheckSendingQuota').hide();
        else
            $('#schedule-btn').hide();
        $('#form1').prop('action', '../action_layer.php?action=11&page=advance');
    } else {
        previewButtonShow = 0;
        $('#insertColumn').hide();
        if (showScheduler != 1)
            $('#btnCheckSendingQuota').show();
        else
            $('#schedule-btn').show();
        $('#form1').prop('action', '../action_layer.php?action=11');
    }

    if ($('#GrandTotalContacts').val() < 5000 && previewButtonShow == 0)
    {
        $('#PreviewAndSend').hide();
    } else
    {
        if (showScheduler == 1)
        {
            $('#PreviewAndSend').text('Preview and schedule');
        } else
        {
            $('#PreviewAndSend').text('Preview and send');
        }
        $('#PreviewAndSend').show();
        $('#btnCheckSendingQuota,#schedule-btn').hide();
    }
}
var contactsInFile = 0;
$(document).on('change', '#unselflufb2', function () {
    $('#form1').prop('action', '../action_layer.php?action=11');
    if ($(this).is(":checked")) {
        //contactCount += contactsInFile;
        if (contactsInFile != 0)
            $("#numberOfContacts").val(contactsInFile);
        if ($('#unselflufb2:checked').length > 0)
        {
            $('#advancePreview').show();
            $('#fileupdloadright').hide();
            //$("#mobileNumBox .nav-tabs").css("display","none");
            $("#mobileNumBox .nav-tabs").hide();
        }

    } else {
        //contactCount -= contactsInFile;
        contactsInFile = $("#numberOfContacts").val();
        $("#numberOfContacts").val('');
        $("#advancePreview").hide();
        $('#fileupdloadright').show();
        $("#mobileNumBox .nav-tabs").show();
        //unsel_excel();
    }
    toInfo();
});

$(document).on('click', "#file2", function () {
    if ($("#file2").val() != '') {
        //do nothing
    } else {
        $("#dyCnt").show();
        $("#unselflufb2").attr('checked', false);
    }
});

function unsel_excel() {
    $.ajax({
        type: "POST",
        url: "../action_layer.php?action=60",
        data: "",
        success: function () {
            // $("#contentright").load("send_sms.php")
        }
    });
}

function Airtel() {
    var status = true;
    /* alert($('#text_counter').text()+":"+($('#hidden_cur_route').val()));//return false;return false;   */
    if (parseInt($('#hidden_cur_route').val()) == 4) {
        var sender = $('#sender').val();
        /* sender=sender.toUpperCase(); */
        $('#sender').val(sender);
        update_counter('sender-id-conunter', 'sender');
        if (sender.length < 6) {
            show_message("Sender id should be equal to six character.", "error");
            $('#sender').focus();
            status = false;
        }
        if (!((/^[a-zA-Z]*$/).test(sender))) // only uppercase letters accepted /^[A-Z]*[A-Z]$/
        {
            show_message("Sender id should be alphabetic and in capital letters.", "error");
            status = false;
        }
        /*if(parseInt($('#text_counter').text())<=50)
         {
         //alert('2=ok');
         show_message("Text message is less then 50 characters.","error");
         status= false;
         }
         */
    }
    /*return status;
     $("#sendbtn").attr("disabled", true);
     */
    if ($('#time2').attr('checked') === true) {
        if ($('#sdate').val() == "") {
            show_message("Please Select One Schedule Date", "error");
            status = false;
        }
        $("#sendbtn").attr("disabled", false);
    }
    return status;
}
var a, b, c = 0;
function load_sender_id() {
    $("#smsright .content").hide();
    $("#senderid").show();
    if ($("#senderid").html() == '') {
        $("#senderid").load("user_sender_id.php")
    }
}
function load_msg_div() {
    $("#smsright .content").hide();
    $("#disp_msg").show();
}
function load_mobile_div() {
    $("#smsright .content").hide();
    // if($("#mobile_no").val()=='' || $("#filename").val()=='')
    $("#mobile-right").show();
    if ($('#unselflufb2:checked').length > 0)
    {
        $('#advancePreview').show();
    } else
    {
        $('#fileupdloadright').show();
    }
    $("#loading").show();
    var grp = document.getElementById("group").value;
    if (b == '1') {
        $("#mobile-right").show();
    } else {
        $("#loading").show();
        var grp = document.getElementById("group").value;
        if (grp == "")
            $("#mobile-right").load("user_mobile_list.php", function () {
                b = 1;
                $('#loading').hide();
            });
        $("#mobile-right").show();
    }
    // if($("#mobile_no").val() != '' && $("#filename").val()!='')
    //   $("#mobile-right").hide();  
}
function load_draft(isSearch = 0) {
    var key_to_search = $('#search').val();
    if(!isSearch){
        $("#smsright .content").hide();
        $("#drafts_show,#URLShortnerBox").show();
        // if file selected
        if ($("#unselflufb2").is(":checked")) {
            $("#advancePreview").show();
        }
        if ($('#drafts_show').is(':empty')) {
            $("#loading").show();
            var unicode = $("#hindi_check").val();
            var type = (unicode == 0) ? 1 : 2;
            $("#drafts_show").load("user_saved_draft.php?type=" + type, function () {
            });
            $("#URLShortnerBox").load("user_urlshortner.php?type=" + type, function () {
                $('#loading').hide();
                $('#short_url_new').hide();
            });
        }
        $(".srchDraft").quicksearch("#table_draft tbody tr", {
            noResults: '#noresults',
            loader: ''
        });
    }else{
        $("#URLShortnerBox").load("user_urlshortner.php?type=" + type + "&key=" + key_to_search, function () {
            $('#loading').hide();
            $('#short_url_new').hide();
        });
    }
}

//by sarfaraz for create magnific pop open dynamic
// just pass id of div
function openMgfPopSch(id) {
    $.magnificPopup.open({
        items: {
            src: id,
            type: 'inline',
        },
        closeBtnInside: true,
        midClick: true,
        removalDelay: 300,
        mainClass: 'my-mfp-zoom-in',
        callbacks: {
            open: function () {
                setTimeout(function () {
                    $('#sdate-dlg').focus();
                }, 800);
            },
            close: function () {
                $('#sdate-dlg').datepicker('hide');
                $.magnificPopup.close();
            }
        }
    });
}
//added by sarfaraz 30 dec 2014
function canc_sch() {
    /* $("#shr-dlg,#smin-dlg").index(0);
     $("#time").val(1);
     $.magnificPopup.close(); */
    showScheduler = 0;
    $("#sdate,#shr,#smin,#sdate-dlg,#shr-dlg,#smin-dlg,#schtime").val('');
    $("#shr-dlg").selectric('refresh');
    $("#smin-dlg").selectric('refresh');
    $('#sdate-dlg').datepicker('hide');
    $("#schedule_fields, #back-to-send-sms-now").addClass('dn');
    $("#btnCheckSendingQuota, #Schedule").removeClass('dn');
    toInfo();
    $('#schedule-btn').hide();
}

function sch_done() {
    // new code for sms_sent page
    $("#schedule-btn").attr("disabled", "disabled");
    if($("#txtCurrentUserId").length)
    {
        var userId = $("#txtCurrentUserId").val();
        var numOfContacts = $("#numberOfContacts").val();
        var jsonData = {};
        var formData = $("#form1").serializeArray();
        $.each(formData, function () {
            jsonData['isShortUrl'] = urlShortened;
            if (jsonData[this.name]) {
                if (!jsonData[this.name].push) {
                    jsonData[this.name] = [jsonData[this.name]];
                }
                jsonData[this.name].push(this.value || '');
            } else {
                jsonData[this.name] = this.value || '';
            }
        });
        jsonDataString = JSON.stringify(jsonData);
        storageFun("remove", userId);
        storageFun("set", userId, jsonDataString);
    }
    // sid update 21-04-2014 to reset the schedule elements after succss
    var sTime = $("#time").val(2);
    var sDate = $("#sdate-dlg").val();
    var sHr = $("#shr-dlg").val();
    var sMin = $("#smin-dlg").val();
    var newDate = sDate + " " + sHr + ":" + sMin + ":00";

    $("#sdate").val($("#sdate-dlg").val());
    $("#shr").val($("#shr-dlg").val());
    $("#smin").val($("#smin-dlg").val());
    //var newDate =
    $('#schtime').val(newDate);
    var formData = $("#form1").serializeArray();
    var jsonData = {};
    $.each(formData, function () {
        if (jsonData[this.name]) {
            if (!jsonData[this.name].push) {
                jsonData[this.name] = [jsonData[this.name]];
            }
            jsonData[this.name].push(this.value || '');
        } else {
            jsonData[this.name] = this.value || '';
        }
    });
    try{
        if ($.trim($("#routeCategory").val())=="2" && $("#senderIdMax").val()>0 && $("#senderIdMin").val()>0 && ($.trim($("#sender").val()).length > $("#senderIdMax").val() || $.trim($("#sender").val()).length < $("#senderIdMin").val()) && $('country').length<1) {
            // $("#sender").focus();
            // show_message('Please provide correct Sender ID', "warning");
            // $("#sendbtn").removeAttr("disabled");
            // return false;
        }
        if ($("#country").val()=="") {
            $("#country").focus();
            show_message('Please select destination country', "warning");
            $("#sendbtn").removeAttr("disabled");
            return false;
        }
        analytics.track('Schedule SMS', jsonData,{'Analytics':AnalyticsCookie,'userInfo':segmentTrackingUserInfo});
    }catch(e){
        console.log(e);
    }
    $('#form1').ajaxForm({
        dataType: "json",
        success: showResponse
    });
    $('#form1').submit();

    $('#sdate-dlg').datepicker('hide');
    toInfo();
}

function validate_send_sms() {
    $("#sendbtn").attr("disabled", "disabled");
    //    if (parseInt($('#hidden_cur_route').val()) == 4)
    //    {
    //        var sender = $('#sender').val();
    //        //sender=sender.toUpperCase();
    //        //$('#sender').val(sender);
    //        if (sender.length < 6)
    //        {
    //            show_message("Sender id should be equal to six character.", "error");
    //            $('#sender').focus();
    //            $("#sendbtn").removeAttr("disabled");
    //            return false;
    //        }
    //        if (!((/^[a-zA-Z]*$/).test(sender))) /* only uppercase letters accepted /^[A-Z]*[A-Z]$/ */
    //        {
    //            show_message("Sender id should be alphabetic and in capital letters.", "error");
    //            $("#sendbtn").removeAttr("disabled");
    //            return false;
    //        }
    //
    //    }
    if ($('#time').val() === 2) {
        if ($('#sdate').val() == "") {
            show_message("Please Select One Schedule Date", "error");
            openMgfPopSch('#schedule_fields');
            $("#sendbtn").removeAttr("disabled");
            return false;
        }

    } else {
        $('#schtime').val('');
    }

    if ($.trim($("#sender").val()).length < 1) {
        $("#sender").focus();
        show_message('Please provide Sender ID', "warning");
        $("#sendbtn").removeAttr("disabled");
        return false;
    }
    if ($.trim($("#routeCategory").val())=="2" && $("#senderIdMax").val()>0 && $("#senderIdMin").val()>0 && ($.trim($("#sender").val()).length > $("#senderIdMax").val() || $.trim($("#sender").val()).length < $("#senderIdMin").val())) {
        $("#sender").focus();
        show_message('Please provide correct Sender ID', "warning");
        $("#btnCheckSendingQuota").removeAttr("disabled");
        return false;
    }
    var sender = $("#sender").val();
    $("#sendbtn").attr("disabled", true);
    if ($("#main_balance").text() < 0) {
        show_message('You Do Not have sufficient balance to send sms.', "error");
        $("#sendbtn").removeAttr("disabled");
        return false;
    }

    if ($("#sender").val().length < 1) {
        $("#sender").focus();
        show_message('Enter Sender id', "warning");
        $("#sendbtn").removeAttr("disabled");
        return false;
    }

    if ($("#mobile_no").val().length < 1 && $("#filename").val().length < 1 && $("#group").val().length < 1) {
        $("#mobile_no").focus();
        show_message('Please Provide Number to send sms', "warning");
        $("#sendbtn").removeAttr("disabled");
        return false;
    }
    if ($("#mobile_no").val().length > 1 && $("#filename").val().length < 1 && $("#group").val().length < 1) {
        var regex = /^[A-Za-z]+$/;
        if ($("#mobile_no").val().match(regex)) {
            $("#mobile_no").focus();
            show_message('Some invalid numbers given.', "warning");
            $("#sendbtn").attr("disabled", false);
            return false;
        }
    }

    if ($("#message").val().length < 1 && $("#hindibox").val().length < 1) {
        $("#message").focus();
        show_message('Please Enter Message to send', "warning");
        $("#sendbtn").removeAttr("disabled");
        return false;
    }
    //var theForm = document.getElementById('time2');
    if ($("#time").val() == 2) {
        var d = new Date();
        var acDate = d.getDate();
        var acHour = d.getHours();
        var acMinute = d.getMinutes();
        var hour = $("#shr").val();
        var minute = $("#smin").val();
        date = $("#sdate").val();
        sdate = date.substr(-2, 2);
        if (sdate.length == 0) {
            $("#sdate-dlg").focus();
            show_message('Please select schedule date', "warning");
            openMgfPopSch('#schedule_fields');
            $("#sendbtn").removeAttr("disabled");
            return false;
        }
        if (sdate.length > 0 && sdate == acDate) {
            if (acHour > hour) {
                show_message('Please use proper schedule Hour', "warning");
                openMgfPopSch('#schedule_fields');
                $("#sendbtn").removeAttr("disabled");
                return false;
            } else if (acHour == hour && acMinute > minute) {
                show_message('Scheduled time could not be less then current time.', "warning");
                openMgfPopSch('#schedule_fields');
                $("#sendbtn").removeAttr("disabled");
                return false;
            }
        } else if (sdate.length > 0 && sdate > acDate) {
            if (hour == '') {
                show_message('Please use proper schedule Hour', "warning");
                openMgfPopSch('#schedule_fields');
                $("#sendbtn").removeAttr("disabled");
                return false;
            }
        }
    }

    $.magnificPopup.close();
    $('#ss-loader').show();
    return true;
}
//show_unicode_alert for show alert
function show_unicode_alert(msg, type) {
    var btn2 = 'Edit SMS';
    var unicode = '0';
    var msgTemp = '<br><div>Note : Please changes your type according to your msg content. (English/Unicode)</div>';
    setTimeout(function () {
    $.magnificPopup.open({
        items: {
            src: '<div class="white-popup topbar closeOut zoom-anim-dialog clear"><button class="mfp-close" type="button" title="Close (Esc)">×</button><h3>Content Mismatch </h3><div class="pd2"><div class="clear">' + msg + msgTemp + '</div><div class="clear mrT2"><button onclick="unicode_alert_close()" class="btn btn-medium btn-orange">' + btn2 + '</button></div></div></div>',
            type: 'inline',
        },
        closeBtnInside: true,
        midClick: true,
        removalDelay: 100,
        mainClass: 'my-mfp-zoom-in'
    });
    }, 300);
}

function unicode_alert_close() {
    $.magnificPopup.close();
    $("#message").focus();
}

function sendInCorrectWay(type) {
    // console.log(type);
    if (type == 1) {
        $('#hindibox').val($('#message').val());
        $('#message').val('');
    } else {
        $('#message').val($('#hindibox').val());
        $('#hindibox').val('');
    }
    $("#hindi_check").val(type);
    $('#form1').submit();
    $.magnificPopup.close()
}

function unicode_alert_anyW() {
    $("#unicodeSendAnyway").val('1');
    $('#form1').submit();
    $.magnificPopup.close()
}

/* 
* @modification: following changes made by Kanhaiya on 30 May 2020
* remove nosms & msg parameter from function and data because we don't need.
*/
function delete_scheduled(id) {
    rand = parseInt(Math.random() * 99999999);
    if (confirm("Do you really wish to delete this scheduled message") == true) {
        $.ajax({
            type: "POST",
            url: "../action_layer.php?action=49",
            data: "req_id=" + id,
            dataType: "json",
            success: function (msg) {
                switch (msg.msgType) {
                    case "success":
                        show_message(msg.msg, "success");
                        $("#" + id).hide();
                        break;
                    default:
                        show_message(msg.msg, "warning");

                }
            }
        });
    }
}
/*
 * sid 21 04 2014
 * earlier this function was at user_saved_draft.php
 */
function delete_this_draft(id) {
    try {
        $.ajax({
            type: "POST",
            url: "../action_layer.php?action=65",
            data: "id=" + id,
            success: function (msg) {
                if (msg) {
                    show_message("Draft message deleted successfully", "success");
                    $("table#table_draft tr#d" + id).remove();
                }
            }
        });
    } catch (e) {
        alert("Error: Please refresh page an error has been occured")
    }
}
/*
 * sid 21 04 2014
 * earlier this function was at user_sender_id.php
 */
function delete_this_sender(id) {
    try {
        $.ajax({
            type: "POST",
            url: "../action_layer.php?action=66",
            data: "id=" + id,
            success: function (msg) {
                if (msg) {
                    show_message("Sender ID Deleted successfully", "success");
                    $('.list' + id).remove();
                }
            }
        });
    } catch (e) {
        alert("Error: Please refresh page an error has been occured")
    }
}

function storageFun(action, key, val) {
    var host = window.location.host;
    if (typeof (Storage) !== "undefined") {
        if (action == 'set') {
            localStorage.setItem(host + '.' + key, val);
        }
        if (action == 'get')
            return localStorage.getItem(host + '.' + key);
        if (action == 'remove')
            localStorage.removeItem(host + '.' + key);
    }
}

/*
 * sid 21 04 2014
 * earlier this function was at send_sms.php
 */
function showResponse(responseText, statusText, xhr, form) {
    $("#sendbtn").removeAttr("disabled");
    $('#ss-loader').hide();
    if (responseText.url) {
        _load(responseText.url);
    } else {
        if(responseText.msg_type != 1){
            $("#schedule-btn").removeAttr("disabled");
        }
        switch (responseText.msg_type) {
            case 1:
                showScheduler = 0;
                $.magnificPopup.close();
                try {
                    //analytics.track('send_sms_from_panel', {});
                } catch (err) {
                }
                if(isNotOther){
                    _load("sms_sent");
                }
                else{
                    show_message(responseText.msg, "success");
                    _load("send_sms");
                }
                break;
            case 2:
                show_message(responseText.msg, "warning");
                $.magnificPopup.close();
                break;
            case 3:
                show_message(responseText.msg, "error");
                $.magnificPopup.close();
                break;
            case 4:
                show_message(responseText.msg, "information");
                $.magnificPopup.close();
                break;
            case 5:
                window.location = '../logout.php';
                break;
            case 6:
            case 7:
                show_unicode_alert(responseText.msg, responseText.msg_type);
                break;
        }

    }
}
/*
 * sid 21 04 2014
 * earlier this function was at send_sms.php
 */
function getRelativeTimeString(time) {
    seconds = Math.floor(((new Date()).getTime() - (time)) / 1000);
    minutes = Math.floor(seconds / 60);
    hours = Math.floor(minutes / 60);
    days = Math.floor(hours / 24);
    hours = hours - (days * 24);
    minutes = minutes - (days * 24 * 60) - (hours * 60);
    seconds = seconds - (days * 24 * 60 * 60) - (hours * 60 * 60) - (minutes * 60);
    var lastSavedDays = days > 0 ? days + " Days " : "";
    var lastSavedHour = hours > 0 ? hours + " Hours " : "";
    var lastSavedMinutes = minutes > 0 ? minutes + " Minutes " : "";
    var lastSavedSeconds = seconds > 0 ? seconds + " Seconds " : "";
    return lastSavedDays + lastSavedHour + lastSavedMinutes + lastSavedSeconds;
}

/*
 * sid 21 04 2014
 * earlier this function was at send_sms.php
 */
function loadFolderNames() {
    $("#smsright .content").hide();
    $("#report_folder").show();
}

$(document).on('click', '.mfp-close', function (e) {
    e.preventDefault();
    $.magnificPopup.close();
});

var globaltimeout = null;

function saveToDraft() {
    if (globaltimeout != null) {
        clearTimeout(globaltimeout);
    }
    globaltimeout = setTimeout(function () {
        add_new_draft_record();
    }, 2000);
}


function loadLastMessage(check, userId, senderCategory) {
    var loadHtml = "";
    if (check == 1) {
        var oldMsgData = storageFun("get", userId);
        if (oldMsgData == "" || oldMsgData == null) {
            if (senderCategory == 2) {
                $('#sender').val("");
                update_counter('sender-id-conunter', 'sender');
            }
            $('#mobile_no').val("");
            $('#message').val("");
            $('#campaign').val("");
            $('#hindibox').val("");
            $("#country").val("");
            $("#DLT_TE_ID").val("");
            
        } else {
            var oldMsgJson = $.parseJSON(oldMsgData);
            if (senderCategory == 2 && $('#sender').prop('readonly') !== true) {
                $('#sender').val(oldMsgJson.sender);
                update_counter('sender-id-conunter', 'sender');
            }
            $('#mobile_no').val(oldMsgJson.mobiles);
            custometotalnums();
            $('#message').val(oldMsgJson.message);
            $('#campaign').val(oldMsgJson.campaign_name);
            $('#hindibox').val(oldMsgJson.hindibox);
            $("#country").val(oldMsgJson.country);
            $("#DLT_TE_ID").val(oldMsgJson.DLT_TE_ID);     // Modification by Vedant Jain || Adding DLT TE ID data also when clicking on load previous message || 28 July
        }
        loadHtml = '<a href="javascript:void(0)" onclick="loadLastMessage(2,\'' + userId + '\',\'' + senderCategory + '\')" id="loadLastMessage" ><small><u>Load current SMS</u></small></a>';
    } else {
        var currData = storageFun("get", userId + "_currData");
        if (currData != '' && currData != null) {
            var currDataArr = $.parseJSON(currData);
            $.each(currDataArr, function (index, element) {
                if (element != '' && element != null)
                    $('#' + index).val(element);
                else
                    $('#' + index).val('');

            });
        } else {
            $('#mobile_no,#message,#campaign,#hindibox,#sender,#country').val('');
        }
        loadHtml = '<a href="javascript:void(0)" class="btn-secondry-link" onclick="loadLastMessage(1,\'' + userId + '\',\'' + senderCategory + '\')" id="loadLastMessage" >Load previously sent SMS</a>';
        $("#country").val('');
        update_counter('sender-id-conunter', 'sender');
    }
    //To change counter of message
    // $('#message').focus();
    $('#message').click();
    try{
        $("#country").change();
        $("#country").selectric('refresh');
    }catch(ex){}
    $("#loadLastDiv").html(loadHtml);
}
//run on page load
function setFlashMessage(userID) {
    if (typeof (Storage) !== "undefined") {
        var checkBox = localStorage.getItem('Flash.' + userID);
        if (checkBox == "true") {
            $("#flash").prop("checked", true);
            $("#loadFlashSetting").html('<i class="icon-flash1"></i>');
            $("#sendbtn").text('Send Flash SMS');
            $("#loadFlashSetting").tooltip({
                content: "A Flash SMS appears directly on the phone's screen, instead of the <b>Inbox</b>. Its an useful alternative to normal SMS when you want to catch the recipients attention immediately. The recipient has the option of saving the Flash SMS to his <b>Inbox</b>"
            });
        } else {
            $('#flash').checked = false;
            $("#flash").prop("checked", false);
            $("#loadFlashSetting").html("");
            $("#sendbtn").text('Send SMS Now');
        }
    }
}

function setEncryptMessage(userID) {
    if (typeof (Storage) !== "undefined") {
        var checkBox = localStorage.getItem('Encrypt.' + userID);
        if (checkBox == "true") {
            $("#encrypt").prop("checked", true);
            $("#loadEncryptSetting").html('<i class="fa fa-lock"></i>');
            //$("#sendbtn").text('Send Flash SMS');
            $("#loadEncryptSetting").tooltip({
                content: "Use <b>encryption</b> if you have <b>sensitive data</b> that you dont want to be visible in delivery reports and exported reports as well, but will be <b>delivered properly</b>. You <b>can not resend</b> a encrypted SMS."
            });
        } else {
            $('#encrypt').checked = false;
            $("#encrypt").prop("checked", false);
            $("#loadEncryptSetting").html("");
            //$("#sendbtn").text('Send SMS Now');
        }
    }
}
//run on click
function flashSetting(userId) {
    var checkBox = $('#flash').is(":checked");
    if (typeof (Storage) !== "undefined") {
        if (checkBox) {
            $("#loadFlashSetting").html('<i class="icon-flash1"></i>');
            $("#sendbtn").text('Send Flash SMS');
            $("#loadFlashSetting").tooltip({
                content: "A Flash SMS appears directly on the phone's screen, instead of the <b>Inbox</b>. Its an useful alternative to normal SMS when you want to catch the recipients attention immediately. The recipient has the option of Saving the Flash SMS to his <b>Inbox</b>"
            });
        } else {
            $("#loadFlashSetting").html("");
            $("#sendbtn").text('Send SMS Now');
        }
        localStorage.setItem('Flash.' + userId, checkBox);
    }

}

function encryptSetting(userId) {
    var checkBox = $('#encrypt').is(":checked");
    if (typeof (Storage) !== "undefined") {
        if (checkBox) {
            $("#loadEncryptSetting").html('<i class="fa fa-lock"></i>');
            //$("#sendbtn").text('Send Flash SMS');
            $("#loadEncryptSetting").tooltip({
                content: "Use <b>encryption</b> if you have <b>sensitive data</b> that you dont want to be visible in delivery reports or exported reports as well, but will be <b>delivered properly</b>. You <b>can not resend</b> a encrypted SMS."
            });
        } else {
            $("#loadEncryptSetting").html("");
            //$("#sendbtn").text('Send SMS Now');
        }
        localStorage.setItem('Encrypt.' + userId, checkBox);
    }

}

function handleException(log) {
    console.log(log);
}

function gotoPage(paginationId) {
    try {
        $(".navigatePage").attr("disabled", true);
        var currentPage = getCurrentPage(paginationId);
        makeAction(currentPage, paginationId);
    } catch (ex) {
        handleException(ex);
    }
}

function makeAction(pageNo, paginationId) {
    $(".navigatePage-" + paginationId).attr("disabled", false);
    if (!pageNo || isNaN(pageNo) || pageNo <= 0) {
        showNotification(1143);
        return false;
    }
    callBack = $("#pagenum-" + paginationId).attr('callback');
    myData = $("#pagenum-" + paginationId).attr('myData');
    setCurrentPage(pageNo, paginationId);
    var data = {
        url: $("#pagenum-" + paginationId).attr('url'),
        pageNo: pageNo,
        myData: myData,
    }
    return window['' + callBack + ''](data);
}

function enterGotoPage(evnt, paginationId) {
    var enterKey = 13;
    if (evnt.which == enterKey) {
        gotoPage(paginationId);
    } else {
        return false;
    }
}

function makePaginationInJs(paginationArr) {
    pageNum = paginationArr['page_num'];
    url = paginationArr['page_url'];
    paginationId = paginationArr['page_id'];
    callback = paginationArr['callback'];
    limit = paginationArr['limit'];
    totalRecord = paginationArr['total_record'];
    myData = (paginationArr['myData']) ? paginationArr['myData'] : ""
    if (totalRecord >= limit) {

        var innerHtml = '<div id="paginationtxt-' + paginationId + '" class="paginationtxt mr2" >\
        <span class="fl">\
            <input type="button" class="btn btn-medium btn-grayd navigatePage-' + paginationId + '" value="&#x25C0;" onclick="navigatePage(-1,\'' + paginationId + '\');" id="prevbtn"/>\
            <span class="">Page Number: </span>\
            <input type="text" myData = "' + myData + '" url ="' + url + '" onkeyup="enterGotoPage(event,\'' + paginationId + '\')" callback = "' + callback + '" name="pagenum" id="pagenum-' + paginationId + '" value="' + pageNum + '" />\
            <input type="button" class="btn btn-medium btn-blue navigatePage-' + paginationId + '" value="Go" onclick="gotoPage(\'' + paginationId + '\');" id="gobtn"/>\
            <input type="button" class="btn btn-medium btn-grayd navigatePage-' + paginationId + '" value="&#x25B6;" onclick="navigatePage(1,\'' + paginationId + '\');" id="nextbtn" />\
        </span>\
    </div>';
    } else {
        innerHtml = '';
    }
    return innerHtml;
}

function navigatePage(moveto, paginationId) {
    try {
        $(".navigatePage-" + paginationId).attr("disabled", true);
        var currentPage = getCurrentPage(paginationId);
        var nextPage = parseInt(currentPage, 10) + parseInt(moveto, 10);
        makeAction(nextPage, paginationId);
    } catch (ex) {
        handleException(ex);
    }
}

function getCurrentPage(paginationId) {
    return $("#pagenum-" + paginationId).val();
}

function setCurrentPage(pageNo, paginationId) {
    return $("#pagenum-" + paginationId).val(pageNo);
}

function numberFormat(n) {
    if (!n && isNaN(n)) {
        return "";
    }
    // console.log(Math.abs(n));
    return String(Math.abs(n)).replace(/./g, function (c, i, a) {
        return i > 0 && c !== "." && (a.length - i) % 3 === 0 ? "," + c : c;
    });
}

function roundBalance(balance) {
    if (isNaN(round(balance, 2))) {
        return 0; // string or null value is passed
    } else {
        return round(balance, 4); // this will round the balnce two value
    }
}

function round(number, decimal) {
    var newnumber = new Number(number + '').toFixed(parseInt(decimal));
    // Output with rounded number
    var convertedNum = parseFloat(newnumber);
    ;
    return convertedNum;
}

function appendUrlToMsgDiv(msg) {
    console.log(msg);
    setTimeout(
            function () {
                $("#message").val(msg);
            }, 1000);
}
function setCookie(name, value, days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ')
            c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0)
            return c.substring(nameEQ.length, c.length);
    }
    return null;
}
function eraseCookie(name) {
    document.cookie = name + '=; Max-Age=-99999999;';
}
function numonly(ele) {
    $(ele).val($(ele).val().replace(/[^0-9]/g, ''));
}