var nav, mouseX, mouseY, fndMetro;
var textvalue='';
var thepos=0;
var BlockCheckKeycode=false; //for opera

document.write('<table border="0" cellspacing="0" cellpadding="0" id="CUD_data_frm" style="position: absolute; left: 0px; top: 0px; display: none; z-index: 10;">\n'+
'<tr><td width="15" height="14"><img src="/pic/tb1.gif" alt="" width="15" height="14" border="0"></td><td height="14" background="/pic/tb2.gif"></td><td width="15" height="14"><img src="/pic/tb3.gif" alt="" width="15" height="14" border="0"></td></tr>\n'+
'<tr><td width="15" background="/pic/lb1.gif"></td><td style="background: White;"><div id="CUD_data" style="width: 417; height: 360; overflow: auto; overflow-y: auto;"></div></td><td width="15" background="/pic/rb1.gif"></td></tr>\n'+
'<tr><td width="15" height="14"><img src="/pic/bb1.gif" alt="" width="15" height="14" border="0"></td><td height="14" background="/pic/bb2.gif"></td><td width="15" height="14"><img src="/pic/bb3.gif" alt="" width="15" height="14" border="0"></td></tr></table>\n');

nav = GetBrowser();
if (nav[0]!='ie'){window.document.captureEvents(Event.CLICK);	window.document.onclick = m_CLICK;}
else{window.document.onclick = m_CLICK;}

function InitPage(){}

function initfndMetro(){
	if (document.getElementById){
		var fndMetroBock = document.getElementById('fndMetroBock');
		if (fndMetroBock){
			fndMetroBock.style.display='inline';
			fndMetro = document.getElementById('fndMetro');
			if (fndMetro){
				fndMetro.onkeydown = BackSpace;
				fndMetro.onkeypress = checkKeycode;
			}
		}
	}
}

function BackSpace(e) {
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;

	BlockCheckKeycode = false;
	if (keycode==35){ //end
		thepos =0;
		BlockCheckKeycode = true;
	}
	
	if (keycode==36){ //home
		thepos = (-1)*textvalue.length;
		BlockCheckKeycode = true;
	}

	if (keycode==37){ //<-
		thepos--;
		thepos = (Math.abs(thepos)>textvalue.length)?((-1)*textvalue.length):thepos		
		BlockCheckKeycode = true;
	}

	if (keycode==39){ //->
		thepos++;
		thepos = (thepos>0)?0:thepos
		BlockCheckKeycode = true;
	}

	if (keycode==8){ //BackSpace
		BlockCheckKeycode = true;
		if (Math.abs(thepos)!=textvalue.length){
			if (textvalue!=''){
				textvalue = textvalue.substring(0, textvalue.length+thepos-1) + textvalue.substring(textvalue.length+thepos, textvalue.length);
				findMetroStation(textvalue);
			}
		}
	}

	if (keycode==46){ //del
		BlockCheckKeycode = true;
		if (thepos!=0){
			if (textvalue!=''){
				textvalue = textvalue.substring(0, textvalue.length+thepos) + textvalue.substring(textvalue.length+thepos+1, textvalue.length);
				thepos++;
				findMetroStation(textvalue);
			}
		}
	}

}

function checkKeycode(e) {
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;

	if (((keycode>=0x80 && keycode<=0xD7FF) || (keycode>=0x20 && keycode<=0x7E)) && (!BlockCheckKeycode))
	{

		if (thepos==0)
			textvalue+=String.fromCharCode(keycode); 
		else
			textvalue = textvalue.substring(0, textvalue.length+thepos) + String.fromCharCode(keycode) + textvalue.substring(textvalue.length+thepos, textvalue.length);
		
		findMetroStation(textvalue)
	}

}

function m_CLICK(e)
{
	if (nav[0]=='ie') e=event;
	mouseX=e.clientX; mouseY=e.clientY;
	mouseX=(mouseX<0)?0:mouseX; mouseY=(mouseY<0)?0:mouseY;
}

function findMetroStation(StationName)
{
	var pattern, re, i, metrolist, isfound = false;
	
	metrolist = document.getElementById('metro');
	if (metrolist && metrolist.length>1)
	{
		if (Trim(StationName)!='')
		{
			pattern = '(^|\\s|(\\&nbsp\\;))' + RegExpPreparePattern(StationName);
			for(i=1; i<metrolist.length; i++)
			{
				re = new RegExp(pattern,'gi');
				
				if (re.test(metrolist[i].innerHTML) && !isfound)
				{
					metrolist[i].selected=true;
					isfound = true
				}
				else
					metrolist[i].selected=false;
			}
			if (!isfound) 
				metrolist[0].selected=true;
		}
		else
		{
			metrolist[0].selected=true;
			for(i=1; i<metrolist.length; i++)
				metrolist[i].selected=false;
		}
	}
}

function BtnAction(iFormId, ifrmt, act)
{
	var frm, oIfrmt
	
	if (iFormId!='') frm=(document.getElementById)?document.getElementById(iFormId):findElementById(iFormId);
	if (ifrmt!='')	oIfrmt = (document.getElementById)?document.getElementById(ifrmt):findElementById(ifrmt);

	if (frm && oIfrmt){ 
		if (act=='yes')	{
			try{
				if (frm.elements && frm.elements['Complete.x'])
				{
					var frmelm = frm.elements['Complete.x'];
					frmelm.value="1"
				}
			}
			catch(e){}

			frm.submit();
			return false;
		}

		if (act=='no')oIfrmt.style.display='none';
	}
	return false;
}

function SetFrmElmFocus(obj, ElmName){
var res, element, fndelm;

	if (obj && obj.elements && obj.tagName.toLowerCase()=='form'){
		for (i=0; i<obj.elements.length; i++){
			element = obj.elements[i];
			if (element.name.toLowerCase()==ElmName.toLowerCase()){
				fndelm = element; break;}
		}
		if (fndelm)	fndelm.focus();
	}
return false;
}

function GetFrmElmVal(obj, ElmName, DefVal)	{
var res, element, fndelm;

	if (obj && obj.elements && obj.tagName.toLowerCase()=='form'){
		for (i=0; i<obj.elements.length; i++){
			element = obj.elements[i];
			if (element.name.toLowerCase()==ElmName.toLowerCase()){
			fndelm = element; break;}
		}
	
		if (fndelm && fndelm.value)
			res=fndelm.value;
		else
			res=DefVal;
	}
	else
		res=DefVal;

return res;
}
///
function processReqChange(xml, oType, rqType, ReqType, ReqParams) //обработчик события onreadystatechange
{
	if (xml.readyState == 4) // только если запрос обработан до конца
	{
		if (Btype == 'IE')
		{
			if (rqType=='POST' || (rqType=='GET' && oType!='xml')){if (xml.status != 200) xml=null;}
			if (xml!=null && oType=='xml' && rqType=='POST') xml = xml.responseXML;
		}
		if (Btype == 'notIE')
		{
			if (xml.status == 200){if (oType=='xml') xml = xml.responseXML;}
			else xml=null;
		}
		
		if (ReqType=='CUD')
			PrintUData(xml, ReqParams);
	}	
}

function PrintUData(xml, ReqParams)
{
	var tmpstr = xml.responseText;
	var obj = (document.getElementById)?document.getElementById(ReqParams):findElementById(ReqParams);
	var obj1 = (document.getElementById)?document.getElementById(ReqParams+'_frm'):findElementById(ReqParams+'_frm');
	
	if (obj && obj1)
	{
		obj.innerHTML=tmpstr;
		
		var PL, PT, MouseX, MouseY, w, h, x, y;
		var windowWidth	= window.document.body.clientWidth + window.document.body.scrollLeft;
		var	windowHeight = window.document.body.clientHeight + window.document.body.scrollTop;

		obj1.style.display='block';

		var tbw = obj1.clientWidth;
		var tbh = obj1.clientHeight;
	
		MouseX = mouseX-130+window.document.body.scrollLeft;
		MouseY = mouseY+window.document.body.scrollTop;
		MouseX = (MouseX<0) ? 0:MouseX; MouseY = (MouseY<0) ? 0:MouseY;
	
		PL = ((MouseX+tbw)>windowWidth) ? windowWidth-tbw : MouseX
		PT = ((MouseY+tbh)>windowHeight) ? windowHeight-tbh : MouseY
	
		obj1.style.left=PL+'px';
		obj1.style.top=PT+'px';
	}
}

function CheckUserData(iFormId, Dtype)
{var obj;

	obj=(document.getElementById)?document.getElementById(iFormId):findElementById(iFormId);
	if (!obj) return true; //отправляем форму как есть
	if (CheckData(obj, Dtype))
	{
		tmpstr=GetFormData(obj);
		tmpstr = tmpstr+'&frm='+UrlEncode(iFormId+'')+'&ifrmt='+UrlEncode('CUD_data_frm');
		return !(makeRequest('CHUdata.asp', 'http', 'post', tmpstr, 'CUD', 'CUD_data'))
	}
return false;
}


function CheckUserData1(iFormId, Dtype)
{var obj;

	obj=(document.getElementById)?document.getElementById(iFormId):findElementById(iFormId);
	if (!obj) return true; //отправляем форму как есть
	return CheckData(obj, Dtype)
}


///
function CheckData(obj, Dtype){
var tmpstr, elmValue, elmName, FalseElement, element;
var NeedSelcard, CardIsSel, CardElementName;
var PayS=0, OK = true;
var i;

if (!obj) return false;
TypeOfFase = GetFrmElmVal(obj, 'face', null);
GP = GetFrmElmVal(obj, 'gp', null);
NeedSelcard=false;	CardIsSel = false;	CardElementName='';

for (i=0; i<obj.elements.length; i++)	{
	element = obj.elements[i];

	elmValue = Trim(element.value);
	elmName	= element.name;
	elmName	= elmName.toLowerCase();
	if (elmName=='card' && Dtype==6)	{
		if (CardElementName=='') CardElementName = element.name;
		if (NeedSelcard==false) NeedSelcard = true;
		if ((element.checked==true) && (CardIsSel == false)) CardIsSel = true;
	}
	switch (elmName)	{
		case 'uname':
			if (elmValue=='') OK = false;	break;
		case 'uadr':
			if ((elmValue=='') || (elmValue.toLowerCase()=='москва')) OK = false;	break;
		case 'metro':
			if (Dtype==1){
				OK = false;
				if (!isNaN(elmValue)){
					elmValue = Number(elmValue);
					if (elmValue>=0) OK = true;
			}	}
			break;
		case 'uemail':
			OK = CheckMail(elmValue);	break;
		case 'utel':
			if (Dtype==1 || Dtype==2 || Dtype==3 || Dtype==8 || Dtype==13 || Dtype==14 || Dtype==15)
				OK = CheckTel(elmValue);
			break;
		case 'uregion':
			if (Dtype==5 || Dtype==4 || Dtype==13 || Dtype==14 || Dtype==15)
				if (elmValue=='') OK = false;
			break;
		case 'uzip':
			if (Dtype==5 || Dtype==4)	{
				if (elmValue=='') OK = false;
				if (OK==true)	{
					if (elmValue.length!=6) OK=false;
					if (isNaN(elmValue)) OK=false;
					if (elmValue.charAt(0)=='0') OK=false;
				}
			}
			break;
		case 'ucity':
			if (Dtype==5 || Dtype==4)
				if (elmValue=='') OK = false;
			break;
		case 'uorgname':
		case 'uorgadr':
			if (TypeOfFase!=0)
				if (elmValue=='') OK = false;
			break;
		case 'uorgnamegp':
		case 'uorgadrgp':
			if (TypeOfFase!=0){
				if (GP!=0)
					if (elmValue=='') OK = false;
			}
			break;
		
		case 'uorginn':
			if (TypeOfFase!=0){
					if (elmValue=='') OK = false;
					if (OK==true){
						if (!((elmValue.length==10) || (elmValue.length==12))) OK=false;
						if (isNaN(elmValue)) OK=false;
					}
			}
			break;
			
		case 'uorginngp':
			if (TypeOfFase!=0){
				if (GP!=0){
					if (elmValue=='') OK = false;
					if (OK==true){
						if (!((elmValue.length==10) || (elmValue.length==12))) OK=false;
						if (isNaN(elmValue)) OK=false;
					}
				}
			}
			break;

		case 'uorgkpp':
			if (TypeOfFase!=0){
					if (elmValue=='') OK = false;
					if (OK==true){
						if (elmValue.length!=9) OK=false;
						if (isNaN(elmValue)) OK=false;
					}
			}
			break;
			
		case 'uorgkppgp':
			if (TypeOfFase!=0){
				if (GP!=0){
					if (elmValue=='') OK = false;
					if (OK==true){
						if (elmValue.length!=9) OK=false;
						if (isNaN(elmValue)) OK=false;
					}
				}
			}
	}
	if (OK==false)	{
		FalseElement = element.name;
		break;
	}
}//from

if (NeedSelcard==true && CardIsSel==false && OK==true)	{
	FalseElement = CardElementName;
	elmName = CardElementName;
	OK=false;
}

if (OK==false)	{
	switch (elmName)	{
		case 'uname':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'сообщили, как Вас называть';
			break;
		case 'uregion':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'указали Край, область, или район, куда будет доставляться\n' + 
					'Ваш заказ.';
			break;
		case 'ucity':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'указали название населённого пункта, куда будет доставляться\n' + 
					'Ваз заказ';
			break;
		case 'uadr':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'указали адрес, по которому будет доставляться Ваш заказ';
			break;

		case 'metro':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'указали ближайшую к Вам станцию метро';
			break;
		case 'uemail':
			tmpstr='';
			if (obj.elements['card']){
				element = obj.elements['card'];
				for (i=0; i<element.length; i++){
					if (element[i].checked){
						tmpstr = Trim(element[i].value);
						break;
			}	}	}
			
			if (Dtype==13 || Dtype==14 || Dtype==15 || Dtype==6 || Dtype==5 || Dtype==4 || tmpstr=='1' || tmpstr=='3' || tmpstr=='5'){
				tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
				'верно указали Ваш адрес электронной почты.';
			}
			else{
				tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
				'верно указали Ваш адрес электронной почты. Если Вы не хотите\n' + 
				'указывать Ваш адрес электронной почты заполните это поле так\n' + 
				'"name@company.dom"';
			}
			break;
		case 'utel':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'указали номер телефона, по которому с Вами можно связаться.';
			break;
		case 'uzip':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'верно указали Ваш почтовый индекс';
			break;
//---------------
		case 'uorgname':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'указали наименование организации';
			break;

		case 'uorgadr':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'указали юридический адрес';
			break;

		case 'uorgnamegp':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'указали наименование организации грузополучателя';
			break;

		case 'uorgadrgp':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'указали юридический адрес грузополучателя';
			break;

		case 'uorginn':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'верно указали ИНН организации';
			break;

		case 'uorginngp':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'верно указали ИНН организации грузополучателя';
			break;
			
		case 'uorgkpp':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'верно указали КПП организации';
			break;

		case 'uorgkppgp':
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Так как Вы не\n' + 
					'верно указали КПП организации грузополучателя';
			break;
//---------------
		case CardElementName:
			tmpstr = 'Ваш заказ не может быть оформлен по следующим причинам:\n' + 
					'не выбрана платежная система для оплаты заказа';
			break;

		default:
			tmpstr = 'К сожалению, Ваш заказ не может быть принят. Вероятно, Вы\n' + 
					'заполнили не все обязательные поля формы или введённые\n' + 
					'данные содержат некорректную информацию.';
	}			
	if (tmpstr!='') window.alert(tmpstr);
	if (FalseElement != CardElementName) SetFrmElmFocus(obj, FalseElement);
}
	//return false;
	return OK;
}

function CheckTel(Utel)	{
var NumbersStr = '';
var res=false;
var re;

	Utel = Trim(Utel);
	re = /[^0-9]/gi;
	if (Utel!='')	{
		NumbersStr = Utel.replace(re, '');
		if ((NumbersStr.length)/Utel.length>=0.2)
			res=true;
	}

	return res;
}

function CheckMail(Umail)	{
var res, tmpArray, re, Not_re;
Umail = Trim(Umail);
re = /[\._0-9a-z\@\-]/gi;
Not_re = /[^\._0-9a-z\@\-]/gi;
res = false;
if (re.test(Umail) && !Not_re.test(Umail) && Umail.indexOf('..')<0)	{
	tmpArray = Umail.split("@");
	if (tmpArray.length==2)	{
		 if (tmpArray[0].length>0 && tmpArray[1].length>0)	{
			tmpArray = tmpArray[1].split(".");
			if(tmpArray.length>=2)
			 	if (tmpArray[0].length>0 && tmpArray[tmpArray.length-1].length>0)
					res=true;
		 }
	}
}
return res;
}

function ListChange(FormName, ElmName, ChBlock)	{
obj=eval('window.document.' + FormName +  '.' + ElmName);
if (obj.value!=0)
	styleChange(ChBlock, 'display', 'block');
else
	styleChange(ChBlock, 'display', 'none');
}

function styleChange(ID, StlName, newval)	{
var tmpObj, tmp, obj;
for (N=0; N < document.all.length; N++) {
	tmpObj=document.all[N];
	tmp=tmpObj.id;
	if (tmp != '')
		if (tmp.toLowerCase()==ID.toLowerCase())
			eval('document.all['+N+'].style.' + StlName + '=\'' + newval +'\'');
}
}