var mail_verify_badcontrol;

function mail_verify_it(forma,str)
{

	var verificator_nip=[6,5,7,2,3,4,5,6,7];
	var verificator_regon=[8,9,2,3,4,5,6,7]
	var verificator_pesel=[1,3,7,9,1,3,7,9,1,3]

	function verify_nip(a)
	{
		a=a.replace(/[^0-9]/g,'')
		if (a.length!=10) return false;
		var i,n;
		for (i=n=0;i<9;i++) n+=a.charAt(i)*verificator_nip[i];
		n%=11;
		return ( n == a.charAt(9));
	}

	function verify_regon(a)
	{
		if (a.search(/[^0-9]/)>=0 || a.length!=9) return false;
		var i,n;
		for (i=n=0;i<8;i++) n+=a.charAt(i)*verificator_regon[i];
		n%=11;
		return ( n == a.charAt(8));
	}

	function verify_pesel(a)
	{
		if (a.search(/[^0-9]/)>=0 || a.length!=11) return false;
		var i,n;
		for (i=n=0;i<10;i++) n+=a.charAt(i)*verificator_pesel[i];
		n%=10;
		return  ( (10-n)%10 == a.charAt(10));
	}

	function d2(str)
	{
		if (str.length<2) return '0'+str;
		return str;
	}
	
	function create_datecombo(el)
	{
		var dag=el.nextSibling;
		var mon=dag.nextSibling;
		var yer=mon.nextSibling;
		el.value=d2(dag.options[dag.selectedIndex].getAttribute('value'))+'.'+
			d2(mon.options[mon.selectedIndex].getAttribute('value'))+'.'+
			yer.options[yer.selectedIndex].getAttribute('value')
		alert(el.value);
	}
	

	var n,nam,typ,i,el,va,typek;
	n=str.indexOf(':');
	if (n<0) return false;
	nam=str.substr(0,n);
	str=str.substr(n+1);
	n=str.indexOf(':');
	if (n<0) return false;
	typ=str.substr(0,n);
	str=str.substr(n+1);
	typek=typ.toLowerCase();
	
	if (typek == 'datecombo') {
		alert(nam);
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			create_datecombo(forma[i]);
		}
		return true;
	}   
	if (typek == 'select') {
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			if (forma[i].selectedIndex==0) {
				mail_verify_badcontrol=forma[i];
				alert(str);
				return false;
			}
		}
		return true;
	}
	if (typek == 'dataymd') {
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (va == '' && typ.charAt(0)=='D') continue;
			if (va.search(/^[0-9][0-9][0-9][0-9][.:-][01]?[0-9][.:-][0-3]?[0-9]$/)==0) continue;
			alert(str);
			mail_verify_badcontrol=forma[i];
			return false;
		}
		return true;
	}
	if (typek == 'regon') {
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (va == '' && typ.charAt(0)=='R') continue;
			if (verify_regon(va)) continue;
			alert(str);
			mail_verify_badcontrol=forma[i];
			return false;
		}
		return true;
	}			
	if (typek == 'pesel') {
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (va == '' && typ.charAt(0)=='P') continue;
			if (verify_pesel(va)) continue;
			alert(str);
			mail_verify_badcontrol=forma[i];
			return false;
		}
		return true;
	}			
	if (typek == 'nip') {
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (va == '' && typ.charAt(0)=='N') continue;
			if (verify_nip(va)) continue;
			alert(str);
			mail_verify_badcontrol=forma[i];
			return false;
		}
		return true;
	}			
	if (typek == 'radio') {
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			if (forma[i].checked) return true;
		}
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			mail_verify_badcontrol=forma[i];
			break;
		}
		alert(str);
		return false;
	}
	if (typek == 'kod') {
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (va == '' && typ.charAt(0)=='K') continue;
			if (va.search(/^[0-9][0-9]-[0-9][0-9][0-9]$/)==0) continue;
			alert(str);
			mail_verify_badcontrol=forma[i];
			return false;
		}
		return true;
	}
	if (typek == 'num') {
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (va == '' && typ.charAt(0)=='N') continue;
			if (va.search(/^[0-9]+$/)==0) continue;
			mail_verify_badcontrol=forma[i];
			alert(str);
			return false;
		}
		return true;
	}
	
	if (typek == 'nazwisko') {
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (va == '' && typ.charAt(0)=='N') continue;
			var t=va.split(' ');
			var s=new Array();
			var j;
			mail_verify_badcontrol=forma[i];
			for (j=0,n=0;j<t.length;j++) if (t[j]!='') s[n++]=t[j];
			if (s.length<2) {
				alert(str);
				return false;
			}
			/* ostatni czlon to nazwisko */
			var naz=s[s.length-1]
			n=naz.indexOf('-')
			if (n>=0) {
				var s1=naz.substr(0,n)
				var s2=naz.substr(n+1,0)
				s1=s1.charAt(0).toUpperCase() + s1.substr(1).toLowerCase()
				s2=s2.charAt(0).toUpperCase() + s2.substr(1).toLowerCase()
				if (s1.length<2 || s2.length<2) {
					alert(str);
					return false;
				}
				if (s1.search(/[aeiouyAEIOUY\u0105\u0119\u00F3\u00D3]/)<0) {
					alert(str);
					return false;
				}
				
				if (s2.search(/[aeiouyAEIOUY\u0105\u0119\u00F3\u00D3]/)<0) {
					alert(str);
					return false;
				}
				if (s1.search(/^[A-Z\u0141\u015A\u0106\u00D3\u017B\u0179][a-z\u0105\u0119\u015B\u0107\u0144\u00F3\u017A\u017C\u0142]*$/)<0) {
					alert(str);
					return false;
				}
				if (s2.search(/^[A-Z\u0141\u015A\u0106\u00D3\u017B\u0179][a-z\u0105\u0119\u015B\u0107\u0144\u00F3\u017A\u017C\u0142]*$/)<0) {
					alert(str);
					return false;
				}
			}
			else {
				if (naz.length<2) {
					alert(str);
					return false;
				}
				naz=naz.charAt(0).toUpperCase()+naz.substr(1).toLowerCase();
				if (naz.search(/[aeiouyAEIOUY\u0105\u0119\u00F3\u00D3]/)<0) {
					alert(str);
					return false;
				}
				if (naz.search(/^[A-Z\u0141\u015A\u0106\u00D3\u017B\u0179][a-z\u0105\u0119\u015B\u0107\u0144\u00F3\u017A\u017C\u0142]*$/)<0) {
					alert(str);
					return false;
				}
			}
			
			for (j=0;j<s.length-1;j++) {
				naz=s[j].charAt(0).toUpperCase()+s[j].substr(1).toLowerCase();
				if (j>0) {
					if (naz.search(/^[A-Z\u0141\u015A\u0106\u00D3\u0179\u017B][a-z\u0105\u0119\u015B\u0107\u0144\u00F3\u017A\u017C\u0142]?\.$/)==0) continue;
				}
				if (naz.search(/[aeiouyAEIOUY\u0105\u0119\u00F3\u00D3]/)<0) {
					alert(str);
					return false;
				}
				if (naz.search(/^[A-Z\u0141\u015A\u0106\u00D3\u017B\u0179][a-z\u0105\u0119\u015B\u0107\u0144\u00F3\u017A\u017C\u0142]*$/)<0) {
					alert(str);
					return false;
				}
			}
			
		}
		return true;
	}				
	if (typek == 'email') {
		for (i=0;i<forma.length;i++) if (forma[i].name == nam && !forma[i].disabled) {
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (typ.charAt(0)=='E') {
				if (va == '') continue;
			}
			if (va.search(/^[-a-z0-9._]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z][a-z]+$/i)<0) {
				alert(str);
				mail_verify_badcontrol=forma[i];
				return false;
			}
		}
		return true;
	}
	if (typek.substr(0,3)=="txt") {
		var s=typek.substr(3);
		var i=s.indexOf('-');
		if (i<0) return true;
		var mnie=s.substr(0,i);
		var wien=s.substr(i+1);
		for (i=0;i<forma.length;i++) if (forma[i].name == nam) {
			
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (typ.charAt(0)=='T') {
				if (va == '') continue;
			}
			if (va.length<mnie || va.length>wien) {
				alert(str);
				mail_verify_badcontrol=forma[i];
				return false;
			}
		}
		return true;
	}
	
	return false;
}
	
function mail_verify(iden)
{
	var forma=document.getElementById(iden);
	var el,i;
	for (i=0;i<forma.length;i++) {
		el=forma[i];
		if (el.name == 'checkit') {
			if (!mail_verify_it(forma,el.value)) {
				try {
					mail_verify_badcontrol.focus();
				}
				catch(e) {};

				return false;
			}
		}
	}
	return true;
}

var mail_button_press_id;
function mail_send(iden,but)
{
	if (!mail_verify(iden)) return false;
	mail_button_press_id=but;
	document.getElementById(but).disabled=true;
	if (document.getElementById(iden).inframe) {
		document.getElementById(iden).inframe.value="1";
		document.getElementById(iden).target="workframe";
	}
	return true;
}

function mail_button_enable()
{
	if (mail_button_press_id) {
		document.getElementById(mail_button_press_id).disabled=false;
	}
}



