var shows;
var sets=["macmyfon","niemyfon","fs_dane","persdata","fs_numer","numrad","indynumer","doladol","jakplaci"];

function refirmator(osoba)
{
	var lista=document.getElementById('persdata').getElementsByTagName('li');
	var i;
	for (i=0;i<lista.length;i++) {
		if (lista[i].className=='x') {
			continue;
		}
		var d=(lista[i].className == '' || lista[i].className==osoba);
		lista[i].style.display=d?'':'none';
		var el=lista[i].getElementsByTagName("input");
		var j;
		for (j=0;j<el.length;j++) if (el[j].id != 'polecajacy') el[j].disabled=!d;
	}
}

function craddle()
{
	shows=new Array();
	var rads=document.getElementById('bramki').getElementsByTagName('input');
	var i;
	
	var radio_bramka=null;
	var radio_chce=false;
	var osoba=null;
	
	for (i=0;i<rads.length;i++) if (rads[i].checked) {
		radio_bramka=rads[i];
		break;
	}
	if (!radio_bramka) return;
	shows.push(radio_bramka.value.indexOf('myfon')>=0); /* MAC */
	shows.push(radio_bramka.value.indexOf('inna')>=0); /* Typ */
	shows.push(true); /* dane osobowe */
	
	rads=document.getElementById('danerad').getElementsByTagName('input');
	for (i=0;i<rads.length;i++) if (rads[i].checked) {
		osoba=rads[i].getAttribute('id');
		osoba=osoba.charAt(osoba.length-1);
		break;
	}
	if (!osoba) return;
	
	shows.push(osoba); /* lista danych osobowych */
	//refirmator(osoba);
	shows.push(true); /* fieldset numeru */
	var s=radio_bramka.getAttribute('id').replace(/[^0-9]/g,'');
	shows.push (s=="3" || s=="4");
	radio_chce=(s=="1" || s=="2" || document.getElementById('nry_tak').checked);
	shows.push(radio_chce); /*indynumer*/
	shows.push(s!="1"); /*kwota*/
	shows.push(radio_chce); /* jakplaci */
	
}

function showhide_element(el,shown)
{
	if (!el) return;
	el.style.display=shown?'':"none";
	
	var lista=el.getElementsByTagName('input');
	var i;
	for (i=0;i<lista.length;i++) if (lista[i].id != 'polecajacy') lista[i].disabled=!shown;
	
}


function crad()
{
	var i,el;
	craddle();
	for (i=0;i<sets.length;i++) {
		var el=document.getElementById(sets[i]);
		showhide_element(el,shows[i]);
		if (sets[i]=="persdata" && shows[i]) {
			refirmator(shows[i]);
		}
	}
		
	
}


function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return decodeURIComponent(dc.substring(begin + prefix.length, end));
}

function inload()
{
var poleca=getCookie('poleca');
if (poleca) {
	var el=gid('polecajacy');
	if (el) {
		el.value=poleca;
		el.disabled=true;
	}
}
init_geo();
crad();
}

/* wiocha */


function gid(n)
{
	return document.getElementById(n);
}

function cell(a,v)
{
	var s=document.createElement('option');
	s.appendChild(document.createTextNode(a));
	s.setAttribute('value',v);
	return s;
}

function clrsel(a)
{
	while (a.childNodes.length>1) a.removeChild(a.lastChild);
	a.selectedIndex=0;
}

function load_wojew(n)
{
	function doit()
	{
		if (req.readyState == 4) eval(req.responseText);
			
	}
	
	var req=xmlh();
	req.open("GET","jsgeo/w"+n+".js",true);
	req.onreadystatechange=doit;
	req.send(null);

}

function load_powiat(n)
{
	function doit()
	{
		if (req.readyState == 4) {
			eval(req.responseText);
		}
			
	}
	
	var req=xmlh();
	req.open("GET","/jsgeo/p"+wojewodztwa[this_woj].powiaty[this_pow].id+".js",true);
	req.onreadystatechange=doit;
	req.send(null);

}

function init_geo()
{
	var i;
	var swo=gid('woje');
	for (i=0;i<16;i++) swo.appendChild(cell(wojewodztwa[i].name,i));
	gid('powi').parentNode.style.display='none';
	gid('gmin').parentNode.style.display='none';
	gid('wios').parentNode.style.display='none';
}

var this_woj;
var this_pow;

function sel_woj()
{
	gid('gmin').selectedIndex=0;
	gid('gmin').disabled=true;
	gid('wios').selectedIndex=0;
	gid('wios').disabled=true;
	gid('gmin').parentNode.style.display='none';
	gid('wios').parentNode.style.display='none';
	var p=gid('powi');
	var n=gid('woje').selectedIndex-1;
	this_woj=n;
	clrsel(p);
	make_prefix_box();
	if (n<0) {
		p.parentNode.style.display='none';
		p.disabled=true;
		return;
	}
	var i;
	var m=wojewodztwa[n].miasta;
	for (i=0;i<m.length;i++) {
		p.appendChild(cell('M. '+m[i].name,'m'+m[i].id));
	}
	m=wojewodztwa[n].powiaty;
	for (i=0;i<m.length;i++) {
		p.appendChild(cell('powiat '+m[i].name,'p'+i));
	}
	if (!wojewodztwa[n].powiaty[0].miasta) load_wojew(n);
	p.disabled=false;
	p.parentNode.style.display='';
	
}

function sel_powiat()
{
	var p=gid('powi');
	var n=p.selectedIndex;
	gid('wios').selectedIndex=0;
	gid('wios').disabled=true;
	gid('wios').parentNode.style.display='none';
	gid('gmin').selectedIndex=0;
	make_prefix_box();
	if (n<1 || p.options[n].getAttribute('value').charAt(0)=='m') {
		gid('gmin').parentNode.style.display='none';
		gid('gmin').disabled=true;
		return;
	}
	var i;
	this_pow=parseInt(p.options[n].getAttribute('value').substr(1));
	var arr=wojewodztwa[this_woj].powiaty[this_pow].miasta;
	if (!arr) {
		gid('gmin').parentNode.style.display='none';
		gid('gmin').disabled=true;
		return;
	}
	var g=gid('gmin');
	clrsel(g);
	for (i=0;i<arr.length;i++) g.appendChild(cell('m. '+arr[i].name,'m'+arr[i].id));
	arr=wojewodztwa[this_woj].powiaty[this_pow].gminy;
	if (!arr) {
		gid('gmin').disabled=true;
		return;
	}
	for (i=0;i<arr.length;i++) g.appendChild(cell('gmina '+arr[i].name,'g'+i));
	if (!wojewodztwa[this_woj].powiaty[this_pow].gminy[0].miasta) load_powiat();
	gid('gmin').parentNode.style.display='';
	gid('gmin').disabled=false;
}

function sel_gmina()
{
	var w=gid('wios');
	w.selectedIndex=0;
	var g=gid('gmin');
	var n=g.selectedIndex;
	make_prefix_box();
	if (n<1 || g.options[n].getAttribute('value').charAt(0)=='m') {
		gid('wios').parentNode.style.display='none';
		w.disabled=true;
		return;
	}
	clrsel(w);
	var i,ng;
	ng=parseInt(g.options[n].getAttribute('value').substr(1));
	var arr=wojewodztwa[this_woj].powiaty[this_pow].gminy[ng].miasta;
	if (!arr) {
		gid('wios').parentNode.style.display='none';
		w.disabled=true;
		return;
	}
	for (i=0;i<arr.length;i++) w.appendChild(cell(arr[i].name,arr[i].id));
	gid('wios').parentNode.style.display='';
	w.disabled=false;
}


function make_prefix_box()
{
	var nrsel=gid('numeras');
	if (!nrsel || nrsel.selectedIndex) return;
	var w=gid('woje').selectedIndex;
	if (w<1) {
		clear_prefix_box();
		return;
	}
	var p=gid('powi');
	if (p.selectedIndex < 1) {
		clear_prefix_box();
		return;
	}
	var m=p.options[p.selectedIndex].value;
	if (m.charAt(0) == 'm') {
		set_prefix_box(m);
		return;
	}
	p=gid('gmin');
	if (p.selectedIndex < 1) {
		clear_prefix_box();
		return;
	}
	var m=p.options[p.selectedIndex].value;
	if (m.charAt(0) == 'm') {
		set_prefix_box(m);
		return;
	}
	p=gid('wios');
	if (p.selectedIndex < 1) {
		clear_prefix_box();
		return;
	}
	var m=p.options[p.selectedIndex].value;
	set_prefix_box(m);
}



function show_iden()
{
	var iden;
	var woj=gid('woje').selectedIndex;
	if (woj<1) {
		alert("Nie wybrano wojewodztwa");
		return;
	}
	var pwt=gid('powi').selectedIndex;
	if (pwt<1) {
		alert("NIe ma powiatu");
		return;
	}
	var gmid=gid('gmin');
	if (gmid.disabled) {
		iden=gid('powi').options[pwt].value;
		vidor(iden);
		return;
	}
	gmi=gmid.selectedIndex;
	if (gmi<1) {
		alert("NIe wybrano gminy");
		return;
	}
	var woid=gid('wios');
	if (woid.disabled) {
		iden=gmid.options[gmi].value;
		vidor(iden);
		return;
	}
	var wio=woid.selectedIndex;
	if (wio<1) {
		alert("Nie wybrano wioski");
		return;
	}
	iden=woid.options[woid.selectedIndex].value;
	vidor(iden);
	return;
}

function xmlh()
{
	var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
 }
@end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function redes(r,s)
{
	var req=r;
	var fu=s;
	r.onreadystatechange=function() {
		fu(req);
	}
}

function sem(req)
{
	if (req.readyState != 4) return;
	eval(req.responseText);
}


function vidor(iden)
{
	xreq=xmlh();
	xreq.open("POST","/vti-bin/getmiastor.asp",true);
	redes(xreq,sem);
	xreq.send("iden="+iden.replace(/[^0-9]/g,''));
}


function clear_prefix_box()
{
	var nrsel=gid('numeras');
	if (!nrsel || nrsel.selectedIndex) return;
	while (nrsel.childNodes.length>1) nrsel.removeChild(nrsel.lastChild);
	nrsel.disabled='true';
	var pfsel=gid('prefiks');
	pfsel.selectedIndex=0;
}

function set_prefix_box(m)
{
	var nrsel=gid('numeras');
	if (!nrsel || nrsel.selectedIndex) return;
	while (nrsel.childNodes.length>1) nrsel.removeChild(nrsel.lastChild);
	nrsel.disabled='true';
	var req=xmlh();
	redes(req,final_prefix_box);
	req.open("GET","/vti-bin/getprefiks.asp?iden="+m.replace(/[^0-9]/g,''),true);
	req.send(null);
}

function final_prefix_box(req)
{
	if (req.readyState != 4) return;
	var found_prefix=false;
	var prop_prefix,prop_numbers;
	eval(req.responseText);
	if (!found_prefix) return;
	var i;
	var p=gid('prefiks');
	for (i=1;i<p.options.length;i++) if (prop_prefix == p.options[i].value) break;
	if (i>=p.options.length) return;
	p.selectedIndex=i;
	p=gid('numeras');
	if (!p) return;
	if (prop_numbers) {
		prop_numbers.sort();
		for (i=0;i<prop_numbers.length;i++) {
			var opt=document.createElement('option');
			opt.setAttribute('value',prop_numbers[i]);
			opt.appendChild(document.createTextNode(prop_numbers[i]));
			p.appendChild(opt);
		}
	}
	p.disabled=false;
}

function spref()
{
	var nrsel=gid('numeras');
	while (nrsel.childNodes.length>1) nrsel.removeChild(nrsel.lastChild);
	nrsel.disabled='true';
	var p=gid('prefiks');
	if (p.selectedIndex<1) return;
	var req=xmlh();
	redes(req,make_numer_box);
	req.open("GET","/vti-bin/getnumers.asp?prefix="+p.options[p.selectedIndex].value,true);
	req.send(null);
}

function make_numer_box(req)
{
	if (req.readyState != 4) return;
	var found_prefix=false;
	var prop_prefix,prop_numbers;
	eval(req.responseText);
	if (!found_prefix) return;
	var p=gid('prefiks');
	if (p.options[p.selectedIndex].value != prop_prefix) return;
	var p=gid('numeras');
	if (!p) return;
	if (prop_numbers) {
		prop_numbers.sort();
		for (i=0;i<prop_numbers.length;i++) {
			var opt=document.createElement('option');
			opt.setAttribute('value',prop_numbers[i]);
			opt.appendChild(document.createTextNode(prop_numbers[i]));
			p.appendChild(opt);
		}
	}
	p.disabled=false;
}

function cpress(a)
{
	return a.replace(/\s+$/g,'').replace(/^\s+/g,'').replace(/\s+/g,' ');
}

function get_lokal()
{
	var iden;
	var woj=gid('woje').selectedIndex;
	if (woj<1) return null;
	var pwt=gid('powi').selectedIndex;
	if (pwt<1) return null;
	var m=gid('powi').options[pwt].value;
	if (m.charAt(0) == 'm') return m.substr(1);
	var gmid=gid('gmin');
	var gmi=gmid.selectedIndex;
	if (gmi<1) return null;
	m=gmid.options[gmi].value;
	if (m.charAt(0) == 'm') return m.substr(1);
	var woid=gid('wios');
	var wio=woid.selectedIndex;
	return woid.options[woid.selectedIndex].value.replace(/[^0-9]/g,'');
}

function checkbigform()
{
	var inputy=gid('bigform').getElementsByTagName('input');
	
	var bramka,mac,klient;
	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 grosze(a)
	{
		n=a.indexOf('.');
		if (n<0) return a + '00';
		else {
			var gr=a.substr(n+1);
			if (gr.length<2) gr+='0'; else if (gr.length>2) gr=gr.substr(0,2);
			return a.substr(0,n)+gr;
		}
	}
	
	function p2(a,b)
	{
		gid('p24_'+a).value=b;
	}
	
	
	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 get_radio(name)
	{
		var i;
		for (i=0;i<inputy.length;i++) if (inputy[i].type == "radio" && inputy[i].name == name && inputy[i].checked) return inputy[i];
		return null;
	}
	function good_mac()
	{
		mac=mac.replace(/[:;\s,]/g,'').toUpperCase();
		if (mac.length != 12 || mac.search(/^[0-9A-F]+$/)<0) {
			alert("Adres MAC bramki jest nieprawid\u0142owy");
			return false;
		}
		var i,s;
		s='';
		for (i=0;i<5;i++) s+=mac.substr(2*i,2)+':';
		mac=s+mac.substr(10);
		return true;
	}
	bramka=get_radio('bramka');
	if (!bramka) {
		alert("Proszę wybrać urządzenie");
		return false;
	}
	bramka=bramka.id.replace(/[^0-9]/g,'');
	mac=null;
	if (bramka==2) {
		mac=gid('myfonmac').value;
		if (!good_mac()) return false;
	}
	klient=get_radio("osoba");
	if (!klient) {
		alert("Wybierz klienta indywidualnego lub firm\u0119");
		return false;
	}
	
	klient=klient.value;
	var lista=gid('persdata').getElementsByTagName('input');
	var i;
	var persdata=new Array();
	for (i=0;i<lista.length;i++) {
		var cs=lista[i].parentNode.className;
		if (cs != '' && cs != 'x' && cs !=klient) continue;
		var cv=cpress(lista[i].value);
		var el=lista[i].previousSibling;
		for (;el;el=el.previousSibling) if (el.nodeName.toLowerCase()=='label') break;
		if (!el) continue;
		if (el.className=="o") {
			switch(lista[i].name) {
				case 'kodpocztowy': if (cv.search(/^[0-9][0-9]-[0-9][0-9][0-9]$/)<0) {
					alert("Podaj prawid\u0142owy kod pocztowy");
					return;
				}
				break;
				
				case 'nazwisko':
				case 'osobakontakt':
				
				if (cv.indexOf(' ')<0 || cv.length<6) {
					alert("Podaj imi\u0119 i nazwisko");
					return;
				}
				break;
				
				case 'nip':
				if (!verify_nip(cv)) {
					alert("Podaj prawid\u0142owy NIP");
					return;
				}
				break;
				
				case 'regon':
				if (!verify_regon(cv)) {
					alert("Podaj prawid\u0142owy REGON");
					return;
				}
				break;
				
				default:
				
				if (cv.length<3) {
					alert("Wype\u0142nij pole "+el.firstChild.nodeValue);
					return;
				}
				
				break;
			}
		}
		else {
			if (!cv) continue;
			if (lista[i].name == "email") {
				if (cv.search(/^[-a-z0-9._]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z][a-z]+$/i)<0) {
					alert("Podaj prawidłowy adres e-mail");
					return;
				}
			}
			else {
				if (cv.length<3) {
					alert("Wype\u0142nij pole "+el.firstChild.nodeValue);
					return;
				}
			}
		}
		persdata.push({name:lista[i].name,value:cv});
	}
	
	if (bramka == "3") {
		var v=document.getElementById('typbramki').value.replace(/^\s+/g,'').replace(/\s+$/g,'');
		if (v) persdata.push({name:"typbramki",value:v});
	}
	
	klient=(klient.value=='f')?0:1;
	
	var has_numer=0;
	var forma_zaplaty;
	if (bramka==2) has_numer=1;
	else {
		var hnr=get_radio('numer');
		if (!hnr) {
			alert("Podaj czy chcesz mie\u0107 numer");
			return;
		}
		has_numer=(hnr.value=='tak')?1:0;
	}
	var lokalizacja,prefiks,nrtel;
	forma_zaplaty=-1;
	if (has_numer) {
		lokalizacja=get_lokal();
		if (!lokalizacja) {
			alert("Wprowad\u017A lokalizacj\u0119");
			return;
		}
		var p=gid('prefiks');
		if (p.selectedIndex<1) {
			alert("Wybierz prefiks");
			return;
		}
		prefiks=p.options[p.selectedIndex].value;
		p=gid('numeras');
		if (p.selectedIndex<1) {
			alert("Wybierz numer telefonu");
			return;
		}
		nrtel=p.options[p.selectedIndex].value;
		p=gid('fzaplaty');
		if (p.selectedIndex < 1) {
			alert("Wybierz form\u0119 p\u0142atno\u015Bci");
			return;
		}
		forma_zaplaty=parseInt(p.options[p.selectedIndex].value);
		
	}
	if (!gid('regulamin').checked) {
		alert("Bez akceptacji regulaminu\n nie b\u0119dziemy w stanie zrealizowa\u0107 us\u0142ugi");
		return;
	}
	if (!gid('fakturnet').checked) {
		alert("Bez wyra\u017Cenia zgody na wystawianie faktur przez Internet\n nie b\u0119dziemy w stanie zrealizowa\u0107 us\u0142ugi");
		return;
	}
	var str='bramka='+bramka;
	if (mac) str+='&mac='+encodeURIComponent(mac);
	str+='&klient='+klient;
	for (i=0;i<persdata.length;i++) {
		str+='&data='+encodeURIComponent(persdata[i].name+':'+persdata[i].value);
	}
	if (!has_numer) {
		str+='&nowynumer=false';
	}
	else {
		str+='&nowynumer=true&locid='+lokalizacja+'&prefiks='+prefiks+'&numer='+nrtel;
	}
	var p=gid('dolkwota');
	if (p.selectedIndex<0) p.selectedIndex=0;
	var dozaplaty=(bramka == "1" || !has_numer)?'':p.options[p.selectedIndex].value;
	str+="&kwota="+encodeURIComponent(dozaplaty);
	if (forma_zaplaty>=0) str+="&forma="+forma_zaplaty;
	var polec=gid('polecajacy');
	if (polec) {
		polec=polec.value;
		if (polec) str+="&poleca="+encodeURIComponent(polec);
	}
	gid('zamtuz').disabled=true;
	var req=xmlh();
	req.open("POST","/vti-bin/zamow.asp",false);
	req.send(str);
	var unikat=null;
	
	try {
		eval(req.responseText);
	}
	catch(e) {alert(e);};
	if (!unikat) {
		gid('zamtuz').disabled=false;
		return;
	}
	switch(forma_zaplaty) {
		case 0: /* nie placi teraz */
		
		gid('transid').value=unikat;
		window.location='http://'+window.location.host+'/form_ok.html?'+unikat;
		return;
		
		default:		
		gid('unitrans').value=unikat;
		gid('kwotaprz').value=dozaplaty;
		gid('zapmode').value=forma_zaplaty;
		gid('zaprzekaz').submit();
		return;
	}
	/* przelewy24 */
	/*
	p2('session_id',unikat);
	p2('kwota',grosze(dozaplaty));
	p2('klient',gid((klient?'p_nazwafirmy':'f_nazwisko')).value);
	p2('adres',gid('x_adres').value);
	p2('kod',gid('x_kod').value);
	p2('miasto',gid('x_miasto').value);
	p2('email',gid('x_email').value);
	
	var sid=gid('zamform')['statid'];
	if (sid) sid.parentNode.removeChild(sid);
	gid('zamform').submit();
	*/
		
}

function shidepdiv()
{
	var szow='nobanko';
	var el=gid('fzaplaty');
	if (el && el.selectedIndex==1) szow='yesbanko';
	el=gid('bankidoste');
	if (el) el.className=szow;
}
