﻿var MQ = {
    "AJX": function (ajax) {
        var ajax = ajax || {};
        var async = ajax.async || true;
        var showProgress = ajax.showProgress || false;
        var rand=ajax.rand||false;
        var runProgressWindow = ajax.runProgressWindow || false;
        var onProgress = ajax.onProgress || "";
        var spanId = ajax.spanId || undefined;
        var url = ajax.url || "";
        var type = ajax.type || "GET";
        var txt = ajax.txt || "";
        var method = "&method=" + ajax.method;
        if (ajax.showProgress) {this.oId(ajax.spanId).innerHTML = ajax.onProgress;}
        if (ajax.runProgressWindow) {this.runProgressWindow(ajax.onProgress, ajax.spanId);}
        ajxer = this.xmlHttp();
        url = url_prefix + ajax.url + method;
        if(ajax.rand){url=url+"&rnd="+MQ.RND();}
        ajxer.open(ajax.type, url, ajax.async);
        if (ajax.type === "POST") {
            ajxer.send(ajax.txt);
        }
        else{
            ajxer.send(null);
        }
        ajxer.onreadystatechange = function(){
            if (ajxer.readyState === 4) {
                var res = ajxer.responseText;
                if (res.length > 0) {
                    if (ajax.cb) {
                        eval(ajax.cb);
                    }
                    else{
                        eval(ajxer.responseText);
                    }
                }
            }
        }
    },
    
    "xmlHttp": function () {
        if (window.XMLHttpRequest){
            return new XMLHttpRequest();
        }
        else{
            return new ActiveXObject("Microsoft.XMLHTTP");
        }
    },
    
    "Icon_progress" : function(attribues){
        return "<img src='"+res_url+"images/icons/progress.gif'"+attribues+" />";
    },
    
    "Icon_progress_lil" : function(attribues){
        return "<img src='"+res_url+"images/icons/progress_Lil.gif'"+attribues+" />";
    },

    "RND" : function(){
        var randomnumber=Math.random()*5;
        return randomnumber;
    },
    
    "SEND_EMAIL_TO_CONFIRM" : function(spn, uId){
        jQuery.ajaxq
        ("confE",
            {
                "type": "GET",
                "url": url_prefix + "Generic_Updater.ashx",
                "data": "itemId="+uId+"&sp=Users_Confirmation&method=SEND_EMAIL",
                "dataType": "json",
                "cache": false,
                "beforeSend": function () {
                    jQuery("#"+spn).css({"text-decoration" : "none", "color" : "black"});
                    jQuery("#"+spn).html("<span style=\"color: #346110; font-size: 14px; font-weight: bold; text-decoration: none;\">שולח מייל</span> " + MQ.Icon_progress_lil());
                },
                "success": function (json){
                    if (json.ok === true) {
                        jQuery("#"+spn).html("<br /><span style=\"color: #346110;font-size: 14px; font-weight: bold; text-decoration: none;\">לצורך השלמת תהליך אימות כתובת המייל, עליך לבדוק את תא הדואר האלקטרוני שציינת בזמן ההרשמה ולפעול בהתאם.</span>");
                    }
                    else{
                        jQuery("#"+spn).html("<br /><br /><span style=\"color: red;font-weight: bold; font-size: 14px; text-decoration: none;\">* שליחת המייל נכשלה, יש לשנות את כתובת המייל או לנסות שוב מאוחר יותר</span><br /><br />");
                    }
                },
                "error": function (err) {
                    jQuery("#"+spn).html("<br /><br /><span style=\"color: red;font-weight: bold; font-size: 14px; text-decoration: none;\">* שליחת המייל נכשלה, יש לשנות את כתובת המייל או לנסות שוב מאוחר יותר</span><br /><br />");
                }
             }
        )
    },

    "OnLoadRegisterer": function (func) {
        if (window.addEventListener) {
            window.addEventListener("load", func, false);
        }
        else if (window.attachEvent) {
            window.attachEvent("onload", func);
        }
        else if (document.getElementById) {
            window.onload = func;
        }
    },
    
    'show_hide': function (o, val_bool) {
        if (val_bool){
            this.oId(o).style.visibility = 'visible';
        }
        else{
            if (!val_bool) this.oId(o).style.visibility = 'hidden';
        }
    },
    
    'display': function (o, disp) {
        this.oId(o).style.display = disp;
    },
    
    'disable': function (o, val_bool) {
        o.disabled = val_bool;
    },
    
    'oId': function (id) {
        return document.getElementById(id);
    },
    
    'oName': function (name) {
        return document.getElementsByName(name);
    },
    'oTagName': function (tagname) {
        return document.getElementsByTagName(tagname);
    },
    
    'xmlHttp': function () {
        if (window.XMLHttpRequest){
            return new XMLHttpRequest();
        }
        else{
            return new ActiveXObject("Microsoft.XMLHTTP");
        }
    },
    
    "Parent_Url": function (url) {
        parent.window.location.href=url;
    },
    
    "TrimStartEnd": function (str) {
        return str.replace(/^\s+/, "").replace(/\s+$/, "");
    },
    
    "lTrim": function (str) {
        return str.replace(/^\s+/, "");
    },
    
    "rTrim": function (str) {
        return str.replace(/\s+$/, "");
    },
    
    "GetCookie": function (name) {
        var arg = name + "=";
        var alen = arg.length;
        var clen = document.cookie.length;
        var endstr = 0;
        var i = 0;
        while (i < clen) {
            var j = i + alen;
            if (document.cookie.substring(i, j) == arg) {
                endstr = document.cookie.indexOf(";", j);
                if (endstr == -1) {
                    endstr = document.cookie.length;
                }
                return unescape(document.cookie.substring(j, endstr));
            }
            i = document.cookie.indexOf(" ", i) + 1;
            if (i == 0) {
                break;
            }
        }
        return "";
    },
    
    "SaveCookies": function (name, value) {
        var expires=new Date();
        expires.setTime(expires.getTime() + (1000 * 86400 * 365));
        SetCookies(name, value, expires);
    },
    
    "SetCookies": function (name, value, expires) {
        if (!expires) expires = new Date();
        document.cookie = name + "=" + escape(value) + ";expires=" + expires.toGMTString() + ";path=/";
    },
    
    'CrsBrs': function (knY, knT, id) {
        if (knT == "js") {
            var jfi = document.createElement('script');
            jfi.setAttribute("type", "text/javascript");
            jfi.setAttribute("id", id);
            jfi.setAttribute("src", knY);
        } else if (knT == "css") {
            var jfi = document.createElement("link");
            jfi.setAttribute("rel", "stylesheet");
            jfi.setAttribute("type", "text/css");
            jfi.setAttribute("id", id);
            jfi.setAttribute("href", knY);
        }
        if (typeof jfi != undefined) {
            document.getElementsByTagName("head")[0].appendChild(jfi);
            return true;
        } else
        return false;
    },
    
    'LoadEvent_Add': function (func) {
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
            window.onload = func;
        } else {
            window.onload = function () {
                if (oldonload) {
                    oldonload();
                }
                func();
            }
        }
    },
    
    'addAttribute': function (o, att, value) {
        o.setAttribute(att, value);
    },
    
    'addElements': function (el) {
        document.body.appendChild(el);
    },
    
    'removeElement': function (parentElId, divNum) {
        var d = document.getElementById(parentElId);
        var olddiv = document.getElementById(divNum);
        alert(olddiv);
        d.removeChild(olddiv);
    },
    
    'removeElement_Array': function (arr, from, to) {
        var rest = arr.slice((to || from) + 1 || arr.length);
        arr.length = from < 0 ? arr.length + from : from;
        return arr.push.apply(arr, rest);
    },
    
    'AutoCompleteDisableForAllInputs': function () {
        var inputs = document.getElementsByTagName("input");
        for (var i = 0; i < inputs.length; i++) MQ.addAttribute(inputs[i], "autocomplete", "off");
    },
    
    'setAlinmentAndDirection': function (oArr, directionVal, textAlignVal) {
        for (var i = 0; i < oArr.length; i++) {
            MQ.addAttribute(oArr[i], "style", "direction:" + directionVal + ";");
            MQ.addAttribute(oArr[i], "style", "text-align:" + textAlignVal + ";");
        }
    },
    
    'centerCords': function (w, h) {
        var left = (screen.width) ? (screen.width - w) / 2 : 0;
        var top = (screen.height) ? (screen.height - h) / 2 : 0;
        return [left, top]
    },
    
    'scrollxy': function () {
        var scrOfX = 0,
            scrOfY = 0;
        if (typeof(window.pageYOffset) == 'number') {
            scrOfY = window.pageYOffset;
            scrOfX = window.pageXOffset;
        } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
            scrOfY = document.body.scrollTop;
            scrOfX = document.body.scrollLeft;
        } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
            scrOfY = document.documentElement.scrollTop;
            scrOfX = document.documentElement.scrollLeft;
        }
        return [scrOfX, scrOfY];
    },
    
    "CENTER_CORDS_SCROLL" : function(w, h){
        var left = (MQ.ClientScreenSize()[0]) ? (MQ.ClientScreenSize()[0] - w) / 2 : 0;
        var top = (MQ.ClientScreenSize()[1]) ? (MQ.ClientScreenSize()[1] - h) / 2 : 0;
        return [left, top];
    },
    
    'ObjectPosition': function (obj) {
        var curleft = 0;
        var curtop = 0;
        if (obj.offsetParent) {
            do {
                curleft += obj.offsetLeft;
                curtop += obj.offsetTop;
            } while (obj = obj.offsetParent);
        }
        return [curleft, curtop];
    },
    
    'DisableForm': function (frm) {
        frm.onsubmit = function () {
            return false;
        }
    },
    
    "Mess_Txt_Default_text": "חפשו באתר...",
    "Mess_Txt_Min_Chars": "הכנס לפחות 2 תווים",
    "Mess_Txt_Input_Not_Valid": "ערך לא תקין",
    
    'ProgressImg': function () {
        return url_prefix + "images/icons/progress_Lil.gif";
    },
    
    'ProgressImg_Lil': function () {
        return url_prefix + "images/icons/progress_Lil.gif";
    },
    
    'IsEmail': function (str) {
        var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/ig;
        if (reg.test(str)) {
            alret();
        }
    },
    
    'isIE_X': function (x) {
        var navg = navigator.userAgent;
        var exp = new RegExp(x, 'ig');
        if (navg.match(exp)) {
            return true;
        }
        else{
            return false;
        }
    },
    
    'SetBookmark' : function(){
        var title = 'Title of Bookmark';
        var url = url_prefix;
        if (document.all){
            window.external.AddFavorite(url, title);
        }
        else if (window.sidebar){
            window.sidebar.addPanel(title, url, "")
        }
        else if (window.sidebar&&window.sidebar.addPanel){
            window.sidebar.addPanel(title,url,"");
        }
    },
    
    'SetHomePage' : function(){
        if (document.all){
            document.body.style.behavior='url(#default#homepage)';
            document.body.setHomePage(url_prefix);
        }
        else if (window.sidebar){
            if(window.netscape){
                try{
                    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
                }
                catch(e)
                {
                alert("this action was aviod by your browser if you want to enable，please enter about:config in your address line, and change the value of signed.applets.codebase_principal_support to true");
                }
            }
            var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);
            prefs.setCharPref('browser.startup.homepage',url_prefix);
        }
    },
    
    "REG_IsURL":function(uri){
        var reg=/^http(s)?(:\/\/)([א-תa-z-/\._+%&,0-9]+)\.([a-z]{2,3})([א-תa-z-/\._+%&,0-9]+)$/ig;
        return reg.test(uri);
    },
    
    "REG_PARSE_URL" : function(url){
		var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
		var url = document.getElementById("txtUrl").value;
		var result = parse_url.exec(url);
		var names = ['url', 'scheme', 'slash', 'host', 'port', 'path', 'query', 'hash'];
		var ok = true;
		var i;
		for (i = 0; i < names.length; i += 1) {
		    
			if(result[0]===undefined||result[3]===undefined){
				ok = false;
			}
			else{
				
			}
		}
		return ok;
	},
    
    "INSERT_NEW_HTML" : function(elName, elJson, _innerHtml){
        if (this.oId(elJson.id) === null){
            var d = document.createElement(elName);
            d.id = elJson.id;
            d.style.visibility = elJson.visibility || 'visible';
            d.style.position = elJson.position || 'static';
            d.style.width = elJson.width;
            d.style.height = elJson.height;
            d.style.left = elJson.left + "px";
            d.style.top = elJson.top + "px";
            d.style.fontFamily = elJson.fontFamily || 'Arial';
            d.style.fontSize = elJson.fontSize || "14px";
            d.style.backgroundColor = elJson.backgroundColor || "transparent";
            d.style.border = elJson.border || "0px";
            d.style.padding = elJson.padding || "0px";
            d.style.zIndex = elJson.zIndex || 499;
            d.style.textAlign = elJson.textAlign || "right";
            d.style.direction = elJson.direction || "rtl";
            if (elJson.onclick){d.setAttribute('onclick', elJson.onclick);}
            if (elJson.onmouseover){d.setAttribute('onmouseover', elJson.onmouseover);}
            if (elJson.onmouseout){d.setAttribute('onmouseout', elJson.onmouseout);}
            d.innerHTML = _innerHtml;
            this.addElements(d);
        }
        else {
            this.oId(elJson.id).style.visibility = 'visible';
            this.oId(elJson.id).innerHTML = _innerHtml;
        }
    },
    
    "ClientScreenSize" : function(){
        var w=0,h=0;
        if(typeof(window.innerWidth)==='number'){
            w=window.innerWidth;h=window.innerHeight;
        }
        else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){
            w=document.documentElement.clientWidth;
            h=document.documentElement.clientHeight;
        }
        else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){
            w=document.body.clientWidth;
            h=document.body.clientHeight;
        }
        return[w,h];
    },
    
    "removeElement_from_body":function(elemId){
        var objToRemove=MQ.oId(elemId);
        if(document.body){
            document.body.removeChild(objToRemove);
        }
    }
};
