
	function checkDate(value,elm_d,elm_m,elm_y) {
		var ret='';
		var day, mo, yr;
		var entry = value;
		if ((entry.length==6||entry.length==8)&&entry.indexOf(".")==-1)
			{
			if (entry.length==6)
				{
				entry=entry[0]+entry[1]+"."+entry[2]+entry[3]+"."+entry[4]+entry[5];
				}
			else
			if (entry.length==8)
				{
				entry=entry[0]+entry[1]+"."+entry[2]+entry[3]+"."+entry[4]+entry[5]+entry[6]+entry[7];
				}
			}
		var reLong = /\b\d{1,2}[\/.-]\d{1,2}[\/.-]\d{2,4}\b/;
		var reShort = /\b\d{1,2}[\/.-]\d{1,2}[\/.-]\d{2}\b/;
		var valid = (reLong.test(entry)) || (reShort.test(entry));
		if (valid)
		{
		var delimChar = (entry.indexOf(".") != -1) ? "." : "/";
		var delim1 = entry.indexOf(delimChar);
		var delim2 = entry.lastIndexOf(delimChar);
		day = parseInt(entry.substring(0, delim1), 10);
		mo = parseInt(entry.substring(delim1+1, delim2), 10);
		yr = parseInt(entry.substring(delim2+1), 10);
		if (yr < 100)
			{
			var today = new Date ();
			var currCent = parseInt(today.getFullYear() / 100) * 100;
			var threshold = (today.getFullYear() + 15) - currCent;
			if (yr > threshold)
				{
				yr = currCent+yr - 100;
				}
				else
				{
				yr = currCent+yr;
				}
			}
		var testDate = new Date(yr, mo-1, day);
		if (testDate.getDate() == day)
			{
			if (testDate.getMonth() + 1 == mo)
				{
				if (testDate.getFullYear() == yr)
					{
					value = day + "." + mo + "." + yr;
					if (elm_y!=null) elm_y.value=yr;
					if (elm_m!=null) elm_m.value=mo;
					if (elm_d!=null) elm_d.value=day;
					return ret;
					}
					else
					{
					if (elm_y!=null)
						generate_error(elm_y,'Неверно введён год даты.');
					ret+='Неверно введён год даты.';
					}
				}
				else
				{
				if (elm_m!=null)
					generate_error(elm_m,'Неверно введён месяц даты.');
				ret+='Неверно введён месяц даты.';
				}
			}
			else
			{
			if (elm_d!=null)
				generate_error(elm_d,'Неверно введёно число даты.');
			ret+='Неверно введёно число даты.';
			}
		}
		else
		{
		ret+='Неверно введена дата';
		if (elm_y!=null)
			generate_error(elm_y,'Данные не валидны.');
		if (elm_d!=null)
			generate_error(elm_d,'Данные не валидны.');
		if (elm_m!=null)
			generate_error(elm_m,'Данные не валидны.');
		}
	return ret;
	}

function generate_error(elm,text){
	if (text==null) text='Ошибка валидности введенных данных.';
			if (!elm.nextSibling||(elm.nextSibling&&elm.nextSibling.className!='validate_warning')){
				var span=document.createElement('B');
				span.className='validate_warning';
				span.style.marginLeft='-15px';
				span.innerHTML="&nbsp;&nbsp;&nbsp;&nbsp;";
				span.title=text;
				insertAfter(span,elm);
				}
		 elm.style.border='1px dashed red';
		 if (elm.getAttributeNode('validState'))
			 elm.setAttribute('validState','1');
}

function validate_cancel(elm){
	if (elm.nextSibling&&elm.nextSibling.className=='validate_warning'){
		elm.nextSibling.parentNode.removeChild(elm.nextSibling);
		elm.style.border='1px solid black';
		}
}

function check_mail(){
	var str="";
	var result=true;
	if (document.getElementById('attr_org_20|1')&&document.getElementById('attr_org_20|2')){
		if (document.getElementById('attr_org_20|1').value!=""&&document.getElementById('attr_org_20|2').value!=""){
			str=document.getElementById('attr_org_20|1').value+'@'+document.getElementById('attr_org_20|2').value;
			if (!/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(str)) result=false;else result=true;
		}else result=false;
	}
	if (document.getElementById('email1')&&document.getElementById('email2')){
		if (document.getElementById('email1').value!=""&&document.getElementById('email2').value!=""){
			str=document.getElementById('email1').value+'@'+document.getElementById('email2').value;
			if (!/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(str)) result=false;else result=true;
		}else result=false;
	}	
	return result;
}




function check_latin_num(obj){
	str="";
	var result=true;
	if (document.getElementById(obj)){
		str=document.getElementById(obj).value;
		reg=/^[a-z0-9]+/i;
		result1=reg.test(str) ? true : false;
		req=/^[а-я0-9]+/i;
		result2=reg.test(str) ? true : false;
		if (result1==true&&result2==false)
			result=true;
			else
		if (result1==true&&result2==true)
			result=false;
			else
		if (result1==false)
			result=false;
	}
	return result;
}

function insertAfter(new_node, existing_node) {
if (existing_node.nextSibling) {
existing_node.parentNode.insertBefore(new_node, existing_node.nextSibling);
} else {
existing_node.parentNode.appendChild(new_node);
}

} 

function form_validate(id){
	form=document.getElementById(id);
	arr_inp=form.getElementsByTagName('INPUT');
	arr_error="";
	arr_select=form.getElementsByTagName('SELECT');
//Проверяем на валидность
	for (i=0;i<arr_inp.length;i++){
		error=0;
		if (arr_inp[i].getAttributeNode('check')&&
		arr_inp[i].getAttributeNode('notEmpty')&&arr_inp[i].value==''){
		 arr_error=arr_error+arr_inp[i].attributes['error'].value+'\n\r';
		 arr_inp[i].style.border='1px dashed red';
		 error=1;
		}

		if (arr_inp[i].getAttributeNode('vtype')&&arr_inp[i].getAttributeNode('vtype').value=='int'&&form_validate_int(arr_inp[i])==false){
				 arr_error=arr_error+arr_inp[i].attributes['error'].value+'\n\r';
				 arr_inp[i].style.border='1px dashed red';
				 error=1;
		}
		
		

		if (arr_inp[i].getAttributeNode('compare')&&
		document.getElementById(arr_inp[i].attributes['compare'].value)&&
		arr_inp[i].getAttributeNode('notEmpty')&&arr_inp[i].value!=''&&
		document.getElementById(arr_inp[i].attributes['compare'].value).value!=arr_inp[i].value
		){
			arr_inp[i].style.border='1px dashed red';
			arr_error=arr_error+arr_inp[i].attributes['error_compare'].value+'\n\r';
			error=1;
		}

        if (arr_inp[i].getAttributeNode('type').value=="password"
                &&!arr_inp[i].getAttributeNode('compare')){
            var t=/[a-z0-9]+/i;
            var t0=/[а-я]+/i;
            var t1=t.test(arr_inp[i].value)  ? true : false;
            var t2=t0.test(arr_inp[i].value)  ? true : false;
            if (t1==false||t2==true){
                arr_inp[i].style.border='1px dashed red';
                arr_error=arr_error+'Пароль может содержать только цифры и латинские буквы '+'\n\r';
                error=1;
            }
        }

		if (error==0&&arr_inp[i].type=="text"){
			arr_inp[i].style.border='1px solid black';
			if (arr_inp[i].nextSibling&&arr_inp[i].nextSibling.className=='validate_warning'){
				arr_inp[i].nextSibling.parentNode.removeChild(arr_inp[i].nextSibling);
				}
			}
			else
			if (error==1&&arr_inp[i].type=="text")
			{
			if (!arr_inp[i].nextSibling||(arr_inp[i].nextSibling&&arr_inp[i].nextSibling.className!='validate_warning')){
				var span=document.createElement('B');
				span.className='validate_warning';
				span.style.marginLeft='-15px';
				span.innerHTML="&nbsp;&nbsp;&nbsp;&nbsp;";
				span.title=arr_inp[i].attributes['error'].value;
				insertAfter(span,arr_inp[i]);
				}
			}
	}
	arr_inp=form.getElementsByTagName('SELECT');
	for (i=0;i<arr_inp.length;i++){
		error=0;
		if (arr_inp[i].getAttributeNode('check')&&
		arr_inp[i].getAttributeNode('notEmpty')&&arr_inp[i].value==''){
		 arr_error=arr_error+arr_inp[i].attributes['error'].value+'\n\r';
		 arr_inp[i].style.border='1px dashed red';
		 error=1;
		}


		if (arr_inp[i].getAttributeNode('compare')&&
		document.getElementById(arr_inp[i].attributes['compare'].value)&&
		arr_inp[i].getAttributeNode('notEmpty')&&arr_inp[i].value!=''&&
		document.getElementById(arr_inp[i].attributes['compare'].value).value!=arr_inp[i].value
		){
			arr_inp[i].style.border='1px dashed red';
			arr_error=arr_error+arr_inp[i].attributes['error_compare'].value+'\n\r';
			error=1;
		}

		if (error==0){
			arr_inp[i].style.border='1px solid black';
			if (arr_inp[i].nextSibling&&arr_inp[i].nextSibling.className=='validate_warning'){
				arr_inp[i].nextSibling.parentNode.removeChild(arr_inp[i].nextSibling);
				}
		}else
			if (error==1)
			{
			if (!arr_inp[i].nextSibling||(arr_inp[i].nextSibling&&arr_inp[i].nextSibling.className!='validate_warning')){
				var span=document.createElement('B');
				span.className='validate_warning';
				span.style.marginLeft='-25px';
				span.innerHTML="&nbsp;&nbsp;&nbsp;&nbsp;";
				span.title=arr_inp[i].attributes['error'].value;
				//insertAfter(span,arr_inp[i]);
				}
			}
	}

	res=check_mail();
	if (res==false){
		arr_error=arr_error+'Значение E-mail введено не верно.\n\r';
	}
/*
	res=check_latin_num('oilid');
	if (res==false){
		arr_error=arr_error+'Значение для логина Oil.ID может содержать только латиницу и цифры.\n\r';
	}
*/

	if (arr_error!=''){
		alert(arr_error);
		return false;
	}else return true;
}


function validate_int(elm){
	if (elm.value!=''&&parseFloat(elm.value)!=elm.value||(elm.value=='')){
		generate_error(elm);
	}
}


function form_validate_int(elm){
	reg=/^\d+$/;
	result=reg.test(elm.value) ? true : false;
	if (elm.value!=''&&result==false
			||
			(elm.value==''&&elm.getAttributeNode('notEmpty'))
			||
			(elm.value!=''&&elm.getAttributeNode('minlength')&&elm.value.length<elm.getAttributeNode('minlength').value)
	){
		return false;
	}
	return true;
}

