trans_bck=document.createElement('div');
trans_bck.className="fullbck";

function parseInpName(name)
{
	var ret		=	new Object();
	ret.name	=	new String();
	ret.subs	=	new Array();
	var nmReg	=	new RegExp("^[\\w\\d_-]+","i");
	var subReg	=	new RegExp("\\[([^\\[\\]]*)\\]","gi");
	name=name.replace(/\][^\[\]]*/,"]");
	var nmTest	=	nmReg.test(name);
	nmReg.lastIndex=0;
	var subTest	=	subReg.test(name);
	subReg.lastIndex=0;
	if(nmTest)
	{
		var iName	=	nmReg.exec(name);
		ret.subs.push(iName[0]);
	}
	if(subTest)
	{
		//var sub=subReg.exec(name);
		var sub="";
		while(subReg.lastIndex<name.length && sub!=null)
		{
			sub=subReg.exec(name);
			ret.subs.push(sub[1]);
		}
	}
	//	ret.iName

	return ret;
}

function createInput(type,name,value,defVal,label,attrs)
{
	var inp		=	document.createElement("input");
	inp.type	=	(!type)?	"text"		:	type;
	inp.name	=	(!name)?	"devNull"	:	name;
	if(!defVal) 	defVal="";
	inp.value	=	(!value)?	defVal		:	value;
	if(attrs)
	{
		for (var at in attrs)
		{
			inp[at]	=	attrs[at];
		}
	}
	if(label)
	{
		var lbl=document.createElement("label");
		if(type=="checkbox" || type=="radio")
			lbl.appendChild(inp);
		lbl.appendChild(document.createTextNode(label));
		if(type!="checkbox" && type!="radio")
			lbl.appendChild(inp);
		ret	=	lbl;
		lbl._control	=	inp;
	}
	else
		ret	=	inp;
	return ret;
}

function createCalenInput(name,stamp,label,attrs)
{
	if(!attrs) attrs	=	{'size':16,'className':"left_fl date"};
	var ret	=	new Object();
	ret.fld	=	createInput("text",name,null,null,label,attrs);
	ret.ico	=	new Image();

	var cDate	=	(stamp)	?	new Date(stamp)	:	new Date();
	var stDt	=	{'_rDate':cDate.getDate(),'_rMonth':cDate.getMonth(),'_rYear':cDate.getFullYear()};

	
	var target	=	(label)?ret.fld._control:ret.fld;
	
	setDate(stDt,target);
	
	ret.ico.onclick=function()
	{
		show_calendar(target.value,target)
	}
	ret.ico.src="/usr/image/calend.gif";
	ret.ico.className="cal noborder";
	//alert(ret.ico.src);
	return ret;
}

function formatDate(day,month,year)
{
	if(!day)	day		=	new Date().getDate();
	if(!month)	month	=	new Date().getMonth();
	if(!year)	year	=	new Date().getFullYear();
	//alert(year);
	day=(day+100).toString();
	day=day.substr(1,day.length);
	month=(month+101).toString();
	month=month.substr(1,month.length);
	return day+"."+month+"."+year;
}

function setDate(link,target)
{
	document.getElementById("_inpCalendar").style.display="none";
	if(target)
	{
		var day=link._rDate;
		var month=link._rMonth;
		var year=link._rYear;
		var retVal="";
		target.value=formatDate(day,month,year);
		_calen_calendarTarget=null;
	}
	if(fullBck.parentNode) fullBck.parentNode.removeChild(fullBck);
}

function submitFrm(frmName)
{
	var ret=new Object();
	var isArrReg=new RegExp(".+(\[.*\])+","gi");
	if(frmName && document.forms[frmName])
	{
		var elements=document.forms[frmName].elements;
		for(var eNum=0; eNum<elements.length;eNum++)
		{
			var el=elements[eNum];
			var eType=el.type.toLowerCase();
			var eName=el.name;//.toLowerCase();
			var value=null;
			{
			if(
					eType=='text'
				||	eType=='hidden'
				||	eType=='password'
				||	eType=='textarea'
			)
			{
				value=el.value;
			}
			else if(
					eType=='radio'
				||	eType=='checkbox'
			)
			{
				if(el.checked) value=el.value;
			}
			else if(
					eType=='select-one'
			)
			{
				value=el.options[el.selectedIndex].value;
			}
			else if(
					eType=='select-multiple'
			)
			{
				value=new Array();
				for(var i=0;i<el.options.length;i++)
				{
					if(el.options[i].selected) value.push(el.options[i].value);
				}
			}
			}
			var eNmArr=parseInpName(eName);
			var retVal="";
			if(value!=null)
			{
				var cSb=ret;
				cSb.__length=0;
				cSb.__isOb=true;
				nm="";
				for(var i=0; i<eNmArr.subs.length; i++)
				{
					sub=eNmArr.subs[i];
					var cKey;
					//nm+=sub+"_";
					cKey=(sub!='')?sub.toString():cSb.__length;
					if(sub=='') cSb.__length++;
					if(i<eNmArr.subs.length-1)
					{
						if(!cSb[cKey] || !cSb[cKey].__isOb)
						{
							cSb[cKey]=new Object();
							cSb[cKey].__isOb=true;
							cSb[cKey].__length=0;
							//cSb[cKey].nm=nm;
						}
					}
					else cSb[cKey]=value;
					cSb=cSb[cKey];
				}
			//	cSb=value;
			}
		}
	}
	ret=clearSbmt(ret);
	return ret;
}
function clearSbmt(sbm)
{
	var ret=sbm;
	if(sbm.__length!=null && sbm.__isOb)
	{
		//ret=new Array();
		delete sbm.__length;
		delete sbm.__isOb;
		for(var i in sbm)
		{
			ret[i]=clearSbmt(sbm[i]);
		}
	}
	return ret;
}

var _calen_calendarTarget;
var fullBck=document.createElement('div');
fullBck.className="fullbck";
//fullBck.id="_calen_cBck";
function hideCalen()
{
	var calendar=document.getElementById("_inpCalendar");
	fullBck.style.display	=	"none"
	if(fullBck.parentNode)
	{
		fullBck.parentNode.removeChild(fullBck);
	}
	calendar.style.display="none";
	_calen_calendarTarget=null;
}
function show_calendar(currDate,target,isShown)
{
	if(target) _calen_calendarTarget=target;
	if(!target) target=_calen_calendarTarget;
	if(!fullBck.parentNode) document.body.appendChild(fullBck);
	fullBck.style.display	=	"block"
	fullBck.onclick=function()
	{
		if(target) target.focus();
		hideCalen();
	}
	document.getElementById("_inpCalendarClose").onclick=function()
	{
		if(target) target.focus();
		hideCalen();
	}
	document.getElementById("_inpCalendarReset").onclick=function()
	{
		if(target) target.value="";
		if(target) target.focus();
		hideCalen();
	};
	var calendar;
	calendar=document.getElementById("_inpCalendar");
	//if(calendar.parentNode) calendar.parentNode.removeChild(calendar);
	var table;
	for(var i=0; i<calendar.childNodes.length; i++)
	{
		if(calendar.childNodes[i].tagName && calendar.childNodes[i].tagName.toLowerCase()=='table')
		{
			table=calendar.childNodes[i];
			break;
		}
	}
	if(table)
	{
		var row;
		var rowPlace=table.tBodies[0];
		for(i=table.rows.length-1;i>=3;i--)
		{
			rowPlace.removeChild(table.rows[i]);
		}
		var datW=new Date();
		datW.setHours(0);
		datW.setMinutes(0);
		datW.setSeconds(0);
		if(currDate)
		{
			var stamp=currDate.split(".");
			datW.setDate(stamp[0]);
			datW.setMonth(stamp[1]-1);
			datW.setFullYear(stamp[2]);
		}
		var cMonth=datW.getMonth();
		var cYear=datW.getFullYear();
		var cDate=datW.getDate();
		datW.setDate(1);
		document.getElementById('_calendar_clYear').value=cYear;
		var sMonth=document.getElementById('_calendar_clMonth');
		var selName="customSelect_"+sMonth.name.replace(/[^A-z\d_]|[\[\]]/gi,'_');
		for(i=0;i<sMonth.options.length;i++)
		{
			if(sMonth.options[i].value==cMonth+1)
			{
				sMonth.options[i].selected=true;
				if(selects && selects[selName]) selects[selName].recheck();
				break;
			}
		}
		var dCount=32-new Date(cYear,cMonth,32).getDate();
		var stDay=(datW.getDay()+6)%7;
		var cellCount=stDay+dCount;
		var countRows=Math.ceil(cellCount/7);
		var tr,td,link;
		var wk,dw,retDay,txt;
		for(wk=0;wk<countRows;wk++)
		{
			tr=document.createElement('tr');
			for(dw=1;dw<=7;dw++)
			{
				td=document.createElement('td');
				retDay=wk*7+dw-stDay;
				if(retDay<1 || retDay>dCount) retDay="&nbsp;";
				link=document.createElement('a');
				link.className="itm";
				if(retDay==cDate) link.className+=' selected';
				link.innerHTML=retDay;
				link._rDate=retDay;
				link._rMonth=cMonth;
				link._rYear=cYear;
				if(retDay>0 && retDay<=dCount)
				{
					link.onclick=function()
					{
						setDate(this,_calen_calendarTarget);
					}
				}
				td.appendChild(link);
				tr.appendChild(td);
			}
		rowPlace.appendChild(tr);

		}
	}
	if(!isShown)
	{
		calendar.style.display="block";
		calendar.style.top="-600px";
		calendar.style.left="-600px";
	}
	if(target)
	{
		var tPos=getAbsolutePos(target);
		//calendar.style.left=tPos.x+target.offsetWidth+"px";
		calendar.style.left=tPos.x+"px";
		var overfl=document.documentElement.scrollHeight-tPos.y;
		overfl=(overfl>calendar.clientHeight)?0:calendar.clientHeight-overfl;
		calendar.style.top=(tPos.y-overfl)+"px";
		//calendar.style.display="block";
		_calen_calendarTarget=target;
	}
}

function fadeThis(objId,start,stop,time,finishCall)
{
	obj=document.getElementById(objId);
	if(obj)
	{
	if(obj._fading) clearTimeout(obj._fading);
	//if(andRemove && obj.__parentNode && !obj.parentNode) obj.__parentNode.appendChild(obj);
	//if(obj._fading)
	if(start	==	undefined) start	=	1;
	if(stop		==	undefined)	stop	=	0;
	if(time		==	undefined)	time	=	600;
	var mTOut=50;
	var step=(stop-start)/time*mTOut;
	if(!obj.style.opacity) obj.style.opacity=start;
	var op	=	parseFloat(obj.style.opacity);
	
	if(step/Math.abs(step)*(op+step)<stop)
	{
		op+=step;
		obj.style.opacity=op;
		obj.style.filter="alpha(opacity="+Math.floor(op*100)+")";
		//obj.style.width="100px";
		if(finishCall) finishCall="'"+finishCall+"'";
		obj._fading	=	fadeTout("fadeThis('"+objId+"',"+start+","+stop+","+time+","+finishCall+")",mTOut);
	}
	else
	{
		obj.style.opacity=stop;
		obj.style.filter=(stop==1)?"none":"alpha(opacity="+Math.floor(stop*100)+")";
		if(finishCall)
		{
			eval(finishCall+"('"+objId+"')");
		}
	}
	}
}
function fadeTout(func,tout)
{
	return setTimeout(func,tout);
}

function show_gallery()
{
	trans_bck.style.opacity="0.5";
	trans_bck.style.filter="alpha(opacity=50)";
	document.body.appendChild(trans_bck);
	document.getElementById('gallery').style.display="block";
}

function hide_gallery()
{
	document.getElementById('gallery').style.display="";
	document.body.removeChild(trans_bck);
}

function addHandler(object, event, handler)
{
	if (typeof object.addEventListener != 'undefined')
		object.addEventListener(event, handler, false);
	else if (typeof object.attachEvent != 'undefined')
		object.attachEvent('on' + event, handler);
	else
		throw "Incompatible browser";
}

function removeHandler(object, event, handler)
{
	if (typeof object.removeEventListener != 'undefined')
		object.removeEventListener(event, handler, false);
	else if (typeof object.detachEvent != 'undefined')
		object.detachEvent('on' + event, handler);
	else
		throw "Incompatible browser";
}

var maxAppearM=0;
function show_prev_img(url,tx,w,h)
{
	trans_bck.style.opacity="0.5";
	trans_bck.style.filter="alpha(opacity=50)";
	document.body.appendChild(trans_bck);
	
	fs_im=document.getElementById('full_size_image');
	nw=(w+100<document.documentElement.clientWidth)?w:document.documentElement.clientWidth-100;
	nh=(h+100<document.documentElement.clientHeight)?h:document.documentElement.clientHeight-100;
	if(nw<w || nh<h)
	{
		if(nw<100) nw=100;
		if(nw>100 && nw<=300) nw=200;
		if(nw>300 && nw<=500) nw=400;
		if(nw>500 && nw<=700) nw=600;
		if(nw>700 && nw<=900) nw=800;
		if(nw>900 && nw<=1100) nw=1000;
		if(nh<100) nh=100;
		if(nh>100 && nh<=300) nh=200;
		if(nh>300 && nh<=500) nh=400;
		if(nh>500 && nh<=700) nh=600;
		if(nh>700 && nh<=900) nh=800;
		if(nh>900 && nh<=1100) nh=1000;
	
		
		prop=(nh/h<nw/w)?nh/h:nw/w;
		
		nsize=(nh/h<nw/w)?'x'+nh:nw+'x';
		w=Math.ceil(prop*w);
		h=Math.ceil(prop*h);
		url=url.replace('/usr/image/','/usr/image/convert/custom/'+nsize+'/');
		//alert(url);
	}
	//return false;
	fs_im.parentNode.style.width=w+"px";
	fs_im.style.width=w+"px";
	fs_im.parentNode.style.height=h+"px";
	fs_im.style.height=h+"px"
	//fs_im.parentNode.style.opacity="";
	//fs_im.parentNode.style.filter="alpha(opacity=65)";
	fs_tx=document.getElementById('prev_image_text');
	fs_tx.innerHTML=tx;
	fs_tx.style.width=w+"px";
	prev_img.style.display="block";
	
	maxAppearM=Math.round((document.documentElement.clientHeight)/2);
	def_top=-prev_img.clientHeight;
	prev_img.style.top=def_top+"px";
	prev_img.style.marginTop=-h/2-21+"px";
	prev_img.style.marginLeft=-w/2-52+"px";
	bufferTout("tout_appear('"+url+"',"+def_top+",0)",25);
}
function bufferTout(func,tout)
{
	tOut=setTimeout(func,tout);
}


function tout_appear(url,prev_top,bc)
{
	clearTimeout(tOut);
	bc+=0.1;
	prev_top+=50;
	
	//trans_bck.style.opacity=bc;
	//trans_bck.style.filter="alpha(opacity="+ bc*100 +")";
	
	prev_img.style.top=prev_top+"px";
	if(prev_top>=maxAppearM-50)
	{
		prev_img.style.top="";//maxAppearM+"px";
// 		prev_img.className='IeScroll';
		fs_im=document.getElementById('full_size_image');
		fs_im.src=url;
		
		fs_im.onload=function()
		{
			//this.parentNode.style.opacity="1";
			//this.parentNode.style.filter="alpha(opacity=100)";
			this.style.visibility="visible";
		}
	}
	else bufferTout("tout_appear('"+url+"',"+prev_top+","+bc+")",30);
}

function tout_disappear(prev_left,bc)
{
	clearTimeout(tOut);	
	prev_left-=100;
	bc-=0.06;
	prev_img.style.left=prev_left+"px";
// 		trans_bck.style.opacity=bc;
// 		trans_bck.style.filter="alpha(opacity="+ bc*100 +")";
	if(prev_left+document.documentElement.scrollLeft<=-prev_img.clientWidth)
	{
		prev_img.style.left="";
		fs_im=document.getElementById('full_size_image');
		fs_im.parentNode.style.width=0;
		fs_im.parentNode.style.height=0;
		fs_im.src='/usr/image/common/empty.gif';
		fs_im.style.visibility='';
		fs_tx=document.getElementById('prev_image_text');
		fs_tx.innerHTML='';
		prev_img.style.display="";
		document.body.removeChild(trans_bck);
	}
	else bufferTout("tout_disappear("+prev_left+","+bc+")",20);
}

function hide_prev_img()
{
	prev_img.className='';
	bufferTout("tout_disappear("+document.documentElement.clientWidth/2+","+trans_bck.style.opacity+")",25);
}

function getAbsolutePos(el)
{
	var r = { x: el.offsetLeft, y: el.offsetTop };
	if (el.offsetParent)
		{
		var tmp = getAbsolutePos(el.offsetParent);
		r.x += tmp.x-el.offsetParent.scrollLeft;
		r.y += tmp.y-el.offsetParent.scrollTop;
		}
	return r;
}

function setCookie (name, value, expires, path, domain, secure)
{
	document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function getCookie(name)
{
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = "";
	var offset = 0;
	var end = 0;
	if (cookie.length > 0) {
		offset = cookie.indexOf(search);
		if (offset != -1) {
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1) {
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function add_c_adm_pl(mode)
{
	var current_date = new Date;
	var cookie_year = current_date.getFullYear() + 1;
	var cookie_month = current_date.getMonth();
	var cookie_day = current_date.getDate();
	var the_exp = cookie_day+"/" + cookie_month + "/" + cookie_year + " 00:00:00";
	
	setCookie("adm_pl_op", mode, the_exp, "/");
}

function vis_adm_place(t)
{
	var vis_t={'hide':{0:'hidden',1:'visible',2:8},'show':{0:'visible',1:'hidden',2:36}};
	var pls=document.getElementById('adm_place').childNodes;
	var pl;
	for(i=0;i<pls.length;i++)
	{
		if(pls[i].nodeType!=3) 
			{
				pl=pls[i];
				break;
			}
	}
	var alements=pl.childNodes;

	for(ind in alements)
	{
		el = alements[ind];
		if(el.nodeType!=3 && !isNaN(ind)) el.style.visibility=vis_t[t][0];
	}
	arr=document.getElementById('a_show_lnk').style.visibility=vis_t[t][0];
	arr=document.getElementById('a_hide_lnk').style.visibility=vis_t[t][1];
	pl.style.height=vis_t[t][2]+'px';
	add_c_adm_pl(t);
	return false;
}
