var isIE4=(navigator.appName.indexOf("Microsoft")==0);
if (navigator.userAgent.indexOf("Opera")>-1)
	var isOpera=true;
String.prototype.trim=new Function("return this.replace(/^\\s+|\\s+$/g,'')");
var timeout_id;
inhtObject=function (name,value)
	{
	this.name=name;
	this.value=value;
	}
colorObject=function ()
	{
	this.color1='#ff0000';
	this.color2='#737379';
	}
	
	
function voteMe(id1,id2,id3,evt)
{
	if (isIE4)
	{
	var x=event.offsetX;
	}
else
	{
	var x=evt.pageX-evt.target.offsetLeft-document.body.offsetLeft;
	}
var pos=parseInt((x-121)/12)*12;
var ball
if (x>95) ball=5;
else if (x<12&&x>0) ball=1;
else ball=parseInt((x+25)/25);
document.getElementById(id2).value=ball;
document.getElementById(id2).inpuObj.value=ball;
document.getElementById(id2).inpuObj.beginload=true;
document.getElementById(id2).inpuObj.formEl.inpuObj.beginload=true;
document.getElementById(id1).style.backgroundPosition=pos;
document.getElementById(id3).innerHTML=ball;
document.getElementById(id2).inpuObj.checkMe();
}

function voteMe1(id1,id2,id3,evt)
{
	if (isIE4)
	{
	var x=event.offsetX;
	}
else
	{
	var x=evt.pageX-evt.target.offsetLeft-document.body.offsetLeft;
	}
var pos=parseInt((x-121)/12)*12;
var ball
if (x>108) ball=10;
else if (x<12&&x>0) ball=1;
else ball=parseInt((x+12)/12);
document.getElementById(id2).value=ball;
document.getElementById(id2).inpuObj.value=ball;
document.getElementById(id2).inpuObj.beginload=true;
document.getElementById(id2).inpuObj.formEl.inpuObj.beginload=true;
document.getElementById(id1).style.backgroundPosition=pos;
document.getElementById(id3).innerHTML=ball;
document.getElementById(id2).inpuObj.checkMe();
}


function selectMe(id,elid,compid)
	{
	var url='?action=check&what=choose';
	var par=new inhtObject('element',elid);
	var urls=myUrl.join(',');
	var par1=new inhtObject('url',urls);
	var par2=new inhtObject('tochange',compid);
	var pars=new Array (par,par1,par2);
	var sender= new ContentLoader(url,'POST',pars,id);
	}
	
function showTable(obj)
{
var form=obj.form;
var els=form.elements; 
var len=form.elements.length;
for (var i=0;i<len;i++)
	{
	if (els[i]==obj)
		{
		var next=els[i+1];
		next.parentNode.parentNode.parentNode.parentNode.style.display='block';
		if (next.type!='radio')
			{
			next.inpuObj.ajax=true;
			next.inpuObj.requred=true;
			}
		}
	}
}

function dontshowTable(obj)
{
var form=obj.form;
var els=form.elements; 
var len=form.elements.length;
var next;
for (var i=0;i<len;i++)
	{
	if (els[i]==obj)
		{
		next=els[i+2];
		next.parentNode.parentNode.parentNode.parentNode.style.display='none';
		if (next.type=='radio')dontshowTable(next);
		else
			{
			next.inpuObj.ajax=false;
			next.inpuObj.requred=false;
			next.inpuObj.error=false;
			next.inpuObj.wait=false;
			}		
		}
	}
}
	
function viewL(evt,id)
{
	if (isIE4&&!isOpera)
	{
	x=event.x+document.body.scrollLeft;
	y=event.y + document.body.scrollTop;
	}
 else if (isOpera)
			{
			x=evt.pageX;
			y=evt.pageY;
			}
else	{
	x=evt.layerX;
	y=evt.layerY;
	}
document.getElementById(id).style.visibility='visible';
document.getElementById(id).style.zIndex='2';
document.getElementById(id).style.left=x-440;
document.getElementById(id).style.top=y+20;
	}

	function viewLL(evt,id)
{
	if (isIE4&&!isOpera)
	{
	x=event.x+document.body.scrollLeft;
	y=event.y + document.body.scrollTop;
//	y=event.clientY;
	}
	else if (isOpera)
			{
			x=evt.pageX;
			y=evt.pageY;
			}
else
	{
	x=evt.layerX;
	y=evt.layerY;
	}
document.getElementById(id).style.left=x-440;
document.getElementById(id).style.top=y-25;
	}

	
function drop(id)
{
document.getElementById(id).style.visibility='hidden';
document.getElementById(id).style.zIndex='-2';
	}	

	
var colobj=new colorObject();
propObject = function(minvalue,requred,ajax,defaultValue,linked,defaultFill,testetTogether,beginload)
{
this.minvalue=minvalue;
this.requred=requred;
this.ajax=ajax;
this.defaultValue=defaultValue;
this.linked=linked;
this.defaultFill=defaultFill;
this.testetTogether=testetTogether;
this.beginload=beginload;
}

var Properties=new Array();


ContentLoader=function (url,method,params,id)
	{
	this.head=false;
	this.contid=id;
	this.req=null;
	this.name='ContentLoader';
	this.url=mainurl+url;
	this.method=method;
	this.params=params;
	this.loadXMLDoc();
	}

ContentLoader.prototype.loadXMLDoc=function ()
		{
		if (!this.method) this.method="GET";
		if (this.method=="POST")
			{
			this.head='application/x-www-form-urlencoded';
			var parL=this.params.length;
			if (parL>0)
				{
				var par= this.params[0].name +'=' + encodeURIComponent(this.params[0].value);
				for (i=1;i<parL;i++)
					{
					par+='&' + this.params[i].name +'=' + encodeURIComponent( this.params[i].value);
					}
				}
			else par='';
			}
		else
			{
			par='';
			}
		try
			{
        this.req=new ActiveXObject('Msxml2.XMLHTTP');
    		}
		catch (e)
			{
			try
				{
	            this.req=new ActiveXObject('Microsoft.XMLHTTP');
    	    	}
				catch (e)
					{
					if(window.XMLHttpRequest)
						{
						this.req=new XMLHttpRequest();
            			}
        			}
    		}	
		if (this.req)
			{
			if (this.req.overrideMimeType)
				{
        		this.req.overrideMimeType('text/html');
        		}
			var loader=this;
			
			this.req.onreadystatechange=function ()
			{
			loader.onReadyState.call(loader);
			}
			this.req.open (this.method,this.url,true);
			if (this.head)
				{
				this.req.setRequestHeader("Content-Type",this.head);
				this.req.setRequestHeader("Content-length", parL);
      			this.req.setRequestHeader("Connection", "close");
				}
			this.req.send (par);
			}
		}
		
ContentLoader.prototype.onReadyState=function ()
		{
		var req=this.req;
		var ready=req.readyState;	
		if (ready==4)
			{
			var httpStatus=req.status;
			if (httpStatus==200||httpStatus==0)
				{
				var div=document.getElementById(this.contid);
				var data=req.responseText;
				var arr = data.split("myperfectdevidehtml");
				var unchange=false;
				if (arr.length>1)
					{
					if (arr[1]=="myperfectsamehtml")
						{
						var testinner=new String(div.innerHTML);

						var testar=testinner.split("<script>");
						if (testar.length==1)testar=testinner.split("<SCRIPT>");
						arr[1]=testar[0];
						unchange=true;
						}
					div.innerHTML=arr[1];
					}

				arr = data.split("myperfectdevidejavascript");
				if (arr.length>1)
					{
					var theScript;
					if (unchange)
						{
						if (testar.length>1&&testar[1].length>0)
							{
							testinner=testar[1].split("</script>");
							if (testinner.length==1)testinner=testar[1].split("</SCRIPT>");
							theScript= document.createElement('script');
							theScript.text=testinner[0];
							div.appendChild(theScript);
							} 
						}
					if (arr[1].length>0)
						{
						theScript= document.createElement('script');
						theScript.text = arr[1];
						div.appendChild(theScript);
						}
					}
				}
			}
		}

		
 chekf=function (domEl,name)
	{
	this.name=name;
	this.id=domEl.id;
	this.url='?action=check&what='+this.id;
	this.domEl=domEl;
	this.childs=this.domEl.elements;
	this.elemNumb=this.childs.length;
	this.divid=this.domEl.parentNode.id;
	this.diverr=this.id+'err';
	this.childobjs=new Array();
	this.childNumb=this.childobjs.length;
	this.beginload=false;
	this.domEl.inpuObj=this;
	this.domEl.onsubmit=this.sendForm;
	this.error=false;
	this.wait=false;
	this.timeout_id;
	this.sending=false;
	}
chekf.prototype.checkError=function()
		{
		this.error=false;
		document.getElementById(this.diverr).innerHTML='';
		if (this.beginload)
			{
			var inner='';
			for (var i=0;i<this.childNumb;i++)
				if (this.childobjs[i].error==true)
					{
					this.error=true;
					}
				else
					{
					if (!this.childobjs[i].beginload&&this.childobjs[i].requred)
						{
						if (this.childobjs[i].diverr)this.childobjs[i].diverr.innerHTML='<br>Вы не заполнили обязательное поле ' + this.childobjs[i].defaultValue;	
						else inner=inner + '<br>Вы не заполнили обязательное поле ' + this.childobjs[i].defaultValue;						
						this.error=true;
						}
					}
			if (inner.length>0) document.getElementById(this.diverr).innerHTML=inner;
			}
		else
			{
			this.error=true;
			document.getElementById(this.diverr).innerHTML='Вы не заполнили форму';
			}
		}

chekf.prototype.checkWait=function()
		{
		this.wait=false;
		for (var i=0;i<this.childNumb;i++)
			if (this.childobjs[i].wait)
				{
				this.wait=true;
				break;
				}
		}

	
chekf.prototype.prepareForm=function(){
	for (var i=0;i<this.elemNumb;i++)
		{
		if (this.childs[i].value==this.childs[i].defaultValue)this.childs[i].value='';
		}

}
chekf.prototype.createForm=function()
	{
	var prl=Properties.length;
	for (var i=0;i<this.elemNumb;i++)
		{
		this.childobjs[i]=new chekEl(this.childs[i]);
		if (Properties[this.childobjs[i].id])
			{
			this.childobjs[i].minvalue=Properties[this.childobjs[i].id].minvalue;
			this.childobjs[i].requred=Properties[this.childobjs[i].id].requred;
			this.childobjs[i].ajax=Properties[this.childobjs[i].id].ajax;
			this.childobjs[i].defaultValue=Properties[this.childobjs[i].id].defaultValue;
			this.childobjs[i].linked=Properties[this.childobjs[i].id].linked;
			this.childobjs[i].defaultFill=Properties[this.childobjs[i].id].defaultFill;
			this.childobjs[i].testetTogether=Properties[this.childobjs[i].id].testetTogether;
			this.childobjs[i].beginload=Properties[this.childobjs[i].id].beginload;
			}
		}
	this.childNumb=this.childobjs.length;
	}
chekf.prototype.clearForm=function()
	{
	for (var i=0;i<this.elemNumb;i++)
		{
		this.childs[i].value=this.childs[i].clearMe();
		}
	}

chekf.prototype.checkForm=function()
	{
	for (var i=0;i<this.elemNumb;i++)
		{
		this.childs[i].CheckMe();
		}
	}
chekf.prototype.sendForm=function(){
if (!this.id)
	{
var inpuObj=this.inpuObj.formEl.inpuObj;
	}
else
	{
	var inpuObj=this;
	}
var cmd=inpuObj.name+'.sendForm()';
inpuObj.sending=true;
inpuObj.checkWait();
if (!inpuObj.wait)
	{
	if (inpuObj.timeout_id)clearTimeout(inpuObj.timeout_id);
	inpuObj.checkError();
	if (!inpuObj.error)
		{
		var name;
		var name1;
		var name2;
		var arrmypar=''
		for (var i=0;i<inpuObj.elemNumb;i++)
			{
			if (inpuObj.domEl.elements[i].type!='radio'||(inpuObj.domEl.elements[i].type=='radio'&&inpuObj.domEl.elements[i].checked))
				{
				name='var par'+i;
				name2='par'+i;
				name1=name+'= new inhtObject(inpuObj.domEl.elements[i].name,inpuObj.domEl.elements[i].value);';
				eval(name1);
				arrmypar=arrmypar+','+name2;
				}
			}
		arrmyparL=arrmypar.length;
		arrmyparF='new Array('+arrmypar.substring(1,arrmyparL)+');';
		pars=eval(arrmyparF);	
		var sender= new ContentLoader(inpuObj.url,'POST',pars,inpuObj.divid);
		}
	
	}
else
	{
	inpuObj.timeout_id=setTimeout (cmd,50);
	}
}




chekEl=function (domEl)
{
this.domEl=domEl;
this.defaultFill=true;
this.linked=false;
this.id=domEl.id;
this.testetTogether=false;
this.requred=false;
this.formEl=this.domEl.form;
this.divid=this.id+'err';
this.beginload=false;
this.name=this.domEl.name;
if (document.getElementById(this.divid))
this.diverr=document.getElementById(this.divid);
else this.diverr=null;
this.value=this.domEl.value;
this.defaultValue=this.domEl.defaultValue;
this.color=colobj.color2;
this.errorcolor=colobj.color1;
this.minvalue=0;
this.methodset=false;
this.error=false;
this.wait=false;
this.nodeid=false;
this.domEl.inpuObj=this;
this.domEl.onfocus=this.prepareMe;
this.domEl.onblur=this.tryMe;
if (this.domEl.type=='button'&&!this.methodset)
	{
	this.domEl.onclick=this.formEl.inpuObj.sendForm;
	this.domEl.onfocus=null;
	this.domEl.onblur=null;
	this.methodset=true;
	this.beginload=true;
	}
}
chekEl.prototype.changeUrls=function()
{
var inpuObj;
if (this.parentNode)inpuObj=this.inpuObj;
else inpuObj=this;
if (inpuObj.beginload)
	{
	try
		{
		var newval=inpuObj.domEl.value.trim();
		if (newval!=inpuObj.urlold&&inpuObj.urlid!=-1)
			{
			var urllen=myUrl.length;
			var urmy=new Array();
			for (var i=0;i<urllen;i++) if (myUrl[i]!=inpuObj.urlid) urmy.push(myUrl[i]);
			myUrl=urmy;
			}
		}
	catch (e)
		{
		
		}
	inpuObj.value=inpuObj.domEl.value;
	inpuObj.checkMe();	
	}	
		
}

chekEl.prototype.changeUrls1=function()
{
var inpuObj;
if (this.parentNode)inpuObj=this.inpuObj;
else inpuObj=this;
if (!inpuObj.beginload)
	{
	inpuObj.prepareMe();
	}
else
	{
	var par=new inhtObject('urltoid',inpuObj.domEl.value);
	var par1=new inhtObject('urltoidmy',inpuObj.domEl.id);
	pars=new Array(par,par1);
	inpuObj.wait=true;
	inpuObj.urlold=inpuObj.domEl.value;
	var sender= new ContentLoader('?action=check&what=geturlid','POST',pars,inpuObj.id);
	}
}

chekEl.prototype.prepareMe=function()
{
var inpuObj;
if (this.parentNode)inpuObj=this.inpuObj;
else inpuObj=this;

if (this.type=='text'&inpuObj.linked) inpuObj.preparePass();
else
	{
	if (!inpuObj.beginload)
		{
		inpuObj.formEl.inpuObj.beginload=true;
		inpuObj.value='';
		inpuObj.beginload=true;
		inpuObj.domEl.value='';
		}
	}
}

chekEl.prototype.loadMe=function()
{
var inpuObj;
if (this.parentNode)inpuObj=this.inpuObj;
else inpuObj=this;
var par;
if (inpuObj.nodeid) par=new inhtObject('nodeid',inpuObj.nodeid);
else par= new inhtObject('who',inpuObj.name);
pars=new Array(par);
var sender= new ContentLoader('?action=check&what=loadme','POST',pars,inpuObj.id);
}

chekEl.prototype.preparePass=function()
{
var inpuObj=this;
var id1=inpuObj.id+'1';
var newdEl=document.getElementById(id1);
inpuObj.domEl.style.visibility='hidden';
inpuObj.domEl.style.display='none';
newdEl.style.visibility='visible';
newdEl.style.display='block';
newdEl.focus();
}

chekEl.prototype.tryMe=function()
{
var inpuObj=this.inpuObj;
if (this.type=='password'&inpuObj.linked) inpuObj.tryMePass();
else
	{
	if (inpuObj.beginload)
		{
		inpuObj.value=this.value;
		inpuObj.checkMe();	
		}
	}
}

chekEl.prototype.tryMePass=function()
{
var inpuObj=this;
inpuObj.value=inpuObj.domEl.value;
var str=new String(inpuObj.value);
inpuObj.value=str.trim();
if (inpuObj.beginload)
	{
	if (inpuObj.value.length<=inpuObj.minvalue)
		{
		var mess;
		inpuObj.error=true;
		if (inpuObj.minvalue==0)
			{
			mess='Вы не заполнили обязательное поле "'+inpuObj.defaultValue+ '"';
			inpuObj.clearPass();
			}
		else mess='Длина обязательного поля "'+inpuObj.defaultValue+ '" меньше '+inpuObj.minvalue;
		inpuObj.diverr.innerHTML=mess;
		var ind=inpuObj.id.length-1;
		var id1=inpuObj.id.substring(0,ind);
		var newdEl=document.getElementById(id1);
		newdEl.style.color=inpuObj.errorcolor;				 
		}
	else
		{
		inpuObj.error=false;
		var ind=inpuObj.id.length-1;
		var id1=inpuObj.id.substring(0,ind);
		var newdEl=document.getElementById(id1);
		newdEl.style.color=inpuObj.color;				 
		inpuObj.diverr.innerHTML='';
	
		}	
	}
}
function setAut()
{
var pars=new Array();
var divid='authcont';
var sender=new ContentLoader('?action=check&what=aut','POST',pars,divid);
}

function logOut(some)
{
var act;
if (some.length>0) act='?action=check&what=out&id='+some;
else act='?action=check&what=out';
var pars=new Array();
var divid='authcont';
var sender=new ContentLoader(act,'POST',pars,divid);
}

function logOut1(some)
{
var act;
if (some.length>0) act='?action=check&what=out1&id='+some;
else act='?action=check&what=out1';
var pars=new Array();
var divid='authcont';
var sender=new ContentLoader(act,'POST',pars,divid);
}


function setRemember()
{
var pars=new Array();
var divid='authcont';
var sender=new ContentLoader('?action=check&what=rem','POST',pars,divid);
}

chekEl.prototype.clearPass=function()
{
var inpuObj=this;
var ind=inpuObj.id.length-1;
var id1=inpuObj.id.substring(0,ind);
var newdEl=document.getElementById(id1);
newdEl.style.visibility='visible';
newdEl.style.display='block';
inpuObj.domEl.style.visibility='hidden';
inpuObj.domEl.style.display='none';
if (inpuObj.defaultFill) newdEl.value=inpuObj.defaultValue;
inpuObj.domEl.value='';
inpuObj.beginload=false;
}


chekEl.prototype.checkMe=function()
	{
	var inpuObj=this;
	if (inpuObj.requred)
		{
		if (inpuObj.ajax)inpuObj.wait=true;
		var str=new String(inpuObj.value);
		inpuObj.value=str.trim();
		if (inpuObj.value.length<=inpuObj.minvalue)
			{
			var mess;
			inpuObj.error=true;
			if (inpuObj.minvalue==0)
				{
				mess='Вы не заполнили обязательное поле "'+inpuObj.defaultValue+ '"';
				inpuObj.clearMe();
				}
			else mess='Длина обязательного поля "'+inpuObj.defaultValue+ '" меньше '+inpuObj.minvalue;
			if (inpuObj.diverr)inpuObj.diverr.innerHTML=mess;
			inpuObj.domEl.style.color=inpuObj.errorcolor;				 
			}
		else
			{
			if (inpuObj.ajax)
				{
				var pars;
				inpuObj.wait=true;
				if (inpuObj.testetTogether)
					{
					var formob=inpuObj.formEl.inpuObj;
					var name;
					var name1;
					var name2;
					var arrmypar=''
					for (var k=0;k<formob.childNumb;k++)
						{
						if (formob.childobjs[k].beginload)
							{
							name='var par'+k;
							name2='par'+k;
							name1=name+'= new inhtObject(formob.childobjs[k].name,formob.childobjs[k].value);';
							eval(name1);
							arrmypar=arrmypar+','+name2;
							}
						}
					arrmyparL=arrmypar.length;
					arrmyparF='new Array('+arrmypar.substring(1,arrmyparL)+');';
					pars=eval(arrmyparF);
					
					}
				else
					{
					var par=new inhtObject(inpuObj.name,inpuObj.value);
					pars=new Array(par);
					}
				var url='?action=check&what='+inpuObj.id;
				var sender= new ContentLoader(url,'POST',pars,inpuObj.divid);
				}
			else
				{
				inpuObj.error=false;
				if (inpuObj.diverr&&inpuObj.diverr.innerHTML.length>0)inpuObj.diverr.innerHTML='';
				inpuObj.domEl.style.color=inpuObj.color;				 
				}	
			}
		}
	}
	
chekEl.prototype.clearMe=function()
{
if (this.diverr) this.diverr.innerHTML='';
this.domEl.style.color=this.color;
if (this.defaultFill)
	{
	this.value=this.defaultValue;
	this.domEl.value=this.defaultValue;
	}
this.beginload=false;
}












	
