var ajaxErrorMessage = "Connection to Server is Broken";
var contextPath ;
var sessionTrackingParam ;
var ajaxLoadingImage ;
var feedbackDialog ;
var helpManualDialog;
var helpDialog ;
//var ajaxLoadingImageEffect ;//= new Fx.Tween(ajaxLoadingImage)

function globalDocumentReady(ctxPath,ajaxErorMessage,theme,direction,sessionTracking) {
    contextPath = ctxPath;
    ajaxErrorMessage = ajaxErorMessage;
    ajaxLoadingImage = $("#globalLoadingImage");
    retrieveFontSize();
    setAjaxDefaults();
    setUiDialogDefaults();
    renderAllTipPointies(theme);
    retrieveDirection(direction);
    if(sessionTracking){
        sessionTrackingParam = sessionTracking;
        checkAllForms(sessionTracking);
    }

//    feedbackDialog = null;
//    helpManualDialog = null;
//    helpDialog = null;
//        ajaxLoadingImageEffect = new Fx.Tween(ajaxLoadingImage);
}

function setAjaxDefaults(){
    $.ajaxSetup(
    {
        type :'POST',
        contentType:'application/x-www-form-urlencoded; charset=utf-8',
        scriptCharset:'utf-8',
        processData:true,
        global:true,
        ifModified:false,
        beforeSend: function(){
            showAjaxLoading();
        },
        complete:function(){
            hideAjaxLoading();
        },
        success:function(){
            hideAjaxLoading();
        },
        error: function() {
            hideAjaxLoading();
            alert(ajaxErrorMessage);
        }

    });
}
function setUiDialogDefaults(){
    $.ui.dialog.defaults.autoOpen= false;
    $.ui.dialog.defaults.bigframe=true;
    $.ui.dialog.defaults.show='drop';//pulsate shake bounce
    $.ui.dialog.defaults.resizable=true;
    $.ui.dialog.defaults.width= 780;
    $.ui.dialog.defaults.height= 550;
    $.ui.dialog.defaults.maxWidth=800;
    $.ui.dialog.defaults.minWidth=700;
    $.ui.dialog.defaults.maxHeight=600;
    $.ui.dialog.defaults.minHeight=500;
    $.ui.dialog.defaults.position='center';
    $.ui.dialog.defaults.closeText= 'close';
    $.ui.dialog.defaults.draggable= true;
    $.ui.dialog.defaults.stack= true;
}

function refreshCaptcha(){
    $('img[captchaImageContainer]').each(function(){
        var imgSrc = $(this).attr('src');
        var questionMarkIndex = imgSrc.indexOf('?');
        $(this).attr('src' , (imgSrc.substring(0, (questionMarkIndex == -1 ? imgSrc.length : questionMarkIndex ) ) +
                              '?val=' + (new Date()).getTime()));
    });
//        setTimeout('void(0);',1000);
}

function renderAllTipPointies(themeName){

    $('a[tipPointy=true]').each(function() // Select all elements with the "tooltip" attribute
    {
        var qtipx;
        var tit = $.trim($(this).attr('tipTitle'));
        var targetCorner = $.trim($(this).attr('tipTargetCorner'));
        var tipTextAlign = $.trim($(this).attr('tipTextAlign'));
        var tipId = $.trim($(this).attr('id'));
        if($.browser.msie){
            qtipx = $(this).qtip({content:{
                text:$(this).attr('tipContent'),
                title: {
                    text: (tit!=null && tit.length!=0) ? '&nbsp;' + tit + '&nbsp;' : false,
                    button:false
                }
            },show: { solo: true/*,ready: tipId=="helpTipsPointy" */},
                hide: {delay:  0,when:{ event:'unfocus'}},
                /*hide: {delay: tipId=="helpTipsPointy" ? 2000 : 0,when:{ event:tipId=="helpTipsPointy" ?'unfocus' : 'unfocus'}},*/
                position:{
                corner:{
                    tooltip:(tooltipCorner!=null && tooltipCorner.length!=0) ?  tooltipCorner : 'topLeft',
                    target:(targetCorner!=null && targetCorner.length!=0) ?  targetCorner : 'bottomRight'
                }
            },style: {
                    name: themeName}});
        }else{
            var tooltipCorner = $.trim($(this).attr('tipTooltipCorner'));
            qtipx = $(this).qtip({content:{
                text:$(this).attr('tipContent'),
                title: {
                    text: (tit!=null && tit.length!=0) ? '&nbsp;' + tit + '&nbsp;' : false,
                    button:false
                }

            },show: { solo: true/*,ready: tipId=="helpTipsPointy" */},
                hide: {delay:  0,when:{ event:'unfocus'}},
                /*hide: {delay: tipId=="helpTipsPointy" ? 2000 : 0,when:{ event:tipId=="helpTipsPointy" ?'unfocus' : 'unfocus'}},*/
            position:{
                corner:{
                    tooltip:(tooltipCorner!=null && tooltipCorner.length!=0) ?  tooltipCorner : 'topLeft',
                    target:(targetCorner!=null && targetCorner.length!=0) ?  targetCorner : 'bottomRight'
                }
            },
                style: {
                    name: themeName,
                    tip:true,
                    padding: 5,
                    border: {
                        width: 3,
                        radius: 5
                    },
                    textAlign:(tipTextAlign!=null && tipTextAlign.length!=0) ? tipTextAlign : 'right',
                    classes:{button:'qtip-button'}
                }
            });
            /*if($(this).attr('id')=="helpTipsPointy"){
                qtipx.show();
                qtipx.qtip("show");
            }*/
        }

    });
}

function setAjaxErrorMessage(msg) {
    ajaxErrorMessage = msg;
}
function sendToClipboard(s)	{
    if( window.clipboardData )	{
        window.clipboardData.setData("Text", s);
        return true;
    }
    return false;
}
function getClipboardDate()	{
    if( window.clipboardData)	{
        return window.clipboardData.getData("text");
    }
    return null;
}

function ajaxUpdater(containerId, url , loadingImageId) {
    var loadingImg = $("#" + loadingImageId);
//    var myEffect = new Fx.Tween(loadingImg);
//    myEffect.set('opacity',1);
    showAjaxLoadingImage(loadingImg);
    var internalPagerUpdater = null;
    internalPagerUpdater = $("#"+ containerId).load(
            url,
            {},
            function(responseText, status ) {

                if(responseText.indexOf("j_payamsms_security_check")!=-1){
                        window.location.href=".";
                }

                hideAjaxLoadingImage(loadingImg);
            }
            );
}

function addCommas(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';                                
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1,$2');
    }
    return x1 + x2;
}

function selectAllItems(o, name) {
    var aCheckBoxes = document.getElementsByName(name);
    var l = aCheckBoxes.length;
    for (var i = 0; i < l; i++){
        if(!aCheckBoxes[ i].disabled){
            aCheckBoxes[ i].checked = o.checked;
        }
    }

//    if (o.checked)
//        NumberChecked = aCheckBoxes.length;
//    else
//        NumberChecked = 0;
    return true;
}
function selectAllGroups(o, name,evnt) {
    if(o.checked){
        if(confirm("Are you sure you want to send your message to all groups?")){
            selectAllItems(o,name);
            return true;
        }else{
            evnt.preventDefault();
            return false;
        }
    }else{
        selectAllItems(o,name);
        return true;
    }

//    if (o.checked)
//        NumberChecked = aCheckBoxes.length;
//    else
//        NumberChecked = 0;
    return true;
}

function selectOneItem( nameItem , nameSelectAllId){

    var aCheckBoxes = document.getElementsByName(nameItem);
    var oneCheckBox = document.getElementsByName(nameSelectAllId);
    var l = aCheckBoxes.length;
    var allChecked = true;
    var allDisabled= true;
    for (var i = 0; i < l; i++){
        if(!aCheckBoxes[i].checked){
            allChecked = false;
        }
        if(!aCheckBoxes[i].disabled){
            allDisabled = false;
        }
    }
    oneCheckBox[0].checked = allChecked;
    oneCheckBox[0].disabled= allDisabled;
    return true;
}

function updateCount(fieldObj, countFieldName, maxChars)
{
    var countField = document.getElementById(countFieldName);
    var count = fieldObj.value.length;

    countField.innerHTML = count;
}

function updateLengthAndMessageCount(fieldObj, messageLengthFieldName, messageCountFieldName, cautionFieldName)
{
    var messageLengthField = document.getElementById(messageLengthFieldName);
    var messageCountField = document.getElementById(messageCountFieldName);
    var cautionField = document.getElementById(cautionFieldName);
    var messageContent = fieldObj.value;
    var enterCount = processEnter(messageContent);
    var browserName = navigator.appName;
    var messageLength = fieldObj.value.length;
    if (browserName != 'Netscape') {
        messageLength = messageLength - enterCount;
    }
    var caution = '';
    var maxMessageCount = 10;
    var maxEnglishLength = 160;
    var maxPersianLength = 70;
    var maxLongEnglishLength = 153;
    var maxLongPersianLength = 67;
    var isEnMessage = isEnglishString(messageContent);
    var maxMessageLength = isEnMessage ? (maxMessageCount * maxLongEnglishLength) :
                           (maxMessageCount * maxLongPersianLength);

    var messageCount = 1;

    if (isEnMessage && messageLength > maxEnglishLength) {
        messageCount = (messageLength > maxMessageLength ?
                       maxMessageCount : (parseInt(messageLength % maxLongEnglishLength) == 0 ?
                                         parseInt(messageLength / maxLongEnglishLength) :
                                         parseInt(messageLength / maxLongEnglishLength) + 1));
    }
    if (!isEnMessage && messageLength > maxPersianLength) {
        messageCount = (messageLength > maxMessageLength ?
                       maxMessageCount : (parseInt(messageLength % maxLongPersianLength) == 0 ?
                                         parseInt(messageLength / maxLongPersianLength) :
                                         parseInt(messageLength / maxLongPersianLength) + 1));

    }
    if (messageLength > maxMessageLength) {
        caution = '';
    }
    else {
        caution = 'none';
    }
    messageLengthField.innerHTML = messageLength;
    messageCountField.innerHTML = messageCount;
    cautionField.style.display = caution;
}

function isMobileNumber(input)
{
     return true;
/*
    while (input.indexOf('-') != -1) {
        input = input.replace('-', '');
    }
    while (input.indexOf(',') != -1) {
        input = input.replace(',', '');
    }
    input = Trim(input);
    var pat = /^989([0-9]){9}$/;

    var res = pat.test(input);

    if (res == true) {
        return res;
    }
    // todo saeed need only one 98
    var pat1 = /^982000([0-9])*$/;

    var res1 = pat1.test(input);
    if (res1 == true) {
        return res1;
    }


    var pat2 = /^09([0-9]){9}$/;

    var res2 = pat2.test(input);

    return res2;*/
}

function isMobileNumberRestrict(input)
{
    while (input.indexOf('-') != -1) {
        input = input.replace('-', '');
    }
    while (input.indexOf(',') != -1) {
        input = input.replace(',', '');
    }
    input = Trim(input);
    var pat = /^989([0-9]){9}$/;

    var res = pat.test(input);

    if (res == true) {
        return res;
    }
    // todo saeed need only one 98
    var pat1 = /^982000([0-9])*$/;

    var res1 = pat1.test(input);
    if (res1 == true) {
        return res1;
    }


    var pat2 = /^09([0-9]){9}$/;

    var res2 = pat2.test(input);

    return res2;
}

function isDateTime(input)
{
    var pat = /^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$/;
    var res = pat.test(input);
    return res;
}

function isPersianDateTime(input)
{
    // 1384/05/04 12:23
    var pat = /^[0-9]{4}\/[0-9]{2}\/[0-9]{2} [0-9]{2}:[0-9]{2}$/;
    var res = pat.test(input);
    return res;
}

function isPersianDate(input)
{
    // 1384/05/04
    var pat = /^[0-9]{4}\/[0-9]{2}\/[0-9]{2}/;
    var res = pat.test(input);
    return res;
}

function isEmail(input)
{

    var pat = /^.*@.*\..*$/;
    var res = pat.test(input);
    return res;
}
function LimitText(fieldObj, maxChars)
{
    var result = true;
    if (fieldObj.value.length >= maxChars)
        result = false;

    if (window.event)
        window.event.returnValue = result;
    return result;
}

function isEnglishString(input)
{
    if (input == '') {
        return true;
    }
    for (var i = 0; i < input.length; i++)
    {
        if (input.charCodeAt(i) > 127)
        {   
            return false;
        }
    }
    return true;

//    var pat =/^([a-z]|[A-Z]|[0-9]|-|_)*$/;
    //    var res = pat.test( input);

    //    return res;
}

function processEnter(input)
{
    var enterCount = 0;
    for (var i = 0; i < input.length; i++)
    {
        if (input.charCodeAt(i) == 10)
        {
            enterCount ++;
        }
    }
    return enterCount;
}

function isEnglishStringNoSpace(input)
{
    if (input == '') {
        return true;
    }
    for (var i = 0; i < input.length; i++)
    {
        if (input.charCodeAt(i) > 127)
        {
            return false;
        }
    }

    if (input.indexOf(' ') != -1)
    {
        // it has a space
        return false;
    }

    return true;

//    var pat =/^([a-z]|[A-Z]|[0-9]|-|_)*$/;
    //    var res = pat.test( input);

    //    return res;
}

function isNumber(input)
{

    var pat = /^-*[0-9]*$/;
    var res = pat.test(input);

    return res;
}

function Trim(str)
{
    var re1 = /^\s*/;
    var re2 = /\s*$/;
    return str.replace(re1, "").replace(re2, "");
}

function hasPerisanChar(body)
{
    if (body == '') {
        return false;
    }
    for (var i = 0; i < body.length; i++)
    {
        if (body.charCodeAt(i) > 127)
        {
            return true;
        }
    }
    return false;
}

var horizontal_offset = "9px" //horizontal offset of hint box from anchor link

/////No further editting needed

var vertical_offset = "0" //horizontal offset of hint box from anchor link. No need to change.
var ie = document.all
var ns6 = document.getElementById && !document.all

function getposOffset(what, offsettype) {
    var totaloffset = (offsettype == "left") ? what.offsetLeft : what.offsetTop;
    var parentEl = what.offsetParent;
    while (parentEl != null) {
        totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
        parentEl = parentEl.offsetParent;
    }
    return totaloffset;
}

function iecompattest() {
    return (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge) {
    var edgeoffset = (whichedge == "rightedge") ? parseInt(horizontal_offset) * -1 : parseInt(vertical_offset) * -1
    if (whichedge == "rightedge") {
        var windowedge = ie && !window.opera ? iecompattest().scrollLeft + iecompattest().clientWidth - 30 : window.pageXOffset + window.innerWidth - 40
        dropmenuobj.contentmeasure = dropmenuobj.offsetWidth
        if (windowedge - dropmenuobj.x < dropmenuobj.contentmeasure)
            edgeoffset = dropmenuobj.contentmeasure + obj.offsetWidth + parseInt(horizontal_offset)
    }
    else {
        var windowedge = ie && !window.opera ? iecompattest().scrollTop + iecompattest().clientHeight - 15 : window.pageYOffset + window.innerHeight - 18
        dropmenuobj.contentmeasure = dropmenuobj.offsetHeight
        if (windowedge - dropmenuobj.y < dropmenuobj.contentmeasure)
            edgeoffset = dropmenuobj.contentmeasure - obj.offsetHeight
    }
    return edgeoffset
}

function MM_preloadImages() { //v3.0
    var d = document;
    if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i,j = d.MM_p.length,a = MM_preloadImages.arguments;
        for (i = 0; i < a.length; i++)
            if (a[i].indexOf("#") != 0) {
                d.MM_p[j] = new Image;
                d.MM_p[j++].src = a[i];
            }
    }
}

function MM_swapImgRestore() { //v3.0
    var i,x,a = document.MM_sr;
    for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}

function MM_findObj(n, d) { //v4.01
    var p,i,x;
    if (!d) d = document;
    if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document;
        n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n];
    for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n);
    return x;
}

function MM_swapImage() { //v3.0
    var i,j = 0,x,a = MM_swapImage.arguments;
    document.MM_sr = new Array;
    for (i = 0; i < (a.length - 2); i += 3)
        if ((x = MM_findObj(a[i])) != null) {
            document.MM_sr[j++] = x;
            if (!x.oSrc) x.oSrc = x.src;
            x.src = a[i + 2];
        }
}

function MM_showLayer(layerId) { //v6.0
    var objX = document.getElementById(layerId);
    objX.style.display = '';
   // objX.style.right=t.right+'100';
    //    objX.style.zIndex=100;
}

function MM_hideLayer(layerId) { //v6.0
    var objX = document.getElementById(layerId);
    objX.style.display = 'none';

}

function hideAllBalloons() {
    var divs = document.getElementsByTagName('DIV');
    for (var i = 0; i < divs.length; i++) {
        var div = divs[i];
        if (div.id != null && div.id != '' && div.id.match('divBalloon')) {
            div.style.zIndex = '1';

        }
    }
    var tables = document.getElementsByTagName('TABLE');
    for (var i = 0; i < tables.length; i++) {
        var tab = tables[i];
        if (tab.id != null && tab.id != '' && tab.id.match('balloon')) {
            tab.style.display = 'none';

        }
    }
}
function showBalloon(bid,did) {
    hideAllBalloons();
    var ff = document.getElementById(bid);
    ff.style.display = '';
    document.getElementById(did).style.zIndex = '5';
}
function hideBalloon(bid,did) {
    var dd = document.getElementById(bid);
    dd.style.display = 'none';
    document.getElementById(did).style.zIndex = '1';
}
function balloonBrowserCheck(prefix){
var headID = document.getElementsByTagName("head")[0];
var cssNode = document.createElement('link');
cssNode.type = 'text/css';cssNode.rel = 'stylesheet';
var b_version=navigator.appVersion;
var version=parseFloat(b_version);
if (navigator.appName == "Microsoft Internet Explorer" && version< "4.0")

    {
     cssNode.href =prefix + '/styles/balloon/balloonie6.css' ;
    }
    else
    {
      cssNode.href =prefix + '/styles/balloon/balloon.css';
    }
cssNode.media = 'screen';
headID.appendChild(cssNode);
}

function closeMe()
{
  /*  var win=window.open("about:blank","_self");
    win.close();*/
    window.open('','_parent','');
    window.close();
  
}

var fontsize_ckname = 'payamsmsFontSizeCookie';
var defaultFontSize=parseInt('5');
var currentFontSize=defaultFontSize;
var maxFontSize=parseInt('8');
var minFontSize=parseInt('1');
var currentDir="rtl";
var currentStartAlign="left";
var currentEndAlign="right";
function switchFontSize (val){
    var bd = $('body');
	switch (val) {
		case 'inc':
			if (currentFontSize+1 <maxFontSize) {
				bd.removeClass('fs'+currentFontSize);
				currentFontSize++;
				bd.addClass('fs'+currentFontSize);
			}
		break;
		case 'dec':
			if (currentFontSize-1 > minFontSize) {
				bd.removeClass('fs'+currentFontSize);
				currentFontSize--;
				bd.addClass('fs'+currentFontSize);
			}else{

            }
		break;
		default:
			bd.removeClass('fs'+currentFontSize);
			currentFontSize = val;
			bd.addClass('fs'+currentFontSize);
	}
    if(currentFontSize==defaultFontSize){
        $('#ja-tool-decrease').css({'cursor': 'pointer'});
        $('#ja-tool-reset').css({'cursor': 'default'});
        $('#ja-tool-increase').css({'cursor': 'pointer'});
    }else{
        $('#ja-tool-reset').css({'cursor': 'pointer'});
        if(currentFontSize+1>=maxFontSize){

            $('#ja-tool-decrease').css({'cursor': 'pointer'});
            $('#ja-tool-increase').css({'cursor': 'default'});
        }else if(currentFontSize-1<=minFontSize){
            $('#ja-tool-decrease').css({'cursor': 'default'});
            $('#ja-tool-increase').css({'cursor': 'pointer'});
        }else{
            $('#ja-tool-decrease').css({'cursor': 'pointer'});
            $('#ja-tool-reset').css({'cursor': 'default'});
            $('#ja-tool-increase').css({'cursor': 'pointer'});
        }
    }

    saveFontSize();
}

function retrieveFontSize (){
    var savedFontSize = $.cookies.get(fontsize_ckname);
    if(savedFontSize!=null && savedFontSize.length!=0){
        switchFontSize(parseInt(savedFontSize));
    }else{
        switchFontSize(defaultFontSize);
    }
}

function saveFontSize (){
    $.cookies.set(fontsize_ckname,currentFontSize,{hoursToLive: 24 * 365 ,secure: false});
}


var dir_ckname = 'payamsmsDirectionCookie';

function retrieveDirection (defaultDir){
    var savedDir = $.cookies.get(dir_ckname);
    if(savedDir!=null && savedDir.length!=0){
        switchDirection(savedDir);
    }else{
        switchDirection(defaultDir);
    }
}
function saveDirection (){
    $.cookies.set(dir_ckname,currentDir,{hoursToLive: 24 * 365 ,secure: false});

}

function switchDirection (val){

	var bd = $('body,.formTable');
    bd.removeClass('default-text-align');
    bd.removeClass('default-direction');
    switch (val) {
        case 'ltr':
            $('#switch-ltr').css('display','none');
            $('#switch-rtl').css('display', '');
            $('#themeSelectorContainer').removeClass('text-right');
            $('#themeSelectorContainer').addClass('text-left');
            $('#featureContainer').removeClass('text-left');
            $('#featureContainer').addClass('text-right');
            $('#adpLogoContainer').removeClass('float-left');
            $('#adpLogoContainer').addClass('float-right');
            $('#networkOperatorSelectorContainer').removeClass('float-right');
            $('#networkOperatorSelectorContainer').addClass('float-left');
            bd.removeClass('direction-rtl');
            bd.removeClass('text-right');
            bd.removeClass('background-right');

            bd.addClass('direction-ltr');
            bd.addClass('text-left');
            bd.addClass('background-left');
            currentDir="ltr";
            currentStartAlign="left";
            currentEndAlign="right";

            break;
        case 'rtl':
            $('#switch-rtl').css('display', 'none');
            $('#switch-ltr').css('display', '');
            $('#themeSelectorContainer').removeClass('text-left');
            $('#themeSelectorContainer').addClass('text-right');
            $('#featureContainer').removeClass('text-right');
            $('#featureContainer').addClass('text-left');
            $('#adpLogoContainer').removeClass('float-right');
            $('#adpLogoContainer').addClass('float-left');
            $('#networkOperatorSelectorContainer').removeClass('float-left');
            $('#networkOperatorSelectorContainer').addClass('float-right');
            bd.removeClass('direction-ltr');
            bd.removeClass('text-left');
            bd.removeClass('background-left');

            bd.addClass('direction-rtl');
            bd.addClass('text-right');
            bd.addClass('background-right');
            currentDir="rtl";
            currentStartAlign="right";
            currentEndAlign="left";

            break;
	}
    saveDirection();
    

}


function onButtonMouseOver(ctl,sz){
	ctl.className = "command-button-hover" + sz;
}

function onButtonMouseOut(ctl,sz){
        ctl.className = "command-button" + sz;
}

function onButtonFocus(ctl,sz){
	ctl.className = "command-button-focus" + sz;
}

function onButtonBlur(ctl,sz){
        ctl.className = "command-button" + sz;
}

function onButtonMouseDown(ctl,sz){
	ctl.className = "command-button-hover" + sz;
}

function onButtonMouseUp(ctl,sz){
        ctl.className = "command-button" + sz;
}



function sendTestMessage(actionUri,ctlForm,bodyCtlId,flashCheckCtlId,mobile,msgConfirm,msgDone,msgFail){
    var enteredNumber = prompt(msgConfirm,mobile );
    if (enteredNumber) {
        var myRequest = null;
        myRequest = $.ajax({
            url: actionUri,
            type: 'POST',
            datatype: 'html',
            data:{token:'sendTest',
                msg: $("#"+bodyCtlId)[0].value,
                mobNumber: enteredNumber ,
                flashMsg: $("#"+flashCheckCtlId).val() == 'yes',
                ajax: 'true',
                decoSel : 'ajax',
                encoded: 'true'
            },
            success: function(responseText, responseXML) {
                if(myRequest!=null){
                    var status = myRequest.getResponseHeader("sendTestStatus");
                    if(status!=null && status=='ok'){
                        alert(msgDone+ '\n   ' + $("#"+bodyCtlId).val() + '\nto\n    ' + enteredNumber );
                    }else{
                        alert(msgFail + '\nto\n    ' + enteredNumber );

                    }
                }

            }
        });

    }
}

function sendTestMessage(actionUri,ctlForm,bodyCtlId,flashCheckCtlId,mobile,msgConfirm,msgDone,msgFail){
    var enteredNumber = prompt(msgConfirm,mobile );
    if (enteredNumber) {
        var myRequest = null;
        myRequest = $.ajax({
            url: actionUri,
            type: 'POST',
            datatype: 'html',
            data:{token:'sendTest',
                msg: $("#"+bodyCtlId)[0].value,
                mobNumber: enteredNumber ,
                flashMsg: $("#"+flashCheckCtlId).val() == 'yes',
                ajax: 'true',
                decoSel : 'ajax',
                encoded: 'true'
            },
            success: function(responseText, responseXML) {
                if(myRequest!=null){
                    var status = myRequest.getResponseHeader("sendTestStatus");
                    if(status!=null && status=='ok'){
                        alert(msgDone+ '\n   ' + $("#"+bodyCtlId).val() + '\nto\n    ' + enteredNumber );
                    }else{
                        alert(msgFail + '\nto\n    ' + enteredNumber );

                    }
                }

            }
        });

    }
}

function showAjaxLoading(){
    showAjaxLoadingImage(ajaxLoadingImage);
}

function showAjaxLoadingImage(loadingImg){
    if(loadingImg){
        try{
            loadingImg.css('opacity','1');
            loadingImg.css('display','');
        }catch(e){}
    }
}
function hideAjaxLoading(){
    return hideAjaxLoadingImage(ajaxLoadingImage);
}

function hideAjaxLoadingImage(loadingImg){
    if(loadingImg){
        try{
            loadingImg.css('opacity','0');
            loadingImg.css('display','none');
        }catch(e){}
    }
}


function $try(){
	for (var i = 0, l = arguments.length; i < l; i++){
		try {
			return arguments[i]();
		} catch(e){}
	}
	return null;
}


function checkAllForms(trackId) {
    var customerLocation = document.getElementById("customerLocation")
    var forms = document.getElementsByTagName("FORM");
    if (forms) {
        for (var i = 0; i < forms.length; i++) {
            if (customerLocation && customerLocation.innerHTML.trim() != '&nbsp;') {
                var hiddenLocation = document.createElement("INPUT");
                hiddenLocation.name = 'customerLocation';
                hiddenLocation.type = 'hidden';
                hiddenLocation.value = customerLocation.innerHTML;
                if (forms[i].appendChild) {
                    try {
                        forms[i].appendChild(hiddenLocation);
                    } catch(e) {
                    }
                }

            }
            if (forms[i].name != 'saman' && forms[i].name != 'payamsmsLoginForm' && forms[i].action != null && forms[i].action.indexOf('jsessionid') == -1) {
                forms[i].action = forms[i].action + ";" + trackId + "?";
            }
        }
    }
}

function createHelpDialog(containerId,helpTitle,helpUri){
 var helpContainer = $(containerId);
    helpContainer.empty();
    helpContainer.load(helpUri);
    return helpContainer.dialog({title: helpTitle,closeOnEscape:true,modal:false});
}

function signMessage(messageBodyId,checkSignatureId,signatureContentainerId,errorMessage){
    var signatureContent = $(signatureContentainerId).val();
    if(signatureContent==null || signatureContent.length==0){
        alert(errorMessage);
    }else{
        var messageBody = $(messageBodyId);
        messageBody.val(messageBody.val().replace('\n' + signatureContent,''));
        messageBody.val(messageBody.val().replace(signatureContent,''));
        if($(checkSignatureId).attr('checked')){
            messageBody.val(messageBody.val()+'\n' + signatureContent);
        }
        updateLengthAndMessageCount(messageBody[0],'textcount','messagecount','caution');
    }
}

function changeOperator(ctl, selector,confirmMsg) {
    if (confirm(confirmMsg)) {
        if (selector == 'X') {
            document.changeOperatorForm.token.value = 'backendMci';
        } else if (selector == 'Y') {
            document.changeOperatorForm.token.value = 'backendTalia';
        } else if (selector == 'Z') {
            document.changeOperatorForm.token.value = 'backendMtn';
        }
        document.changeOperatorForm.submit();
    }
}

function showFlashHelp(swfUri) {
    var altContent  = $('#altContent');
    if(altContent){
        altContent.flash(swfUri, {width: 700, height: 430, flashvars: {}, paremeters: {} });
    }
    $('#flashContainer').toggle();
}



var jsonRequest;
    function loadRecipientData(containerid,selectId) {
        $('#' + containerid).slideToggle('fast');
        if($('#' + selectId).attr('options').length==1){
        jsonRequest = $.getJSON(
             'simpleSend.do',{
                token:'recipients',
                ajax: 'true',
                decoSel : 'ajax'
            },
            function(phonebook) {
                //                ajaxLoader.hide();
                var rcpList = document.getElementById(selectId);
                rcpList.options.length = 1;
                for (var rcpId = 0; rcpId < phonebook.phonebook.recipients.length; rcpId++) {
                    var rcp = phonebook.phonebook.recipients[rcpId];
                    if (rcp.V)
                        rcpList.options.add(new Option(rcp.V, rcp.K));
                }
            });
        }
    }

function computeGroupCount(){
        var sum = 0;
        var count = 0;
        $(':checkbox.groupChkBox[checked]').each(function(chkIndex) {
                sum += parseInt($(this).attr('groupSize'));
                count++;
        });
        $('#groupcount').html(addCommas("" + count));
        totalGroup = count;
        $('#groupsum').html( addCommas("" + sum));
        $('#totalsum').html(addCommas("" + (totalRecipients + sum)));
        totalRecipientsOfGroup = sum;

    }

function isEmpty(val){
    if(val==null || val.length==0 || val!=-1){
        return true;
    }else{
        return false;
    }
}
function isEmptyById(id){
    var val = $("#"+id).val();
    if(val==null || val.length==0 || val==-1){
        return true;
    }else{
        return false;
    }
}


function messageTemplateChange(event,tmpl,msgBody){
    if(tmpl.val()==null || tmpl.val().length==0){
        msgBody.val( tmpl.val());
    }else{
        msgBody.val(  msgBody.val() + "\n"+ tmpl.val());
    }
    tmpl.val("");
    event.preventDefault();
}