/*
	name - name of the cookie
	value - value of the cookie
	[expires] - expiration date of the cookie (defaults to end of current session)
	[path] - path for which the cookie is valid (defaults to path of calling document)
	[domain] - domain for which the cookie is valid (defaults to domain of calling document)
	[secure] - Boolean value indicating if the cookie transmission requires a secure transmission
	* an argument defaults when it is assigned null as a placeholder
	* a null placeholder is not required for trailing omitted arguments
*/

function setCookie(name, value, expires, path, domain, secure) {
	var curCookie = name + "=" + escape(value) +
	((expires) ? "; expires=" + expires.toGMTString() : "") +
	((path) ? "; path=" + path : "") +
	((domain) ? "; domain=" + domain : "") +
	((secure) ? "; secure" : "");
	document.cookie = curCookie;
}

/*
	name - name of the desired cookie
	return string containing value of specified cookie or null if cookie does not exist
*/

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 unescape(dc.substring(begin + prefix.length, end));
}

/*
	name - name of the cookie
	[path] - path of the cookie (must be same as path used to create cookie)
	[domain] - domain of the cookie (must be same as domain used to create cookie) path and domain default if assigned null or omitted if no explicit argument proceeds
*/

function deleteCookie(name, path, domain) {
	if(getCookie(name))
	{
		document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}

// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"

function fixDate(date) {
	var base = new Date(0);
	var skew = base.getTime();
	if(skew > 0) date.setTime(date.getTime() - skew);
}

// pobierz obiekt
function _f(objName)
{
	return document.getElementById(objName);
}

function _c(objName)
{
	if(!_f(objName)) return false;
	
	return _f(objName).checked;
}

function LoadList(FromList, ToList, DefValue, ScriptName, DefEnabled)
{
	var f = _f(FromList);
	if(!f) return;

	var t = _f(ToList);
	if(!t) return;
	
	if(!ScriptName) ScriptName = "get_"+FromList+"_"+ToList;
	if(arguments.length < 4) DefEnabled = true;

	if(f.selectedIndex >= 0) var v = f.options[f.selectedIndex].value;
	else var v = '';

	var items = '';
	
	t.disabled = true;
	
	advAJAX.get(
	{
		url: "ajax/"+ScriptName+".php?from="+v,
		onSuccess : function(obj) { items = obj.responseText; SetSelectItems(ToList, items, DefValue); },
		onError : function(obj) { alert("Wystąpił błąd: " + obj.status); },
		onFinalization: function(obj) { t.disabled = !DefEnabled; }
	}
	);
}

function SetSelectItems(AList, AItems, DefValue)
{
	var obj = _f(AList);
	if(!obj) return;

	obj.options.length = 1;

	if(AItems != '') EvalJsCode(AItems, obj);
	if(DefValue != '') obj.value = DefValue;
}

function RefreshDzien(dzien)
{
	var f = _f('dzien_'+dzien+'_aktywny');
	if(!f) return;
		
	_f('dzien_'+dzien+'_data').disabled = !f.checked;

	var fm = _f('dzien_'+dzien+'_modul');
	if(fm) fm.disabled = !f.checked;
	
	var fm = _f('dzien_'+dzien+'_wykladowca');
	if(fm) fm.disabled = !f.checked;	
}

function IsNumeric(s)
{
	for(var i=0; i < s.length; i++)
	{		
		x = s.substring(i, i+1);
		if(x != '0' && x != '1' && x != '2' && x != '3' && x != '4' && x != '5' && x != '6' && x != '7' && x != '8' && x != '9') return;
	}
    return true;
}

function CheckPesel(s)
{
	var tab = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3];
	var res = 0;

	if(s.length != 11 || !IsNumeric(s)) return;

	for(var i=0; i<10; i++) res = res + s.substring(i, i+1) * tab[i];

	res = 10 - res % 10;
	if(res == 10) res = 0;
	if(res != s.substring(10, 11)) return;
  
	return true;
}

function PeselToDate(s, return_date)
{
	var Y = 0;
	var M = 0;
	var D = 0;
	
	if(!CheckPesel(s)) return;
 
    Y = new Number(s.substring(0, 2));
    M = new Number(s.substring(2, 4));
    D = new Number(s.substring(4, 6));
    
	if(M >= 21 && M <= 32) { M = M - 20; Y = Y + 2000; }
    else if(M >= 41 && M <= 52) { M = M - 40; Y = Y + 2100; }
    else if(M >= 61 && M <= 72) { M = M - 60; Y = Y + 2200; }
	else if(M >= 81 && M <= 92) { M = M - 80; Y = Y + 1800; }
	else Y = Y + 1900;
 
    if(M > 12) M = 1;
    if(D > 31) D = 1;
 	 	
 	if(return_date)
 	{
 		return new Date(Y, M-1, D)
 	}
 	else
 	{
 		if(D < 10) D = '0'+new String(D);
		if(M < 10) M = '0'+new String(M);
	
	    return D+'-'+M+'-'+Y;
	}
}

function PeselToPlec(s)
{
	if(!CheckPesel(s)) return;
 
	var z = s.substring(9, 10);
	if(z == '1' || z == '3' || z == '5' || z == '7' || z == '9') return 'M';
	else if(z == '2' || z == '4' || z == '6' || z == '8' || z == '0') return 'K';
}

function PeselToWiek(s)
{  
	if(!CheckPesel(s)) return;
	
	var one_year = 1000*60*60*24*365.26;
	var t = new Date();
	var u = PeselToDate(s, true);

	return Math.floor((t.getTime()-u.getTime())/(one_year));
}

function PeselChange()
{
	var p = _f('pesel');
	if(!p) return;
		
	if(p.value == '') return;
		
	if(!CheckPesel(p.value))
	{
		if(!confirm('Podany numer PESEL nie jest prawidłowy. Czy chcesz go zachować?'))
			p.value = '';
	}
	else
	{	
		var d = _f('data_urodzenia');
		if(d) d.value = PeselToDate(p.value);
		
		var d = _f('plec');
		if(d) d.value = PeselToPlec(p.value);
		
		var d = _f('wiek');
		if(d) d.value = PeselToWiek(p.value);
	}
}

function RefreshKursInfo(KursId, RodzajPrzewozu, D1, D2, D3, D4, D5)
{
	t1 = _f('kurs_id');
	if(!t1) return;
	
	t2 = _f('rodzaj_przewozu');
	if(!t2) return;

	t1.disabled = true;
	t2.disabled = true;
	
	advAJAX.get(
	{
		url: "ajax/get_kurs_info.php?id="+KursId+'&rodzaj='+RodzajPrzewozu+'&d1='+D1+'&d2='+D2+'&d3='+D3+'&d4='+D4+'&d5='+D5,
		onSuccess : function(obj) { code = obj.responseText; EvalJsCode(code); },
		onError : function(obj) { alert("Wystąpił błąd: " + obj.status); },
		onFinalization: function(obj) { t1.disabled = false; t2.disabled = false;}
	}
	);
}

function RefreshKursInfo2(KursId, RodzajPrzewozu, D1, D2, D3, D4, D5)
{
	t1 = _f('kurs_id');
	if(!t1) return;
	
	t2 = _f('rodzaj_przewozu');
	if(!t2) return;
	
	advAJAX.get(
	{
		url: "ajax/get_kurs_info2.php?id="+KursId+'&rodzaj='+RodzajPrzewozu+'&d1='+D1+'&d2='+D2+'&d3='+D3+'&d4='+D4+'&d5='+D5,
		onSuccess : function(obj) { code = obj.responseText; EvalJsCode(code); },
		onError : function(obj) { alert("Wystąpił błąd: " + obj.status); }
	}
	);
}

function RefreshKursyList(Typ, KursId)
{
	t1 = _f('kurs_id');
	if(!t1) return;
	
	t2 = _f('rodzaj_przewozu');
	if(!t2) return;
	
	t3 = _f('typ');
	if(!t3) return;

	t1.disabled = true;
	t2.disabled = true;
	t3.disabled = true;
	
	advAJAX.get(
	{
		url: "ajax/get_kursy_list.php?typ="+Typ,
		onSuccess : function(obj) { code = obj.responseText; EvalJsCode(code); if(KursId > 0) { t1.value = KursId; RefreshKursInfo(KursId, t2.value, _f('dzien_1').value, _f('dzien_2').value, _f('dzien_3').value, _f('dzien_4').value, _f('dzien_5').value); } },
		onError : function(obj) { alert("Wystąpił błąd: " + obj.status); },
		//onFinalization: function(obj) { t1.disabled = false; t3.disabled = false; }
		onFinalization: function(obj) { t1.disabled = false; t2.disabled = false; t3.disabled = false; }
	}
	);
}

function EvalJsCode(code, obj)
{
	var data = code.split('\n');
	arraylen = data.length;
	var i = 0;
	while(i < arraylen)
	{
		if( data[i].indexOf("script") > -1)
		{
			i++;
			while(data[i].indexOf("/script") < 0)
			{
				eval(data[i]);
				i++;
			}
		}
		i++;
	}	
}

function RefreshDataUmowy()
{
	f = _f('umowa');
	if(!f) return;

	d = _f('data_umowy');
	if(!d) return;

	d.disabled = !f.checked;
}

function RefreshZgloszenia()
{
	z = _f('zgloszenie_id');
	if(!z) return;

	t = _f('typ');
	if(!t) return;
	
	b = _f('BtnSubmit');
	if(!b) return;
	
	z.disabled = true;
	t.disabled = true;
	b.disabled = true;
	
	if(z.value > 0)
		b.value = 'Dodaj nowego uczestnika do wybranego zgłoszenia';
	else
		b.value = 'Dodaj nowe zgłoszenie i pierwszego uczestnika';
	
	advAJAX.get(
	{
		url: "ajax/get_typ_kursu.php?id="+z.value,
		onSuccess : function(obj) { code = obj.responseText; EvalJsCode(code); },
		onError : function(obj) { alert("Wystąpił błąd: " + obj.status); },
		onFinalization: function(obj) { z.disabled = false; b.disabled = false; t.disabled = z.value > 0; }
	}
	);	
}

function DrukujZalaczniki(ZgloszenieId)
{
	wnd = window.open("./?page=strefa_firmy&mode=zgloszenia&id="+ZgloszenieId+"&wnd=1&action=drukuj&typ=zalaczniki", "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1, left="+(screen.width-700)/2+", top=50");
}

function DrukujZalaczniki2(ZgloszenieId)
{
	wnd = window.open("./?page=strefa_szkolen&mode=zgloszenia&id="+ZgloszenieId+"&wnd=1&action=drukuj&typ=zalaczniki", "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1, left="+(screen.width-700)/2+", top=50");
}

function DrukujUmowe(ZgloszenieId)
{
	wnd = window.open("./?page=strefa_firmy&mode=zgloszenia&id="+ZgloszenieId+"&wnd=1&action=drukuj&typ=umowa", "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1, left="+(screen.width-700)/2+", top=50");
}

function DrukujUmowe2(ZgloszenieId)
{
	wnd = window.open("./?page=admin&mode=zgloszenia&id="+ZgloszenieId+"&wnd=1&action=drukuj&typ=umowa", "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1, left="+(screen.width-700)/2+", top=50");
}

function DrukujSprawozdanie(typ, wydruk, page_options)
{
	var date_from = new String(_f('_from').value);
	var date_to = new String(_f('_to').value);
	
	if(!page_options) page_options = '&page_options=19;19;19;19;A4;1';
	
	wnd = window.open("./?page=admin&mode="+typ+"&from="+date_from+"&to="+date_to+"&wnd=1&action=drukuj&typ="+wydruk+page_options, "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1,toolbar=1, left="+(screen.width-700)/2+", top=50");
}

function DrukujSprawozdanieOkresowe(typ, wydruk, page_options)
{
	var date_from = new String(_f('_from').value);
	var date_to = new String(_f('_to').value);
	
	if(!page_options) page_options = '&page_options=19;19;19;19;A4;1';
	
	var firma_id = _f('firma').value;
	var kurs_id = _f('kurs').value;
	
	wnd = window.open("./?page=admin&mode="+typ+"&from="+date_from+"&to="+date_to+"&firma_id="+firma_id+"&kurs_id="+kurs_id+"&wnd=1&action=drukuj&typ="+wydruk+page_options, "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1,toolbar=1, left="+(screen.width-700)/2+", top=50");
}


function DrukujKursInfo(typ, page_options)
{
	var kurs_id = new Number(_f('kurs_id').value);
	if(kurs_id == 0)
	{
		alert('Wybierz kurs z listy.');
		return;
	}
	
	if(!page_options) page_options = '&page_options=19;19;19;19;A4;1';
	
	wnd = window.open("./?page=admin&mode="+typ+"&kurs_id="+kurs_id+"&wnd=1&action=drukuj"+page_options, "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1,toolbar=1, left="+(screen.width-700)/2+", top=50");
}

function DrukujSwiadectwo(typ, kurs_id, uczestnik_id, page_options)
{
	if(!page_options) page_options = '&page_options=19;19;19;19;A4;1';
	
	wnd = window.open("./?page=admin&mode="+typ+"&kurs_id="+kurs_id+"&uczestnik_id="+uczestnik_id+"&wnd=1&action=drukuj"+page_options, "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1,toolbar=1, left="+(screen.width-700)/2+", top=50");
}

function DrukujListeZaswiadczenWydanych(typ, rok, page_options)
{
	if(!page_options) page_options = '&page_options=19;19;19;19;A4;1';
	
	wnd = window.open("./?page=admin&mode="+typ+"&rok="+rok+"&wnd=1"+page_options, "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1,toolbar=1, left="+(screen.width-700)/2+", top=50");
}

function DrukujListeStraconychNumerów(typ, rok)
{	
	window.location = "./?page=admin&mode="+typ+"&rok="+rok;
}

function DrukujKursNieobecni(typ, page_options)
{
	var kurs_id = new Number(_f('kurs_id').value);
	if(kurs_id == 0)
	{
		alert('Wybierz kurs z listy.');
		return;
	}
	
	if(!page_options) page_options = '&page_options=19;19;19;19;A4;1';
	
	wnd = window.open("./?page=admin&mode="+typ+"&kurs_id="+kurs_id+"&wnd=1&action=list"+page_options, "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1,toolbar=1, left="+(screen.width-700)/2+", top=50");
}

function ExportToExcel()
{
	
	var wojewodztwo  = _f('wojewodztwo').value;
	var osrodek  = new Number(_f('osrodek').value);
	var rok  = new Number(_f('rok').value);
	var miesiac  = new Number(_f('miesiac').value);
	var nazwa  = _f('nazwa').value;
	var rodzaj  = _f('rodzaj').value;
	var numerod  = new Number(_f('numerod').value);
	var numerdo  = new Number(_f('numerdo').value);
	var obecnosc  = _f('obecnosc').value;
	var typ_dokumentu  = _f('typ_dokumentu').value;
	
	var options = "&wojewodztwo="+wojewodztwo+"&osrodek="+osrodek+"&rok="+rok+"&miesiac="+miesiac+"&nazwa="+nazwa+"&rodzaj="+rodzaj+"&numerod="+numerod+"&numerdo="+numerdo+"&obecnosc="+obecnosc+"&typ_dokumentu="+typ_dokumentu;
	
	window.location = "./?page=admin&mode=swiadectwa&wnd=1&action=export"+options;
	
}

function DrukujWykladowcaInfo(typ, wydruk, page_options)
{
	var wykladowca_id = new Number(_f('wykladowca_id').value);
	var miesiac = new Number(_f('miesiac').value);
	var rok = new Number(_f('rok').value);
		
	if(wykladowca_id == 0)
	{
		alert('Wybierz wykładowcę z listy.');
		return;
	}
	
	if(!page_options) page_options = '&page_options=19;19;19;19;A4;1';
	
	wnd = window.open("./?page=admin&mode="+typ+"&wykladowca_id="+wykladowca_id+"&typ="+wydruk+"&miesiac="+miesiac+"&rok="+rok+"&wnd=1&action=drukuj"+page_options, "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1,toolbar=1, left="+(screen.width-700)/2+", top=50");
}

function DrukujStatystyke(typ)
{
	var url = './?page=admin&mode=statystyka&action=dane&eksport='+typ;
	
	url += '&_from='+_f('_from').value;
	url += '&_to='+_f('_to').value;	
	url += '&firma='+_f('firma').value;
	url += '&wielkosc_instytucji='+_f('wielkosc_instytucji').value;
	url += '&obszar='+_f('obszar').value;
	url += '&wojewodztwo='+_f('wojewodztwo').value;
	url += '&plec='+_f('plec').value;
	url += '&wyksztalcenie='+_f('wyksztalcenie').value;
	if(_f('wiek').checked) url += '&wiek=1';
	if(_f('bez_wyksztalcenia').checked) url += '&bez_wyksztalcenia=1';
	if(_f('opieka').checked) url += '&opieka=1';
	url += '&typ='+_f('typ').value;
	url += '&kurs='+_f('kurs').value;
	
	wnd = window.open(url, "wnd",
    "location=0,status=0,scrollbars=1,width=700,height=500,menubar=1,toolbar=1, left="+(screen.width-700)/2+", top=50");
}

function SetSwiadectwo()
{
	if(_f('kurs_rodzaj_dokumentu'))
	{
		_ok = _f('kurs_rodzaj_dokumentu').value != '';
		_f('kurs_rodzaj_przewozu').disabled = !_ok;
		_f('kurs_numer').disabled = !_ok;
		_f('kurs_data_wydania').disabled = !_ok;
		_f('kurs_kategorie').disabled = !_ok;
		_f('kurs_organ_wydajacy').disabled = !_ok;
	}
}

function SetDataUruchomienia()
{
	var d = _f('data_uruchomienia');
	if(!d) return;
	
	if(_f('aktywny').checked)
	{
		d.disabled = false;
		if(d.value != '') return;
		
		var t = new Date();
		d.value = t.format("dd-mm-yyyy");
	}
	else
	{
		d.disabled = true;
		d.value = '';
	}
}

function SetDataZaswiadczenia()
{
	var d = _f('data_zaswiadczenia');
	if(!d) return;
	
	if(_f('zakonczone').checked)
	{
		d.disabled = false;
		if(d.value != '') return;
		
		var t = new Date();
		d.value = t.format("dd-mm-yyyy");
	}
	else
	{
		d.disabled = true;
		d.value = '';
	}
}

function GetTypCennika()
{
	if(_f('typ_cennika1').checked) return _f('typ_cennika1').value;
	if(_f('typ_cennika2').checked) return _f('typ_cennika2').value;
	
	return 'P';
}

function RefreshTypKursu()
{
	var t1 = _f('typ').value;
	
	if(t1 == 1) _f('t1s').style.display = '';
	else _f('t1s').style.display = 'none';
}

function RefreshAdresInfo(OsrodekId)
{
	t1 = _f('osrodek_id');
	if(!t1) return;
	
	t2 = _f('sala');
	if(!t2) return;

	t1.disabled = true;
	t2.disabled = true;
	
	advAJAX.get(
	{
		url: "ajax/get_osrodek_adres.php?id="+OsrodekId,
		onSuccess : function(obj) { code = obj.responseText; EvalJsCode(code); },
		onError : function(obj) { alert("Wystąpił błąd: " + obj.status); },
		onFinalization: function(obj) { t1.disabled = false; t2.disabled = false; }
	}
	);
}

