(function() {
    var masrawy = window.masrawy = function() {
        return new masrawy.prototype.init();
    };

    if (!window.masrawy) {
        window.masrawy = masrawy;
    }
 
    masrawy.proto = masrawy.prototype = {
        init: function() {
            return new masrawy();
        }
    }
    masrawy.getQSValue = function(q) {
        if (!qsObj) { loadCurrentQS(); }
        return qsObj[q];
    }
    masrawy.SetTextAutoComplete = function(text) {
        text = text.replace("+", "\\+");
        text = text.replace("*", "\\*");
        return text;
    }
    masrawy.setCookie = function(name, value, expires, path, domain, secure) {
        var today = new Date();
        today.setTime(today.getTime());

        if (expires) {
            expires = expires * 1000 * 60 * 60 * 24;
        }
        var expires_date = new Date(today.getTime() + (expires));

        document.cookie = name + "=" + escape(value) +
		((expires) ? ";expires=" + expires_date.toGMTString() : "") +
		((path) ? ";path=" + path : "") +
		((domain) ? ";domain=" + domain : "") +
		((secure) ? ";secure" : "");
    }
    masrawy.getCookie = function(name) {
        var dc = document.cookie;
        if (dc.indexOf(name) != -1 && dc.substr(dc.indexOf(name) + name.length, 1) == '=') {
            if (dc.indexOf(";", dc.indexOf(name)) != -1) {
                var EndOfCookie = dc.indexOf(";", dc.indexOf(name));
                var CookieName = dc.indexOf(name) + name.length + 1;
                var CookieValue = EndOfCookie - CookieName;
                return dc.substr(dc.indexOf(name) + name.length + 1, CookieValue)
            }
            else {
                return dc.substr(dc.indexOf(name) + name.length + 1, dc.length)
            }
        }
    }
    masrawy.startLoader = function(divName) {
        var loader = $("#loader" + divName)[0];
        var div = $("#" + divName);
        if (!loader) {
            loader = document.createElement("div");
            loader.id = "loader" + divName;
            loader.className = "loader";
            loader.innerHTML = "<img src='images/loading1.gif' class='imgloader' />";
            div.before(loader);
        }
        loader.style.width = div[0].offsetWidth + "px";
        loader.style.height = parseInt(div[0].offsetHeight) + "px";
        $(loader).show();
    }
    masrawy.inputOut = function(fld, value) {
        if (fld.value == '') {
            fld.value = value;
        }
    }
    masrawy.inputIn = function(fld, value) {
        if (fld.value == value) {
            fld.value = '';
        };
    }
    masrawy.showPrompt = function(title, divname, width, height, opacityValue, data) {
        if (data != null) {
            $("#" + divname).html(data);
        }
        $("#" + divname).parent().dialog({
            height: height,
            width: width,
            modal: true,
            draggable: false,
            resizable: false,
            title: title,
            overlay: { opacity: opacityValue, background: "#978a9d" }
        });
    }
    var qsObj;
    function loadCurrentQS() {
        qsObj = new Object()
        var url = location.href;
        if (url.indexOf("?") > -1) {
            var strParams = url.split("?")[1].split("&");
            for (var i = 0; i < strParams.length; i++) {
                var qsParam = strParams[i].split("=");
                qsObj[qsParam[0]] = qsParam[1];
            }
        }
    }
    masrawy.validation = {
        isEmpty: function(txt) {
            if (txt.value.replace(/ /g, '') == '') {
                txt.style.borderColor = 'red';
                return true;
            }
            else {
                txt.style.borderColor = 'green';
                return false;
            }
        },
        isSelected: function(sel) {
            if (sel.selectedIndex > 0) {
                sel.style.borderColor = 'green';
                return true;
            }
            else {
                sel.style.borderColor = 'red';
                return false;
            }
        },
        isNumeric: function(txt) {
            var num = txt.value;
            num = num * 1;
            if (num == num) {
                txt.style.borderColor = 'green';
                return true;
            }
            else {
                txt.style.borderColor = 'red';
                return false;
            };
        }
		,
        validateEmails: function(field) {
            var delimiter = ',';
            var filter = /([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+>?$/;
            var error = true;

            // Create an array by splitting the field along the delimiter
            var aEmails = field.value.split(';');

            // For each of the emails
            for (index = 0; index < aEmails.length; index++) {
                // Trim spaces from the ends
                aEmails[index] = (aEmails[index].replace(/^\s+/, '')).replace(/\s+$/, '');
                // Check whether an email is present
                if (aEmails[index] != '' && aEmails[index].search(filter) == -1)
                    error = false;
            }
            if (error == true) {
                field.style.borderColor = 'green';
                return true;
            }
            else {
                field.style.borderColor = 'red';
                return false;
            }
        }
    }



    String.prototype.format = function() {
        var str = this;
        for (var i = 0; i < arguments.length; i++) {
            var re = new RegExp('\\{' + (i) + '\\}', 'gm');
            str = str.replace(re, arguments[i]);
        }
        return str;
    }



})();






