var d = document;
//obrazek wykorzystywany wszedzie ^^
var loading = new Image();
	loading.src = '/g/loading_small.gif';
//obrazki wykorzystywane przy form dla rejestracji
var imOK = new Image();
	imOK.src = '/g/form_ok.gif';
var imNO = new Image();
	imNO.src = '/g/form_not.gif';
var imOFF = new Image();
	imOFF.src = '/g/form_off.gif';

//################################################################################################
//funkcja sprawdza pole w oparciu o podana maske. Pole2 zawiera obrazek ktory bedzie sie zmienial w zaleznosci od testu
function sprawdz(pole,pole2,maska) {
	if ($(pole).val()=='') {$(pole2).attr('src',imOFF.src); return false;}
	if (maska.test( $(pole).val() )) {
		$(pole2).attr('src',imOK.src);
		return true;
	} else {
		$(pole2).attr('src',imNO.src);
		return false;
	}
}

//################################################################################################
//funkcja sprawsza adres w polu. W zaleznosci od testu zmienia pole2
function sprawdzHttp(pole,pole2) {
	var http = $(pole).val();
	if (http=='' || http=='http://') {$(pole2).attr('src',imOFF.src); return false;}
	Wzor = /^http(s)?\:\/\/([^\[\]\{\}\^`@ ]+\.)+[^\[\]\{\}\^`@ ]+$/i
	//Wzor = /^(http(s)?\:\/\/(.+\.)[^\.]+)|((www\..+?\..+?))|(.+?\..+?)$/i //dla wszystkich mozliwych
	if (Wzor.test(http)) {
		$(pole2).attr('src',imOK.src);
		return true;
	} else {
		$(pole2).attr('src',imNO.src);
		return false;
	}
}
//################################################################################################
//funkcja sprawdzająca dane - wykorzystywana przy formach i wysylaniu
function sprDane(w,btn,on,off,divtre,tresc) {
	var ok = true;
	var ile = 0;
	for (x=0; x<w.length; x++) {
		if (w[x] == 'false' || w[x]==0) {ok=false; ile++}
	}
	if (ok) {
		$(divtre).html('');
		$(btn).attr('src',on);
		return true;
	} else {
		$(divtre).html(tresc);
		$(btn).attr('src',off);
		return false;
	}
}

//################################################################################################
//funkcja sprawdza czy checkbox jest wybrany
//DELETE
function checkChecked(check) {
	return ($(check).attr('checked'))? true:false
}

//################################################################################################
//Funkcja sprawdza czy zaakceptowano regulamin
function checkRegistration() {
if ($('regAccepted').attr('checked')) {
	$('regulaminIMG').attr('src',imOK.src);
	return true;
	} else {
	$('regulaminIMG').attr('src',imOFF.src);
	return false;
	}
}

//################################################################################################
//funkcja otwiera podmenu w formie zawierające dane do rankingu
//DELETE
function openRanking(obiekt,blok) {
	$(blok).css('display',$('#rankingAccepted').attr('checked')?'block':'');
}

//################################################################################################
//funkcja sprawdza czy nazwa danego konta jest dostepna. 
//Wyswietla obrazek (log) i komunikat (dostepnosc) w zaleznosci od wyniku testu
//r_login - pole z loginem
//log - obrazek czy ok
//dostepnosc - pole z komunikatem ktory sie pojawia po sprawdzeniu
//wymagane - tablica z wymaganymi danymi z formularza
//funkcja sprawdzajaca czy dane sa ok i w razie czego wlacza/wylacza guzik register
//nastepne parametry - komunikaty
function sprawdzNazwe(r_login,log,dostepnosc,k4z,kNf,kOK,kNOT,kChar,funkcja) {
	var wzor = /^[0-9]+$/
	var wzor2 = /^[A-Z0-9_.-]+$/i
	if ($(r_login).val()=='') {
		$(log).attr('src',imOFF.src);
		$(dostepnosc).html('');
		wymagane[0]=false; 
		eval(funkcja);
		return false
		}
	if ($(r_login).val().length<4) {	
		$(log).attr('src',imNO.src); 
		$(dostepnosc).css('color','#CC0000');
		$(dostepnosc).html(k4z);
		wymagane[0] = false
		eval(funkcja);
		return false
	}
	if (wzor.test($(r_login).val())) {
		$(log).attr('src',imNO.src);
		$(dostepnosc).css('color','#CC0000');
		$(dostepnosc).html(kNf);		 
		wymagane[0] = false
		eval(funkcja);
		return false
	}
	if (!(wzor2.test($(r_login).val()))) {
		$(log).attr('src',imNO.src); 
		$(dostepnosc).css('color','#CC0000');
		$(dostepnosc).html(kChar);
		wymagane[0] = false
		eval(funkcja);
		return false
	}
	if ($(r_login).val()!='') {
			$('#loading').html('<img src="'+loading.src+'" width="20" height="20" alt="" />')
			$.ajax({
  				type: "GET",
  				url: "/common/functions/sprawdz_nazwe.php?login="+$(r_login).val(),
  				dataType: "text",
				success: function(r) {
					if (r=='+') {
					$(log).attr('src',imOK.src); 
					$(dostepnosc).css('color','#99CC00');
					$(dostepnosc).html(kOK);
					wymagane[0] = true; 
					}
					if (r=='-') {
					$(log).attr('src',imNO.src); 
					$(dostepnosc).css('color','#CC0000');
					$(dostepnosc).html(kNOT);
					wymagane[0] = false;
					}
				},
				complete:function(r) {
					$('#loading').html('');
					eval(funkcja);
				}
			})
	}
}

//################################################################################################
//funkcja zamienia kontynent
function selectContinent() {
  var cont = $('#f_timezoneC option:selected').val();
  loadContinent(cont);
}

//################################################################################################
//zmiana formularza przy zmianie wersji (tylko przy profesjonalnych)
function onVersionSelect(ver,lang){
	var ver = ver || 1;
	if(ver==2||ver==3||ver==10||ver==15)
	{
		$('#zgoda').show();
		$('#proDiv').show();
		$('#rankingAccepted').attr('checked','');
		$('#rankingAccepted').attr('disabled','');
		wymagane[4] =  checkChecked('#regAccepted');
		wymagane[5] = sprawdz('#r_customer_name', '#customer_nameIMG', /^.+$/);
		wymagane[6] = sprawdz('#r_customer_name_surname', '#ImieINazwiskoIMG', /^.+$/); 
		wymagane[7] = sprawdz('#r_street', '#streetIMG',/^.+$/);
		wymagane[8] = sprawdz('#r_zipcode', '#zipcodeIMG', /^.+$/);
		wymagane[9] = sprawdz('#r_city', '#cityIMG', /^[a-z\s]+$/g);
		wymagane[10] = sprawdz('#r_nip', '#nipIMG',/^.+$/);
		wymagane[11] = checkChecked('#personal_data_agreement'); 
		if ($('#rankingAccepted').is(':checked')) {
			$('#ranking').show();
			wymagane[12] = sprCategory('#category')
			wymagane[13] = sprCategory('#subcategory')
		} else {
			$('#ranking').hide();
			wymagane[12] = true;
			wymagane[13] = true;
		}
	}else{
		$('#proDiv').hide();
		$('#ranking').show();
		$('#rankingAccepted').attr('checked','checked');
		$('#rankingAccepted').attr('disabled','disabled')
		wymagane[5] = true;
		wymagane[6] = true;
		wymagane[7] = true;
		wymagane[8] = true;
		wymagane[9] = true;
		wymagane[10] = true;
		wymagane[11] = checkChecked('#personal_data_agreement'); 
		wymagane[12] = sprCategory('#category')
		wymagane[13] = sprCategory('#subcategory')
	}
	sprDane(wymagane,'#regist_button',btn_reg_on,btn_reg_off,'#komunikat',komPola);
	
	$.ajax({
		type: "POST",
		url: "/common/functions/get_regulamin.php",
		data: "lang="+lang+"&ver="+ver,
		success: function(msg){			
			$('#regulaminText').html(msg)
		}
	});
}

//################################################################################################
//zmiana danych osobowych przy zmianie typu uzytkownika (osoba bez dzialalnosci, osoba z dzialalnoscia, firma)
function onCustomerTypeChange(lang) {
	var typ = $('#r_customer_type option:selected').val();
	$('#rodzajPodmiotuIMG').attr('src',(typ!='')?imOK.src : imOFF.src);
	switch (typ) {
		case 'C' : 
			$('#dane_b').show();
			$('#imie_cp').hide();
			wymagane[10] = true;
			$('#r_customer_name_surname').val('');
			$('#customer').text(komunikaty[0]+'*');
			$('#nip1').text(komunikaty[1]+'*');
			$('#nipIMG').show();
			wymagane[10] = sprawdz('#r_nip', '#nipIMG',/^.+$/); 
			$('#r_nip').bind('blur', function() {
				wymagane[10] = sprawdz('#r_nip', '#nipIMG',/^.+$/); 
				sprDane(wymagane,'#regist_button',btn_reg_on,btn_reg_off,'#komunikat',komPola);
			})
			wymagane[6] = true;
			$('#r_customer_name_surname').unbind()
			sprDane(wymagane,'#regist_button',btn_reg_on,btn_reg_off,'#komunikat',komPola);
			break;
		case 'P' :
			$('#dane_b').show();
			$('#imie_cp').hide()
			$('#r_customer_name_surname').val('');
			$('#customer').text(komunikaty[2]+'*');
			$('#nip1').text(komunikaty[1]);
			$('#nipIMG').hide()
			wymagane[10] = true;
			wymagane[6] = true;
			$('#r_nip').unbind()
			$('#r_customer_name_surname').unbind()
			sprDane(wymagane,'#regist_button',btn_reg_on,btn_reg_off,'#komunikat',komPola);
			break;
		case 'PC' :
			$('#dane_b').show();
			$('#nip1').text(komunikaty[1]+'*');
			$('#imie_cp').show()
			$('#customer').text(komunikaty[3]+'*');
			$('#nipIMG').show()
			wymagane[6] = sprawdz('#r_customer_name_surname', '#ImieINazwiskoIMG', /^.+$/);
			wymagane[10] = sprawdz('#r_nip', '#nipIMG',/^.+$/); 
			$('#r_customer_name_surname').bind('blur', function() {
				wymagane[6] = sprawdz('#r_customer_name_surname', '#ImieINazwiskoIMG', /^.+$/); 
				sprDane(wymagane,'#regist_button',btn_reg_on,btn_reg_off,'#komunikat',komPola);
			})
			$('#r_nip').bind('blur', function() {
				wymagane[10] = sprawdz('#r_nip', '#nipIMG',/^.+$/); 
				sprDane(wymagane,'#regist_button',btn_reg_on,btn_reg_off,'#komunikat',komPola);
			})
			sprDane(wymagane,'#regist_button',btn_reg_on,btn_reg_off,'#komunikat',komPola);
			break;
		default :
			$('#dane_b').hide();
			$('#r_customer_name_surname').val('');
			$('#imie_cp').hide();
			$('#customer').text(komunikaty[2]+'*');
			$('#nipIMG').show()
			$('#nip1').text(komunikaty[1]);
			wymagane[10] = sprawdz('#r_nip', '#nipIMG',/^.+$/); 
			sprDane(wymagane,'#regist_button',btn_reg_on,btn_reg_off,'#komunikat',komPola);
	}
}

//################################################################################################
function sortuj(a,b) {
	if (a[1]>b[1]) return 1; else if (a[1]<b[1]) return -1; else return 0
}

//################################################################################################
//funkcja sprawdza zaleznosc 2 pol z haslami (czy sa ==). I ustawia nastepnie odpowiednio pola z obrazkami
//pole - pole do sprawdzenia
//pole2 - obrazek obok pola
//maska - wzor regular-expression sprawdzajacy
function check2Password(pole1,pole2,pas1,pas2) {
	if ($(pole1).val()=='') {
		if ($(pole2).val()!='') $(pas2).attr('src',imOff.src)
		$(pas1).attr('src',imOFF.src); 
		return false
	}
	if ($(pole1).val()=='' && $(pole2).val()=='') {
		$(pas1).attr('src',imOFF.src)
		$(pas2).attr('src',imOFF.src); 
		return false
	}
	if ($(pole1).val()!='' || $(pole2).val()!='') {
		if ($(pole1).val()!='' && $(pole2).val()=='') {
			$(pas1).attr('src',imOK.src); 
			$(pas2).attr('src',imOFF.src); 
			return false
		}
		if ($(pole1).val() != $(pole2).val()) {
			$(pas2).attr('src',imNO.src); 
			return false
		}
		if ($(pole1).val() == $(pole2).val()) {
			$(pas1).attr('src',imOK.src)
			$(pas2).attr('src',imOK.src)
			return true
		}
	}
}

//################################################################################################
//sprawdza maila. W zaleznosci od testu ustawia pole2
function sprawdzMaila(pole,pole2){
	var mail = $(pole).val();
	if (mail=='') {$(pole2).attr('src',imOFF.src); return false;}
	WzorMaila = /[0-9a-z_.-]+@+[0-9a-z.-]+\.[a-z]{2,3}/i
	if (WzorMaila.test(mail)) {
		$(pole2).attr('src',imOK.src);
		return true;
	} else {
		$(pole2).attr('src',imNO.src);
		return false;
	}
}

//################################################################################################
//funkcja sprawdza nip. W zaleznosci od testu zmienia pole2
function sprawdzNip(pole1,pole2) {
	var val = $(pole1).val();
	var nip = parseInt(val.replace(/[\s-]+/g,''));
	var wzor = /^\d{10}$/
}

//################################################################################################
//funckja ustawia podkategorie po wyborze kategorii
function changeSelect(ktoraKategoria,k1,k2){
	if (ktoraKategoria!=null) {
			$('#subcategory').attr('selectedIndex',ktoraKategoria)
	}
	var ver = $('#category option:selected').val();
	$('#subcategory').children().each(function(){$(this).remove()});
	$('#subcategory').append('<option value="-1">'+k1+'</option>');

	if (ver!=-1) {
		//sortowanie
		var multiTab = [];
		for (x=0; x<subName.length; x++) {
		var tempArray = [];
		var i = 0;
			for (y in subName[x]) {
			tempArray[i] = [y, subName[x][y]];
			i++;
			}
			tempArray.sort(sortuj)
			multiTab[x] = tempArray;
		}
		
		for(x=0; x<multiTab[ver].length; x++){
			$('#subcategory').append('<option value="'+multiTab[ver][x][0]+'">'+multiTab[ver][x][1]+'</option>');
		}
		$('#subcategory option:selected').text(k2);
	} else {
		$('#subcategory option:selected').text(k1);
	}
}

//################################################################################################
//funkcja sprawdza czy zostala wybrana kategoria lub subkategoria dla rankingu
function sprCategory(input) {
	var stan = ($(input).find('option:selected').val()==-1)?false:true;
	$(input).next('img').attr('src',((stan==true)?imOK.src : imNO.src))
	return stan;
}

//################################################################################################
//funkcja zmienia tekst danego elementu
function changeText(id, txt){
	document.getElementById(id).innerHTML = txt;
}

//################################################################################################
//funkcja zmienia CLASS danego elementu
function changeClass(id, clName){
	document.getElementById(id).className = clName;
}

//################################################################################################
//zmienia wyswietlanie obiektow (kilku na raz)
//podaj id obiektow, ostatni argument to wyswietlanie np block, inline
function show() {
	if (arguments.length>=2) {
		for (var x=0; x<arguments.length-1; x++) {
		$(arguments[x]).style.display = arguments[arguments.length-1];
		}
	}
}

//################################################################################################
Array.prototype.inArray = function(v){
	for (var i in this) {
		if (this[i]==v) return true;
	}
	return false;
}

//################################################################################################
function NW(o){//<a href="link.html" onclick="return NW(this);">link</a> 
 window.open(o.href);
 return false;
}

function outerLinker(cName) {//nowe okno auto
	this._opener = function(t) {
		window.open(t.href);
		return false;
	}
	this._constr = function() {
		if(document.getElementsByTagName){
			var IE//@cc_on=1
			var a = document.getElementsByTagName('a');
			var re = new RegExp('^'+cName+'$|.* '+cName+'$|^'+cName+' .*|.* '+cName+' .*');
			for(var i=0; i<a.length; i++){
				if(!IE){
					if (re.test(a[i].className)){a[i].onclick = function(){return _opener(this);}}
				}else{
					if (re.test(a[i].className)){a[i].onclick = function(){return event.returnValue=false; return _opener(this);}}
				}
			}
		}
	}
	this._constr();
}

//################################################################################################		
function _sMRotate(czas){
	var inter;	
	this.ile = czas
	var curr = 0;
	this.rotate = function(){
		for (var i=0; i<_sMRotateIDS.length; i++){
			if(i == curr){
				document.getElementById(_sMRotateIDS[i]).style.display='block';
			}else{
				document.getElementById(_sMRotateIDS[i]).style.display='none';
			}
		}
		curr++;
		if(curr > _sMRotateIDS.length - 1){curr = 0;}
	}
	this._bgn = function(){inter = setInterval(this.rotate, this.ile); return false;}
	this._end = function(){clearInterval(inter); return false;}
	this._bgn();
}
		
//################################################################################################		
function _sMSwitch(s){
	var h = s.href;	
	h = h.split('#');	
	h = h[h.length-1];
	for(var i in _sMSwitchIDS){
		if(typeof(_sMSwitchIDS[i]) == 'string'){
			if(h == _sMSwitchIDS[i]){
				document.getElementById(_sMSwitchIDS[i]).style.display = 'block';
			}else{
				document.getElementById(_sMSwitchIDS[i]).style.display = 'none';
			}
		}
	}
	return false;
}
//################################################################################################
function submit(id){
	$(id).submit();
}
//################################################################################################
function changeDisplay(id, a, b){
	var element=document.getElementById(id);
	if (element.style.display != a){
		element.style.display = a;
	}else{
		element.style.display = b;
	}
	return false;
}
//################################################################################################
function multiChangeDisplay(count, fid, disp){//ile elementow, wspolny id, nowy display
	for(var i=1; i<=count; i++){
		if(document.getElementById(fid+i)){
			document.getElementById(fid+i).style.display = disp;
		}
	}
	return false;
}
//################################################################################################
function state_Change(){
	if (xmlhttp.readyState==4){
		// if "OK"
		if (xmlhttp.status==200){
			document.getElementById('myobj').innerHTML=xmlhttp.responseText
		}else{
			alert("Problem retrieving data:" + xmlhttp.statusText)
		}
	}else{
		document.getElementById('myobj').innerHTML='sending...';
	}
}
/*k:xml rpc connect*/
//################################################################################################
function getCookie(nazwa) {
	if (document.cookie.length > 0) {
	  var c_start = document.cookie.indexOf(nazwa + "=")
	  if (c_start!= -1) { 
		c_start=c_start + nazwa.length+1 
		var c_end=document.cookie.indexOf(";" , c_start)
		if (c_end == -1) {c_end = document.cookie.length}
		return unescape(document.cookie.substring(c_start , c_end))
		} 
  }
}
//################################################################################################
function setCookie(name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
//################################################################################################
function sprawdzCookie(location) {
setCookie('test','1');
if (!getCookie('test')) {
	setCookie('test','')
	location.href = location;
	}
}