$(
    function() {
        $('.img_gallery a').lightBox();
    }
);
    

/* Funcke obsługują pokazywanie / ukrywanie warstw */

function zmien(id) {
	document.getElementById(id).style.display=(document.getElementById(id).style.display=='block')?'none':'block';
}
function zmien2(id) {
	document.getElementById(id).style.display=(document.getElementById(id).style.display=='none')?'block':'none';
}

function ukryj(id){
	document.getElementById(id).style.display='none';
}

function pokaz(id){
	document.getElementById(id).style.display='block';
}

function sprawdzLeksykonForm(f){
	if(f.fraza.value==''){
		alert('proszę wpisać szukane hasło'); 
		return false;
	}
	else{
		return true;
	}
}

function checkAdresyForm(f){
	with (document.forms[f]) {
		elements[0].value++
		var L = elements.length
		while (L--) {
		
			if(elements[L].checked == true){
				return true;
			}
		
		}
	} 
	
	alert('nie wybrano opcji');
	return false;
}

function setCSSclaseName(id, cName){
	var obj = document.getElementById(id);
	if(obj){ obj.className=cName; }
}

/* Funkcja regeneruje obrazek zabezpieczeń formularza */

function genNewSecureImage(id, path){
	
	var rand = Math.round(1000*Math.random());
	var e_img;
	e_img = document.getElementById(id);
	
	if (e_img){
		e_img.setAttribute("src",path+'?count='+rand);	
	}
	
}

function openDir(id){
	zmien2(id);
	var img_id = 'dir_'+id;
	var obj = document.images[img_id].src;
	var img = /dir_open/i;

	document.images[img_id].src = ( img.test(obj) ) ? obj.replace(/dir_open/i, "dir_close") : obj.replace(/dir_close/i, "dir_open");
}

/* Funkcja zwija / rozwija wartwe wraz ze zmiana napisu */

function zwin_rozwin(div, linkid, word_on, word_off){
	zmien2(div);
	document.getElementById(linkid).innerHTML = (document.getElementById(linkid).innerHTML==word_off) ? word_on : word_off;
}

/* Funkcja odhacza wszytskie zakliknięte pola typu checkbox */

function uncheckAll(f){
	with (document.forms[f]) {
		elements[0].value++
		var L = elements.length
		//while (L--) elements[L].checked = !elements[L].checked
		while (L--) elements[L].checked = false;
	} 
}

function checkAll(f){
	with (document.forms[f]) {
		elements[0].value++
		var L = elements.length
		//while (L--) elements[L].checked = !elements[L].checked
		while (L--) elements[L].checked = true;
	} 
}

function reversecheck(f){
	with (document.forms[f]) {
		elements[0].value++
		var L = elements.length
		while (L--) elements[L].checked = !elements[L].checked
	} 
}

/*
Funkcja obsługuje przezroczystości
*/

function changeOpac(opacity, id) {
    var object = document.getElementById(id).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
}

function Fade(obj, final_opacity, krok, milsec) {
    mint.fx.Fade(obj, final_opacity, krok, milsec);
}

/*
Funkcja obsługuje pokazywanie się obrazka "trwa wczytywanie"
*/
function loading(gdzie){
	var obj = document.getElementById(gdzie);
	if(obj){
		var txt = '<div id="loading"><span class="loading">&nbsp; &nbsp; &nbsp; &nbsp;Trwa wczytywanie</span></div>';
		obj.innerHTML = txt;
	}
}

function wstaw(gdzie, co){
	var obj = document.getElementById(gdzie);
	if(obj){
		var txt = co;
		obj.innerHTML = txt;
	}
}

/* Funkcja zaznacza odpowieni el menu I rzędu po wejściu na podstronę*/

function setMenu(id){
	var obj = document.getElementById('li'+id);
	if(obj){ obj.className='set'; }
	//menu_sliders(id);

	//var subdiv = document.getElementById('sub_'+id);
	//if(subdiv){ pokaz('sub_'+id); }
}

/* 
Funkacja obsługuje pokazyanie się podpisów pod narzędziami
znajdującymi się poniżej 
*/
function toolCaption(id) {
	
	var tab = new Array();

	tab[0] = "";
	tab[1] = "drukuj stronę";
	tab[2] = "zapisz jako PDF";
	tab[3] = "wyślij link znajomemu";
	tab[4] = "wyślij na \"wykop\"";
	tab[5] = "powrót do poprzedniej strony";
	tab[6] = "powrót na górę strony";
	tab[7] = "dodaj swój komentarz";
	tab[8] = "dodaj do koszyka";
	tab[9] = "dodaj do przechowalni";
	
	document.getElementById('toolsCaption').innerHTML = tab[id];

}
	
/*
Funkcja obsługuje wczytwanie się elementów metodš AJAX 
*/

function loadContent(path, div, param){
	var req = mint.Request();
	loading(div);
	if(param){
	req.AddParam("submodul", param);
	}
    req.Send(path, div);
	changeOpac(0, div);
	Fade(div, 100, 20, 1200);	
}

/*
Funkcja obsługuje wczytwanie się elementów FORUM metodš AJAX 
*/

function loadForumContent(path, div, id, akcja, forum_id, temat ){
	
	if(document.getElementById(div).style.display=='block'){
		ukryj(div);
	}
	else{
		var req = mint.Request();
		req.AddParam("id", id);
		req.AddParam("akcja", akcja);
		req.AddParam("_temat", temat);
		req.AddParam("forum_id", forum_id);
		req.Send('forum/ajax.php', div);
	    req.Send(path, div);

		loading(div);
		pokaz(div);
		changeOpac(0, div);
		Fade(div, 100, 20, 1200);		
	}
}

/*
Funkcja obsługuje zmianę wielkości fonta na stronie
*/

var tgs = new Array('p','h3','li','a','div');
var szs = new Array( '12px','13px','16px' );
var startsz = '';

function ZmienFontSize( tgs, trgt, inc ) { 
	if (!document.getElementById) return;
	var d = document,cEl = null,sz,i,j,cTags;
	
	sz = inc;
	if ( sz < 0 ) sz = 0;
	if ( sz > 2 ) sz = 2;
	startsz = sz;
		
	if ( !( cEl = d.getElementById( trgt ) ) ) cEl = d.getElementsByTagName( trgt )[ 0 ];

	cEl.style.fontSize   = szs[ sz ];
	if (inc==2) cEl.style.lineHeight = '22px';
	else	    cEl.style.lineHeight = '17px';


	for ( i = 0 ; i < tgs.length ; i++ ) {
		cTags = cEl.getElementsByTagName( tgs[ i ] );
		for ( j = 0 ; j < cTags.length ; j++ ){ 
			cTags[ j ].style.fontSize = szs[ sz ]; 
			if (inc==2) cTags[ j ].style.lineHeight = '22px';
			else	    cTags[ j ].style.lineHeight = '17px';	


		}
	}
}

/* Funkcja otwiera nowe okna */

function popup(adres,myname,w,h) {
	if(screen.width){
		var winl = (screen.width-w)/2;
		var wint = (screen.height-h)/2;
	}else{
		winl = 0;wint =0;
	}

	if (winl < 0) winl = 0;
	if (wint < 0) wint = 0;

	var settings = 'height=' + h + ',';
	settings += 'width=' + w + ',';
	settings += 'top=' + wint + ',';
	settings += 'left=' + winl + ',';
	settings += 'location=0, directories=0, scrollbars=auto, toolbar=0, menubar=0, resizable=1, status=1';
	
	win = window.open(adres,myname,settings);
	win.window.focus();
}

/* Funkcja otwiera okno "powiadom znajomego" */

function powiadom(lang, baseHref) {
	popup(baseHref + 'includes/powiadom.php?lang='+lang+'&adres=' + escape(document.location.href),'powiadom', 650, 600);
}


/* Funckcja sprawdza poprawność wypełnienia formualrza "poleć znajomemu" */

function sprawdzForm(f){

	if( f.nadawca.value == "" ){
		alert('proszę podać kto jest nadawcą wiadomości');
		f.nadawca.focus();
		return false;
	}
	
	var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
	if( regex.test(f.nadawca_email.value) == false ){
		alert('proszę wpisać adres e-mail nadawcy lub podać go w prawidłowej formie');
		f.nadawca_email.focus();
		return false;
	}	

	if( regex.test(f.adresat_email.value) == false ){	
		alert('proszę wpisać adres e-mail odbiorcy lub podać go w prawidłowej formie');
		f.adresat_email.focus();
		return false;
	}		
	
}

/* Funkcja sprawdza poprawność wypełnionego formularza kontaktowego */

function sprawdzKontaktForm(f){
	
	fv = new formValidator();
	
	fv.raiseNormalInput("nadawca", 'inputText');
	fv.raiseNormalInput("nadawca_email", 'inputText');
	fv.raiseNormalInput("temat", 'inputText');
	fv.raiseNormalInput("tresc", 'inputTextArea');
	
	if( fv.isEmpty(f.nadawca.value) ){
		fv.raiseError("proszę podać kto jest nadawcą wiadomości");
		fv.raiseInput("nadawca", 'inputText_error');
	}
	
	if( fv.isEmpty(f.nadawca_email.value) ){
		fv.raiseError("proszę podać aktualny adres e-mail");
		fv.raiseInput("nadawca_email", 'inputText_error');
	}	
	
	if( !fv.isEmailAddress(f.nadawca_email.value) ){
		fv.raiseError("podany adres e-mail ma niepoprawną postać");
		fv.raiseInput("nadawca_email", 'inputText_error');
	}	
	
	if( fv.isEmpty(f.temat.value) ){
		fv.raiseError("proszę wpisać temat wiadomości");
		fv.raiseInput("temat", 'inputText_error');
	}
	
	if( fv.isEmpty(f.tresc.value) ){
		fv.raiseError("proszę wpisać treść wiadomości");
		fv.raiseInput("tresc", 'inputTextArea_error');
	}
		
	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		f.submit();
		return true;
	}
	
}

/* Funkcja sprawdza poprawność wypełnionego formularza pytania do eksperta */

function sprawdzEkspertForm(f){
	
	fv = new formValidator();
	
	fv.raiseNormalInput("nadawca", 'inputText');
	fv.raiseNormalInput("nadawca_email", 'inputText');
	//fv.raiseNormalInput("temat", 'inputText');
	fv.raiseNormalInput("tresc", 'inputTextArea');
	
	if( fv.isEmpty(f.nadawca.value) ){
		fv.raiseError("proszę podać kto jest nadawcą wiadomości");
		fv.raiseInput("nadawca", 'inputText_error');
	}
	
	if( fv.isEmpty(f.nadawca_email.value) ){
		fv.raiseError("proszę podać aktualny adres e-mail");
		fv.raiseInput("nadawca_email", 'inputText_error');
	}	
	
	if( !fv.isEmailAddress(f.nadawca_email.value) ){
		fv.raiseError("podany adres e-mail ma niepoprawną postać");
		fv.raiseInput("nadawca_email", 'inputText_error');
	}	
	/*
	if( fv.isEmpty(f.temat.value) ){
		fv.raiseError("proszę wpisać temat wiadomości");
		fv.raiseInput("temat", 'inputText_error');
	}*/
	
	if( fv.isEmpty(f.tresc.value) ){
		fv.raiseError("proszę wpisać treść wiadomości");
		fv.raiseInput("tresc", 'inputTextArea_error');
	}
		
	if (fv.numErrors() > 0)	{
		fv.displayErrors();
		fv.remarkInputs();
		fv.markInputs();
		return false;
	}
	else {
		f.submit();
		return true;
	}
	
}

/* funkcja obsługuje oddawanie głosu w ankiecie */

function sendVote(the_form, nazwa_pola, div){
	
	/* sprawdzamy czy zaznaczono opcje odpowiedzi */
	for( z=0; z<ankieta_pytania.length; z++){
	
		var statusOK = false;
		var i = document.forms[the_form].elements[ankieta_pytania[z]].length;

		for(a=0; a<i; a++){
			if (document.forms[the_form].elements[ankieta_pytania[z]][a].checked == true ) {
				statusOK = true;
			}
		}
		
		if(statusOK == false){
			alert('sonda - nie wybrano opcji odpowiedzi');
			return false;
		}
	}
	
	/* wysyłamy AJAX z głosami */
	
	var req = mint.Request();
    	           
    req.OnSuccess = function() {
        $(div).innerHTML = this.responseText;
    }
               
    req.SendForm(the_form, "includes/lib/ankiety/vote.php");	
	loading(div);
}

/* Funkcja obsługuje przełšcznie widoku z formularza na wyniki */

function showAnkietaRes(div, status, ankieta_ID){

	var req = mint.Request();
    req.AddParam("ankieta_ID", ankieta_ID);
	req.AddParam("status", status);
	 
    req.OnSuccess = function() {
        $(div).innerHTML = this.responseText;
    }
    
	req.Send("includes/lib/ankiety/vote.php", div);
	loading(div);	
}

/* Funkcje związane z weryfikacją poprawności formualrza */

function formValidator(){
	
	// tablica do przechowywania wiadomości o błędach
	this.errorList = new Array;
 	this.errorFieldList =  new Array;
	this.NormalFieldList = new Array
	
	// metody obiektu
	this.isEmpty = isEmpty;	
	this.isMinLength = isMinLength;
	this.isNumber = isNumber;	
	this.isAlphabetic = isAlphabetic;	
	this.isAlphaNumeric = isAlphaNumeric;	
	this.isWithinRange = isWithinRange;	
	this.isEmailAddress = isEmailAddress;	
	this.isChecked = isChecked;	
 
	this.raiseError = raiseError;	
	this.raiseInput = raiseInput;
	this.raiseNormalInput = raiseNormalInput
	this.numErrors = numErrors;	
	this.displayErrors = displayErrors;	
	this.markInputs = markInputs;	
	this.remarkInputs = remarkInputs;	

}
 
// sprawdza, czy podana wartość jest pusta, lub zawiera tylko białe znaki
function isEmpty(val){
	if (val.match(/^s+$/) || val == "")	{
		return true;
	}
	else {
		return false;
	}	
}
 
// sprawdza, czy podana wartosc zawiera minimum określoną liczbę znaków
function isMinLength(val, min){
	if (val.length < min){
		return true;
	}
	else{
		return false;
	}	
} 
 
// sprawdza, czy podana wartosc jest liczbą
function isNumber(val){
	if (isNaN(val))	{
		return false;
	}
	else{
		return true;
	}	
}
 
// sprawdza, czy wszystkie znaki są literami
function isAlphabetic(val){
	if (val.match(/^[a-zA-Z]+$/)){
		return true;
	}
	else{
		return false;
	}	
}
 
// sprawdza, czy przesłane dane zawierają tylko litery i cyfry
function isAlphaNumeric(val){
	if (val.match(/^[a-zA-Z0-9]+$/)){
		return true;
	}
	else{
		return false;
	}	
}
 
// sprawdza, czy podana wartość mieści się w zakresie określonym przez zmienne min i max
function isWithinRange(val, min, max){
	if (val >= min && val <= max){
		return true;
	}
	else{
		return false;
	}	
}
 
// sprawdza, czy użytkownik wprowadził poprawny adres email
function isEmailAddress(val){
	if (val.match(/^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/)){
		return true;
	}
	else{
		return false;
	}	
}
 
// sprawdza, czy pole jest zaznaczone
function isChecked(obj){
	if (obj.checked){
		return true;
	}
	else{
		return false;
	}	
}
 
// wyświetla wszystkie błędy
// pętla przez wszystkie elementy tablicy wywołująca poszczególne okna dialogowe
function displayErrors(){
	var msg = '';
	for (x=0; x<this.errorList.length; x++)	{
		//alert("Error: " + this.errorList[x]);
		msg += "Błąd: " + this.errorList[x]+"\n";
	}
	if( msg != "" ){
		var txt = "";
		txt += "-----------------------\n";
		txt += msg;	
		txt += "-----------------------\n";
		alert(txt);
		
	
	}
}

// zazancza wszystkie pola które zostały źle wypełnione  
function markInputs(){
	for (x=0; x<this.errorFieldList.length; x++)	{
		var obj = document.getElementById(this.errorFieldList[x][0]);
		obj.className = this.errorFieldList[x][1];
	}
}

// odznacza wszystkie pola które zostały źle wypełnione przy poprzednim sprawdzaniu
function remarkInputs(){
	for (x=0; x<this.NormalFieldList.length; x++)	{
		var obj = document.getElementById(this.NormalFieldList[x][0]);
		obj.className = this.NormalFieldList[x][1];
	}	
} 
 
// dodaje błąd do listy
function raiseError(msg){
	this.errorList[this.errorList.length] = msg;
}
 
 // dodaje pole do listy
function raiseInput(id, class_error){
	this.errorFieldList[this.errorFieldList.length] = new Array(id, class_error);
}

// dodaje pole do listy wszystkich inputow 
function raiseNormalInput(id, class_normal){
	this.NormalFieldList[this.NormalFieldList.length] = new Array(id, class_normal);
}
 
// zwraca ilość błędów w tablicy
function numErrors(){
	return this.errorList.length;
}

