﻿
$(function() {
    $('a[rel*=facebox]').facebox();
});

String.prototype.escapeForAjax = function() {
    if (this == null) return null;
    return this.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
}

//Fires before the page do PostBack to server side and fire the FileUploaded event.
function CuteWebUI_AjaxUploader_OnPostback() {
    var hidden = this;
    window.onbeforeunload = null;
}


Communifire = function() {
    var virtualDirectory = VIRTUALDIRECTORY;
    var modalContainerClass = 'generic-dialog';
    var loadingImage = '<img src="' + VIRTUALDIRECTORY + '/assets/images/icons/spinner.gif">';
    return {
        virtualDirectory: virtualDirectory,
        modalContainerClass: modalContainerClass,
        loadingImage: loadingImage,
        getCommonWebServicePath: function() {
        return String.format('{0}/WebServices/CommonWebService.asmx', this.virtualDirectory);
        },
        getAjaxTemplatesDirectoryPath: function() {
            return String.format('{0}/AjaxTemplates', this.virtualDirectory);
        },
        getHTTPHandlersDirectoryPath: function() {
            return String.format('{0}/HTTPHandlers', this.virtualDirectory);
        }

    }
} ();




Communifire.GlobalSetting = function() {
    var isFileControlEnabled;
    return {
        isFileControlEnabled: isFileControlEnabled
    }
}

Communifire.Utilities = function() {

    var _yaxisOffset = 100;
    var checkAll = function(checkAllBox) {
        var frm = document.aspnetForm;
        var chkState = checkAllBox.checked;
        for (i = 0; i < frm.length; i++) {
            e = frm.elements[i];
            if (e.type == 'checkbox' && e.name.indexOf('Id') != -1) {
                e.checked = chkState;
            }
        }
    };
    var checkChanged = function() {
        var frm = document.aspnetForm;
        var boolAllChecked;
        boolAllChecked = true;
        for (i = 0; i < frm.length; i++) {
            e = frm.elements[i];
            if (e.type == 'checkbox' && e.name.indexOf('Id') != -1) {
                if (e.checked == false) {
                    boolAllChecked = false;
                    break;
                }
            }
        }
        for (i = 0; i < frm.length; i++) {
            e = frm.elements[i];
            if (e.type == 'checkbox' && e.name.indexOf('checkAll') != -1) {
                if (boolAllChecked == false) {
                    e.checked = false;
                } else {
                    e.checked = true;
                } break;
            }
        }
    };
    var fadeInfadeOutAnimation = function(context) {
        context.fadeIn(400).fadeOut(400).fadeIn(400).fadeOut(400).fadeIn(400);
    };
    var getCenterXPosition = function(object) {
        var wi = $(window);
        var width = (wi.width() - object.width()) / 2 + wi.scrollLeft() + 'px';
        return width;
    };
    var getCenterYPosition = function(object) {
        var wi = $(window);
        var height = (wi.height() - object.height()) / 2 + wi.scrollTop() - _yaxisOffset + 'px';
        return height;
    };
    var getQuerystringParamValue = function(key, default_) {
        if (default_ == null) default_ = "";
        var keyInLower = key.toLowerCase();
        var url = window.location.href;
        var urlInLower = url.toLowerCase();
        key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
        var regex = new RegExp("[\\?&]" + keyInLower + "=([^&#]*)");
        var qs = regex.exec(urlInLower);
        if (qs == null) {
            return default_;
        }
        else {
            return qs[1];
        }
    };
    var isValidEmail = function(email) {
        var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
        return filter.test(email);
    };
    var jumpPage = function(basepage, pageCount, suffix) {
        if (!document.getElementById('txtPager').value > pageCount) {
            window.location = basepage + document.getElementById('txtPager').value + suffix;
        }
    };
    var print = function() {
        var disp_setting = "toolbar=no,location=yes,directories=no,menubar=no,";
        disp_setting += "scrollbars=yes,width=680, height=600, left=100, top=25, resizable=yes";
        var content_vlue = document.getElementById("print_content").innerHTML;
        var docprint = window.open("", "", disp_setting); docprint.document.open();
        docprint.document.write('<html><head><title>Print</title>');
        docprint.document.write(String.format('<link rel="stylesheet" href="{0}assets/css/styles.css" type="text/css" />', getApplicationURL()));
        docprint.document.write('</head><body style="padding:20px;" onLoad="self.print()">');
        docprint.document.write(content_vlue);
        docprint.document.write('</body></html>');
        docprint.document.close(); docprint.focus();
    };
    return {
        checkAll: checkAll,
        checkChanged: checkChanged,
        fadeInfadeOutAnimation: fadeInfadeOutAnimation,
        getCenterXPosition: getCenterXPosition,
        getCenterYPosition: getCenterYPosition,
        getQuerystringParamValue: getQuerystringParamValue,
        isValidEmail: isValidEmail,
        jumpPage: jumpPage,
        print: print
    }

} ();

//Usage
//Communifire.virtualDirectory
//Communifire.loadingImage
//Communifire.modalContainerClass
//Communifire.Utilities.getCenterXPosition
//Communifire.Utilities.getCenterYPosition
//Communifire.Utilities.getQuerystringParamValue
//Communifire.Utilities.jumpPage
//Communifire.Utilities.print
//Communifire.getCommonWebServicePath();
//Communifire.getAjaxTemplatesDirectoryPath();
//Communifire.getHTTPHandlersDirectoryPath();
