function lTrim(str)
{
	var tstr = str;
	while(tstr.length>0 && (tstr.indexOf(" ")==0 || tstr.indexOf("\t")==0)) tstr = tstr.substring(1,tstr.length);
	return tstr;
}
function rTrim(str)
{
	var tstr = str;
	while((tstr.lastIndexOf(" ")==tstr.length-1 || tstr.lastIndexOf("\t")==tstr.length-1)&& tstr.length>0) tstr = tstr.substring(0,tstr.length-1);
	return tstr;
}
function Trim(str)
{
	return lTrim(rTrim(str));
}
function checkSymbols(word, chfl)
	{
	if (chfl==1)
		{
		re = /^[a-zA-Z0-9]+$/;//проверяем на тоже, но без подчеркивания
		}
	else if(chfl==2)
		{
		re = /^[\w]+$/;//проверяем на латинские буквы, цифры и подчеркивание
		}
	result = re.test(word);
	if (result)
		{
		return (true);
		}
	else
		{
		return (false);
		}
	}
function checkmail(mailString)
	{
		// Возвращает 0 - если пустое, 1 - если неправильно заполнено, 2 - если правильно
		if(mailString!="")
		{
			re = /([\.\-_@][\.\-_@])|(^[\.])|(^[\-])|(^[\@])/;
			result = re.test(mailString);
			if(!result)		
			{
				re = /^[\w\-\.]+@[\w\-\.]+\.[a-zA-Z]{2,4}$/
				result = re.test(mailString);
				if(!result)
					return  1;
				return 2;	
			}
			return 1;
		}
		return 0;
	}
	
	
month_numbDay=new Array(); month_numbDay[1]=31;month_numbDay[2]=28;month_numbDay[3]=31;month_numbDay[4]=30;month_numbDay[5]=31; month_numbDay[6]=30;month_numbDay[7]=31;month_numbDay[8]=31;month_numbDay[9]=30;month_numbDay[10]=31;month_numbDay[11]=30;
month_numbDay[12]=31;
function DayToMonth(dayn, monthn, yearn, fname)
	{
    flag1=true;
    flag2=true;
    day = eval ("document.forms['" + fname + "']."+dayn);
    month = eval ("document.forms['" + fname + "']."+monthn);
	year = eval ("document.forms['" + fname + "']."+yearn);
	year=parseInt(year.options[year.selectedIndex].value);
	if (year % 400==0)
		{
		month_numbDay[2]=29;
		}
	else if ((year % 4==0) && (year % 100!=0))
		{
		month_numbDay[2]=29;
		}
	else
		{
		month_numbDay[2]=28;
		}
    while(flag1)
		{
        if(day.options[day.options.length-1].value<month_numbDay[month.options[month.selectedIndex].value])
			{
            op=new Option();
            op.text=parseInt(day.options[day.options.length-1].value)+1;
            op.value=op.text;
            day.options[day.options.length]=op;
        	}
		else
			{
            flag1=false;
        	}
    	}
    while(flag2)
		{
        if(day.options[day.options.length-1].value>month_numbDay[month.options[month.selectedIndex].value])
			{
            if (day.selectedIndex==day.options.length-1)
				{
                day.selectedIndex=day.options.length-2;
            	}
            day.options[day.options.length-1]=null;
        	}
		else
			{
            flag2=false;
        	}
    	}
	}//преобразование месца сделали
function NumField()
	{
	var key =event.keyCode;
	var obj = event.srcElement;//поле формы
	//key=45-тире
	//key=46-точка
	//key=44-запятая
	//цифры-48-57
	//запятую заменяем на точку
	if(obj.value.length==0 && key==45);//типа проверяем на минус в начале
	else if((!(key>47 && key<58)) && key!=46 && key!=44 && key!=13)//проверяем на циферки
	{
		event.cancelBubble=true;
		event.returnValue = false;
		alert("Некорректный символ.");
	}
	//нужно проверить на точку(и ее единственность)
	else if ((key==46 || key==44) && obj.value.indexOf(".")>-1)
		{
		event.cancelBubble=true;
		event.returnValue = false;
		alert("Некорректный символ.Точка должна присутствовать один раз");
		}
	else if (key==44)
		{
		event.cancelBubble=false;
		event.keyCode=46
		event.returnValue = true;
		}
	}
function PasteToNumField()
	{
	var obj = event.srcElement;//данные в поле формы
	event.returnValue = false;//отменяем действие
	var oTR = document.selection.createRange();
	var str = window.clipboardData.getData("Text");
	var oldv = obj.value;
	//заменим запятую на точку
	while(str.indexOf(",")>-1)
		{
		str=str.substring(0,str.indexOf(","))+"." + str.substring(str.indexOf(",")+1, str.length);
		}
	if(!isNaN(str))
		{
		oTR.text = str;//вставляем текст в поле
		//теперь нужно проверить, чтобы в полях не появилось несколько точек
		newv=obj.value;//новое значение
		if (newv.indexOf(".")!=newv.lastIndexOf("."))
			{
			alert("Некорректное значение!");
			obj.value=oldv;
			}
		}
	else
		{
		alert("Некорректное значение!");
		}
	}
function BeforePasteToNumField()
	{
	event.returnValue = false;
	}
	
function loadDataFromServer (sUrl,sParam,rMethod)
{
	var oXML;
	if (document.implementation && document.implementation.createDocument)
	{
		var oXML=new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		oXML = new ActiveXObject("Microsoft.XMLHTTP");
	}
	oXML.open("GET", sUrl, false);
	oXML.setRequestHeader("Accept-Language","ru,en");
	oXML.setRequestHeader("Accept-Charset","windows-1251;q=1, koi8-r;q=0.6, ISO-8859-5;q=0.4, ISO-8859-1;q=0.1");
	oXML.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0");
	oXML.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	oXML.send(null);
	oStatus = oXML.status;
	oStatusText = oXML.statusText;
	if (rMethod)
	{
		var xml = oXML.responseXML;                                     
        return xml;
	}
	else
	{  
		var html = oXML.responseText;
		return html;
	}
}

function DeleteMe(did)
{
	try
	{
		
		document.getElementById(did).removeChild(document.getElementById("rama_"+did));
	}
	catch(e){}
}

var canDel = false;
document.onmouseover=CheckAndDel;

function CheckAndDel(dl)
{
	var col = document.all.tags("DIV");
	for (i=0;i<col.length;i++)
	{
		if (col[i].name && col[i].name.substr(0,5) == 'mdivl' && ((!dl && canDel) || parseInt(col[i].name.substr(6),10) >= dl))
		{
			col[i].id = col[i].getAttribute('pid');
			DeleteMe(col[i].id)
		}
	}
}

function MenuIn(obj,dl)
{
	var pDiv = obj.parentElement;
	var pid = pDiv.getAttribute('pid');
	CheckAndDel(dl);
	pDiv.id = "act";
	var innerMenu = loadDataFromServer("/inc/getmenu.asp?pid="+pid.replace('mdiv_',''),"",0);
	if (innerMenu!="")
	{
		var oDiv = document.createElement("<DIV></DIV>")
		oDiv.className = "rama";
		oDiv.id = "rama_"+pid;
		var oTable = document.createElement("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"></table>")
		oTR1 = oTable.insertRow(-1);
		oTD11 = oTR1.insertCell(-1);
		oTD11.insertAdjacentHTML("afterBegin","<img src=\"/images/rama.gif\" width=\"12\" height=\"13\" border=\"0\" alt=\"\">");
		oTD12 = oTR1.insertCell(-1);
		oTD12.className = "rama_r";
		oTD12.insertAdjacentHTML("afterBegin","<div></div>");
		oTR2 = oTable.insertRow(-1);
		oTD21 = oTR2.insertCell(-1);
		oTD21.className = "rama_t";
		oTD21.colspan = 2;
		oTD21.insertAdjacentHTML("afterBegin",innerMenu);
		oDiv.insertAdjacentHTML("beforeEnd",oTable.outerHTML);
		pDiv.appendChild(oDiv);
	}
}

function AddToCompare(pid,gid)
{
	window.setTimeout("document.getElementById('compare_fr').src = '/compare.asp?act=add&pid=" + pid + "&gid=" + gid + "'",100);
}

function Compare(pid)
{
	wwidth = 1024;
	wheight = 768;
	wtop = (window.screen.height-wheight)/2;
	wleft = (window.screen.width-wwidth)/2;
	wind=window.open('/compare.asp?pid=' + pid, 'compare_' + pid, "scrollbars=yes, location=no, menubar=no, toolbar=no, status=no, resizable=yes, directories=no, width="+wwidth+",left="+wleft+", height="+wheight+", top="+wtop);
	wind.focus();
}

function Good(sbtid)
{
	wwidth = 640;
	wheight = 480;
	wtop = (window.screen.height-wheight)/2;
	wleft = (window.screen.width-wwidth)/2;
	wind=window.open('/compare.asp?good=' + sbtid, 'compare_good', "scrollbars=yes, location=no, menubar=no, toolbar=no, status=no, resizable=yes, directories=no, width="+wwidth+",left="+wleft+", height="+wheight+", top="+wtop);
	wind.focus();
}

if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement)
{
	HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
	{
		switch (where){
		case 'beforeBegin':
			this.parentNode.insertBefore(parsedNode,this)
			break;
		case 'afterBegin':
			this.insertBefore(parsedNode,this.firstChild);
			break;
		case 'beforeEnd':
			this.appendChild(parsedNode);
			break;
		case 'afterEnd':
			if (this.nextSibling) 
				this.parentNode.insertBefore(parsedNode,this.nextSibling);
			else
				this.parentNode.appendChild(parsedNode);
			break;
		}
	}

	HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
	{
		var r = this.ownerDocument.createRange();
		r.setStartBefore(this);
		var parsedHTML = r.createContextualFragment(htmlStr);
		this.insertAdjacentElement(where,parsedHTML);
	}


	HTMLElement.prototype.insertAdjacentText = function(where,txtStr)
	{
		var parsedText = document.createTextNode(txtStr)
		this.insertAdjacentElement(where,parsedText)
	}
}
function SHselects(t)
{
	var col = document.getElementsByTagName('select');
	for (var i = 0; i < col.length; i++)
		col[i].style.visibility = (t==0)? 'hidden' : 'visible';
}
function ShowHint(evt, hid, width, height)
{
	CloseHint();

	if((document.body.clientHeight - evt.clientY) > height)
		h_top = evt.clientY + document.body.scrollTop - 5;
	else
		h_top = evt.clientY + document.body.scrollTop - height + 5;

	if((document.body.clientWidth - evt.clientX - 30) > width)
		h_left = evt.clientX + document.body.scrollLeft + 10;
	else
		h_left = evt.clientX - width - 15;

	document.getElementById("fhint").style.width = width;
	document.getElementById("fhint").style.height = height;
	document.getElementById("hint").style.left = h_left;
	document.getElementById("hint").style.top = h_top;
	window.setTimeout('document.getElementById("fhint").src = "/hint.asp?id=' + hid + '";document.getElementById("hint").style.display = "block";' + ((hideSelects==1)? 'SHselects(0);' : ''),100);
}
document.onclick = CloseHint;
if (document.all)
	document.onkeyup = CloseHintIE;
else
	document.onkeyup = CloseHintFF;
function CloseHint()
{
	try
	{
		document.getElementById("hint").style.display = "none";
		document.getElementById("fhint").src = "";
	}
	catch(e){}
	SHselects(1);
}
function CloseHintFF(event)
{
	try {if (event.keyCode==27) CloseHint()}catch(e){}
}
function CloseHintIE()
{
	try {if (event.keyCode==27) CloseHint()}catch(e){}
}