/*
 * Biblioteka przydatnych funkcji PHP
 *
 */
//<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

/*
 * Funkcja wysyłająca przez AJAX formularz o nazwie formname i wpisująca wynik jego wysłania do taga html o id/name = blockname.
 * Ostatni argument to obrazek ładowania (ajax_small lub ajax_big - ikona wykonywania skryptu)
 * np. send_form('hslogin','hsloginform',{{V:login_target}},ajax_small)
 */
   // Konfiguracja dla skryptow JavaScript
var ajaxsmall = 'img/loadsmall.gif';
var ajaxbig = 'img/loadbig.gif';
function func_sendform(formname,blockname,page_url,loader)
{
	// opcje zapytania
	var options = {
		url: page_url,
		beforeSubmit: function()
		{
			$("#"+blockname).fadeOut("fast",function()
			{
				$("#"+blockname).html('<center><img src="'+loader+'" border="0" class="loader"></center>');
			});
			$("#"+blockname).fadeIn("slow");
		},
		success: function(data)
		{
			$("#"+blockname).fadeOut("fast",function()
			{
				$("#"+blockname).html(data);
			});
			$("#"+blockname).fadeIn("slow");
		}
	}
	// wysłanie formularza
	$("#"+formname).ajaxSubmit(options);
	
	// Zwrócenie false, żeby się formularz nie wykonał
	return false;
}

/* Funkcja wysyłająca zapytanie grupowe - formularz formname pod adres page_url, odpowiedź jest wypisywana do blockname; zapytanie pod 
 * page_url2 odpowiedź wpisywana jest w blockname2; loader zostaje wpisany tylko do blockname
 * 
 */


/*
 * Funkcja wykonująca przez AJAX stronę url i wpisująca wynik jego wysłania do taga html o id/name = blockname.
 * Ostatni argument to obrazek ładowania (ajax_small lub ajax_big - ikona wykonywania skryptu)
 * np. func_sendrequest('files',{{V:url_target}},ajax_small)
 */ 

function func_sendrequest(blockname,page_url,loader)
{
		$.ajax({
		type:"GET",
		url: page_url,
		beforeSend: function()
		{
			$("#"+blockname).fadeOut("fast", function()
			{
				// Ustawienie ikonki wykonywania funkcji
				$("#"+blockname).html('<img src="'+loader+'" class="loader">');
			});
			$("#"+blockname).fadeIn("fast");
		},
		success: function(data)
		{
			$("#"+blockname).fadeOut("fast",function()
			{
				$("#"+blockname).html(data);
			});
			$("#"+blockname).fadeIn("slow");
		}
	});
	// request
	//$.get(page_url,function(data){
		//	$("#"+blockname).html(data);
		//});	
	
	// Zwrócenie false, żeby się formularz nie wykonał
	return false;
}

// Zmienna globalna obiektu formularza, który był ostatnio wybrany
var last_form_element='';
// Zmienna globalna przechowująca poprzednią klasę elementu ostatnio wybranego
var last_form_element_class='';

// Zmienna globalna obiektu podpowiedzi, który był ostatnio wybrany
var last_tip_timer;
var last_tip_element;

// Zmienna globalna obiektu, który był ostatnio podświetlony
var last_over_element='';
// Zmienna globalna przechowująca poprzednią klasę elementu ostatnio podświetlonego
var last_over_element_class='';

// Funkcja zmieniająca klasę wybranego elementu
function func_activate_element(name, styleclass)
{
	// Tablica na współrzędne obiektu
	pos = new Array(2);
	
	// Jeśli jest już wybrany element, wyłączenie go
	if (last_form_element != '')
	{
		// Deaktywacja
		func_deactivate_element(last_form_element);
	}
	
	// Zapisanie stylu obiektu
	last_form_element_class=document.getElementById(name).className;
	
	// Zapisanie nazwy obiektu
	last_form_element=name;
	func_tip_element(name);
	// Zmiana stylu obiektu
	document.getElementById(name).className=styleclass;
}

// Funkcja deaktywująca wybrany element
function func_deactivate_element(name)
{
	// Jeśli nazwa i klasa nie są puste
	if ((name != '') && (last_form_element_class != ''))
	{
		// Zmiana stylu elementu
		document.getElementById(name).className=last_form_element_class;
	}
	func_detip_elements();	
	// Wyczyszczenie zmiennych
	last_form_element='';
	last_from_element_class='';
}

// Funkcja zmieniająca klasę wybranego elementu
function func_tip_element(name)
{
	// Nie wyświetlamy podpowiedzi dla radio buttons
	if ((document.getElementById(name).type != 'radio') && (name != last_tip_element))
	{
		$("#tip_"+last_tip_element).fadeOut("fast");
		$("#tip_"+name).fadeIn("fast");
		last_tip_element=name;		
	}
	else if (name == last_tip_element)
	{
		$("#tip_"+name).fadeIn("fast");
	}
}

// Funkcja deaktywująca elementy
function func_detip_elements()
{	
	// Nie wyświetlamy podpowiedzi dla radio buttons, więc nie ma czego ukryć
	// Ukrycie warstwy podpowiedzi
	$("#tip_"+last_tip_element).fadeOut("fast");	
}

// Funkcja deaktywująca wybrany element
function func_detip_element(name)
{	
	// Nie wyświetlamy podpowiedzi dla radio buttons, więc nie ma czego ukryć
	if ((document.getElementById(name).type != 'radio') && (last_tip_element==name))
	{	
		// Ukrycie warstwy podpowiedzi
		//$("#tip_"+name).hide("fast");	
	}
}

// Funkcja zmieniająca klasę wybranego elementu (over)
function func_over_element(name, styleclass)
{
	// Tablica na współrzędne obiektu
	pos = new Array(2);
	
	// Jeśli jest już wybrany element, wyłączenie go
	if (last_over_element != '')
	{
		// Deaktywacja
		func_out_element(last_over_element);
	}
	
	// Zapisanie stylu obiektu
	last_over_element_class=document.getElementById(name).className;
	
	// Zapisanie nazwy obiektu
	last_over_element=name;
	
	// Zmiana stylu obiektu
	document.getElementById(name).className=styleclass;
}

// Funkcja deaktywująca wybrany element (out)
function func_out_element(name)
{
	// Jeśli nazwa i klasa nie są puste
	if ((name != '') && (last_over_element_class != ''))
	{
		// Zmiana stylu elementu
		document.getElementById(name).className=last_over_element_class;
	}
	
	// Wyczyszczenie zmiennych
	last_form_element='';
	last_from_element_class='';
}


// Funkcja zwaracająca absoluną pozycję obiektu
function func_pos(obiekt)
{
	// Zmienne lokalne
	var  wx = wy = 0;
	var obj=obiekt;
	
	// Póki istnieje rodzic
	if (obj.offsetParent)
	{
		wx = obj.offsetLeft;
		wy = obj.offsetTop;
		while (obj = obj.offsetParent)
		{
			wx += obj.offsetLeft;
			wy += obj.offsetTop;
		}
	}
	return [wx,wy];
}

// Funkcja pokazujaca okienko wyboru kanału radiowego
function func_radio(status)
{
	var poz = new Array(2);
	
	// Okreslenie pozycji dla boksu
	poz = func_pos(document.getElementById('hsradiobox'));
	document.getElementById('hsradiochbox').style.left=poz[0];
	document.getElementById('hsradiochbox').style.top=poz[1]+30;
	
	// Jesli mamy pokazac
	if (status==true)
	{
		$("#hsradiochbox").show("slow");
	}
	else
	{
		$("#hsradiochbox").hide("slow");		
	}
}

// Funkcja pokazujaca okienko moderacji komentarzy
function func_radio_moderate(id, status)
{
	var poz = new Array(2);
	
	// Okreslenie pozycji dla boksu
	poz = func_pos(document.getElementById('comment_'+id+'_opt'));
	document.getElementById('comment_'+id+'_chopt').style.left=poz[0];
	document.getElementById('comment_'+id+'_chopt').style.top=poz[1]+13;
	
	// Jesli mamy pokazac
	if (status==true)
	{
		// zmiana widoczności boxu
		$("#comment_"+id+"_chopt").slideDown("slow");
	}
	else
	{
		// zmiana widoczności boxu
		$("#comment_"+id+"_chopt").slideUp("slow");
	}
}

// Funkcja pokazujaca okienko dodawania pliku do notki
function func_radio_adddata(id, status)
{
	var poz = new Array(2);
	
	// Okreslenie pozycji dla boksu
	poz = func_pos(document.getElementById('file_'+id+'_add'));
	document.getElementById('file_'+id+'_chadd').style.left=poz[0];
	document.getElementById('file_'+id+'_chadd').style.top=poz[1]+13;
	
	$("#file_"+id+"_chadd").slideToggle("slow");
}

// Funkcja pokazujaca okienko z informacjami o pliku
function func_radio_file(id, status)
{
	var poz = new Array(2);
	
	// Okreslenie pozycji dla boksu
	poz = func_pos(document.getElementById('file_'+id+'_box'));
	// pozycja + szerokość miniaturki
	document.getElementById('file_'+id+'_chbox').style.left=poz[0]+document.getElementById('file_'+id+'_box').offsetWidth;
	document.getElementById('file_'+id+'_chbox').style.top=poz[1];
	
	$("#file_"+id+"_chbox").toggle("slow");
}

// Funkcja sprawdzająca poprawność wprowadzonych danych do pola na plik
function func_file_check()
{
	// wartość pola na plik
	var file=document.forms['file'].file_field.value;
	// zabronione rozszerzenia
	var exts='html.htm.php.php2.php3.php4.php5.phtml.pwml.inc.asp.aspx.ascx.jsp.cfm.cfc.pl.vbs.js.reg.cgi.htaccess.asis.sh.shtml.shtm.phtm';
	// rozbicie listy rozszerzeń
	ext=exts.split('.');
	// ścieżka pliku
	var tmp=file.split('.')
	// ustawienie rozszerzenia
	var file_ext=tmp[tmp.length-1];
	
	// sprawdzenie wszystkich rozszerzeń z tablicy
	for (var x=0;x<ext.length;x++)
	{
		if (file_ext.toLowerCase()==ext[x])
		{
			// info
			alert('Zabroniony typ pliku');
			// wyczyszczenie pola
			document.forms['file'].file_field.value='';
			return 0;
		}
	}
	if (file!='')
	{
		return 1;
	}
}

// Funkcja sprawdzająca poprawność formularza wysyłanego przy dodawaniu pliku
function func_file_checkform(files_num)
{
	var file=func_file_check();
	
	if (file==0)
	{
		return false;
	}
	else if (file==1)
	{
		return true;
	}
	else if (files_num>0)
	{
		var checked=0;
		// sprawdzenie czy chociaż jedno pole zostało zaznaczone
		for (var x=files_num; x>0; x--)
		{
			if (document.getElementById("f_"+x).checked==true)
			{
				checked++;
			}
		}
		if (checked==0)
		{
			alert('Nie wybrano pliku');
			return false
		}
	}
	else
	{
		alert('Nie wybrano pliku');
		return false;
	}
}

function func_hide(content)
{
	$('.'+content).slideToggle('slow', 
	function()
	{
		var tresc=$('#'+content+'click').html();
		
		if (tresc.indexOf('down',0)>0)
		{
			$('#'+content+'click').html('<img src="img/ikona_up.png" border="0"  style="vertical-align: middle;"/>');
		}
		else
		{
			$('#'+content+'click').html('<img src="img/ikona_down.png" border="0"  style="vertical-align: middle;"/>');
		}
	});
	
	
	
	return false;
}

function func_comment_delete(status, name, namecheck, cid)
{
	if (status==1)
	{
		$("#"+name).fadeOut("fast", function()
		{
			// Ustawienie ikonki wykonywania funkcji
			$("#"+namecheck).fadeIn("fast");
		});
	}
	else
	{
		$("#"+namecheck).fadeOut("fast", function()
		{
			// Ustawienie ikonki wykonywania funkcji
			$("#"+name).fadeIn("fast");
		});
	}
	return false;
}

var footer_functions;

footer_functions = new Array();

function func_footer_add(name)
{
    footer_functions.push(name);
}

function func_footer_run()
{
    while(footer_functions.length>0) {eval(footer_functions.shift()+'();');}
}



