var nav, mouseX, mouseY, fndMetro, textvalue='', thepos=0, BlockCheckKeycode=false; //for opera
var uploadData=[], QueryGet, QueryPost;

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');

if(!$Agent.Mobile){
	QueryGet = new httpQuery($QueryType.GET, $ObjectType.TEXT);
	QueryPost = new httpQuery($QueryType.POST, $ObjectType.TEXT);
	QueryPostXML = new httpQuery($QueryType.POST, $ObjectType.XML);
	$onReady.AddHandler(function(){
		$Events.addEvent(window, 'beforeunload', function(){
				var i=0;
				while(uploadData.length!=0){
					QueryGet.SynchronousRequest('/robots.txt?q=' + Math.random(), null)
					i++;
					if(i>10) break;
				}
			});

		$Events.addEvent(window.document, 'click', m_CLICK);

		SetSaveUserDataEvnts('UserDatafrm');
	});
}

function SetSaveUserDataEvnts(FormName){
	var i, elmType, element, tmpstr='';
	var FormObj=document.getElementById(FormName);	
	if(FormObj){
		for (i=0; i<FormObj.elements.length; i++){
			element = FormObj.elements[i];
			if (typeof(element)=='object'){
				element.parentForm = FormObj;
				switch(element.name.toLowerCase()){
					case 'uname':
					case 'utel':
					case 'uemail':
					case 'uadr':
					case 'uorgname':
					case 'uorgadr':
					case 'uorginn':
					case 'uorgbr':
					case 'uorgkpp':
					case 'uorgnamegp':
					case 'uorgadrgp':
					case 'uorginngp':
					case 'uorgbrgp':
					case 'uorgkppgp':
					case 'udiscount':
					case 'countryname':

					case 'metro':
					case 'face':
					case 'gp':
					//case 'uzip':
						if(	(element.tagName.toLowerCase()=='input' && element.type.toLowerCase()=='text' && !(element.evntSet==true)) ||
							(element.tagName.toLowerCase()=='select' && !(element.evntSet==true))	){
							element.evntSet=true;
							element.OldValue=element.value;
							var evntType = (element.tagName.toLowerCase()=='select')?'change':'blur'
							
							$Events.addEvent(element, evntType, function(){
								try{
									if(this.value!=this.OldValue){
										uploadData.push(0);
										var tmpstr = UrlEncode(this.name) + '=' + UrlEncode(this.value);
										var checkedzip=null
										var uzip = null;
										for (i=0; i<this.parentForm.elements.length; i++){
											var elmnt = this.parentForm.elements[i];
											if (typeof(elmnt)=='object'){
												switch(elmnt.name.toLowerCase()){
													//case 'SessionID':
													//case 'ZakStr':
													case 'uzip':
														uzip = elmnt.value;
														break;
													case 'checkedzip':
														checkedzip = elmnt.value;
														break;
													case 'dpart':
													case 'dtype':
														tmpstr += ( "&" + UrlEncode(elmnt.name) + '=' + UrlEncode(elmnt.value) );
														break;
										}	}	}
										if(checkedzip!=null && uzip!=null && checkedzip==uzip)
											tmpstr += ('&tryzip=0&checkedzip=' + UrlEncode(checkedzip) + '&uzip=' + UrlEncode(uzip));
										
										tmpstr +='&npud=1&frm=UserDatafrm&ifrmt=CUD_data_frm';
										this.OldValue=this.value;
										QueryPost.AsyncRequest('CHUdata.asp', tmpstr, null, function(){uploadData.pop()})
									}
								}
								catch(e){uploadData.pop();}
							});
						}
						break;
	}	}	}	}
}

function InitPage(){}
function initfndMetro(){
	if (document.getElementById){
		var fndMetroBock = document.getElementById('fndMetroBock');
		if (fndMetroBock){
			fndMetroBock.style.display='inline';
			fndMetro = document.getElementById('fndMetro');
			if (fndMetro){
				$Events.addEvent(fndMetro, 'keydown', BackSpace);
				$Events.addEvent(fndMetro, 'keypress', checkKeycode);
	}	}	}
}

function BackSpace(e) {
var keycode;
keycode = (window.event) ? window.event.keyCode : 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;
keycode = (window.event) ? window.event.keyCode : 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){
	e = e || window.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 (window.document.createElement){
					var oElement = window.document.createElement('INPUT');
					oElement.id='Complete.x';
					oElement.name='Complete.x';
					oElement.type='hidden';
					oElement.value = '1';
					frm.appendChild(oElement)
				}
			}catch(e){}

			if (frm){
				var obj = frm.elements['tryzip'];
				if (obj) obj.value='0';
				obj = frm.elements['checkedzip'];
				if (obj) obj.value='';
			}
			
			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 PrintUData(xml, ReqParams){
	if(xml!=null){
		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=xml;
			
			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; //отправляем форму как есть

	switch(Dtype){
		case 4:
		case 5:
			var checkedzip = Trim(obj.elements['checkedzip'].value);
			var Uzip = Trim(obj.elements['Uzip'].value);
		
			if ((checkedzip!='' && Uzip!='' && checkedzip!=Uzip) || checkedzip=='' || Uzip==''){
				return (!QueryPostXML.Status) ? true : tryZipBtnAction(obj, 2, Dtype);
			}
			break;
	}
	
	if (CheckData(obj, Dtype)){
		if(!$Agent.Mobile){
			tmpstr=GetFormData(obj);
			tmpstr = tmpstr+'&frm='+UrlEncode(iFormId+'')+'&ifrmt='+UrlEncode('CUD_data_frm');
			return ( !(QueryPost.AsyncRequest('CHUdata.asp', tmpstr, 'CUD_data', PrintUData)) );
			
		}else{return true;}
	}

return false;
}

function CheckUserData1(iFormId, Dtype){
	var obj;
	obj=(document.getElementById)?document.getElementById(iFormId):findElementById(iFormId);
	return (!obj) ? true /*отправляем форму как есть*/ : 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 || Dtype==21)){
		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 'umocity':
			if (Dtype==2){
				OK = false;
				if (!isNaN(elmValue)){
					elmValue = Number(elmValue);
					if (elmValue>=0) OK = true;
			}	}
			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 || Dtype==16 || Dtype==19 || Dtype==20 || Dtype==21)
				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 'umocity':
			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=='21'){
				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(FormID, ElmName, ChBlock){
var val;
var obj=(document.getElementById)?document.getElementById(FormID):findElementById(FormID);
if (obj!=null) obj = (typeof(obj)!='undefined')?obj.elements[ElmName]:null;
	
if (obj!=null){
	if (!isNaN(obj.value)){
		val = parseInt(obj.value);
		if (val!=0) styleChange(ChBlock, 'display', 'block');
		else styleChange(ChBlock, 'display', 'none');
	}
}
}

function styleChange(ID, StlName, newval){
var obj=(document.getElementById)?document.getElementById(ID):findElementById(ID);
if (obj) eval('obj.style.' + StlName + '=\'' + newval +'\'');
}
