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);
	}
	
	function isformel(i)
	{
		var samp=forma[i].nodeName.toLowerCase();
		return (samp=='input' || samp=='select' || samp=='textarea');
		
	}
	
	function get_named_val(str)
	{
		var i;
		for (i=0;i<forma.length;i++) {
			if (!isformel(i)) continue;
			if (!forma[i].name || forma[i].name != str) continue;
			if (forma[i].disabled) continue;
			return forma[i].value;
		}
		return "";
	}
	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);
	n=typ.indexOf('?');
	if (n>=0) typ=typ.substr(0,n);
	typek=typ.toLowerCase();
	
	
	if (typek == 'datecombo') {
		alert(nam);
		for (i=0;i<forma.length;i++) if (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			create_datecombo(forma[i]);
		}
		return true;
	}   
	if (typek == 'select') {
		for (i=0;i<forma.length;i++) if (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			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 (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			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 == 'datadmy') {
		for (i=0;i<forma.length;i++) if (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (va == '' && typ.charAt(0)=='D') continue;
			if (va.search(/^[0-3]?[0-9][/.:-][01]?[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 == 'regon') {
		for (i=0;i<forma.length;i++) if (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			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 (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			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 (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			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 (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			if (forma[i].checked) return true;
		}
		for (i=0;i<forma.length;i++) if (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			mail_verify_badcontrol=forma[i];
			break;
		}
		alert(str);
		return false;
	}
	if (typek == 'kod') {
		for (i=0;i<forma.length;i++) if (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			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 (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			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 (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			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 (isformel(i) && 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=="password") {
		for (i=0;i<forma.length;i++) if (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (typ.charAt(0)=='P') {
				if (va == '') continue;
			}
			if (va.length<3 || va.length>12 || va.search(/^[a-z0-9]*$/i)<0) {
				alert(str);
				mail_verify_badcontrol=forma[i];
				return false;
			}
		}
		return true;
	}
	if (typek.substr(0,5)=="same-") {
		var s=typek.substr(5);
		var t=get_named_val(s);
		for (i=0;i<forma.length;i++) if (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			va=forma[i].value.replace(/^\s*/g,'').replace(/\s*$/g,'');
			if (va != t) {
				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 (isformel(i) && forma[i].name == nam && !forma[i].disabled) {
			
			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;
	}
	alert(typek+"?")
	return false;
}
	
function mail_verify(iden)
{
	var forma;
	if (typeof iden =="string") forma=document.getElementById(iden);
	else forma=iden;
	var el,i;
	for (i=0;i<forma.length;i++) {
		var samp=forma[i].nodeName.toLowerCase();
		if (samp!='input' && samp!='select' && samp!='textarea') continue;
		el=forma[i];
		if (el.name == 'checkit' && !el.disabled) {
			if (!mail_verify_it(forma,el.value)) {
				try {
					
					mail_verify_badcontrol.focus();
					if (mail_verify_badcontrol.scrollIntoView) mail_verify_badcontrol.scrollIntoView(false);
				}
				catch(e) {};

				return false;
			}
		}
	}
	return true;
}

var mail_button_press_id;
function mail_send(iden,but,fun)
{

	if (!mail_verify(iden)) {
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
	event.returnValue=false;
@end @*/
		
		return false;
	}
	mail_button_press_id=but;
	document.getElementById(but).disabled=true;
	if (fun) {
		try {
			fun(iden);
		}
		catch(e) {alert(e);return false;}
	}
	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;
	}
}

var rely_array=new Array();

function add_rely_array(fmid,arr)
{
	var form=document.getElementById(fmid);
	form.relyarray=arr;
	rely_form(form);
}

function rely_form(form)
{
	var inps=form.getElementsByTagName('input');
	var sels=form.getElementsByTagName('select');
	function has_value(nam,val)
	{
		var j;
		for (j=0;j<inps.length;j++) {
			if (inps[j].name == nam && inps[j].value == val && inps[j].checked) return true;
		}
		for (j=0;j<sels.length;j++) {
			if (sels[j].name == nam && sels[j].options[sels[j].selectedIndex].value == val) return true;
		}
		return false;
	}
	
	var i;
	var arr=form.relyarray;
	for (i=0;i<arr.length;i++) {
		var ts=document.getElementById(arr[i][2]);
		if (!ts) continue;
		var activ=has_value(arr[i][0],arr[i][1]);
		var ls=ts.getElementsByTagName('input');
		for (j=0;j<ls.length;j++) ls[j].disabled=!activ;
		ls=ts.getElementsByTagName('textarea');
		for (j=0;j<ls.length;j++) ls[j].disabled=!activ;
		var ls=ts.getElementsByTagName('select');
		for (j=0;j<ls.length;j++) ls[j].disabled=!activ;
		ts.style.display=activ?'':'none';
	}
	
		
}


function do_rely(el)
{
	function disel()
	{
		var j;
		if (doit) {
			for (j=0;j<ls.length;j++) ls[j].disabled=(arr[i][1]!=val);
		}
		else if (arr[i][1]==val) {
			for (j=0;j<ls.length;j++) ls[j].disabled=!el.checked;
		}
	}
	
	if (el.nodeName.toLowerCase()=="form") {
		rely_form(el);
		return;
	}
	var nam=el.name;
	var val;
	var doit;
	switch(el.nodeName.toLowerCase()) {
		case 'select':
		val=el.options[el.selectedIndex].value;
		doit=true;
		break;
		
		case 'input':
		val=el.value;
		if (el.type.toLowerCase()=='radio') doit=true;
		else if (el.type.toLowerCase()=='checkbox') doit=false;
	}
	var arr=el.form.relyarray;
	var i;
	for (i=0;i<arr.length;i++) {
		if (nam != arr[i][0]) continue;
		var ts=document.getElementById(arr[i][2]);
		if (!ts) continue;
		var ls=ts.getElementsByTagName('input');
		disel();
		ls=ts.getElementsByTagName('textarea');
		disel();
		ls=ts.getElementsByTagName('select');
		disel();
		if (doit) {
			ts.style.display=(arr[i][1]==val)?'':'none';
		}
		else {
			if (arr[i][1]==val) ts.style.display=el.checked?'':'none';
		}
	}
}


