// <THIS FIlE RUN ONLY ONCE
if(window.jsfiles_funcs==null){
window.jsfiles_funcs=true;
// THIS FIlE RUN ONLY ONCE>


// ----------------| Word |---------------------- \\
/*function textToClipBoard(ta) 
{
	ta=document.getElementById(ta);
	//var ta=document.createElement('textarea');
	//ta.innerText = text;
	var Copied=ta.createTextRange();
	Copied.execCommand("RemoveFormat");

	Copied.execCommand("Copy");
	ta=null;
}*/
// --------------| end Word |-------------------- \\
function getLastDocumentNode(){
	for(var node=document;node.lastChild!=null; node=node.lastChild);
	return node;
}

var tmp_func=function(){
	var i=0;
	return function(){
		return	i++;
	}
}
getUniqueIndex=tmp_func();

document.write=function(s){
	var last_el=getLastDocumentNode();
	var el=last_el;
	while(el!=null && el.tagName!='SCRIPT') el=el.parentNode;
	
	var el2=document.createElement('span');
	el2.innerHTML=s;
	if(el==null){
		if((el=document.getElementById('body').lastChild)==null) el=last_el;
	}
	el.parentNode.insertBefore(el2,el);
}

function getTimeFunctionOnBlink(el,t){
	return function(){
		if(el.el1.style.display=='none'){
			el.el1.style.display=el.el2.style.display;
			el.el2.style.display='none';
		}
		else {
			el.el2.style.display=el.el1.style.display;
			el.el1.style.display='none';
		}
		t=el.a[el.i];
		el.i=el.i+1;
		if(el.i>=el.a.length) el.i=0;
		setTimeout(getTimeFunctionOnBlink(el,t), t);
	}
}

var kkkkkk=1;
function attachforms(form,formsid){
	for(var i=0; i<formsid.length; i++){
		var curform=document.getElementById(formsid[i]);
		if(curform.enctype!=form.enctype){
			form.enctype=curform.enctype;
			form.encoding=curform.encoding;
		}
		curform.style.display="none";
		//curform.removeChild(curform);
		//form.appendChild(curform);
		for (var j = 0; j < curform.elements.length; j++) {
			
			var inp=curform.elements[j];
			inp.parentNode.removeChild(inp);
			inp.style.position="absolute";
			inp.style.top=-200;
			form.appendChild(inp);
			
			
			
		}
	}
	//alert(1);
	/*if(kkkkkk==1){
		kkkkkk=0;
		return false;
	}*/
	return true;
}

function insertBlink(text,tag,classnorm,classblink,arr){
	var id='rendomelement'+getUniqueIndex();
	document.write('<'+tag+' id="'+id+'">'+text+'</'+tag+'>');
	var el1=document.getElementById(id);
	
	id='rendomelement'+getUniqueIndex();
	document.write('<'+tag+' id="'+id+'">'+text+'</'+tag+'>');
	var el2=document.getElementById(id);
	
	el1.className=classnorm;
	el2.className=classblink;
	el2.style.display='none';
	var el={el1:el1, el2:el2, i:0, a:(arr!=null)?arr:new Array(500,500)};
	var t=1000;
	f=getTimeFunctionOnBlink(el,t);
	f();
	return el;
	//setTimeout(getTimeFunctionOnBlink(el,t),t);
}

/*function getTimeFunctionOnBlink(el,t){
	return function(){
		if(el.className==null || el.className==el.classnorm)
			el.className=el.classblink;
		else
			el.className=el.classnorm;
		t=el.a[el.i];
		el.i=el.i+1;
		if(el.i>=el.a.length) el.i=0;
		setTimeout(getTimeFunctionOnBlink(el,t), t);
	}
}

function insertBlink(text,tag,classnorm,classblink,arr){
	
	var id='rendomelement'+Math.round(Math.random()*100000);
	document.write('<'+tag+' id="'+id+'">'+text+'</'+tag+'>');
	var el=document.getElementById(id);
	el.classnorm=classnorm;
	el.classblink=classblink;
	el.i=0;
	el.a=(arr!=null)?arr:new Array(500,500);
	var t=1000;
	f=getTimeFunctionOnBlink(el,t);
	f();
	return el;
	//setTimeout(getTimeFunctionOnBlink(el,t),t);
}*/

/*function makeWordWrap(el,tags){
	//alert(document.ELEMENT_NODE);
	//if(el.nodeType != document.ELEMENT_NODE) return;
	var els=el.all;
	if(els==null || els.length==null || el.wordwrapflag!=null) return;
	if(els.length > 0){
		for(var i=0; i<els.length; i++){
			makeWordWrap(els[i],tags);
		}
	}
	else{
		for(var i=0;i<tags.length; i++){
			
			if(el.innerHTML!=null && el.innerHTML.length>20 && el.tagName.toLowerCase()==tags[i].toLowerCase()){
				el.wordwrapflag=true;
				var s=el.innerHTML;
				var j=0;
				var s1='';
				while(j<s.length){
					
					//s=s.substring(0,j+20) + '<span style="width=0px"> </span>' + s.substring(j+20);
					s1=s1 + '<WBR>' + s.substring(j,j+20);// + '<span style="width=0px"> </span>';
					j=j+20;
					
				}
				//alert(el.innerHTML);
				//alert(s);
				el.innerHTML='<nobr>'+s1+'</nobr>';
							//el.style.overflow = "scroll";
							//el.style.width='100px';
							//span.onclick=function(){
							//	alert(1);	
							//}
				
			//	alert(el.innerHTML);
			}
		}
	}
}*/

setOnLoadFunc=new function(){
	var funcs=new Array();
	
}



if(window.onloadfuncss==null)
	window.onloadfuncss=new Array();

window.onload=function(){
	for(var i=0;i<window.onloadfuncss.length;i++)	
		window.onloadfuncss[i].func();
}
/*
function getMyEvents(){
	
	this.add_onmousemove=function(func){
		//alert(func);
		if(window.onmousemovefuncss==null) window.onmousemovefuncss=new Array();
		window.onmousemovefuncss[window.onmousemovefuncss.length]={func:func};
		//window.onmousemovefuncss[window.onmousemovefuncss.length].func=func;
		if(document.onmousemove==null){
			
			document.onmousemove=function(evt){
				
				for(var i=0;i<window.onmousemovefuncss.length;i++){
					
					window.onmousemovefuncss[i].func(evt);
				}
			}
		}
	}
	this.del_onmousemove=function(func){
		var i1=0;
		var i2=0;
		var arr=window.onmousemovefuncss;
		//alert(arr);
		var l=arr.length;
		while(i1<l){
			if(i2<l){
				if(arr[i2].func===func){
					i2++;
				}
				if(i2!=i1)
					arr[i1]=arr[i2];
			}
			i1++;
			i2++;
		}
		if(i2!=i1){
			arr[l-1]=null;
			arr.pop();
		}
	}
	return this;
}
*/

myEvents=function getMyEvents(){
	var addto = this.addto = function(obj,func,evt_name){
		
		if(obj.funcss==null) {
			obj.funcss=new Array();
			if(obj[evt_name]!=null) obj.funcss[evt_name]=new Array({func:obj[evt_name]});
		}
		if(obj.funcss[evt_name]==null) obj.funcss[evt_name]=new Array();
		obj.funcss[evt_name][obj.funcss[evt_name].length]={func:func};
		//window.onmousemovefuncss[window.onmousemovefuncss.length].func=func;
		
		//if(obj[evt_name]==null){
			
			obj[evt_name]=function(evt){
				if(typeof(['mybuf_'.evt_name])=='function') obj['mybuf_'.evt_name](evt);
				var res=true;
				for(var i=0;i<obj.funcss[evt_name].length;i++){
					
					res = res && (obj.funcss[evt_name][i].func(evt,obj)!==false);
				}
				return res;
			}
		//}
	}
	var delfrom = this.delfrom = function(obj,func,evt_name){
		var i1=0;
		var i2=0;
		var arr=obj.funcss[evt_name];
		//alert(arr);
		var l=arr.length;
		while(i1<l){
			if(i2<l){
				if(arr[i2].func===func){
					i2++;
				}
				if(i2!=i1)
					arr[i1]=arr[i2];
			}
			i1++;
			i2++;
		}
		if(i2!=i1){
			arr[l-1]=null;
			arr.pop();
		}
	}
	var add = this.add = function(func,evt_name){
		addto(document,func,evt_name);
	}
	var del = this.del = function(func,evt_name){
		delfrom(document,func,evt_name);
	}
	/*var add = this.add = function(func,evt_name){
		//alert(func);
		if(window.funcss==null) window.funcss=new Array();
		if(window.funcss[evt_name]==null) window.funcss[evt_name]=new Array();
		window.funcss[evt_name][window.funcss[evt_name].length]={func:func};
		//window.onmousemovefuncss[window.onmousemovefuncss.length].func=func;
		if(document[evt_name]==null){
			
			document[evt_name]=function(evt){
				var res=true;
				for(var i=0;i<window.funcss[evt_name].length;i++){
					
					res = res && (window.funcss[evt_name][i].func(evt)!==false);
				}
				return res;
			}
		}
	}
	var del = this.del = function(func,evt_name){
		var i1=0;
		var i2=0;
		var arr=window.funcss[evt_name];
		//alert(arr);
		var l=arr.length;
		while(i1<l){
			if(i2<l){
				if(arr[i2].func===func){
					i2++;
				}
				if(i2!=i1)
					arr[i1]=arr[i2];
			}
			i1++;
			i2++;
		}
		if(i2!=i1){
			arr[l-1]=null;
			arr.pop();
		}
	}*/
	
	this.del_onmousemove=function(func){
		del(func,'onmousemove');
	}
	this.add_onmousemove=function(func){
		add(func,'onmousemove');
	}
	return this;
}();


/*if(window.onmousemovefuncss==null)
	window.onmousemovefuncss=new Array();
window.onmousemove=function(evt){
	for(var i=0;i<window.onmousemovefuncss.length;i++)	
		window.onmousemovefuncss[i].func(evt);
}*/

ArstLink=new function MakeArstLink(){
	var merge_action=new Array();
	this.submitaction=function(action,url,isblank,id){
		if(id==null){
			id='rendomelement'+getUniqueIndex();
			var s="";
			if(action!=null)
				for(var i=0;i<action.length;i++)
					s+='<input type="hidden" name="'+action[i][0]+'" value="'+action[i][1]+'" >';
			document.write('<form method="post" id="'+id+'"'+((url!=null)?(' action="'+url+'"'):'')+((isblank!=null)?(' target="_blank"'):'')+'>'+s+'</form>');
			document.getElementById(id).submit();
		}
		else {
			var form=document.getElementById(id);
			if(form.before_link!=null) form.before_link();
			if(url!=null) form.action=url;
			if(action!=null)
				for(var i=0;i<action.length;i++){
					var name=action[i][0];
					if(form[name] == null || name.substr(name.length-2)=='[]'){
						var hid=document.createElement('input');
						hid.type='hidden';
						hid.name=name;
						hid.value=action[i][1];
						form.appendChild(hid);
					}
					else{
						//alert(name+',  '+action[i][1]);
						form[name].value=action[i][1];
					}
					//alert(form['action']);
					//form[action[i][0]].value=action[i][1];
				}
			if(form.after_link!=null) form.after_link();
			else document.getElementById(id).submit();
		}
	}
	
	var elements_to_replace=new Array();
	
	this.onmouseover = function(evt,el1,el2_id){
		if(el1.index==null){
			el1.el2=document.getElementById(el2_id);
			elements_to_replace[el1.index=elements_to_replace.length]=el1;
		}
		el1.needreplace=true;
		el1.style.display='none';
		el1.el2.style.display='block';
	}
	//var document_onmousemove=document.onmousemove;
	myEvents.add_onmousemove(
		function(evt){
		//if(document_onmousemove!=null) document_onmousemove(evt);
		for(var i=0; i<elements_to_replace.length; i++){
			var el1=elements_to_replace[i];
			if(el1.needreplace){
				if(evt==null) evt=event;
				var srcElement=evt.srcElement ? evt.srcElement : evt.target;
				if(srcElement!=null && srcElement!=el1.el2 && srcElement!=el1){
					el1.el2.style.display='none';
					el1.style.display='block';
					el1.needreplace=false;
				}
			}
		}
	
	}
	);
	return this;
}();

/*function getDateZero(){
	d = new Date();
	d.setTime(0);
	d.setMonth(0);
	d.setDate(0);
	//d.setMinutes(0);
	//d.setSeconds(0);
	//d.setMilliseconds(0);
	return d;
}*/



function getTimeFunction(end,elementid,strs){
	return function(){
		
		var now = new Date();
		//var dt=end.getTime()-now.getTime();
		var left = new Date(end);
		left.setUTCMilliseconds(-now.getTime());
		if(left.getTime()<=1000){
			document.getElementById(elementid).innerText="";
			return;
		}
		//left.setDate(left.getDate()-2)

		if(strs==null) strs=new Array('monthes', 'days', 'hours', 'minutes', 'seconds');
		var vals=new Array(left.getUTCMonth(),left.getUTCDate()-1,left.getUTCHours(),left.getUTCMinutes(),left.getUTCSeconds());
		//var vals=new Array(dt=round(dt/1000),dt=round(dt/60),dt=round(dt/60),dt=round(dt/24),);
		//vals=vals.reverse();
		var s='';
		var f=false;
		var strs2=new Array();
		for(var i=0; i<5; i++)
			if(strs[i]!=null && (vals[i]>0 || f)) {
				f=true;
				strs2.push(vals[i]+' '+strs[i]);
			}
		document.getElementById(elementid).innerHTML=strs2.join(', ');
		setTimeout(getTimeFunction(end,elementid,strs), 1000);   // Óñòàíàâëèâàåì çàäåðæêó. 
	}
}

function insertDTLeft(dt,dt_strings){
	var elementid='rendomelement'+getUniqueIndex();
	document.write('<span id="'+elementid+'"></span>');
//		document.getElementById(elementid).innerText=dt;
	var end = new Date();
	end.setSeconds(parseInt(dt)+end.getSeconds());
	setTimeout(getTimeFunction(end,elementid,dt_strings), 0);   // Óñòàíàâëèâàåì çàäåðæêó. 
}



createTimeZoneElement=function(){
	var curzone=new Date();
	curzone=-Math.round(curzone.getTimezoneOffset()/60);
	//var super=this;
	var getOnChangeFunc=function(sel_el){
		return function(){
			curzone=sel_el.value;
			refreshAllSelects();
			refreshAllDateEls();
		}
	}

	var refreshAllSelects=this.refreshAllSelects=function(){
		for(var i=0; i<selects.length; i++){
			selects[i].value=curzone;
		}
	}

	var selects=this.selects=new Array();
	var insertSelect=this.insertSelect=function(zone){
		if(zone!=null) curzone=zone;
		var elementid='rendomelement'+getUniqueIndex();
		document.write('<select id="'+elementid+'"></select>');
		var el=document.getElementById(elementid);
		for(var i=-12; i<=12; i++){
			var f=(curzone==i);
			el.options[el.options.length]=new Option((i>0)?('+'+i):i,i,f,f);
		}
		selects[this.selects.length]=el;
		el.onchange=getOnChangeFunc(el);
		el.onchange();
		return el;
	}
	
	var getThisZoneDT=function(dt){
		var date=(dt==null)?(new Date()):(new Date(dt));
		date.setUTCHours(date.getUTCHours()+parseInt(curzone)+date.getTimezoneOffset()/60);
		return date;
	}
	var defoultFormatFunction=function(dt){
		
		var months=new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
		var k;
		var pm=dt.getHours()>12;
		return months[dt.getMonth()]+' '+
			(k=('000'+dt.getDate())).substr(k.length-2)+' '+
			(k=('000'+(pm?(dt.getHours()-12):dt.getHours()))).substr(k.length-2)+':'+
			(k=('000'+dt.getMinutes())).substr(k.length-2)+' '+
			(pm?'PM':'AM');
		//return dt;
	}
	var defoultFormatForInputFunction=function(dt){
		var k;
		return dt.getFullYear()+'-'+
			(k=('000'+(dt.getMonth()+1))).substr(k.length-2)+'-'+
			(k=('000'+dt.getDate())).substr(k.length-2)+' '+
			(k=('000'+dt.getHours())).substr(k.length-2)+':'+
			(k=('000'+dt.getMinutes())).substr(k.length-2)+':'+
			(k=('000'+dt.getSeconds())).substr(k.length-2);
		//return dt;
	}
	var date_els=this.date_els=new Array();
	var refreshAllDateEls=function(el){
		if(el!=null){
			if(el!=false){
				el.innerHTML=el.format_func(getThisZoneDT(el.date));
				//if(el.style_func!=null) el.style_func(el,el.date);
			}
		}
		else{
			for(var i=0;i<date_els.length;i++){
				el=date_els[i];
				el.innerHTML=el.format_func(getThisZoneDT(el.date));
				//if(el.style_func!=null) el.style_func(el,el.date);
			}
		}
	}

	var date_now_els=this.date_els=new Array();
	var refreshAllDateNowEls=function(){
		var date=getThisZoneDT();
		for(var i=0;i<date_now_els.length; i++){
			var el=date_now_els[i];
			el.innerHTML=el.format_func(date);
			if(el.style_func!=null) el.style_func(el,date);
		}
		setTimeout(refreshAllDateNowEls, 10000);
	}
	
	var insertDT=this.insertDT=function (dt,format_func,container_id){
		if(container_id==null){
			var container_id='rendomelement'+getUniqueIndex();
			document.write('<span id="'+container_id+'"></span>');
		}
		var el=document.getElementById(container_id);
		el.format_func=((format_func==null)?defoultFormatFunction:format_func);
		//if(style_func!=null) el.style_func=style_func;
		if(dt==null){
			date_now_els[date_now_els.length]=el;
			refreshAllDateNowEls();
		}
		else{
			var now = new Date();
			now.setUTCSeconds(parseInt(dt)+now.getUTCSeconds());
			el.date=now;
			date_els[date_els.length]=el;
			refreshAllDateEls(el);
		}
		return el;
	}
	

	
	this.setTimeZone=function(timezone){
		
		if(timezone==null || timezone<-12 || timezone>12){
			curzone=new Date();
			curzone=-Math.round(curzone.getTimezoneOffset()/60);
		}
		else
			curzone=timezone;
	}

	
	var date_left_els=this.date_left_els=new Array();
	var time_func_period=this.time_func_period=1000; //ms
	var timeFunction=function(){
		for(var i=0;i<date_left_els.length; i++){
			var el=date_left_els[i];
			var now = new Date();
			var left = new Date(el.end);
			left.setUTCMilliseconds(-now.getTime());
			if(left.getTime()<=1000){
				//alert(left.getTime());
				el.innerText="";
				continue;
			}
			if(el.dt_strings==null) el.dt_strings=new Array('monthes', 'days', 'hours', 'minutes', 'seconds');
			var vals=new Array(left.getUTCMonth(),left.getUTCDate()-1,left.getUTCHours(),left.getUTCMinutes(),left.getUTCSeconds());
			var s='';
			var f=false;
			var strs2=new Array();
			for(var j=0; j<5; j++)
				if(el.dt_strings[j]!=null && (vals[j]>0 || f)) {
					f=true;
					strs2.push(vals[j]+' '+el.dt_strings[j]);
				}
			el.innerHTML=strs2.join(', ');
		}
		setTimeout(timeFunction, time_func_period);
	}

	this.insertDTLeft=function(dt,dt_strings){
		var elementid='rendomelement'+getUniqueIndex();
		document.write('<span id="'+elementid+'"></span>');
		var el=document.getElementById(elementid);
		el.end = new Date();
		el.end.setSeconds(parseInt(dt)+el.end.getSeconds());
		if(dt_strings!=null) el.dt_strings=dt_strings;
		date_left_els[date_left_els.length]=el;
		if(date_left_els.length==1)
			timeFunction();
		
		return el;
	}

	
	var formatDataValue=function(value){
		if(value==null) return '0';
		var out=
			(((v=value.substr(0,4))>2038)?2038:((v.length==4 && v<1970)?1970:v)) + '-' +
			(((v=value.substr(5,2))>12)?12:((v<1)?'01':v)) + '-' +
			(((v=value.substr(8,2))>31)?31:((v<1)?'01':v)) + ' ' +
			(((v=value.substr(11,2))>23)?23:v) + ':' +
			(((v=value.substr(14,2))>59)?59:v) + ':' +
			(((v=value.substr(17,2))>59)?59:v);
		return out.substr(0,((v=value.length)>19)?19:v);
	}
	
	var tmp_hidden_el=null;
	var _setRange=function(el){
		//if(el!==false){
			
			el.input_value=formatDataValue(el._value);
			el.value=el.input_value;// + ' ('+((curzone>0)?'+':'')+curzone+')';
			if(el._selectionStart>19)el._selectionStart=19;
			if(el._selectionStart>el._selectionEnd)
				el._selectionEnd=el._selectionStart;
			if(el.selectionStart==null && document.selection ) // IE
			{ 
				var rng = document.selection.createRange();
				var length=rng.text.length;
				rng.move('character', -1000000);
				rng.moveEnd('character', el._selectionEnd);
				rng.moveStart('character', el._selectionStart);
				rng.select();
			}// /IE 
			else{
				el.setSelectionRange(el._selectionStart,el._selectionEnd);
			}
		//}
	}
	

	var MakeOnKeyDownFunc=function(el){
		return function(evt){
			if(event!=null) evt=event;
			if(tmp_hidden_el==null){
				tmp_hidden_el='rendomelement'+getUniqueIndex();
				document.write('<input style="position:absolute; top:'+getElementPosition(el).top+'px; left:-5000px" type="text" id="'+tmp_hidden_el+'" >');
				tmp_hidden_el=document.getElementById(tmp_hidden_el);
				tmp_hidden_el.onkeyup=function(){
					tmp_hidden_el.value='';
					tmp_hidden_el.el_focus.focus();
					_setRange(tmp_hidden_el.el_range);
				}
			}
			if(el.input_value==null) el.input_value='';
			
			var code=(evt.charCode==null || evt.charCode==0)?evt.keyCode:evt.charCode;
			
			//get start end end of selection for IE
			/* IE */
			if(el.selectionStart==null && (document.selection || window.selection) )
			{ 
				var rng = (document.selection?document:window).selection.createRange();
				var length=rng.text.length;
				rng.moveStart('character', -1000000);
				var selectionStart = rng.text.length - length;
				var selectionEnd = rng.text.length;
				
			}/* /IE */
			else{
				var selectionStart = el.selectionStart;
				var selectionEnd = el.selectionEnd;
			}
			tmp_hidden_el.el_range=el;
			if(code==37 || code==39){//left or right keys
				el._selectionEnd = ((code==37)?(selectionStart-1):(selectionEnd+1));
				el._selectionStart =el._selectionEnd; 
				tmp_hidden_el.el_range=el;
				//tmp_hidden_el.focus();
				//el.needmove=true;
			}
			else if (code >= 48 && code <= 57) {
				var str=String.fromCharCode(code);
				var selection_length=1;
	
				if(selectionStart>18){
						selection_length=20000;
						selectionStart=18;
					}
					else{
						selection_length=2;
						switch(selectionStart){
							case 3:
							case 6:
								str+='-'; break;
							case 9:
								str+=' '; break;
							case 12:
							case 15:
								str+=':'; break;
							default:selection_length=1;
						}
					}
	
	
				el._value=el.input_value.substr(0,selectionStart)+str+el.input_value.substr(selectionStart+selection_length);
				el._selectionStart = selectionStart+selection_length;
				el._selectionEnd = selectionEnd;
				//if(el._selectionStart>el._selectionEnd)
				//	el._selectionEnd=el._selectionStart;
				//el._oninsert=true;
				tmp_hidden_el.el_range=el;
				//tmp_hidden_el.focus();
	
			}
			else if((code==8 && selectionStart!=0 && selectionEnd!=0) || (code==46 && selectionEnd!=el.input_value.length && selectionStart!=el.input_value.length)){ //key del
				if(selectionStart==selectionEnd){
					if(code==8)
						selectionStart-=1;
					else
						selectionEnd+=1;
				}
				var del_str=el.input_value.substring(selectionStart,selectionEnd);
				var str='';
				for(var i=0;i<del_str.length;i++){
					var cur_code=del_str.charCodeAt(i);
					str+=((cur_code >= 48 && cur_code <= 57)?'0':String.fromCharCode(cur_code));
				}
				el._value=el.input_value.substr(0,selectionStart)+str+el.input_value.substr(selectionEnd);
				el._selectionStart = el._selectionEnd = (code==8)?selectionStart:selectionEnd;
				tmp_hidden_el.el_range=el;
			}
			else{
				el._selectionStart = selectionStart;
				el._selectionEnd = selectionEnd;
			}
			tmp_hidden_el.el_focus=el;
			tmp_hidden_el.focus();
			
		}
	}
	
	this.registerInput=function(id,server_zone){
		var el=document.getElementById(id);
		el.onkeydown=MakeOnKeyDownFunc(el);
		//el.form.onsubmit=function(){return false;};
		var inp=document.createElement('input');
		inp.type='hidden';
		inp.style.position="absolute";
		inp.name=el.name+'_timedifference';
		inp.value=Math.round(server_zone/3600)-curzone;
		
		if(el.value.length>0) {
			el.value=el._value=el.input_value=defoultFormatForInputFunction(getThisZoneDT(el.value*1000));
		}
		el.parentNode.insertBefore(inp,el);
	}
	
	
	var color_els=new Array();
	this.registerColorEl=function(el){
		color_els[color_els.length]=el;
		if(color_els.length==1)
			style_func();
	}
	var style_func=function(){
		var now_ms = new Date();
		now_ms=-now_ms.getTime();
		for(var i=0; i<color_els.length; i++){
			
			
			
			
			
			
			var el=color_els[i];
			if(el==null){
				continue;
			}
			if(el.date==null){
				if(el.end==null)
					continue;
				else
					var date=el.end;
			}
			else
				var date=el.date;
			var left = new Date(date);
			left.setUTCMilliseconds(now_ms);
			
			var s=Math.round(left.getTime()/1000);
			var green=(s<0)?0:(
					(s>=86400)?0x7F:(
						Math.round(((s)<<7)/86400)
					)
				);
			var red=(s<=0)?0xFF:(
				(s>172800)?0:(
					Math.round(((172800-s)<<8)/172800)
				)
			);
			el.style.color='rgb('+red+','+green+',0)';
			el.style.fontWeight='bold';
			//alert('rgb('+red+','+green+',0)');
		}
		setTimeout(style_func, 1000);
	}
	
	return this;
}
var TimeZoneEl=new createTimeZoneElement();

//------------ start functions for UPPLOAD ELEMENT -----------------\\
/*function insertUpploadElement(name){
	var elementid='rendomelement'+getUniqueIndex();
	document.write('<div id="'+elementid+'"><input type="file" name="'+name+'" onchange="onchangeUpploadElement(this.parentNode,this.name);" ><button onclick="ondeleteUpploadElement(this.parentNode); return false;">Remove</button></div>');
	var el=document.getElementById(elementid);
	el.first_el=el;
	el.next_el=null;
	el.changed=false;
}*/
var UploadEl=new  function(){
	this.setHeight=function(id,height){
		document.getElementById(id).style.height=height+'px';
	}
	
	this.addFile=function(id,name,size,dt,crc32){
		
		var flash=document.getElementById(id);
		var div=document.createElement('div');
		flash.files[crc32 + '-' + size]=div;
		var i=flash.fileIndex++;
		div.innerHTML='<input type="hidden" name="'+flash.fileName+'['+i+'][0]" value="'+name+'"><input type="hidden" name="'+flash.fileName+'['+i+'][1]" value="'+size+'"><input type="hidden" name="'+flash.fileName+'['+i+'][2]" value="'+dt+'"><input type="hidden" name="'+flash.fileName+'['+i+'][3]" value="'+crc32+'">'
		
		flash.filesconteiner.appendChild(div);
		
		
	}
	this.delFile=function(id,size,crc32){
		
		var flash=document.getElementById(id);
		var file=flash.files[crc32 + '-' + size];
		if(file==null) return;
		file.parentNode.removeChild(file);
		file=null;
		flash.files[crc32 + '-' + size]=null;
	}
	var flashesToInit=new Array();
	this.onInitFlash=function(){
		
		var outFlashes=new Array();
		for(var i=0; i<flashesToInit.length; i++){
			var flash=flashesToInit[i];
			if(flash.setid==null) outFlashes[outFlashes.length]=flash;
			else flash.setid(flash.id,flash.fileServer);

		}
		
		flashesToInit=outFlashes;
	}
	
	this.reg=function(id,name,fileServer,textForFlash){
		var conteiner=document.getElementById(id);
		if(conteiner==null) return false;
		
		if(swfobject.getFlashPlayerVersion().major>=10){
			conteiner.innerHTML='';
			var flash=document.createElement('div');
			conteiner.appendChild(flash);
			flash.id='rendomelement'+getUniqueIndex();
			swfobject.embedSWF("/flash/file/file.swf", flash.id, "300", "50", "10.0.0",null,null,null,null,function(e){
				if(e.success){
					
					e.ref.filesconteiner=conteiner;
					e.ref.files=new Object();
					e.ref.fileIndex=0;
					e.ref.fileName=name;
					e.ref.fileServer=fileServer;
					flashesToInit[flashesToInit.length]=e.ref;
					e.ref.className="sfwupload";
				}
			});
			
			return;
		}
		var div=document.createElement('div');
		div.innerHTML='<input class="inp_file" type="file" name="'+name+'[]" onchange="UploadEl.onchange(this.parentNode,this.name);" ><button onclick="UploadEl.ondelete(this.parentNode); return false;">Remove</button>';
		conteiner.innerHTML=textForFlash;
		conteiner.appendChild(div);
		div.first_el=div;
		div.next_el=null;
		div.changed=false;
		return true;
	}
	
	
	this.onchange=function(el,name){
		if(el.next_el==null){
			//add element
			var div=document.createElement('div');
			div.innerHTML='<input class="inp_file" type="file" name="'+name+'" onchange="UploadEl.onchange(this.parentNode,this.name)" ><button onclick="UploadEl.ondelete(this.parentNode); return false;">Remove</button>';
			el.parentNode.appendChild(div);
			el.next_el=div;
			div.next_el=null;
			div.first_el=el.first_el;
			el.changed=true;
			div.changed=false;
		}
	}
	this.ondelete=function(el){
		if(el.changed && el.first_el.next_el!=null){
			//delete element
			
			//if delete first element
			if(el.first_el===el){
				cur=el.first_el;
				while(cur!=null){
					cur.first_el=el.next_el;
					cur=cur.next_el;
				}
			}
			else {
				cur=el.first_el;
				while(cur.next_el!=null){
					if(cur.next_el==el){
						cur.next_el=el.next_el;
						break;	
					}
					//cur.first_el=el.next_el;
					cur=cur.next_el;
				}
			}
			el.parentNode.removeChild(el);
		}
	}
	
	
	var links=new Object();
	var resetLink=this.resetLink=function(a_id,fileid,val){
		var a=document.getElementById(a_id);
		if(a==null) return;
		var info=links[a_id];
		
		var href=new Array();
		
		//if(fileid) {
		//	info.allfiles[fileid][3]=val;
			//alert(fileid + ' ' + val);
		//}
		var md5="";
		var n=0;
		var size=22;
		var title=new Array();
		for(fileid in info.allfiles){
			if(info.allfiles[fileid][3].checked){
				href[href.length]=fileid;
				var file=info.allfiles[fileid];
				md5+=file[2];
				title[title.length]=file[1];
				size+=76+1*file[0]+2*file[1].length;
			}
		}
		if(href.length){
			size=Math.ceil(size/1024);
			a.title=title.join(", ");
			a.innerHTML='Download selected files (size: '+size+' Kb)';
			a.href=info.pathprefix+'/zip-'+href.join("_")+"-"+hex_md5(md5)+'?'+Math.round(Math.random()*100000);
		}
		else {
			a.innerHTML='';
		}
	}
	this.regMultyDownload=function(a_id,pathprefix,files,chbs){
		
		var info={'allfiles':files,'pathprefix':pathprefix};
		
		links[a_id]=info;
		
		for(var i=0; i<chbs.length; i++){
			var chb=document.getElementById(chbs[i]);
			info.allfiles[chb.value][3]=chb;
			
			myEvents.addto(chb,function(e){
				resetLink(a_id);
				return true;
			},'onchange');
		}
		resetLink(a_id);
	}
	
	return this;
}();
//------------ end functions for UPPLOAD ELEMENT -----------------\\

//------------ start functions for DINAMIC ELEMENT -----------------\\
function insertDinamicElement(content_id,text){
	var el=document.createElement('div');
	document.getElementById(content_id).appendChild(el);
	var content = document.getElementById(content_id);
	el.innerHTML=text+'<button  class="inp_subm" onclick="ondeleteDinamicElement(this); return false;">Remove</button><br><br>';
	//el=document.getElementById(elementid);
	if(arguments[2]!=null) 
		content.defhtml=arguments[2];
	if(content.first_el==null) 
		content.first_el=el;
	if(arguments[3]==null){
		content.first_el=el;
		el.next_el=null;
	}
	else{
		prev_el=arguments[3];
		//el.first_el=prev_el.first_el;
		el.next_el=prev_el.next_el;
		prev_el.next_el=el;
		//prev_el.changed=true;
	}
	//alert(content.getElementsByTagName('span').length);
	//el.changed=false;
	return el;
}

function regDinamicElementIndex(content_id, index_el_id){
	
	var content=document.getElementById(content_id);
	if(content.indexesupd==null) content.indexesupd=new Array();
	content.indexesupd[content.indexesupd.length]=document.getElementById(index_el_id);
	
}

function updateDinamicElements(el){
	while(el.defhtml==null){
		if(el.parentNode==null) return;
		el=el.parentNode;
	}
	var indexes={2:'Second',3:'Third',4:'Fourth',5:'Fifth',6:'Sixth',7:'Seventh',8:'Eighth',9:'Ninth',10:'Tenth'};
	var cur=el.first_el;
	var index_of_m_e=1;
	while(cur!=null){
		spans=cur.getElementsByTagName('span');
		for(var i=0; i<spans.length; i++){
			
			span=spans[i];
			
			if(span.className=='index_of_m_e'){
				span.innerHTML=/*(cur.next_el==null)?'(New)':*/index_of_m_e++;
			}
		}
		cur=cur.next_el;
	}
	
	if(el.indexesupd!=null){
		
		for(var j=0; j<el.indexesupd.length; j++){
			spans=el.indexesupd[j].getElementsByTagName('span');
			for(var i=0; i<spans.length; i++){
				
				span=spans[i];
				
				if(span.className=='newindex_of_m_e') span.innerHTML=index_of_m_e;
				if(span.className=='newwordindex_of_m_e') span.innerHTML=(indexes[index_of_m_e]!=null)?indexes[index_of_m_e]:index_of_m_e;
		
			}
			
		}
	}
}
function onchangeDinamicElement(el){
	/*while(el.defhtml==null){
		if(el.parentNode==null) return;
		el=el.parentNode;
	}
	if(el.next_el==null){
		//add element
		div=document.createElement('div');
		div.defhtml=el.defhtml;
		div.innerHTML=el.defhtml+'<button class="inp_subm" onclick="ondeleteDinamicElement(this); return false;">Remove</button><br><br>';
		el.parentNode.appendChild(div);
		el.next_el=div;
		div.next_el=null;
		div.first_el=el.first_el;
		el.changed=true;
		div.changed=false;
		window.onload();
	}*/
	updateDinamicElements(el);
}
function onAddDinamicElement(el){
	while(el.defhtml==null){
		if(el.parentNode==null) return;
		el=el.parentNode;
	}
	
		//add element
		div=document.createElement('div');
		//div.defhtml=el.defhtml;
		div.innerHTML=el.defhtml+'<button class="inp_subm" onclick="ondeleteDinamicElement(this); return false;">Remove</button><br><br>';
		el.appendChild(div);
		el=el.first_el;
		while(el.next_el!=null) el=el.next_el;
		el.next_el=div;
		div.next_el=null;
		//div.first_el=el.first_el;
		//el.changed=true;
		//div.changed=false;
		//window.onload();

	updateDinamicElements(el);
}

function ondeleteDinamicElement(el){
	
	//while(el.defhtml==null){
	//	if(el.parentNode==null) return;
		el=el.parentNode;
	//}
	var content=el;
	while(content.defhtml==null){
		if(content.parentNode==null) return;
		content=content.parentNode;
	}
	var first_el=content.first_el;

	if(/*el.changed && */content.first_el.next_el!=null){
		//delete element
		
		//if delete first element
		if(first_el===el){
			content.first_el=first_el.next_el;
			//cur=first_el;
			//while(cur!=null){
			//	cur.first_el=el.next_el;
			//	cur=cur.next_el;
			//}
		}
		else {
			cur=content.first_el;
			while(cur.next_el!=null){
				if(cur.next_el==el){
					cur.next_el=el.next_el;
					break;	
				}
				//cur.first_el=el.next_el;
				cur=cur.next_el;
			}
		}
		el.parentNode.removeChild(el);
	}
	updateDinamicElements(content);
}
//------------ end functions for DINAMIC ELEMENT -----------------\\




/*
function getElementPosition (el)
{
	var offsetTrail = el;
	var offsetLeft = 0;
	var offsetTop = 0;
	//alert(el.parentNode);
	if(el.parentNode!=null){
		while (offsetTrail) {
			
			if(offsetTrail.style.position=='absolute') {
				break;
			}
			else if(offsetTrail.style.position=='relative') {
				status=offsetLeft+':::'+offsetTrail.offsetLeft;
				break;
			}
			offsetLeft += offsetTrail.offsetLeft;
			offsetTop += offsetTrail.offsetTop;
			offsetTrail = offsetTrail.offsetParent;
		}
	}
	
	return {left:offsetLeft, top:offsetTop};
} */
function getElementPosition (el,before_abs_el){
	if(before_abs_el==null) before_abs_el=true;
	var offsetTrail = el;
	var offsetLeft = 0;
	var offsetTop = 0;
	//alert(el.parentNode);
	if(el.parentNode!=null){
		
		offsetLeft += offsetTrail.offsetLeft;
		offsetTop += offsetTrail.offsetTop;
		offsetTrail = offsetTrail.offsetParent;
		while (offsetTrail) {
			if(before_abs_el && (offsetTrail.style.position=='absolute' || offsetTrail.style.position=='relative')) {
				break;
			}
			offsetLeft += offsetTrail.offsetLeft;
			offsetTop += offsetTrail.offsetTop;
			offsetTrail = offsetTrail.offsetParent;
		}
	}
	
	return {left:offsetLeft, top:offsetTop};
} 


/*function mousePageXY(e)
{
	var x = 0, y = 0;
	if (!e) e = window.event;
	if (e.pageX || e.pageY){
		x = e.pageX;
		y = e.pageY;
	}
	else if (e.clientX || e.clientY){
		x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
		y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
	}
	return {"x":x, "y":y};
}
function mousePageXY(e)
{
  var x = 0, y = 0;

  if (!e) e = window.event;

  if (e.pageX || e.pageY)
  {
    x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY)
  {
	
    x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
    y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
  }


  return {"x":x, "y":y};
}
*/
//------------ start functions for DINAMIC MENU -----------------\\
function getmenufunc(a1,a2){
	return function(){submitaction(a1,a2);}
}

function hideMenu(el){
	if(el.subelementscreated!=null){
		if(!el.cursorout){
			return;
		}
		for(var i=0;i<el.subelements.length; i++){
			if(!el.subelements[i].cursorout){
				return;
			}
		}
		for(i=0;i<el.subelements.length; i++){
			el.parentNode.removeChild(el.subelements[i]);
		}
		el.subelements=null;
		el.subelementscreated=null;
	}
}

function getHideFunction(el){
	return function(){hideMenu(el)}
}
function showMenu(el,arr,type){
	el.cursorout=false;
	if(el.subelementscreated==null){
		el.onmouseout=function(){
			this.cursorout=true;
			setTimeout(getHideFunction(el), 100);		
		}
		el.subelements=new Array();
		for(var i=0; i<arr.length; i++){
			var a=document.createElement('a');
			a.innerText=arr[i][0];
			a.href='#';
			a.onclick=getmenufunc(arr[i][1][0],arr[i][1][1]);
			a.style.position='absolute';
			a.style.fontSize=10;
			//a.style.dysplay='block';
			//a.style.width='100%';
			var position=getElementPosition(el);
			a.style.top=position.top+(11)*(i)+el.offsetHeight-3;
			a.style.color='#EEEEEE'
			//a.style.height=el.offsetHeight;
			a.style.left=position.left;
			el.subelements[el.subelements.length]=a;
			el.parentNode.appendChild(a);
			
			a.cursorout=true;
			a.onmouseover=function(){this.cursorout=false;}
			a.onmouseout=function(){
				this.cursorout=true;
				setTimeout(getHideFunction(el), 100);		
			}
		}
		el.subelementscreated=true;
	}
}
//------------ end functions for DINAMIC MENU -----------------\\
function hasClass(el,cls) {
	return el.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(el,cls) {
	if(!el.className) el.className = cls;
	else if (!this.hasClass(el,cls)) el.className += " "+cls;
}
function removeClass(el,cls) {
	el.className=el.className.replace(new RegExp('(\\s|^)'+cls+'(\\s|$)'),' ');
	if(el.className[0]==' ') el.className=el.className.substr(1);
	if(el.className[el.className.length-1]==' ') el.className=el.className.substr(0,el.className.length-1);
}

//------------ start functions for MatrixElement -----------------\\
function registerMatrixElementInSelect(index,select_name,text){
	document.write('<input id="temp_element" >');
	var temp=document.getElementById('temp_element');
	var els=temp.form.elements;
	//temp.parentNode.removeChild(temp);
	//temp=temp.parentNode;
	for(var i=0;i<els.length; i++)
		if(els[i].name==select_name){
			if(els[i].matrixinfo==null){
				els[i].matrixinfo=new Array();
				els[i].onchange=getMatrixElementSelectFunc(els[i]);
			}
			
			//find main element for hidden
			var cur=temp;//.parentNode.previousSibling.previousSibling;
			while(cur!=null){
				//if(cur.className!=null) alert(cur.className+'/n'+cur.className.search("/(^| )mainforinput($| )/"));
				if(cur.className!=null && cur.className.search("(^| )mainforinput($| )")!=-1){
					//alert('zzzz');
					break;
				}
				cur=cur.parentNode;
			}
			
			if(cur==null)
				cur=temp.parentNode.previousSibling;//.previousSibling;
			//alert(temp.tagName);
			//var hhh=temp.parentNode.parentNode.parentNode;
			//alert(hhh.innerHTML);
			///alert((hhh.tagName!=null)?hhh.tagName:hhh);
			els[i].matrixinfo[els[i].matrixinfo.length]={index:index, el_display:cur, el_inp:temp.parentNode.previousSibling};
			els[i].onchange();
			
		}
	temp.parentNode.parentNode.removeChild(temp.parentNode);
}

function getMatrixElementSelectFunc(el){
	return function(){
		for(var i=0; i<el.matrixinfo.length; i++){
			var el_inp=el.matrixinfo[i].el_inp;
			var el_display=el.matrixinfo[i].el_display;
			el_display.style.display=(el.matrixinfo[i].index==el.value)?document.createElement(el_display.tagName).style.display:'none';
			if(el.matrixinfo[i].index==el.value){
				if(el_inp.repl!=null){
					el_inp.repl.parentNode.insertBefore(el_inp,el_inp.repl);
					el_inp.repl.parentNode.removeChild(el_inp.repl);	
					el_inp.repl=null;
					el_inp.scrollIntoView();
				}
			}
			else{
				if(el_inp.repl==null){
					el_inp.repl=document.createElement('tr');
					el_inp.parentNode.insertBefore(el_inp.repl,el_inp);
					el_inp.parentNode.removeChild(el_inp);
				}
			}
		}
		el.scrollIntoView();
		//hideUnhideEmptyElements(el.form,'td',checkfunc1);
	}
}

function checkfunc1(el){
	if(this.g==null){
		this.g=0;
	}
	if(this.g>20 && this.g<30){
		//alert(el.innerHTML+' '+el.offsetHeight);

	}
	this.g++;
	return el.offsetHeight==0;	
}

function hideUnhideEmptyElements(start,tagname,check_func){
	var els=start.getElementsByTagName(tagname);
	//hide
	for(var i=0; i<els.length; i++){
		if(!check_func(els[i])){
			els[i].style.display='none';
		}
	}
	
	//unhide
	for(i=0; i<els.length; i++){
		if(check_func(els[i])){
			els[i].style.display=document.createElement(tagname).style.display;
		}
	}
}

//------------ end functions for selectMatrixElement -----------------\\

function hideElement(id,but,title1,title2){
	var el=document.getElementById(id);
	if(typeof(but)!="object")
		but=document.getElementById(but);
	if(el.showstatus==null) {
		el.def_dysplay=el.style.display;
		el.showstatus=true;
	}
	if(el.showstatus=!el.showstatus){
		el.style.display = el.def_dysplay;
		but.innerHTML=title1;
	} else{
		el.style.display = 'none';
		but.innerHTML=title2;
	}
	return false;
	
}
function regHideEl(id,butid,title1,title2){
	var el=document.getElementById(id);
	var but=document.getElementById(butid);
	el.def_dysplay=el.style.display;
	el.showstatus=true;
	but.onclick=function(){
		if(el.showstatus=!el.showstatus){
			el.style.display = el.def_dysplay;
			but.innerHTML=title1;
			//el.focus();
		} else{
			el.style.display = 'none';
			but.innerHTML=title2;
		}
		return false;
	}
	but.onclick();
	
	
}
	
function registerHideElement(id,title){
	var el=document.getElementById(id);
	el.def_dysplay=el.style.display;
	el.showstatus=true;
	var but=document.createElement('button');
	but.onclick=function(){
		if(el.showstatus=!el.showstatus){
			el.style.display = el.def_dysplay;
			but.innerHTML='&#60;&#60;'+title+'&#60;&#60;';
			//el.focus();
		} else{
			el.style.display = 'none';
			but.innerHTML='&#62;&#62;'+title+'&#62;&#62;';
		}
	}
	el.parentNode.insertBefore(but,el);
	but.onclick();
}




//------------ start functions for InpArrEl -----------------\\
/*function insertInpArrEl(name,descr,fields,values){
	var elementid='rendomelement'+Math.round(Math.random()*100000);
	document.write('<input id="'+elementid+'" type="hidden" name="'+name+'" value="'+values+'"/><table style="width:100%;"><tr><td id="sel'+elementid+'"></td><td id="data'+elementid+'"></td></tr></table>');
	mainel=document.getElementById(elementid);
	mainel.fields=fields;
	values=values.split(',');
	mainel.descr=descr;
	mainel.data_td=document.getElementById('data'+elementid);
	mainel.sel_td=document.getElementById('sel'+elementid);
	mainel.editels=new Array();
	for(var i=0;i<mainel.fields.length;i++){
		//if(i) data_td.appendChild(document.createElement('br'));
		label=document.createElement('h5');
		label.style.margin='0px';
		label.innerText=mainel.fields[i];
		mainel.data_td.appendChild(label);
		inp=document.createElement('textarea');
		inp.className="inp_ta";
		inp.style.height=40;
		if(values[i]!=null)
			inp.innerText=values[i];
		inp.style.marginBottom='10px';
		inp.mainel=mainel;
		mainel.editels[mainel.editels.length]=inp;
		mainel.data_td.appendChild(inp);
		inp.onchange=getOnChangeInpArrElFunc(inp);
		
	}
	del=document.createElement('button');
	del.innerText="Remove";
	del.onclick=getOnRemoveInpArrElFunc(mainel);
	mainel.data_td.appendChild(del);
	
	num_grups=Math.max(1,values.length/mainel.fields.length);
	for(i=0;i<num_grups;i++){
		sel=document.createElement('a');
		if(!i) {
			mainel.first_el=sel;
			mainel.cur_el=sel;
		}
		sel.className='inparrelactive';
		sel.index=i;
		mainel.sel_td.appendChild(sel);
		sel.next_el=null;
		sel.mainel=mainel;
		sel.onclick=getOnSelectInpArrElFunc(sel);
		sel.values=values.slice(i*mainel.fields.length, (i+1)*mainel.fields.length-1);
	}
	setTextesInInpArrEl(mainel.first_el);
}

function getOnChangeInpArrElFunc(el){
	return function(){
		var m=el.mainel;
		//if current element is last
		if(m.cur_el.next_el==null){
			
			//add group
			var sel=document.createElement('a');
			sel.className='inparrel';
			sel.index=m.cur_el.index+1;
			//sel.innerText="...";
			sel.next_el=null;
			sel.mainel=m;
			sel.onclick=getOnSelectInpArrElFunc(sel);
			m.sel_td.appendChild(sel);
			m.cur_el.next_el=sel;
			sel.values=new Array();
			//m.cur_el.innerText=m.cur_el.index+1;
		}
		for(var i=0;i<m.editels.length;i++)
			if(m.editels[i]==el) break;
		m.cur_el.values[i]=el.value.replace(',','&#8218;');
		
		saveInpArrEl(m);
		
		
		setTextesInInpArrEl(m.first_el);
		
	}
}

function setTextesInInpArrEl(first_el){
	var i=1;
	cur=first_el;
	while(cur!=null){
		cur.innerText=(cur.next_el!=null || cur==first_el)?(first_el.mainel.descr+i):'...';
		cur=cur.next_el;
		i++;
	}
}

function saveInpArrEl(m){
	cur=m.first_el;
	m.value=cur.values.join(',');
	cur=cur.next_el;
	while(cur!=null){
		m.value+=(','+cur.values.join(','));
		cur=cur.next_el;
	}
	
}

function getOnSelectInpArrElFunc(el){
	return function(){
		var m=el.mainel;
		if(m.cur_el!=el){
			for(var i=0;i<m.editels.length;i++)
				m.editels[i].value=(el.values[i]!=null)?el.values[i]:'';

			//change display
			el.mainel.cur_el.className='inparrel';
			el.className='inparrelactive';
			
			el.mainel.cur_el=el;
			
			setTextesInInpArrEl(m.first_el);
		}
	}
}

function getOnRemoveInpArrElFunc(m){
	return function(){
		if(m.first_el.next_el!=null){
		//delete element
			del=m.cur_el;
			//if delete first element
			if(m.first_el===del){
				m.first_el=m.first_el.next_el;
			}
			else {
				cur=m.first_el;
				while(cur.next_el!=null){
					if(cur.next_el==m.cur_el){
						cur.next_el=cur.next_el.next_el;
						break;	
					}
					//cur.first_el=el.next_el;
					cur=cur.next_el;
				}
			}
			m.sel_td.removeChild(del);
			setTextesInInpArrEl(m.first_el);
		}
		saveInpArrEl(m);
	}
}
*/
//------------ end functions for UPPLOAD ELEMENT -----------------\\


// ---------------| field sum |------------\\
function insertFieldSum(index,name,prefix,value,checked,elementid){
	checked=checked?'checked':'';
	if(elementid==null) elementid='rendomelement'+getUniqueIndex();
	document.write('<input class="inp_chb" type="checkbox" id="'+elementid+'" '+checked+'></input> ('+prefix+value+')');
	var el=document.getElementById(elementid);
	//alert(el);
	el.name=name+'[]';
	el.value=index;
	el.value_for_sum=value;
	
}

// -------------| end field sum |----------\\
function mousePageXY(e)
{
  var x = 0, y = 0;

  if (!e) e = window.event;

  if (e.pageX || e.pageY)
  {
    x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY)
  {
	
    x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
    y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
  }


  return {"x":x, "y":y};
}


/*---------| AJAX |----------*/
var MiniAjax = new function (){
	var createXMLHttpRequest = function () {
	  var xmlReq = false;
	  // branch for native XMLHttpRequest object
	  if(window.XMLHttpRequest) {
		try {
		  xmlReq = new XMLHttpRequest();
		} catch(e) {
		  xmlReq = false;
		}
	  // branch for IE/Windows ActiveX version
	  } else if(window.ActiveXObject) {
		try {
		  xmlReq = new  ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
		  try {
			xmlReq = new  ActiveXObject("Microsoft.XMLHTTP");
		  } catch(e) {
			xmlReq = false;
		  }
		}
	  }
	  return xmlReq;
	}
	
	var userAgent = { };
	userAgent.isAJAX  = (createXMLHttpRequest()?true:false);
	userAgent.isMozilla  = (navigator.userAgent.match(/\bGecko\b/));
	userAgent.isOpera  = (navigator.userAgent.match(/\bOpera\b/));
	userAgent.isInternetExplorer  =
	  (navigator.userAgent.match(/\bMSIE\b/) && !userAgent.isOpera);
	
	var urlEncodeData = function(data){
		if(data==null) return null;
		if (data instanceof Object) {
			var query = new Array();
			for (var i in data) query.push(encodeURIComponent(i) + "=" + encodeURIComponent(data[i]));
			return query.join('&');
		} else return encodeURIComponent(data);
	}


	
	var callServer = this.callServer = function (method, url, data, dataType, func, arg) {
		if (!method) method='GET';
		/*if (data && !dataType){
			if(method=='POST') dataType='application/x-www-form-urlencoded';
			else dataType='application/xml';
		}*/
		var xmlReq = createXMLHttpRequest();
		if(xmlReq) {
			xmlReq.onreadystatechange = function() {
			// only if xmlReq shows "loaded"
				if (xmlReq.readyState == 4) {
					func(arg, xmlReq.responseText, xmlReq.status, xmlReq.statusText);
				}
			};
			xmlReq.open(method, url, true);
			if(data){
				if (!dataType){
					if(method=='POST') dataType='application/x-www-form-urlencoded';
					else dataType='application/xml';
				}
				if (userAgent.isMozilla && dataType.indexOf("charset=")<0)
					dataType=dataType+';charset=utf-8';
				xmlReq.setRequestHeader('Content-Type',  dataType);
				xmlReq.send(urlEncodeData(data));
			}
			else xmlReq.send(null);
			
			return false;
		}
		return true;
	}
	
	var ma_onreadystatechange =function(callbackFunc,responseText,status,statusText){
		if(status!='200') return false;
		var data = eval("(" + responseText + ");");
		callbackFunc(data);
	}
	
	/*this.getTableValues=function(callbackFunc,columnId,start,num,value_id){
		
		callServer(
			'POST',
			'get_values.php5',
			{
				column_id:columnId,
				start:start,
				num:num,
				
				
			},
			null,
			ma_onreadystatechange,
			callbackFunc
		);
	}*/
	
	this.getTableValues=function(callbackFunc,params){
		
		callServer(
			'POST',
			'get_values.php5',
			params,
			null,
			ma_onreadystatechange,
			callbackFunc
		);
	}
	
	return this;
}

/*function myShowHTML(el_id,responseText,status,statusText){
	alert(el_id+','+responseText+','+status+','+statusText);
	var data = eval("(" + responseText + ");");
	alert(data);
}
MiniAjax.callServer('POST', 'get_values.php5', null, null, myShowHTML, 'targetDiv');
*/
/*function getFuncShowListColumnValues(el_id){
	return function(data){
		alert(1);
		alert(data);
	}
}

MiniAjax.getTableValues(getFuncShowListColumnValues('ddd'),1,null,null);*/

/*-------| END AJAX |--------*/
function registerPriceFormCopy(id,names_from,names_to){
	
	var form=document.getElementById(id);
	form.before_link=function(){
		form.reset();
	}
	form.after_link=function(){
		
		var fl=false;
		for(var i=names_to.length-1;i>=0;i--){
			
			if(form[names_to[i]].value!==''){
				
				fl=true;
			}
			if(fl){
				form[names_from[i]].value=form[names_to[i]].value;
			}
			form[names_to[i]].style.display=fl?'inline':'none';
		}

		
	}
}



function onchangepricevalue(inp,formid,c1,c2,c3,r1){
	var form=document.getElementById(formid);
	form['coltype1'].value=document.getElementById(c1).value;
	form['coltype2'].value=document.getElementById(c2).value;
	form['coltype3'].value=document.getElementById(c3).value;
	form['rowtype1'].value=document.getElementById(r1).value;
	form['price'].value=inp.value;
	form.submit();
}


function fill_select(sel_id,start,end,current){
	var sel=document.getElementById(sel_id);
	var step=(end>start)?1:-1;
	//alert(current);
	//for(var i=start;i<=end;i+=step)
	//	sel.options[sel.options.length]=new Option(i,i,i==current,i==current);
	for(var i=start;i<=end;i+=step){
		var opt = document.createElement("option");
		opt.appendChild(document.createTextNode(opt.value=i));
		if (i==current) 
			opt.selected = true;
		sel.appendChild(opt);
	}
}
/*function fill_select_by_arr(sel_id,arr){
	var sel=document.getElementById(sel_id);
	var text=sel[sel.selectedIndex].text;
	for(var i in arr){
		var opt = document.createElement("option");
		opt.appendChild(document.createTextNode(arr[opt.value=i]));
		if (text==opt.text) 
			opt.selected = true;
		sel.appendChild(opt);
	}
}*/

function moveNodeUp(id){
	var node=document.getElementById(id);
	if(node.previousSibling!=null)
		node.parentNode.insertBefore(node,node.previousSibling);
}
function moveNodeDown(id){
	var node=document.getElementById(id);
	if(node.nextSibling!=null)
		if(node.nextSibling.nextSibling==null)
			node.parentNode.appendChild(node);
		else
			node.parentNode.insertBefore(node,node.nextSibling.nextSibling);
}
// CLASS FieldSetSorted
function resumeValueToSelect(id_deldiv,id_sel,value/*,text*/){
	
	var sel = document.getElementById(id_sel);
	var text=sel.alltexts[value][0];
	var opt = document.createElement("option");
	opt.appendChild(document.createTextNode(text));
	opt.value=value;
	
	for(var i=1; i<sel.options.length; i++){
		if(text < sel.options[i].text){
			sel.insertBefore(opt,sel.options[i]);
			break;
		}
	}
	if(i==sel.options.length) sel.appendChild(opt);
	if(sel.style.display=='none') sel.style.display='none';
	var deldiv = document.getElementById(id_deldiv);
	deldiv.parentNode.removeChild(deldiv);
}

function addValueFromSelect(id_text,id_sel,field_name){
	var text = document.getElementById(id_text);
	var sel = document.getElementById(id_sel);
	var opt=sel.options[sel.selectedIndex];
	if(!opt.value.length) return;
	var els=text.getElementsByTagName('input');
	for(var i=0; i<els.length; i++)
		if(els[i].value==opt.value) return;
	var div = document.createElement("div");
	div.id='rendomelement'+getUniqueIndex();
	
	div.innerHTML='<input type="hidden" name="'+field_name+'[]" value="'+opt.value+'"><span>'+opt.text+'</span> (<a style="cursor:pointer;" onclick="resumeValueToSelect(\''+div.id+'\',\''+id_sel+'\',\''+opt.value+'\',\''+opt.text+'\');">remove</a>, <a  style="cursor:pointer;" onclick="moveNodeUp(\''+div.id+'\');">Up</a>, <a  style="cursor:pointer;" onclick="moveNodeDown(\''+div.id+'\');">Down</a>)';
	text.appendChild(div);
	sel.remove(sel.selectedIndex);
}
function addValueFromSelectTags(id_text,id_sel,field_name){
	var text = document.getElementById(id_text);
	var sel = document.getElementById(id_sel);
	var opt=sel.options[sel.selectedIndex];
	if(!opt.value.length) return;
	var els=text.getElementsByTagName('input');
	for(var i=0; i<els.length; i++)
		if(els[i].value==opt.value) return;
	var div = document.createElement("div");
	div.className="sort_change_el";
	div.id='rendomelement'+getUniqueIndex();
	var id_hid='rendomelement'+getUniqueIndex();
	//var t=AristEscape.htmlEscape(opt.text);
	var t1=sel.alltexts[opt.value][0];
	var t2=sel.alltexts[opt.value][1];
	var inp_str='<textarea onchange="document.getElementById(\''+id_hid+'\').value=\''+opt.value+':\'+this.value;">'+t2+'</textarea>';
		//'<input type="text" value="'+t2+'" onchange="document.getElementById(\''+id_hid+'\').value=\''+opt.value+':\'+this.value;">';
	div.innerHTML='<div class="sort_change_h"><input id="'+id_hid+'" type="hidden" name="'+field_name+'[]" value="'+opt.value+':'+t2+'"><span>'+(t1.length?t1:opt.value)+'</span> (<a style="cursor:pointer;" onclick="resumeValueToSelect(\''+div.id+'\',\''+id_sel+'\',\''+opt.value+'\');">remove</a>, <a  style="cursor:pointer;" onclick="moveNodeUp(\''+div.id+'\');">Up</a>, <a  style="cursor:pointer;" onclick="moveNodeDown(\''+div.id+'\');">Down</a>)</div>'+inp_str;
	text.appendChild(div);
	sel.remove(sel.selectedIndex);

}
// CLASS FieldSetSorted (end)


// CLASS TagForm




function onChangeTagSelect(id_tags,seltag,id_selname,iddivinput){
	if(seltag.selectedIndex==0){
		
		return;
	}
	var selname = document.getElementById(id_selname);
	//if(seltag.value=='add_new_tag'){
		
		//document.getElementById(iddivinput).style.display='inline';
		
		//seltag.defdisplay=seltag.style.display;
		//seltag.style.display='none';		
	//}
	//else{
		var div=document.createElement("div");
		div.id='rendomelement'+getUniqueIndex();

		div.innerHTML=selname.options[selname.selectedIndex].text + ': ' + seltag.options[seltag.selectedIndex].text + ' ' +
		'<input type="hidden" name="' + selname.field_name + '[0][]" value="' + seltag.value + '">'+
		'<a href="javascript:resumeValueToSelect(\'' + div.id + '\',\'' + seltag.id + '\',\'' + seltag.value + '\',\'' + seltag.options[seltag.selectedIndex].text + '\'); onChangeTagNameSelect(document.getElementById(\'' + id_selname + '\'));">delete</a>'
		;
		
		document.getElementById(id_tags).appendChild(div);
		seltag.remove(seltag.selectedIndex);
		
		
		//document.getElementById(iddivinput).style.display='none';
		//seltag.style.display='none';
		
		//document.getElementById(selname.tagids[selname.value][0]).style.display='none';
		//selname.selectedIndex=0;
		
		
	//}
	seltag.selectedIndex=0;
	if(seltag.options.length <= 1) seltag.style.display='none';
}

function aristDelNode(nodeid){
	node=document.getElementById(nodeid);
	node.parentNode.removeChild(node);
}

function onChangeTagInput(id_tags,inp_id,id_tagname){
	
	var inp = document.getElementById(inp_id);
	if(inp.value.length==0) return;
	
	var selname = document.getElementById(id_tagname);
	
	var tagsel=document.getElementById(selname.tagids[selname.value][1]);
	var values = inp.value.split(",");
	for(var ival = 0; ival < values.length; ival++){
		var value=values[ival].replace(/^\s*(.*?)\s*$/, "$1");
		if(!value.length) continue;
		var contin=false;
		if(tagsel!=null){
			for(var i=0; i<tagsel.options.length; i++){
				if(tagsel.options[i].text.toLowerCase()==value.toLowerCase()){
					tagsel.selectedIndex=i;
					tagsel.onchange();
					contin=true;
					break;
				}
					//onChangeTagSelect(id_tags,tagsel,id_tagname);
			}
		}
		if(contin) continue;
		
		for(var i=0; i<selname.exists_tags.length; i++){
			var tag=selname.exists_tags[i];
			if(selname.value==tag[0] && value.toLowerCase()==tag[1].toLowerCase()){
				contin=true;
				break;
			}
		}
		if(contin) continue;
		
		if(selname.tagcounter==null) selname.tagcounter=0;
		else selname.tagcounter++;
		
		var div=document.createElement("div");
		div.id='rendomelement'+getUniqueIndex();
		div.innerHTML=selname.options[selname.selectedIndex].text + ': ' + value + ' ' +
		'<input type="hidden" name="' + selname.field_name + '[1][' + selname.tagcounter + ']" value="' + selname.value + '">'+
		'<input type="hidden" name="' + selname.field_name + '[2][' + selname.tagcounter + ']" value="' + value + '">'+
		'(is new tag) <a href="javascript:aristDelNode(\'' + div.id + '\')">delete</a>'
		;
		document.getElementById(id_tags).appendChild(div);
		
		
		
		//document.getElementById(selname.tagids[selname.value][0]).style.display='none';
	
	
		
		
	}
	inp.value='';
	//selname.selectedIndex=0;
}
function onChangeTagNameSelect(sel){
	
	//sel.defdisplay=sel.style.display;
	//sel.style.display='none';
	for(var i in sel.tagids){
		id=sel.tagids[i][0];
		if(i==sel.value){
			if(sel.tagids[i][1]!=null && sel.tagids[i][2]!=null){
				var tagsel=document.getElementById(sel.tagids[i][1]);
				var divinp=document.getElementById(sel.tagids[i][2]);
				
				if(tagsel.options.length > 1) tagsel.style.display=document.createElement("select").style.display;
				
				/*if(tagsel.options.length <= 2){
					tagsel.style.display='none';
					divinp.style.display=document.createElement(divinp.tagName).style.display;
				}
				else{
					tagsel.style.display=document.createElement('select').style.display;
					divinp.style.display='none';
				}*/
				//tagsel.style.display=document.createElement('select').style.display;
				//divinp.style.display=document.createElement(divinp.tagName).style.display;
			}
		}
		document.getElementById(id).style.display=(i==sel.value)?'block':'none';
		
	}
}

function registerTagNameSelect(sel_id, ids, field_name, exists_tags){
	var sel = document.getElementById(sel_id);
	sel.tagids=ids;
	sel.field_name=field_name;
	sel.exists_tags=exists_tags;
	for(var i in ids)
		document.getElementById(ids[i][0]).style.display='none';
	sel.onchange();
}

// CLASS TagForm (end)

function in_array(needle,arr){
	for(var i=0; i<arr.length; i++)
		if(needle==arr[i]) return true;
	return false;
}

function copyInputs(form,ids){
	var value;
	
	for(var i=0; i<ids.length; i++){
		input=document.getElementById(ids[i]);
		switch(input.tagName.toLowerCase()){
			case 'input':
				
				if(
					(input.type=='checkbox' && !input.checked) ||
					(input.type=='radio' && !input.checked)
				) continue;
				value=input.value;
				break;
			case 'select': value=input.value; break;
			case 'textarea': value=input.innerHTML; break;
			default: continue;
		}
		if(input.name.length){
			new_inp=document.createElement("input");
			new_inp.type='hidden';
			new_inp.name=input.name;
			new_inp.value=value;
			
			form.appendChild(new_inp);
		}
		
	}
}

function insertSelectedText(obj,cbFunc){
	if(typeof(obj)!="object")
		obj=document.getElementById(obj);
	
	obj.focus();
	
	if(document.selection){
		var s = document.selection.createRange(); 
		//if (s.text){
			if(typeof(cbFunc)=="function") eval("s.text="+cbFunc+"(s.text);");
			else s.text = cbFunc;
			s.select();
			//return true;
		//}
	}
	else if (typeof(obj.selectionStart)=="number"){
		//if (obj.selectionStart!=obj.selectionEnd){
			var start = obj.selectionStart;
			var end = obj.selectionEnd;
			
			if(typeof(cbFunc)=="function") eval("var rs = "+cbFunc+"(obj.value.substr(start,end-start));");
			else var rs = cbFunc;
			obj.value = obj.value.substr(0,start)+rs+obj.value.substr(end);
			obj.setSelectionRange(end,end);
		//}
		//return true;
	}
	//return false;
}

CheckBoxAutoCheck=function(){
	
	var cur_chb=new Array();
	var hide_contextmenu=false;
	var groups=new Object();
	this.registerEl=function(id,group){
		var chb=document.getElementById(id);
		if(chb==null) return;
		if(groups[group]==null) groups[group]=new Array();
		groups[group][groups[group].length]=chb;

		chb.title='Press right button for multiselect';
		chb.onmousedown=function(evt){
			if(evt==null) evt=event;
			
			if(evt.button==2){
				cur_chb[group]=chb;
				chb.checked=!chb.checked;
				if(chb.onchange!=null) chb.onchange();
				hide_contextmenu=true;
			}
		}

		chb.onmousemove=function(){
			if(cur_chb[group]!=null){
				chb.checked=cur_chb[group].checked;
				if(chb.onchange!=null) chb.onchange();
			}
		}
		
		chb.onmouseup=function(){
			if(cur_chb[group]!=null) cur_chb[group]=null;
		}
		myEvents.add(chb.onmouseup,'onmouseup');
		
		myEvents.add(
			function(){
				if(hide_contextmenu) return hide_contextmenu=false;
			},
			'oncontextmenu'
		);

	}
	
	this.regSelectAll=function(id,group){
		var chb=document.getElementById(id);
		if(chb==null) return;
		chb.title='Select All';
		myEvents.addto(chb,function(){
			gocheck=chb.checked;
			chb.title=gocheck?'Unselect All':'Select All';
			if(groups[group]!=null){
				var els=groups[group];
				for(var i=0; i<els.length; i++){
					els[i].checked=gocheck;
					if(els[i].onchange!=null) els[i].onchange();
				}
			}
			return true;
		},'onclick');
	}
	return this;
}();


/*document.oncontextmenu=function(){
	return false;
}*/


/*function registerCheckBoxAutoCheck(id,group){
	var chb=document.getElementById(id);
	chb.onMouseDown=function(evt){
		if(evt==null) evt=event;
		alert(evt.button);
	}
}*/
/*function onMouseMoveCheckBox(chb,evt){
	if(evt==null) evt=event;
	alert(evt.button);
	if(evt.button==1){
		chb.checked=true;
		alert(1);
	}
}*/

function registerGoForm(formid,seltypeid,selpageid,inpid,types,pages){
	//alert(types.length);
	//if(types==null || !types.length) return;
	var form=document.getElementById(formid);
	var seltype=document.getElementById(seltypeid);
	var selpage=document.getElementById(selpageid);
	var inp=document.getElementById(inpid);
	for(itype in types){
		var opt = document.createElement("option");
		opt.appendChild(document.createTextNode(types[itype][0]));
		opt.value=itype;
		seltype.appendChild(opt);
	}
	if(seltype.options.length < 1) return;
	selpage.onchange=function(){
		
		form.action=selpage.value;
	}

	seltype.onchange=function(){
		inp.name=types[seltype.value][1];
		var ps=pages[seltype.value];
		for(iopt in selpage.options){
			selpage.remove(iopt);
		}
		for(ipage in ps){
			var opt = document.createElement("option");
			opt.appendChild(document.createTextNode(ps[ipage][0]));
			opt.value=ps[ipage][1];
			selpage.appendChild(opt);
		}
		selpage.onchange();
	}
	seltype.onchange();
	
	inp.onkeydown=function(evt){
		if(evt==null) evt=event;
		var i=0;
		var sel=evt.ctrlKey?selpage:seltype;
		if(evt.keyCode==38 && (sel.selectedIndex > 0)) sel.selectedIndex--;
		else if(evt.keyCode==40 && (sel.selectedIndex < (sel.length - 1))) sel.selectedIndex++;
		else return true;
		sel.onchange();
		return false;
	}
}


function registerSelectAndFill(selid,query_id,ids){
	var sel=document.getElementById(selid);
	
	sel.onrecivedata=function(data){
		for(var i=0; i<ids.length && i<data[0].length; i++)
			document.getElementById(ids[i]).value=data[0][i];
	}
	
	sel.onchange=function(){
		if(sel.value) MiniAjax.getTableValues(sel.onrecivedata,{column_id:query_id,value_id:sel.value});
	}
}


function regHideInput(id,title){
	
	var inp=document.getElementById(id);
	var div=document.createElement("div");
	div.innerHTML=title;
	div.className='hideinput';
	div.style.display='none';
	div.style.position='absolute';
	div.style.zIndex='10';
	inp.parentNode.insertBefore(div,inp);
	var needhidetitle=false;
	
	inp.onblur=function(){
		
		if(needhidetitle=(!inp.value.length)){
			div.style.display='block';
			var pos=getElementPosition(inp);
			div.style.top=pos.top+'px';
			div.style.left=pos.left+'px';
			
		}
	}
	inp.onfocus = function(){
		if(needhidetitle){
			div.style.display='none';
		}
	}
	
	
	myEvents.add(
		function(evt){
			
			if(evt==null) evt=event;
			var srcElement=evt.srcElement ? evt.srcElement : evt.target;
			var pos=getElementPosition(inp,false);
			var mpos=mousePageXY(evt);
			if(
			   (mpos.y >= pos.top) && 
			   (mpos.y <= (pos.top + inp.offsetHeight)) &&
			   (mpos.x >= pos.left) && 
			   (mpos.x <= (pos.left + inp.offsetWidth))
			) inp.focus();
		},
		'onmouseup'		 
	);
		myEvents.addto(window,inp.onblur,'onload');
		myEvents.addto(window,inp.onblur,'onresize');



}

function newAristEscape(){
	this.htmlEscape = function(input){
		var escaped="";
		for(var i=0;i<input.length;i++){
			escaped=escaped+escapeChar(input.charAt(i));
			
		}
		//alert(escaped);
		return escaped;
	}
		
	var escapeChar = this.escapeChar = function(thechar){
		var code=thechar.charCodeAt(0);
		switch(code) {
				case '\n': return "<br/>"; //newline
				case '\r': return "";
				case 60:return "&lt;"; //<
				case 62:return "&gt;"; //>
				case 38:return "&amp;"; //&
				case 34:return "&quot;"; //"
				case 198:return "&AElig;"; //Æ
				case 193:return "&Aacute;"; //Á
				case 194:return "&Acirc;"; //Â
				case 192:return "&Agrave;"; //À
				case 197:return "&Aring;"; //Å
				case 195:return "&Atilde;"; //Ã
				case 196:return "&Auml;"; //Ä
				case 199:return "&Ccedil;"; //Ç
				case 208:return "&ETH;"; //Ð
				case 201:return "&Eacute;"; //É
				case 202:return "&Ecirc;"; //Ê
				case 200:return "&Egrave;"; //È
				case 203:return "&Euml;"; //Ë
				case 205:return "&Iacute;"; //Í
				case 206:return "&Icirc;"; //Î
				case 204:return "&Igrave;"; //Ì
				case 207:return "&Iuml;"; //Ï
				case 209:return "&Ntilde;"; //Ñ
				case 211:return "&Oacute;"; //Ó
				case 212:return "&Ocirc;"; //Ô
				case 210:return "&Ograve;"; //Ò
				case 216:return "&Oslash;"; //Ø
				case 213:return "&Otilde;"; //Õ
				case 214:return "&Ouml;"; //Ö
				case 222:return "&THORN;"; //Þ
				case 218:return "&Uacute;"; //Ú
				case 219:return "&Ucirc;"; //Û
				case 217:return "&Ugrave;"; //Ù
				case 220:return "&Uuml;"; //Ü
				case 221:return "&Yacute;"; //Ý
				case 225:return "&aacute;"; //á
				case 226:return "&acirc;"; //â
				case 230:return "&aelig;"; //æ
				case 224:return "&agrave;"; //à
				case 229:return "&aring;"; //å
				case 227:return "&atilde;"; //ã
				case 228:return "&auml;"; //ä
				case 231:return "&ccedil;"; //ç
				case 233:return "&eacute;"; //é
				case 234:return "&ecirc;"; //ê
				case 232:return "&egrave;"; //è
				case 240:return "&eth;"; //ð
				case 235:return "&euml;"; //ë
				case 237:return "&iacute;"; //í
				case 238:return "&icirc;"; //î
				case 236:return "&igrave;"; //ì
				case 239:return "&iuml;"; //ï
				case 241:return "&ntilde;"; //ñ
				case 243:return "&oacute;"; //ó
				case 244:return "&ocirc;"; //ô
				case 242:return "&ograve;"; //ò
				case 248:return "&oslash;"; //ø
				case 245:return "&otilde;"; //õ
				case 246:return "&ouml;"; //ö
				case 223:return "&szlig;"; //ß
				case 254:return "&thorn;"; //þ
				case 250:return "&uacute;"; //ú
				case 251:return "&ucirc;"; //û
				case 249:return "&ugrave;"; //ù
				case 252:return "&uuml;"; //ü
				case 253:return "&yacute;"; //ý
				case 255:return "&yuml;"; //ÿ
				case 162:return "&cent;"; //¢
				default:
					if(code>127) {
						var c=';';
						for(var j=4; j>0; j--){
							c=''+(code&255).toString(16)+c;
							code>>=4;
						}
						
						return "&#x"+c;		
					}
					else{
						return thechar;
					}
			}
	}
	return this;
}

AristEscape=new newAristEscape();

if(document.getElementsByClass==null){
	
	document.getElementsByClass=function(cls, node, tag)
	{
		if(! node) node = document;
		if(! tag)  tag  = '*';
		var them = node.getElementsByTagName(tag),
			rez  = [];
		for(var notI = 0; notI < them.length; ++notI)
			if((' '+them[notI].className).indexOf(' '+cls)!=-1) rez.push(them[notI]);
		
		return rez;
	}
}

}