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 checkNumber(word)
	{
	re = /^[0-9]{1,10}$/;//проверяем только на цифры
	result = re.test(word);
	if (result)
		{
		return (true);
		}
	else
		{
		return (false);
		}
	}	
function checkFloat(word, r, f, s)
{	
	if ( (typeof(r) != "number") || r == 0 || r > 38){r = 38}
	if ( (typeof(f) != "number") || f == 0 || f > 38){f = 38}
	if ( (typeof(s) != "number") || s == 0 || s > 38){s = 38}
	re=/ /g;
	new_word = word.replace(re,"");
	if (new_word==""){
		return (true);
	}
	else
	{
		re=/,/g;
		new_word = word.replace(re,".");
		pos = new_word.indexOf(".");
		if (pos == -1){
			//re = /^[0-9]{1,r}$/;//проверка на числа
			var re = new RegExp("^[0-9]{1," + r + "}$","ig");
			
			result = re.test(new_word);
			if (result)
			{
				return (true);
			}
			else
			{
				return (false);
			}
		}else{
			strS = new_word.substring(0,pos);
			strF = new_word.substring(pos+1,new_word.length);
			//reS = /^[0-9]{1,1}$/;//проверка на числа
			var reS = new RegExp("^[0-9]{1," + r + "}$","ig");
			//reF = /^[0-9]{1,f}$/;//проверка на числа
			var reF = new RegExp("^[0-9]{1," + f + "}$","ig");
			resultS = reS.test(strS);
			resultF = reF.test(strF);
			if (resultS && resultF && (strS.length + strF.length <= s) ){
				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 prpage(parthref, cid, sbtid, arch, cpg)
	{
	wwidth = 775;
	wheight = 600;
	wtop = (window.screen.height-wheight)/2;
	wleft = (window.screen.width-wwidth)/2;
	wname = "prpage"+cid+"_"+sbtid;
	oppageurl = parthref + "?pn=" + cid +"&page=" + cpg + "&pns=" + sbtid + "&pr=1" + "&arch=" + arch;
	wind=window.open(oppageurl, wname, "scrollbars=yes, location=no, menubar=no, toolbar=no, status=no, resizable=no, directories=no, width="+wwidth+",left="+wleft+", height="+wheight+", top="+wtop);
	wind.focus();
	}	

//ссылка на печатную версию
function prpage_cat(parthref, cid, gid, brid, arch)
	{
	wwidth = 775;
	wheight = 600;
	wtop = (window.screen.height-wheight)/2;
	wleft = (window.screen.width-wwidth)/2;
	wname = "prpage"+cid+"_"+brid;
	oppageurl = parthref + "?cid=" + cid + "&gid=" + gid + "&pr=1" + "&brid=" + brid + "&arch=" + arch;
	wind=window.open(oppageurl, wname, "scrollbars=yes, location=no, menubar=no, toolbar=no, status=no, resizable=no, directories=no, width="+wwidth+",left="+wleft+", height="+wheight+", top="+wtop);
	wind.focus();
	}

//ссылка на печатную версию для корзины
function prpage_basket()
	{
	window.print();
	}

//функция сворачивания/разворачивания дерева
function clickMenu(id, Sid)
{
	TgtName = "submenuitems-" + id;
	if (document.getElementById) { 
		Target = document.getElementById(TgtName);
		if (Target == null) return;
		if (Sid == 1)
		{
			if (Target.style.display == "none")
			{
				Target.style.display = "";
			} 
			else 
			{
				Target.style.display = "none";
			}
		}
		else
		{
			Target.style.display = "";
		}
	}
}

	<!--
//функция сворачивания/разворачивания дерева
function clickMenu1(){
	sTarget = document.getElementById("ttt");
	if (sTarget == null){
	 	return;
	}
	//sTarget.style.display = 'none';
	if (sTarget.style.display == "none"){
		sTarget.style.display = "";
	}else{
		sTarget.style.display = "none";
	}
	alert(sTarget.style.display);
}

function ShowCatalog(cid)
{
	if (document.getElementById('marker'+cid+'_td').className=='marker_1-on')
	{
		document.getElementById('ugol'+cid).style.display = 'none';
		document.getElementById('marker'+cid+'_marker').src = '/images/marker.gif';	
		document.getElementById('goods'+cid).style.display = 'none';
		document.getElementById('marker'+cid+'_td').className = 'marker_1';
		document.getElementById('marker'+cid+'_ang_3').className = 'ang_3';
		document.getElementById('marker'+cid+'_ang_4').className = 'ang_4';
	}
	else
	{
		document.getElementById('ugol'+cid).style.display = 'block';
		document.getElementById('marker'+cid+'_marker').src = '/images/marker-on.gif';	
		document.getElementById('goods'+cid).style.display = 'block';
		document.getElementById('marker'+cid+'_td').className = 'marker_1-on';
		document.getElementById('marker'+cid+'_ang_3').className = '';
		document.getElementById('marker'+cid+'_ang_4').className = '';
	}
}

function ShowPic(src,width,height,alt)
{
	document.getElementById('img_right').src = src;
	document.getElementById('img_right').alt = (src!='')? alt : '';
	document.getElementById('img_right').width = (width != '')? width : '0';
	document.getElementById('img_right').height =  (height != '')? height : '0';
}

function Resize()
{
	try
	{
		var gh = document.getElementById("td-goods").clientHeight - 40;
		document.getElementById("div-goods-holder").style.height = ((gh < 150)? "150px" : (gh + "px"));
	}catch(e){}
}

var prevKart = 0;
function ExtendSearch(evt)
{
	var isshown = document.getElementById("extsearch").style.display;
	document.getElementById("extsearch").style.display = (isshown=='block')? 'none' : 'block';
	document.getElementById("findbut").disabled = (isshown=='block')? false : true;
	document.getElementById("simple").value = (isshown=='block')? '0' : '1';
	KartChange(false);
}

function KartChange(ask)
{
	var ksel = document.getElementById("kart").selectedIndex;
	document.getElementById("kart").selectedIndex = prevKart;
	var params = document.getElementById("params");
	if (!ask || params.rows.length == 0 || (ask && confirm('Смена категории повлечет удаление уже выбранных параметров поиска.\nСменить категорию?')))
	{
		try
		{
			while (params.rows.length!=0) params.deleteRow(0);
			document.getElementById("kart").selectedIndex = prevKart = ksel;
			for (i=0;i<document.getElementById("kart").options.length;i++)
			{
				var sel = document.getElementById("kartelem"+document.getElementById("kart").options[i].value);
				sel.style.display = (i==ksel)? 'block' : 'none';
				if (!ask)
				{
					for (j=0;j<sel.options.length;j++)
						sel.options[j].style.color='';
				}
			}
			
		}
		catch(e){}
	}
}

function Params(trid)
{
	var sel_params = document.getElementById("kartelem"+document.getElementById("kart").options[prevKart].value);
	var sel_param = (trid=='')? sel_params.options[sel_params.selectedIndex] : sel_params.options[document.getElementById(trid).getAttribute('pselind')];
	var params = document.getElementById('params');
	if (trid=='')
	{
		if (sel_param.style.color == '')
		{
			sel_param.style.color = '#CFCFCF';

			mTR = params.insertRow(-1);
			mTR.setAttribute('id','mtr'+sel_param.value);
			mTR.setAttribute('pselind',sel_param.index);
			mTD1 = mTR.insertCell(-1);
			mTD1.style.verticalAlign = 'middle';
			mTD1.style.paddingRight = '3px';
			mTD1.style.paddingTop = '7px';
			mTD1.id = 'td' + sel_param.value;
			mTD1.innerHTML = sel_param.text + ((sel_param.getAttribute('Param2')!='')? ' (' + sel_param.getAttribute('Param2') + ')' : '');
			mTD2 = mTR.insertCell(-1);
			mTD2.align = 'left';
			
			var param_Table = document.createElement('TABLE');
			var param_Table_tbody = document.createElement("TBODY");
			param_Table.appendChild(param_Table_tbody);
			
			TR = param_Table_tbody.insertRow(-1);
			TR.setAttribute('id','tr'+sel_param.value);
			TR.setAttribute('pval',sel_param.value);

			TD1 = mvCell = TR.insertCell(-1);
			mvCell_ind = mvCell.cellIndex;
			inpWidth = 200;
			if (sel_param.getAttribute('param1')=='2')
			{
				TD1.innerHTML = '<select name=\'sel'+sel_param.value+'\' id=\'sel'+sel_param.value+'\' onchange=\'SH(this.selectedIndex,"tr'+sel_param.value+'")\'><option value=\'0\'>значение</option><option value=\'1\'>диапазон</option></select>';

				TD2 = TR.insertCell(-1);
				TD3 = mvCell = TR.insertCell(-1);
				mvCell_ind = mvCell.cellIndex
				TD4 = TR.insertCell(-1);
				TD5 = TR.insertCell(-1);

				TD2.style.color = '#FFFFFF';
				TD2.innerHTML = 'от';

				TD4.style.display = 'none';
				TD4.innerHTML = 'до';

				TD5.style.display = 'none';
				TD5.innerHTML = '<input type=text id=\'v_do_'+sel_param.value+'\' name=\'v_do_'+sel_param.value+'\' style=\'width:200px\'>';
			}
			else
			{
				inpWidth = 320;
				try{TR.style.display = 'table-row'}catch(e){inpWidth=335}
			}
			mvCell.innerHTML = '<input type=text id=\'v_ot_'+sel_param.value+'\' name=\'v_ot_'+sel_param.value+'\' style=\'width:' + inpWidth + 'px\'>';
			for (i=0;i<TR.cells.length;i++)
			{
				TR.cells[i].style.verticalAlign = 'middle';
				TR.cells[i].style.paddingRight = '3px';
				if (i!=mvCell_ind && i!=4) TR.cells[i].style.paddingTop = (i==1 || i==3)? '7px' : '8px';
			}
			
			mTD3 = mTR.insertCell(-1);
			mTD3.style.verticalAlign = 'middle';
			mTD3.style.paddingTop = '7px';
			mTD3.innerHTML = '<a title=\'Исключить параметр из формы поиска\' href=\'javascript:Params("mtr'+sel_param.value+'")\'><img src=\'/images/del.gif\' border=0></a>';

			mTD2.innerHTML = '<table cellpadding=0 cellspacing=0 border=0 width=auto>' + param_Table.innerHTML + '</table>';
			document.getElementById('v_ot_'+sel_param.value).focus();
		}
		else alert('Этот параметр уже включен в форму поиска.')
	}
	else
	{
		sel_param.style.color = '';
		params.deleteRow(document.getElementById(trid).rowIndex);
	}
}

function SH(ind,trid)
{
	var cl = document.getElementById(trid).cells;
	cl.item(1).style.color = (ind==0)? '#FFFFFF' : '#000000';
	if (ind==0)
	{
		cl.item(3).style.display = 'none';
		cl.item(4).style.display = 'none';
	}
	else
	{
		try
		{
			cl.item(3).style.display = 'table-cell';
			cl.item(4).style.display = 'table-cell';
		}
		catch(e)
		{
			cl.item(3).style.display = 'block';
			cl.item(4).style.display = 'block';
		}
	}
	document.getElementById('v_ot_'+document.getElementById(trid).getAttribute('pval')).focus();
}

function FormValidatorFind()
{
	if (document.getElementById('findbut').value.length > 3 && document.getElementById('findbut').value.toLowerCase() != 'поиск') document.getElementById('sform').submit();
}

function FormValidatorFind2()
{
	var ok = true;
	var ok1 = false;
	var cl = document.getElementById('sform').elements;

	for (i=0;i<cl.length;i++)
	{
		if (cl.item(i).id && cl.item(i).id.substring(0,5)=='v_ot_')
		{
			ok1 = true;
			var v = cl.item(i).id.substr(5);
			if (document.getElementById('v_ot_'+v).value=='' && !(document.getElementById('sel'+v)))
			{
				var s = document.getElementById("kartelem"+document.getElementById("kart").options[prevKart].value);
				alert('Не указано значение для параметра \''+s.options[document.getElementById('mtr'+v).getAttribute('pselind')].text+'\'.');
				ok = false;
				document.getElementById('v_ot_'+v).focus();
				break;
			}
		}
		else if (cl.item(i).id && cl.item(i).id.substring(0,3)=='sel')
		{
			ok1 = true;
			v = cl.item(i).id.substr(3);
			var s = document.getElementById("kartelem"+document.getElementById("kart").options[prevKart].value);
			var stext = s.options[document.getElementById('mtr'+v).getAttribute('pselind')].text;
			if (document.getElementById('v_ot_'+v).value=='' && (cl.item(i).selectedIndex==0 || (cl.item(i).selectedIndex==1 && document.getElementById('v_do_'+v).value=='')))
			{
				alert('Не указан' + ((cl.item(i).selectedIndex==0)? 'о значение': ' диапазон') + ' для параметра \''+stext+'\'.');
				ok = false;
			}
			if (ok && cl.item(i).selectedIndex==1 && (isNaN(document.getElementById('v_ot_'+v).value) || isNaN(document.getElementById('v_do_'+v).value)))
			{
				alert('Значения диапазона параметра \''+stext+'\' должны быть числами.');
				ok = false;
			}
			if (!ok)
			{
				document.getElementById('v_ot_'+v).focus();
				break;
			}
		}
	}
	if (ok && (ok1 || document.getElementById('Sert').checked))
	{
		document.getElementById('sform').submit();
	}
	else if (!ok1) alert('Пожалуйста, выберите параметры поиска.')
 }
//-->