		var ajfile=null;
		var containers=null;
		var params=null;

		function init(idd)
		{
			 document.write('<div id=c_'+idd+'></div>');
		 	 Aj('ajax.php', null, ['m!init', 'idd!'+idd]);
		}

		function copy(inElement) {
		  if (inElement.createTextRange) {
		    var range = inElement.createTextRange();
		    if (range && BodyLoaded==1)
		      range.execCommand('Copy');
		  } else {
		    var flashcopier = 'flashcopier';
		    if(!document.getElementById(flashcopier)) {
		      var divholder = document.createElement('div');
		      divholder.id = flashcopier;
		      document.body.appendChild(divholder);
		    }
		    document.getElementById(flashcopier).innerHTML = '';
		    var divinfo = '<embed src="_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(inElement)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
		    document.getElementById(flashcopier).innerHTML = divinfo;
		  }
		}

		function Aj()
		{
				this.ajfile = null;
				this.containers = null;
				this.params = null;

	    	if (arguments.length > 0)
	    	{
						switch (arguments.length)
						{
							case 1:
									this.containers = null;
									this.params = 'modul=init';
							break;
							case 2:
									this.ajfile = arguments[0];
									this.containers = arguments[1];
									this.params = '';
							break;
							case 3:
									this.ajfile = arguments[0];
									this.containers = arguments[1];
									this.params = '';
			 						ar = arguments[2][0].split('!');									
									switch (ar[0])
									{
										 case 'maj': 
												this.params += ar[0]+'='+encode_param(ar[1]);
												for(i=1; i < arguments[2].length; i++)
												{
													ar = arguments[2][i].split('!');
													this.params += '&'+ar[0]+'='+encode_param(ar[1]);
												}
										 break;
										 case 'haj': 
												this.params += ar[0]+'='+encode_param(ar[1]);
												for(i=1; i < arguments[2].length; i++)
												{
													this.params += '&param_'+i+'='+encode_param(arguments[2][i]);
												}
										 break;
										 case 'm': 
												this.params += 'modul='+ar[1];
												for(i=1; i < arguments[2].length; i++)
												{
													ar = arguments[2][i].split('!');
													this.params += '&'+ar[0]+'='+encode_param(ar[1]);
												}
										 break;
										 case 'h': 
												this.params += 'modul='+ar[1];
												for(i=1; i < arguments[2].length; i++)
												{
													this.params += '&param_'+i+'='+encode_param(arguments[2][i]);
												}
										 break;
									}
							break;
						}
						if (this.containers != null) {get_form_parameters();}
						get_ajfile(arguments[0]);
						call();
						//alert(this.params);
				}
		}

		function get_ajfile(par)
		{
				var ar = par.split('_')
				if (ar.length==1)
				{
						this.ajfile = ar[0];
						this.params += '&'+'t'+'='+new Date().getTime();						
				}
				else
				{
						this.ajfile = ar[1];
				}
				//alert(this.ajfile);
		}

		function get_form_parameters()
		{
				var ret = '';
				for(frm in this.containers)
				{
						var forma = document.forms[this.containers[frm]];
						if (forma)
						{
							  for (var i=0;i<forma.elements.length;i++)
							  {
									  var e = forma.elements[i];
							  		if (e.type=='radio' || e.type=='text' || e.type=='password' || e.type=='select-one' || e.type=='hidden'  || e.type=='checkbox' || (e.type=='textarea' && e.className!="hidden-code" && e.className!="codepress php linenumbers-on"))
							  		{
												if (e.type=='radio' && !e.checked) {continue;}
												if (e.type=='checkbox' && !e.checked) {continue;}
									      var buf_val = e.value;
												if(undefined===window.buf_val){window.buf_val = [];}
												buf_val = encode_param(buf_val);
									    	if (this.params == '') {this.params += e.name+'='+buf_val;} else {this.params += '&'+ e.name+'='+buf_val;}
									  }
							  }
						}
				}
		}

		function encode_param(val)
		{
				val = val.replace(/&/g,"{am}");
				val = val.replace(/#/g,"{di}");
				val = val.replace(/=/g,"{eq}");
				val = val.replace(/\+/g,"{pl}");
				val = val.replace(/\?/g,"{qu}");
				val = val.replace(/\%/g,"{pc}");
				return val;
		}

		function call()
		{
				var flag_loader = false;
				if (document.getElementById('loader'))
				{
						stat = document.getElementById('loader');
						stat.className = 'loader_disp';
						flag_loader = true;
				}
		    var request = false;
			  if (window.ActiveXObject) { request = new ActiveXObject("Microsoft.XMLHTTP");}
			  else if (window.XMLHttpRequest) {request = new XMLHttpRequest(); request.overrideMimeType("text/xml"); }

		    if(request)
		    {
		        request.open("POST", this.ajfile);
		        request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		        request.onreadystatechange = function()
		        {
			          if (request.readyState == 4 && request.status == 200)
			          {
			          		if (request.responseText!='')
			          		{
												if (implement_js(request.responseText)) {if(flag_loader) {stat.className = 'loader_hid';}}
				          	}
				          	else
		 								{if(flag_loader) {stat.className = 'loader_hid';}}
			          }
			          else {}
		        }
		        request.send(this.params);
		    }
		    //return;
		}

		function implement_js(script_str, obj)
		{
				//alert('open');
				reg_main  = /{(loadf.\w*)}[^\\]*(?:\\.[^\\]*)*{\/\1}|{(loads.\w*)}[^\\]*(?:\\.[^\\]*)*{\/\2}|{(run.\w*)}[^\\]*(?:\\.[^\\]*)*{\/\3}|{(cont.\w*)}[^\\]*(?:\\.[^\\]*)*{\/\4}/g;
				reg_loadf = /{loadf.[-a-zA-Z0-9+&@#\/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#\/%=~_|]}/;
				reg_loads = /{loads.\w*}/;
				reg_cont  = /{cont.\w*}/;
				reg_run   = /{run.\w*}/;
				
				if (reg_main.test(script_str))
				{
						//alert('pass');					
						var getheadTag = document.getElementsByTagName('head')[0];
						ar = script_str.match(reg_main);
						for(i=0;i<ar.length;i++)
						{
								script = ar[i];
								if (reg_cont.test(script))
								{
									 scr_id = script.match(reg_cont);
									 scr_id[0] = scr_id[0].replace(/{cont\s+/, '').replace(/}/, '');
									 script = script.replace(/{cont.\w*}/, '').replace(/{\/cont.\w*}/, '');
									 var obj = document.getElementById(scr_id[0]);
									 if (obj!=null) {obj.innerHTML = script;} else {alert(script);}
									 //alert(script);
								}
								else
								{
										if (reg_loads.test(script))
										{
									 			scr_id = script.match(reg_loads);
												scr_id[0] = scr_id[0].replace(/{loads\s+/, '').replace(/}/, '');
												if (document.getElementById(scr_id[0]) == null)
												{
														script = script.replace(/{loads.*?}/, '').replace(/{\/loads.*?}/, '');
														setjs = document.createElement('script');
														setjs.setAttribute('type', 'text/javascript');
														setjs.setAttribute('id', scr_id[0]);
														getheadTag.appendChild(setjs);
														setjs.text = script;
												}
										}
										else
										{
												if (reg_run.test(script))
												{
														script = script.replace(/{run.\w*}/, '').replace(/{\/run.\w*}/, '');
														eval(script);
												}
												else
												{
														if (reg_loadf.test(script))
														{
													 			scr_id = script.match(reg_loadf);
																scr_id[0] = scr_id[0].replace(/{loadf\s+/, '').replace(/}/, '');
																if (document.getElementById(scr_id[0]) == null)
																{
																		script = script.replace(/{loadf.*?}/, '').replace(/{\/loadf.*?}/, '');
																		//setjs = document.createElement('script');
																		//setjs.setAttribute('type', 'text/javascript');
																		//setjs.setAttribute('id', scr_id[0]);
																		//getheadTag.appendChild(setjs);
																		//setjs.src = script;
																		AjaxScr(script, scr_id[0]);
																}
														}
												}
										}
								}
						}
				}
				return true;
		}

		function AjaxScr(data_source, scr_id)
		{
				if (document.getElementById)
				{
						var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
				}
				if (x)
				{
					x.onreadystatechange = function()
					{
							if (x.readyState == 4 && x.status == 200)
							{
									var getheadTag = document.getElementsByTagName('head')[0];
									setjs = document.createElement('script');
									setjs.setAttribute('type', 'text/javascript');
									setjs.setAttribute('id', scr_id);
									setjs.text = x.responseText;
									getheadTag.appendChild(setjs);
							}
					}
					var ms = new Date().getTime().toString();
					var seed = "?" + ms;
					x.open("POST", data_source+seed,true);
					x.send(null);
				}
		}

		function revealModal(divID)
		{
		    //window.onscroll = function () { document.getElementById(divID).style.top = document.body.scrollTop; };
		    if (document.getElementById(divID))
		    {
				    document.getElementById(divID).style.display = "block";
				    document.getElementById(divID).style.top = document.body.scrollTop;
				}
		}

		function hideModal(divID)
		{
		    if (document.getElementById(divID))
		    {
				    document.getElementById(divID).style.display = "none";
				}
		}


	  var time_limit=4000;
	  var time_counter=0;
	  var time=10;
	
		var o_name=null;
		var o_type=null;
		var o=null;
		
	  function Loader(){
			reg_arg_1 = /^\w*/;
			reg_arg_2 = /^\w*\x28/;
	
			this.o_name = null;
			this.o_type = null;
			this.o = null;
	  	time_counter = 0;
	  	if (arguments.length > 0)
	  	{
						if (reg_arg_1.test(arguments[0]))
						{
					 			this.o = arguments[0];
					 			this.o_name = this.o.match(reg_arg_1);							 			
					 			this.o_name = this.o_name[0].replace('.', '');
					 			if (this.o.substr(this.o_name.length, 1)=='.')
					 			{
							 			this.o_type = 'object';
				    				poling();									 			
							 	}
							 	else
								{
							 			if (this.o.substr(this.o_name.length, 1)=='(')
							 			{
									 			this.o_type = 'function';
						    				poling();									 			
									 	}
								}
				    }
			}
	  }
	  
	  function poling(){
	  		//this.func='validation';
	  		try
	  		{
						if(typeof(window[this.o_name]) == this.o_type)
						{
							 eval(this.o);
							 hideModal('modalPage');
							 return true;
						}
						else
					  {
							this.time_counter = this.time_counter + this.time;
							if (this.time_counter >= this.time_limit) {alert('Please Reload Page Againgg !');hideModal('modalPage');return true;}
					  	revealModal('modalPage');
					  	setTimeout('poling()',this.time);
					  }
				}
				catch(err)
				{
						alert('Please Reload !'+'\t'+err.text);hideModal('modalPage');
				}
	}
		
