Function.prototype.bind = function (obj) {
    return function (a, b) {
        return function () {
            a.apply(b, arguments);
        };
    }(this, obj);
};

var classMDHlib = function () {
	this.AJAX = function (settings){
		//settings - url[string], errorMessage[string], method[string], query[array], loader[object](load[function], complete[function]), parseFunction[function], queryType[XML,text]
		if (!settings.url){alert('Url not defined')}else if(!settings.query){alert('Query not defined')}else{
			settings.errorMessage = settings.errorMessage || 'Error. Can\'t create XMLHttpRequest.';
			createRequest = function (){
				var request=null;
				try{request = new XMLHttpRequest();}
					catch (trymicrosoft) {
						try{request = new ActiveXObject("Msxml2.XMLHTTP");}
						catch (othermicrosoft){
							try {request = new ActiveXObject("Microsoft.XMLHTTP");}
							catch (failed){
								request = null;
							}				
						}
					}
				if (request == null){
					alert (settings.errorMessage);
				}	
					return request;
			}
			var newRequest = createRequest();
			parseResponse = function (){
				if(newRequest.readyState == 4) {
					if (settings.loader){settings.loader.complete();}
					if(newRequest.status == 200) {
						if (settings.parseFunction){
							switch (settings.queryType){
								case 'XML':
								case 'xml':
									var Text = newRequest.responseXML;
									break;
								case 'text':
								case 'Text':
								case 'TEXT':
								default:
									var Text = newRequest.responseText;
									break;
							}
							settings.parseFunction(Text);
						}
					}else{
						//alert("Error: " + newRequest.statusText);
					}
				}			
			}
			if (newRequest != null){
				var request = settings.query.join('&');
				switch (settings.method){
					case 'GET':
					case 'get':
						newRequest.open("GET",settings.url+"?"+request,true);
						newRequest.onreadystatechange = parseResponse;
						newRequest.send(null);
						break;
					case 'POST':
					case 'post':
					default:
						newRequest.open("POST",settings.url,true);
						newRequest.onreadystatechange = parseResponse;
						newRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
						newRequest.send (request);
						break;
				}
                if (settings.loader){settings.loader.load();}
            }
        }
    };
    this.getXMLchild = function (object) {
        //where [object], tag [string]
        //return array(tags) if tag.length > 1; object if tag.length == 1; value if tag content is value; false if no tag or no value;
        var where = object.where || false;
        var tag_name = object.tag || false;
        if (where && tag_name) {
            var tag = new Array();
            var tag1 = where.childNodes;
            for (var i = 0; i < tag1.length; i++) {
                if (tag1[i].tagName == tag_name) {tag.push(tag1[i]);}
            }
            if (tag.length == 1) {
                var childs = tag[0].childNodes;
                return (childs.length > 0) ? function () {return (childs[0].nodeValue) ? childs[0].nodeValue : tag[0]}() : false;
            } else if (tag.length > 1) {
                return tag;
            } else {
                return false;
            }
        } else {
            return false;
        }
    };
    this.getAbsolutePosition = function (el) {
    //get absolute position of element
        function getAbsolutePosition (el) {
            var r = { x: el.offsetLeft, y: el.offsetTop };
            if (el.offsetParent) {
                var tmp = getAbsolutePosition(el.offsetParent);
                r.x += tmp.x;
                r.y += tmp.y;
            }
            return r;
        }
        return getAbsolutePosition(el);
    };
    this.setCookie = function (name, value, expires, path, domain, secure) {
    //set cookies
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
    };
    this.getCookie = function (name) {
    //get cookies
	    var cookie = " " + document.cookie;
	    var search = " " + name + "=";
	    var setStr = null;
	    var offset = 0;
	    var end = 0;
	    if (cookie.length > 0) {
		    offset = cookie.indexOf(search);
		    if (offset != -1) {
			    offset += search.length;
			    end = cookie.indexOf(";", offset)
			    if (end == -1) {
				    end = cookie.length;
			    }
			    setStr = unescape(cookie.substring(offset, end));
		    }
	    }
	    return(setStr);
    };
    this.addEvent = function (obj, type, fn) {
    //add event obj{object}, type{event}, fn{link to function}
        if (obj.addEventListener){
            obj.addEventListener(type, fn, false);
        } else if(obj.attachEvent) {
            obj.attachEvent( "on"+type, fn );
        } else {
            obj["on"+type] = fn;
        }
    };
    this.removeEvent = function (obj,type,fn){
    //add event obj{object}, type{event}, fn{link to function}
        if (obj.removeEventListener) {
            obj.removeEventListener(type, fn, false);
        } else if (obj.detachEvent) {
            obj.detachEvent('on'+type, fn)
        } else {
            obj["on"+type] = '';
        }
    };
    this.HTMLDecode = function (text) {
		var HTMLtags = new Array ('&nbsp;','&iexcl;','&cent;','&pound;','&curren;','&yen;','&brvbar;','&sect;','&uml;','&copy;','&ordf;','&laquo;','&not;','&shy;','&reg;','&macr;','&deg;','&plusmn;','&sup2;','&sup3;','&acute;','&micro;','&para;','&middot;','&cedil;','&sup1;','&ordm;','&raquo;','&frac14;','&frac12;','&frac34;','&iquest;','&Agrave;','&Aacute;','&Acirc;','&Atilde;','&Auml;','&Aring;','&AElig;','&Ccedil;','&Egrave;','&Eacute;','&Ecirc;','&Euml;','&Igrave;','&Iacute;','&Icirc;','&Iuml;','&ETH;','&Ntilde;','&Ograve;','&Oacute;','&Ocirc;','&Otilde;','&Ouml;','&times;','&Oslash;','&Ugrave;','&Uacute;','&Ucirc;','&Uuml;','&Yacute;','&THORN;','&szlig;','&agrave;','&aacute;','&acirc;','&atilde;','&auml;','&aring;','&aelig;','&ccedil;','&egrave;','&eacute;','&ecirc;','&euml;','&igrave;','&iacute;','&icirc;','&iuml;','&eth;','&ntilde;','&ograve;','&oacute;','&ocirc;','&otilde;','&ouml;','&divide;','&oslash;','&ugrave;','&uacute;','&ucirc;','&uuml;','&yacute;','&thorn;','&yuml;','&quot;','&circ;','&tilde;','&ensp;','&emsp;','&thinsp;','&zwnj;','&zwj;','&lrm;','&rlm;','&ndash;','&mdash;','&lsquo;','&rsquo;','&sbquo;','&ldquo;','&rdquo;','&bdquo;','&dagger;','&Dagger;','&permil;','&lsaquo;','&rsaquo;','&euro;','&fnof;','&Alpha;','&Beta;','&Gamma;','&Delta;','&Epsilon;','&Zeta;','&Eta;','&Theta;','&Iota;','&Kappa;','&Lambda;','&Mu;','&Nu;','&Xi;','&Omicron;','&Pi;','&Rho;','&Sigma;','&Tau;','&Upsilon;','&Phi;','&Chi;','&Psi;','&Omega;','&alpha;','&beta;','&gamma;','&delta;','&epsilon;','&zeta;','&eta;','&theta;','&iota;','&kappa;','&lambda;','&mu;','&nu;','&xi;','&omicron;','&pi;','&rho;','&sigmaf;','&sigma;','&tau;','&upsilon;','&phi;','&chi;','&psi;','&omega;','&thetasym;','&upsih;','&piv;','&bull;','&hellip;','&prime;','&Prime;','&oline;','&frasl;','&weierp;','&image;','&real;','&trade;','&alefsym;','&larr;','&uarr;','&rarr;','&darr;','&harr;','&crarr;','&lArr;','&uArr;','&rArr;','&dArr;','&hArr;','&forall;','&part;','&exist;','&empty;','&nabla;','&isin;','&notin;','&ni;','&prod;','&sum;','&minus;','&lowast;','&radic;','&prop;','&infin;','&ang;','&and;','&or;','&cap;','&cup;','&int;','&there4;','&sim;','&cong;','&asymp;','&ne;','&equiv;','&le;','&ge;','&sub;','&sup;','&nsub;','&sube;','&supe;','&oplus;','&otimes;','&perp;','&sdot;','&lceil;','&rceil;','&lfloor;','&rfloor;','&lang;','&rang;','&loz;','&spades;','&clubs;','&hearts;','&diams;');
		var HEXtags = new Array ('0xA0','0xA1','0xA2','0xA3','0xA4','0xA5','0xA6','0xA7','0xA8','0xA9','0xAA','0xAB','0xAC','0xAD','0xAE','0xAF','0xB0','0xB1','0xB2','0xB3','0xB4','0xB5','0xB6','0xB7','0xB8','0xB9','0xBA','0xBB','0xBC','0xBD','0xBE','0xBF','0xC0','0xC1','0xC2','0xC3','0xC4','0xC5','0xC6','0xC7','0xC8','0xC9','0xCA','0xCB','0xCC','0xCD','0xCE','0xCF','0xD0','0xD1','0xD2','0xD3','0xD4','0xD5','0xD6','0xD7','0xD8','0xD9','0xDA','0xDB','0xDC','0xDD','0xDE','0xDF','0xE0','0xE1','0xE2','0xE3','0xE4','0xE5','0xE6','0xE7','0xE8','0xE9','0xEA','0xEB','0xEC','0xED','0xEE','0xEF','0xF0','0xF1','0xF2','0xF3','0xF4','0xF5','0xF6','0xF7','0xF8','0xF9','0xFA','0xFB','0xFC','0xFD','0xFE','0xFF','0x22','0x2C6','0x2DC','0x2002','0x2003','0x2009','0x200C','0x200D','0x200E','0x200F','0x2013','0x2014','0x2018','0x2019','0x201A','0x201C','0x201D','0x201E','0x2020','0x2021','0x2030','0x2039','0x203A','0x20AC','0x192','0x391','0x392','0x393','0x394','0x395','0x396','0x397','0x398','0x399','0x39A','0x39B','0x39C','0x39D','0x39E','0x39F','0x3A0','0x3A1','0x3A3','0x3A4','0x3A5','0x3A6','0x3A7','0x3A8','0x3A9','0x3B1','0x3B2','0x3B3','0x3B4','0x3B5','0x3B6','0x3B7','0x3B8','0x3B9','0x3BA','0x3BB','0x3BC','0x3BD','0x3BE','0x3BF','0x3C0','0x3C1','0x3C2','0x3C3','0x3C4','0x3C5','0x3C6','0x3C7','0x3C8','0x3C9','0x3D1','0x3D2','0x3D6','0x2022','0x2026','0x2032','0x2033','0x203E','0x2044','0x2118','0x2111','0x211C','0x2122','0x2135','0x2190','0x2191','0x2192','0x2193','0x2194','0x21B5','0x21D0','0x21D1','0x21D2','0x21D3','0x21D4','0x2200','0x2202','0x2203','0x2205','0x2207','0x2208','0x2209','0x220B','0x220F','0x2211','0x2212','0x2217','0x221A','0x221D','0x221E','0x2220','0x2227','0x2228','0x2229','0x222A','0x222B','0x2234','0x223C','0x2245','0x2248','0x2260','0x2261','0x2264','0x2265','0x2282','0x2283','0x2284','0x2286','0x2287','0x2295','0x2297','0x22A5','0x22C5','0x2308','0x2309','0x230A','0x230B','0x2329','0x232A','0x25CA','0x2660','0x2663','0x2665','0x2666');
        text = text.replace(/&amp;/g,'&');
		for (var i = 0; i < HTMLtags.length; i++) {
            var re = new RegExp (HTMLtags[i],'g');
            text = text.replace(re,String.fromCharCode(HEXtags[i]));
		}
		return text;
	};
    this.HTMLEncode = function (text) {
        var HTMLtags = new Array ('&nbsp;','&iexcl;','&cent;','&pound;','&curren;','&yen;','&brvbar;','&sect;','&uml;','&copy;','&ordf;','&laquo;','&not;','&shy;','&reg;','&macr;','&deg;','&plusmn;','&sup2;','&sup3;','&acute;','&micro;','&para;','&middot;','&cedil;','&sup1;','&ordm;','&raquo;','&frac14;','&frac12;','&frac34;','&iquest;','&Agrave;','&Aacute;','&Acirc;','&Atilde;','&Auml;','&Aring;','&AElig;','&Ccedil;','&Egrave;','&Eacute;','&Ecirc;','&Euml;','&Igrave;','&Iacute;','&Icirc;','&Iuml;','&ETH;','&Ntilde;','&Ograve;','&Oacute;','&Ocirc;','&Otilde;','&Ouml;','&times;','&Oslash;','&Ugrave;','&Uacute;','&Ucirc;','&Uuml;','&Yacute;','&THORN;','&szlig;','&agrave;','&aacute;','&acirc;','&atilde;','&auml;','&aring;','&aelig;','&ccedil;','&egrave;','&eacute;','&ecirc;','&euml;','&igrave;','&iacute;','&icirc;','&iuml;','&eth;','&ntilde;','&ograve;','&oacute;','&ocirc;','&otilde;','&ouml;','&divide;','&oslash;','&ugrave;','&uacute;','&ucirc;','&uuml;','&yacute;','&thorn;','&yuml;','&quot;','&circ;','&tilde;','&ensp;','&emsp;','&thinsp;','&zwnj;','&zwj;','&lrm;','&rlm;','&ndash;','&mdash;','&lsquo;','&rsquo;','&sbquo;','&ldquo;','&rdquo;','&bdquo;','&dagger;','&Dagger;','&permil;','&lsaquo;','&rsaquo;','&euro;','&fnof;','&Alpha;','&Beta;','&Gamma;','&Delta;','&Epsilon;','&Zeta;','&Eta;','&Theta;','&Iota;','&Kappa;','&Lambda;','&Mu;','&Nu;','&Xi;','&Omicron;','&Pi;','&Rho;','&Sigma;','&Tau;','&Upsilon;','&Phi;','&Chi;','&Psi;','&Omega;','&alpha;','&beta;','&gamma;','&delta;','&epsilon;','&zeta;','&eta;','&theta;','&iota;','&kappa;','&lambda;','&mu;','&nu;','&xi;','&omicron;','&pi;','&rho;','&sigmaf;','&sigma;','&tau;','&upsilon;','&phi;','&chi;','&psi;','&omega;','&thetasym;','&upsih;','&piv;','&bull;','&hellip;','&prime;','&Prime;','&oline;','&frasl;','&weierp;','&image;','&real;','&trade;','&alefsym;','&larr;','&uarr;','&rarr;','&darr;','&harr;','&crarr;','&lArr;','&uArr;','&rArr;','&dArr;','&hArr;','&forall;','&part;','&exist;','&empty;','&nabla;','&isin;','&notin;','&ni;','&prod;','&sum;','&minus;','&lowast;','&radic;','&prop;','&infin;','&ang;','&and;','&or;','&cap;','&cup;','&int;','&there4;','&sim;','&cong;','&asymp;','&ne;','&equiv;','&le;','&ge;','&sub;','&sup;','&nsub;','&sube;','&supe;','&oplus;','&otimes;','&perp;','&sdot;','&lceil;','&rceil;','&lfloor;','&rfloor;','&lang;','&rang;','&loz;','&spades;','&clubs;','&hearts;','&diams;');
        var HEXtags = new Array ('0xA0','0xA1','0xA2','0xA3','0xA4','0xA5','0xA6','0xA7','0xA8','0xA9','0xAA','0xAB','0xAC','0xAD','0xAE','0xAF','0xB0','0xB1','0xB2','0xB3','0xB4','0xB5','0xB6','0xB7','0xB8','0xB9','0xBA','0xBB','0xBC','0xBD','0xBE','0xBF','0xC0','0xC1','0xC2','0xC3','0xC4','0xC5','0xC6','0xC7','0xC8','0xC9','0xCA','0xCB','0xCC','0xCD','0xCE','0xCF','0xD0','0xD1','0xD2','0xD3','0xD4','0xD5','0xD6','0xD7','0xD8','0xD9','0xDA','0xDB','0xDC','0xDD','0xDE','0xDF','0xE0','0xE1','0xE2','0xE3','0xE4','0xE5','0xE6','0xE7','0xE8','0xE9','0xEA','0xEB','0xEC','0xED','0xEE','0xEF','0xF0','0xF1','0xF2','0xF3','0xF4','0xF5','0xF6','0xF7','0xF8','0xF9','0xFA','0xFB','0xFC','0xFD','0xFE','0xFF','0x22','0x2C6','0x2DC','0x2002','0x2003','0x2009','0x200C','0x200D','0x200E','0x200F','0x2013','0x2014','0x2018','0x2019','0x201A','0x201C','0x201D','0x201E','0x2020','0x2021','0x2030','0x2039','0x203A','0x20AC','0x192','0x391','0x392','0x393','0x394','0x395','0x396','0x397','0x398','0x399','0x39A','0x39B','0x39C','0x39D','0x39E','0x39F','0x3A0','0x3A1','0x3A3','0x3A4','0x3A5','0x3A6','0x3A7','0x3A8','0x3A9','0x3B1','0x3B2','0x3B3','0x3B4','0x3B5','0x3B6','0x3B7','0x3B8','0x3B9','0x3BA','0x3BB','0x3BC','0x3BD','0x3BE','0x3BF','0x3C0','0x3C1','0x3C2','0x3C3','0x3C4','0x3C5','0x3C6','0x3C7','0x3C8','0x3C9','0x3D1','0x3D2','0x3D6','0x2022','0x2026','0x2032','0x2033','0x203E','0x2044','0x2118','0x2111','0x211C','0x2122','0x2135','0x2190','0x2191','0x2192','0x2193','0x2194','0x21B5','0x21D0','0x21D1','0x21D2','0x21D3','0x21D4','0x2200','0x2202','0x2203','0x2205','0x2207','0x2208','0x2209','0x220B','0x220F','0x2211','0x2212','0x2217','0x221A','0x221D','0x221E','0x2220','0x2227','0x2228','0x2229','0x222A','0x222B','0x2234','0x223C','0x2245','0x2248','0x2260','0x2261','0x2264','0x2265','0x2282','0x2283','0x2284','0x2286','0x2287','0x2295','0x2297','0x22A5','0x22C5','0x2308','0x2309','0x230A','0x230B','0x2329','0x232A','0x25CA','0x2660','0x2663','0x2665','0x2666');
        for (var i = 0; i < HTMLtags.length; i++) {
            var offset = 0;
            while ((offset = text.indexOf(String.fromCharCode(HEXtags[i]),offset)) != -1) {
                text = text.replace(String.fromCharCode(HEXtags[i]),HTMLtags[i]);
            }
            
        }
        return text;
    }
    this.nlToBr = function (text) {
        var offset = 0;
        while ((offset = text.indexOf('\n',offset)) != -1) {
            text = text.replace('\n','<br />');
        }
        offset = 0;
        while ((offset = text.indexOf('\r\n',offset)) != -1) {
            text = text.replace('\r\n','<br />');
        }
        return text;
    };
    this.insertAfter = function (newObj,oldObj) {
        var childs = oldObj.parentNode.childNodes;
        for (var i = 0; i < childs.length; i++) {
            if (childs[i] == oldObj) {oldObj.parentNode.insertBefore(newObj,childs[i+1]);}
        }
    };
    this.setCamelStyle = function (string) {
        var re = /((?:\-|\_)([a-z]){1})/g;
        if (string == 'float') string = 'styleFloat';
        if (re.test(string)) {
            string = string.replace(re, function () {
                return arguments[2].toUpperCase();
            });
        }
        return string;
    };
    var modalWindow = function () {
        this.resizeWin = function () {this.ShowGlassWindow(true)}.bind(this);
        this.canCloseMe = true;
        this.blockCatchClick = function () {
            this.canCloseMe = false;
        }.bind(this);
        this.documentCatchClick = function () {
            if (this.canCloseMe) {
                this.display(false, Dialog, true);
            }
            this.canCloseMe = true;
        }.bind(this);
        var shadow = null;
        var isIE = window.navigator.userAgent.indexOf("MSIE")>-1;
        var isIE6 = window.navigator.userAgent.indexOf("MSIE 6")>-1;
        var Dialog=null;
        this.ShowGlassWindow = function (show){
	        if(shadow == null){
                shadow = document.createElement('div');
                shadow.id = 'MWshadow';
                with(shadow.style){
                    display='none';position='fixed';height=0; width=0;zIndex=500;backgroundColor = '#000';opacity = '0.5';
		    	        if(isIE){filter="progid:DXImageTransform.Microsoft.Alpha(Opacity=50, Style=0)"}
                        if(isIE6){position='absolute';}
                    }
                    //document.body.appendChild(shadow);
                    document.getElementById("centerPromo").appendChild(shadow);
            }
            if(show) {
            var s = getDocumentSize();
            with(shadow.style){
                left = top = 0;
                width = s[0]+'px';
                    height = s[1]+'px';
                }
            }
	        shadow.style.display=show?'block':'none';
        }
        function getDocumentSize() {    
            return [
                document.body.scrollWidth > document.body.offsetWidth ? 
                    document.body.scrollWidth : document.body.offsetWidth,
                document.body.scrollHeight > document.body.offsetHeight ? 
                    document.body.scrollHeight : document.body.offsetHeight
            ];
        }
        function getClientSize(){
	        if(document.compatMode=='CSS1Compat') {
	        
                return [document.getElementById("centerPromo").clientWidth, document.documentElement.clientHeight];
            } else {
   
                return [document.getElementById("centerPromo").clientWidth, document.body.clientHeight];
            }
        }
        function getDocumentScroll(){
	        return [
	            self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft)    
                    || (document.body && document.body.scrollLeft),
                self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) 
                    || (document.body && document.body.scrollTop)
                ];
        }
        function getClientCenter(){
            var sizes = getClientSize();
            var scrl = getDocumentScroll();
            return [parseInt(sizes[0]/2)+scrl[0], parseInt(sizes[1]/2)+scrl[1]];
        }
        this.display = function (show,windowDiv,needClickOutClose) {
            this.ShowGlassWindow(show);
            Dialog = (typeof windowDiv == 'object') ? windowDiv : document.getElementById(windowDiv);
            if(show){
                var c = getClientCenter();
                Dialog.style.display = "block";
                var xy = [Dialog.offsetWidth*1/2,Dialog.offsetHeight*1/2];
                Dialog.style.display = "none";
                Dialog.style.position = 'absolute';
                Dialog.style.zIndex = '1000';
                Dialog.style.left = ((c[0] - xy[0] > 0) ? c[0] - xy[0] : 0) + 'px';
                Dialog.style.top  = ((c[1] - xy[1] > 0) ? c[1] - xy[1] : 20) + 'px';
                Dialog.style.display='block';
                Dialog.focus();
                MDHlib.addEvent(window,'resize',this.resizeWin);
                if (needClickOutClose) {
                    MDHlib.addEvent(document,'mouseup',this.documentCatchClick);
                    MDHlib.addEvent(Dialog,'mouseup',this.blockCatchClick);
                }
            } else {
                if (Dialog != null) {Dialog.style.display='none';}
                MDHlib.removeEvent(window,'resize',this.resizeWin);
                if (needClickOutClose) {
                    MDHlib.removeEvent(document,'mouseup',this.documentCatchClick);
                    MDHlib.removeEvent(Dialog,'mouseup',this.blockCatchClick);
                }
            }
        }
    };
    this.modalWindow = new modalWindow();
    this.checkHTMLTags = function (userSettings) {
		var tags = ("a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp").split('|').sort(function(a,b){return a.length < b.length});
		
		var settings = {
			allowedTags: tags,  //array of allowed tags. Contains all tags as default
			forbiddenTags: [], //array of forbidden tags
			allowImagesFromUrl: '', //string, img with such url dont find, for example: "{/literal}{$data.site_data.cdn_url}/images/{literal}"
			allowLinksFromUrl: '', //string, img with such url dont find, for example: "/"
			mode: 'all', //string, if "all" assumed &lt; as < and &gt as >
			isRemove: true //bool, remove or not forbidden tags
		}
		
		var updateSettings = function (settings, userSettings) {
			for (var i in userSettings) {
				if (userSettings.hasOwnProperty(i)) {
					settings[i] = userSettings[i];
				}
			}
			return settings;
		}
		
		if (userSettings) {
			this.settings = updateSettings(settings, userSettings);
		}
		
		this.check = function (text, userSettings) {
			var settings = (userSettings) ? updateSettings(this.settings, userSettings) : this.settings;
			var elementRegExp,
				startTag = (settings.mode == 'all') ? '(?:<|(?:&lt;))' : '<',
				endTag = (settings.mode == 'all') ? '(?:>|(?:&gt;))' : '>',
				forbiddenTags = new Array();
			for (var i = 0; i < tags.length; i++) {
				if (settings.allowedTags.indexOf(tags[i]) == -1 || settings.forbiddenTags.indexOf(tags[i]) > -1) {
					elementRegExp = new RegExp("(" + startTag + tags[i] + "[\\s\\S]*?" + endTag + ")((?:[\\s\\S](?!(?:" + endTag + "/" + tags[i] + endTag + ")))*?)(?:" + startTag + "/" + tags[i] + endTag + "|$)", "gi");
					var match;
					while ((match = elementRegExp.exec(text)) != null) {
						var searchedText = match[0];
						var tagDef = match[1];
						var tagContent = match[2];
						var skipAdd = false;
						if (tagDef.match(new RegExp(startTag + tags[i], 'ig')).length > 1) {
							elementRegExp.lastIndex = match.index + 1;
						} else {
							if (tags[i] == 'img') {
								if (settings.allowImagesFromUrl !== '') {
									var token1 = settings.allowImagesFromUrl.substr(0,1);
									var token2 = settings.allowImagesFromUrl.substr(1);
									var allowedImage = new RegExp(startTag + "img[\\s\\S]*?src[\\s]*=[\\s]*('" + token1 + "|\"" + token1 + "|" + token1 + ")" + token2.replace(/\./g, '\\.').replace(/\//g, '\\/'), 'i');
									if (!allowedImage.test(tagDef)) {
										text = text.replace(tagDef, '');
										elementRegExp.lastIndex = 0;
									} else {
										elementRegExp.lastIndex = match.index + 1;
										skipAdd = true;
									}
								} else {
									text = text.replace(tagDef, '');
									elementRegExp.lastIndex = 0;
								}
							} else if (tags[i] == 'a') {
								if (settings.allowLinksFromUrl !== '') {
									var token1 = settings.allowLinksFromUrl.substr(0,1);
									var token2 = settings.allowLinksFromUrl.substr(1);
									var allowedImage = new RegExp(startTag + "a[\\s\\S]*?href[\\s]*=[\\s]*('" + token1 + "|\"" + token1 + "|" + token1 + ")" + token2.replace(/\./g, '\\.').replace(/\//g, '\\/'), 'i');
									if (!allowedImage.test(tagDef)) {
										text = text.replace(searchedText, tagContent);
										elementRegExp.lastIndex = 0;
									} else {
										elementRegExp.lastIndex = tagDef.length + match.index;
										skipAdd = true;
									}
								} else {
									text = text.replace(searchedText, tagContent);
									elementRegExp.lastIndex = 0;
								}
							} else {
								text = text.replace(searchedText, tagContent);
								elementRegExp.lastIndex = 0;
							}
							if (!skipAdd && forbiddenTags.indexOf(tags[i]) == -1) forbiddenTags.push(tags[i]);
						}
					}
					elementRegExp.lastIndex = 0;
					/*
					if (tags[i] == 'img') {
						var re1 = new RegExp("url[\\s]*\\([\\s]*('|\"|\\&quot;)[\\s\\S]*?\\1[\\s]*\\)", 'gim');
						var matches = text.match(re1);
						if (matches) {
							if (forbiddenTags.indexOf(tags[i]) == -1) forbiddenTags.push(tags[i]);
							if (settings.isRemove) {
								var re2 = new RegExp("url[\\s]*\\([\\s]*('|\"|\\&quot;)" + settings.allowImagesFromUrl.replace(/\./gim, '\\.') + "[\\s\\S]*?\\1[\\s]*\\)", "gim");
								for (var i = 0; i < matches.length; i++) {
									if (!url || (url && !re2.test(matches[i]))) {
										re2.lastIndex = 0;
										text = text.replace(matches[i], '');
										re2.lastIndex = 0;
									}
								}
								text = text.replace(/(background-image|background-color|background)[\s]*\:[\s]*;/gim, '');
							}
						}
					}
					*/
				}
			}

			return (forbiddenTags.length > 0) ? [false, forbiddenTags, text] : [true, null, null];
		}
	}
    this.check_video = function (u_id,uv_id,msg,frame) {
        MDHlib.AJAX({
            url : "/",
            method : "GET",
            query : new Array ('ac=user','ac2=videostatus','uv_id='+uv_id),
            queryType : "text",
            parseFunction : function (text) {
                if (!frame) {
                    var currentWindow = undefined != window.parent.document.getElementById('premium_sidebar') ? window.parent : window;
                } else {
                    var currentWindow = window;
                }
                var redirect;
                if(text == 'STORAGE_ERROR') {
				    alert(MDHlib.HTMLDecode('Zur Zeit ist das Ansehen von Videos nicht m&ouml;glich.'));
			    }
			    if(text == 'play') {
                    redirect = "/?ac=user&ac2=playvideo&uv_id="+uv_id;             
                } else if (text == 'buyvideo') {
                    redirect = "/?ac=user&ac2=previewvideo&uv_id="+uv_id; 
                } else if (text == 'admin') {
            	    redirect = "/?ac=user&ac2=previewvideo&uv_id="+uv_id; 
                } else if (text == 'buycoins') {
                    redirect = "/?ac=user&ac2=buycoins";
	            } else if (text == 'buysubscription') {
                    redirect = "/?ac=user&ac2=buysubscription";
                } else if (xmlHttp.responseText == 'avs') {
                    redirect = "/?ac=user&ac2=avs";
                }
                //if (frame) {redirect += "&isFrame=true";}
                currentWindow.location.href = redirect;
            }
        });
        return false;
    };
	this.in_array = function (value, searchArray) {
		for (var i = 0; i < searchArray.length; i++) {
			if (searchArray[i] === value) {
				return true;
			}
		}
		return false;
	};
    this.ajaxAnchorNavigation = {
        active : false,
        timeInterval : 200,
        intervalReference : null,
        isSetAnchor : true,
        isPageUpdate : false,
        changeInProgress : false,
        init : function (defaultModule, defaultLink, type) {
            if (Browser.Engine.trident) {
                this.IEiframeWrapper = document.createElement('div');
                this.changeInProgress = true;
                this.IEiframeWrapper.innerHTML = '<iframe src="" style="position:absolute; top:-10000px; width:0px; height:0px" onload="MDHlib.ajaxAnchorNavigation.changeInProgress = false"></iframe>';
                this.IEiframe = this.IEiframeWrapper.getElementsByTagName('iframe')[0];
                document.body.appendChild(this.IEiframeWrapper);
            }
            this.hash = window.location.hash;
            this.active = true;
            if (this.hash.indexOf('#') > -1) {
                this.fakeHash = this.hash;
				this.forceUpdateContent();
				this.fakeHash = this.setAnchor(defaultModule, defaultLink, type, true);
				this.changeInProgress = false;
				this.isPageUpdate = false;
            } else {
				this.fakeHash = this.setAnchor(defaultModule, defaultLink, type, true);
				this.hash = this.fakeHash;
				if (Browser.Engine.trident) {
					this.IEiframe.src = "/ie_anchor_navigation.php?noCash=" + Math.random() + "&anchor=" + escape(this.fakeHash);
					window.location.hash = this.fakeHash;
				}
			}
			
            this.intervalReference = window.setInterval(this.checkHash.bind(this), this.timeInterval);
        },
        getIEhash : function () {
            var content = unescape(this.IEiframe.contentWindow.document.body.innerHTML).match(/#[\s\S]*/);
            return (content) ? content[0] : window.location.hash;
        },
        checkHash : function () {
            var checkHash = (Browser.Engine.trident) ? this.getIEhash() : window.location.hash;
            if (checkHash != this.hash && !this.changeInProgress) {
                if (Browser.Engine.trident) {
                    window.location.hash = checkHash;
                }
                this.forceUpdateContent();
                this.hash = checkHash;
            }
        },
        forceUpdateContent : function () {
            var hash = window.location.hash;
            if (hash.indexOf('#') == -1) {
                var hash = this.fakeHash;
            }
            var hashDecode = MDHlib.anchorTranslator.anchorDecode(hash);
            MDHlib.updateContentTranslator(hashDecode[0],hashDecode[1],hashDecode[2]);
        },
        setAnchor : function (module, link, type, isReturn) {
            this.changeInProgress = true;
            this.isPageUpdate = true;
            if (typeof link == 'object') {link = link.href}
            link = MDHlib.anchorTranslator.anchorEncode(module, link, type);
            var temp;
            var anchor = '#';
            if (link.indexOf('#') > -1) {
                link = link.substr(link.indexOf('?') + 1, link.indexOf('#') -  link.indexOf('?') - 1);
            } else {
                link = link.substr(link.indexOf('?') + 1);    
            }
            link = link.split('&');
            for (var j = 0; j < link.length; j++) {
                if (link[j].indexOf('=') > -1) {
                    temp = link[j].split('=');
                    if (temp[1].length > 0) {
                        anchor += temp[0] + "|" + temp[1] + "|";
                    }
                }
            }
            anchor = anchor.substr(0, anchor.length - 1);
            if (isReturn == true) {
                return anchor;
            } else {
                window.location.href = anchor;
                this.hash = window.location.hash;
                if (Browser.Engine.trident) this.IEiframe.src = "/ie_anchor_navigation.php?noCash=" + Math.random() + "&anchor=" + escape(this.hash);
            }
            if (!Browser.Engine.trident) this.changeInProgress = false;
        }
    };
    this.anchorTranslator = {
        userDefinedValues : new Object(),
        anchorEncode : function (module,link,type) {
            var anchorLink = 'type=' + type + '&';
            link = link.replace(/\|/g,'%-%;').replace(/\%7C/g,'%-%;');
            switch (type) {
                case 1 :
                    module = 'get';
                    link = link.substr(link.indexOf('?') + 1);
                    var conditions = link.split('&');
                    try {
                        var currentFiltersArray = this.userDefinedValues.currentFiltersArray;
                    } catch (err) {}
                    for (var i = 0; i < conditions.length; i++) {
                        if (conditions[i].indexOf('addFilter') > -1) {
                            try {
                                currentFiltersArray.push(conditions[i].substr(conditions[i].indexOf('=') + 1));
                            } catch (err) {}
                        } else if (conditions[i].indexOf('dropFilter') > -1) {
                            try {
                                var filter = conditions[i].substr(conditions[i].indexOf('=') + 1);
                                if (conditions[i] == 'dropFilter=all') {
                                    currentFiltersArray = new Array();
                                } else if (conditions[i].indexOf('%-%;') == -1) {
                                    var filterType = conditions[i].split('=')[1];
                                    for (var j = 0; j < currentFiltersArray.length; j++) {
                                        var test = currentFiltersArray[j].split('%')[0];
                                        if (currentFiltersArray[j].split('%')[0] == filterType) {
                                            currentFiltersArray = currentFiltersArray.erase(currentFiltersArray[j]);
                                        }
                                    }
                                } else {
                                    for (var j = 0; j < currentFiltersArray.length; j++) {
                                        if (currentFiltersArray[j] == filter) {
                                            currentFiltersArray = currentFiltersArray.erase(filter);
                                        }
                                    }
                                }
                            } catch (err) {}
                        } else if (conditions[i].indexOf('filters') > -1) {
                            this.userDefinedValues.filters = conditions[i];
                        } else if (conditions[i].indexOf('isajax') == -1 && conditions[i].indexOf('rndc') == -1) {
                            anchorLink += escape(conditions[i]).replace('%3D', '=') + '&';
                        }
                    }
                    if (typeof this.userDefinedValues.filters == 'string') {
                        anchorLink += this.userDefinedValues.filters + '&';
                    }
                    try {
                        if (currentFiltersArray.length > 0) {
                            anchorLink += 'currentFilters=' + currentFiltersArray.join('%%%;').replace(/\|/g, '%-%;') + '&';
                        } else {
                            anchorLink += 'currentFilters=all&';
                        }
                        this.userDefinedValues.currentFiltersArray = currentFiltersArray;
                    } catch (err) {}
                    break;
                case 2 :
                    link = link.substr(link.indexOf('?') + 1);
                    var conditions = link.split('&');
                    for (var i = 0; i < conditions.length; i++) {
                        if (conditions[i].indexOf('isSearchAjax') == -1 && conditions[i].indexOf('rndc') == -1) {
                            anchorLink += conditions[i] + '&';
                        }
                    }
                    if (typeof this.userDefinedValues.search_id == 'string') {
                        anchorLink += 'search_id=' + this.userDefinedValues.search_id + '&';
                    }
                    break;
                case 3 :
                    var modulesList,
                        newAnchorLinkArray = new Object(),
                        conditions = link.split('&'),
                        fakeHash = MDHlib.ajaxAnchorNavigation.fakeHash || '',
                        hash = window.location.hash;
                    
                    if (module == 'all' || fakeHash.indexOf('module|all') > -1) {
                        module = 'all';
                        modulesList = new Array('videos', 'galleries');
                    } else {
                        modulesList = new Array(module);
                    }
                    
                    for (var j = 0; j < modulesList.length; j++) {
                        newAnchorLinkArray[modulesList[j]] = new Array();
                        for (var i = 0; i < conditions.length; i++) {
                            var conditionsArray = conditions[i].split('=');
                            if (conditionsArray[0].indexOf(modulesList[j]) > -1) {
                                if (conditionsArray[1] != '') {
                                    var startStr = 'AJAX[profile_]' + modulesList[j] + '][';
                                    var startIndex = conditionsArray[0].indexOf(startStr) + startStr.length;
                                    conditionsArray[0] = conditionsArray[0].substr(startIndex, conditionsArray[0].length - startIndex - 1);
                                    newAnchorLinkArray[modulesList[j]].push(modulesList[j] + '_' + conditionsArray[0] + '=' + conditionsArray[1]);
                                }    
                            }
                        }
                    }
                    
                    if (hash.indexOf('#') > -1) {
                        hash = hash.substr(hash.indexOf('#') + 1);
                    } else if (fakeHash != '') {
                        hash = fakeHash.substr(fakeHash.indexOf('#') + 1);
                    } else {
                        hash = false;
                    }
                    
                    if (hash) {
                        var hashValues = hash.split('|');
                        for (var j = 0; j < modulesList.length; j++) {
                            if (newAnchorLinkArray[modulesList[j]].length == 0) {
                                for (var i = 0; i < hashValues.length; i += 2) {
                                    if (hashValues[i].indexOf(modulesList[j]) > -1) {
                                        newAnchorLinkArray[modulesList[j]].push(hashValues[i] + '=' + hashValues[i+1]);
                                    }
                                }
                            }
                        }
                    }
                    
                    for (var j = 0; j < modulesList.length; j++) {
                        anchorLink += newAnchorLinkArray[modulesList[j]].join('&') + '&';
                    }
                    break;
				case 4 :
					link = link.substr(link.indexOf('?') + 1);
                    var conditions = link.split('&');
					var param;
                    for (var i = 0; i < conditions.length; i++) {
						condition = conditions[i].split('=');
						condition[0] = condition[0].substr(5 + module.length + 2);
						if (/\[\]$/.test(condition[0])) {
							condition[0] = condition[0].substr(0, condition[0].length - 3) + '_array';
						} else {
							condition[0] = condition[0].substr(0, condition[0].length - 1);
						}
						if (condition[1]) {
							anchorLink += condition.join('=') + '&';
						}
                    }
					break;
            }
            anchorLink += 'module=' + module;
            return anchorLink;
        },
        anchorDecode : function (hash) {
            anchor = hash.substr(hash.indexOf('#') + 1);
            var anchorTerms = anchor.split('|');
            var conditions = new Object();
            for (var i = 0; i < anchorTerms.length; i += 2) {
                conditions[anchorTerms[i]] = anchorTerms[i+1];
            }
            var conditionsArray = new Array();
            switch (parseInt(conditions.type)) {
                case 1 :
                    for (var i = 0; i < anchorTerms.length; i += 2) {
                        if (anchorTerms[i] == 'currentFilters') {
                            if (anchorTerms[i+1] == 'all') {
                                conditionsArray.push('dropFilter=all');
                            } else {
                                var filtersArray = anchorTerms[i+1].split('%%%;');
                                var currentFilters = this.userDefinedValues.currentFiltersArray || new Array();
                                if (currentFilters.length == 0) {
                                    conditionsArray.push('dropFilter=all');
                                }
                                filtersArray.each(function (item) {
                                    if (currentFilters.indexOf(item) == -1) {
                                        conditionsArray.push('addFilter[]=' + item);
                                    }
                                });
                                currentFilters.each(function (item) {
                                    if (filtersArray.indexOf(item) == -1) {
                                        conditionsArray.push('dropFilter=' + item);
                                    }
                                });
                            }
                        } else if (anchorTerms[i+1] != '' && (anchorTerms[i] != 'type' && anchorTerms[i] != 'module')) {
                            conditionsArray.push(anchorTerms[i] + '=' + escape(anchorTerms[i+1]));
                        }
                    }
                    break;
                case 2 :
                    for (var i = 0; i < anchorTerms.length; i += 2) {
                        if (anchorTerms[i+1] != '' && (anchorTerms[i] != 'type' && anchorTerms[i] != 'module' && anchorTerms[i] != 'isSearchAjax')) {
                            conditionsArray.push(anchorTerms[i] + '=' + escape(anchorTerms[i+1]));
                        }
                    }
                    break;
                case 3 :
                    var modulesList,
                        lastHash = MDHlib.ajaxAnchorNavigation.hash,
                        lastHashTerms = new Array(),
                        currentTermsArray = new Array(),
                        currentConditionsArray = new Array(),
                        lastConditionsArray = new Object(),
                        newConditionsArray = new Object();
                    
                    if (conditions.module == 'all') {
                        modulesList = new Array('videos', 'galleries');
                    } else {
                        modulesList = new Array(conditions.module);
                    }
                    
                    lastHashTerms = lastHash.substr(lastHash.indexOf('#') + 1).split('|');
                    
                    for (var j = 0; j < modulesList.length; j++) {
                    
                        try {
                            document.getElementById(modulesList[j] + '_sort_select').value = conditions['videos_filter'] || '0';
                        }catch(err){}
                        
                        lastConditionsArray[modulesList[j]] = new Array();
                        for (var i = 0; i < lastHashTerms.length; i += 2) {
                            if (lastHashTerms[i].indexOf(modulesList[j]) > -1) {
                                lastConditionsArray[modulesList[j]].push(lastHashTerms[i] + '=' + lastHashTerms[i + 1]);
                            }
                        }
                        
                        newConditionsArray[modulesList[j]] = new Array();
                        for (var i = 0; i < anchorTerms.length; i += 2) {
                            if (anchorTerms[i].indexOf(modulesList[j]) > -1) {
                                newConditionsArray[modulesList[j]].push(anchorTerms[i] + '=' + anchorTerms[i + 1]);
                            }
                        }
                    }
                    
                    for (var j = 0; j < modulesList.length; j++) {
                        var isSame = true;
                        for (var i = 0; i < lastConditionsArray[modulesList[j]].length; i++) {
                            if (lastConditionsArray[modulesList[j]][i] != newConditionsArray[modulesList[j]][i]) {
                                isSame = false;
                            }
                        }
                        if (!isSame) {
                            currentConditionsArray = newConditionsArray[modulesList[j]];
                            conditions.module = modulesList[j];
                        }
                    }
                    
                    if (currentConditionsArray.length == 0) {
                        for (var j = 0; j < modulesList.length; j++) {
                            currentConditionsArray = currentConditionsArray.concat(newConditionsArray[modulesList[j]]);
                        }
                    }
                    
                    for (var i = 0; i < currentConditionsArray.length; i++) {
                        currentTermsArray.push(currentConditionsArray[i].substr(0, currentConditionsArray[i].indexOf('=')));
                        currentTermsArray.push(currentConditionsArray[i].substr(currentConditionsArray[i].indexOf('=') + 1));
                    }
                    
                    var sort = new Object();
                    for (var j = 0; j < modulesList.length; j++) {
						var searchString = '';
                        var prefix = 'AJAX[profile_' + modulesList[j] + '][%%condition%%]';
                        for (var i = 0; i < anchorTerms.length; i += 2) {
                            if (anchorTerms[i].indexOf(modulesList[j]) > -1) {
                                anchorTerms[i] = anchorTerms[i].substr(modulesList[j].length + 1);
                                if (anchorTerms[i+1] != '' && (anchorTerms[i] != 'type' && anchorTerms[i] != 'module')) {
                                    conditionsArray.push(prefix.replace('%%condition%%',anchorTerms[i]) + '=' + escape(anchorTerms[i+1]));
                                }
                                if (anchorTerms[i] == 'sort') {
                                    sort[modulesList[j]] = anchorTerms[i+1].substr(0,1).toUpperCase() + anchorTerms[i+1].substr(1);
                                }
								if (anchorTerms[i] == 'text') {
									searchString = anchorTerms[i+1];
								}
                            }
                        }
						try{$(modulesList[j] + '_sort_text').value = searchString}catch(err){}
                    }
                    
                    for (var j = 0; j < modulesList.length; j++) {
                        if (sort[modulesList[j]]) {
                            try {
                                var hiddens = {
                                    Top : document.getElementById(modulesList[j]+'_sort_hidden_top'),
                                    New : document.getElementById(modulesList[j]+'_sort_hidden_new'),
                                    Most : document.getElementById(modulesList[j]+'_sort_hidden_most')
                                }
                                var links = {
                                    Top : document.getElementById(modulesList[j]+'_sort_top'),
                                    New : document.getElementById(modulesList[j]+'_sort_new'),
                                    Most : document.getElementById(modulesList[j]+'_sort_most')
                                };
                                var spans = {
                                    Top : document.getElementById(modulesList[j]+'_sort_top_span'),
                                    New : document.getElementById(modulesList[j]+'_sort_new_span'),
                                    Most : document.getElementById(modulesList[j]+'_sort_most_span')
                                };
                                for (var i in links) {
                                    if (i == sort[modulesList[j]]) {
                                        hiddens[i].value = i.toLowerCase();
                                        if (links[i]){links[i].style.display = 'none';}
                                        if (spans[i]){spans[i].style.display = 'block';}
                                    } else {
                                        if (links[i]){links[i].style.display = 'block';}
                                        if (spans[i]){spans[i].style.display = 'none';}
                                        hiddens[i].value = '';
                                    }
                                }
                            } catch (err) {}
                        }
                    }
                    break;
				case 4 :
					var offset = '0', limit = '20', filter = '', date_option = '0', from = '', to = ''; 
					for (var i = 0; i < anchorTerms.length; i += 2) {
						if (anchorTerms[i+1] != '' && (anchorTerms[i] != 'type' && anchorTerms[i] != 'module')) {
							if (/^t_type/.test(anchorTerms[i])) {
								filter += anchorTerms[i+1] + '-';
							} else if (/^offset/.test(anchorTerms[i])) {
								offset = anchorTerms[i+1];
							} else if (/^limit/.test(anchorTerms[i])) {
								limit = anchorTerms[i+1];
							} else if (/^date_option/.test(anchorTerms[i])) {
								date_option = anchorTerms[i+1];
							} else if (/^to/.test(anchorTerms[i])) {
								to = anchorTerms[i+1];
							} else if (/^from/.test(anchorTerms[i])) {
								from = anchorTerms[i+1];
							}
						}
					}
					filter = filter.replace(/\-$/,'');
					
					var form = $('ewalletForm');
					getEwalletInfo.setOffsetValue('?anf=' + offset, true);
					getEwalletInfo.setLimit(form.getElement('.ewalletLimit.limit' + limit), true);
					getEwalletInfo.setFilter(form.getElement('.ewalletFilters.filter' + filter), true);
					$('ewalletFakeForm').getElement('select[name=dates]').value = date_option || 0;
					getEwalletInfo.changeDateValues($('ewalletFakeForm').getElement('select[name=dates]'));
					if (to && from) {
						$('ewalletFakeForm').getElement('input[name=from]').value = from;
						$('ewalletFakeForm').getElement('input[name=to]').value = to;
					}
					getEwalletInfo.fakeFormToForm();
					break;
            }
            return [conditions.module, conditionsArray.join('&').replace(/\%\-\%\;/g,'%7C'), conditions.type];
        }
    };
    this.updateContentTranslator = function (module,link,type) {
        switch (parseInt(type)) {
            case 1 :
                var goSentQuery = function () {
                    MDHlib.ajaxAnchorNavigation.isSetAnchor = false;
                    MDHlib.ajaxAnchorNavigation.isPageUpdate = true;
                    NV.to(1, link, 'ajxLoadImg');
					MDHlib.ajaxAnchorNavigation.isSetAnchor = true;
					MDHlib.ajaxAnchorNavigation.isPageUpdate = false;
                }
                if (typeof NV == 'object') {
                    goSentQuery();
                } else {
                    if (Browser.Engine.trident) {
                        var test = function () {
                            if (typeof NV != 'object') {
                                window.setTimeout(function () {
                                    test();
                                }, 500);
                            } else {
                                goSentQuery();
                            }
                        }
                        test();
                    } else {
                        MDHlib.addEvent(window, 'load', function (e) {
                            goSentQuery();
                        });
                    }
                }
                break;
            case 2:
                var conditions = link.split('&');
                var linkArray = new Array();
                var queryObject = new Object();
                queryObject.link = new Array();
				var ac2 = '', sart = '';
                for (var i = 0; i < conditions.length; i++) {
                    if (conditions[i] == 'compile=true') {
                        queryObject.needCompile = true;
                    } else if (conditions[i] == 'form=true') {
                        queryObject.search = true;
                    } else {
                        queryObject.link.push(conditions[i]);
                    }
					if (conditions[i].indexOf('ac2') > -1) {
						ac2 = conditions[i].split('=')[1];
					} else if (conditions[i].indexOf('sart') > -1) {
						sart = conditions[i].split('=')[1];
					}
                }
				try {
					var bitmask = '';
					if (ac2 === 'all') {
						bitmask = 37;
					} else if (ac2 === 'content' && sart === 'video') {
						bitmask = 25;
					} else if (ac2 === 'content' && sart === 'gal') {
						bitmask = 22;
					}
					var it = 5;
					$('searchBody').getElement('.newSearchMenu').getElements('.item').each(function(item) {
						$(item).className = (bitmask & Math.pow(2, it)) ? 'item visitedItem' : 'item';
						$(item).getElements('h1, a').each(function (elem) {
							$(elem).style.display = (bitmask & Math.pow(2, it)) ? 'block' : 'none';
							it--;
						});
					});
				}catch(err){}
                queryObject.link = '?' + queryObject.link.join('&');
                var goSentQuery = function () {
                    MDHlib.ajaxAnchorNavigation.isSetAnchor = false;
                    MDHlib.ajaxAnchorNavigation.isPageUpdate = true;
                    getSearchContent(queryObject);
					MDHlib.ajaxAnchorNavigation.isSetAnchor = true;
					MDHlib.ajaxAnchorNavigation.isPageUpdate = false;
                }
                if (typeof getSearchContent == 'function') {
                    goSentQuery();
                } else {
                    if (Browser.Engine.trident) {
                        var test = function () {
                            if (typeof getSearchContent == 'function') {
                                window.setTimeout(function () {
                                    test();
                                }, 500);
                            } else {
                                
                                goSentQuery();
                            }
                        }
                        test();
                    } else {
                        MDHlib.addEvent(window, 'load', function (e) {
                            goSentQuery();
                        });
                    }
                }
                break;
            case 3 :
                var goSentQuery = function () {
                    MDHlib.ajaxAnchorNavigation.isSetAnchor = false;
                    MDHlib.ajaxAnchorNavigation.isPageUpdate = true;
                    if (module == 'all') {
                        var query1 = setSort ({module : 'videos', init: 1}) || {request : new Array, loader: {load: function(){},complete:function(){}}};
                        var query2 = setSort ({module : 'galleries', init: 1}) || {request : new Array, loader: {load: function(){},complete:function(){}}};
                        var query = query1.request.concat(query2.request);
                        var loader = {
                            load: function () {query1.loader.load();query2.loader.load();},
                            complete: function () {query1.loader.complete();query2.loader.complete();}
                        }
                    } else {
                        var query = setSort ({module : module, init: 1}) || {request : new Array, loader: {load: function(){},complete:function(){}}};
                        var loader = query.loader;
                    }
                    sendRequest(module,link.split('&'), loader);
					MDHlib.ajaxAnchorNavigation.isSetAnchor = true;
					MDHlib.ajaxAnchorNavigation.isPageUpdate = false;
                }
                if (typeof sendRequest == 'function') {
                    goSentQuery();
                } else {
                    if (Browser.Engine.trident) {
                        var test = function () {
                            if (typeof sendRequest == 'function') {
                                window.setTimeout(function () {
                                    test();
                                }, 500);
                            } else {
								alert(1)
                                goSentQuery();
                            }
                        }
                        test();
                    } else {
                        MDHlib.addEvent(window, 'load', function (e) {
                            goSentQuery();
                        });
                    }
                }
                break;
			case 4 :
				MDHlib.ajaxAnchorNavigation.isSetAnchor = false;
				MDHlib.ajaxAnchorNavigation.isPageUpdate = true;
				getEwalletInfo.submit(module);
				MDHlib.ajaxAnchorNavigation.isSetAnchor = true;
				MDHlib.ajaxAnchorNavigation.isPageUpdate = false;
				break;
        }
        
    };
    this.print_r = function (arr,place) {
        function dump(arr,level) {
            var dumped_text = "";
            if(!level) level = 0;
            var level_padding = "";
            for(var j=0;j<level+1;j++) level_padding += "    ";
            if(typeof(arr) == 'object') { //Array/Hashes/Objects
                for(var item in arr) {
					if (!arr.constructor.prototype[item]) {
						var value = arr[item];
						if(typeof(value) == 'object') { //If it is an array,
							dumped_text += level_padding + "'" + item + "' ...\n";
							dumped_text += dump(value,level+1);
						} else {
							item = item.replace(/\n/g,'');
							dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
						}
					}
                }
            } else { //Stings/Chars/Numbers etc.
                dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
            }
            return dumped_text;
        }
        var result = dump(arr);
        if (typeof place == 'string') {
            if (!document.getElementById(place)) {
                MDHlib.addEvent(window,'load', function () {
                    try {
                        var doc = document.createElement('pre');
                        doc.appendChild(document.createTextNode(result));
                        doc.style.background = '#fff';
                        doc.style.color = '#000';
                        doc.style.textAlign = 'left';
                        document.getElementById(place).appendChild(doc);
                    } catch (err) {alert(err + "\n" + result)}
                });
            } else {
                try {
                    var doc = document.createElement('pre');
                    doc.appendChild(document.createTextNode(result));
                    document.getElementById(place).appendChild(doc);
                } catch (err) {alert(err + "\n" + result)}
            }
        } else if (place == document) {
            document.write("<pre style=\"background:#fff;text-align:left;color:#000;\">" + result + "</pre>");
        } else if (typeof place == 'object') {
            try {
                var doc = document.createElement('pre');
                doc.appendChild(document.createTextNode(result));
                doc.style.background = '#fff';
                doc.style.color = '#000';
                doc.style.textAlign = 'left';
                place.appendChild(doc);
            } catch (err) {alert(err + "\n" + result)}
        } else {
            alert(result);
        }
    }
}
var MDHlib = new classMDHlib();
