/**
\file main.js
  \brief Az összes js függvény.
*/

/**
\fn hide_pbar()
  \brief Elrejti a töltésekkor feldobott figyelmeztető ablakot.
*/
function hide_pbar(){
	try{
		document.getElementById('progress').style.visibility='hidden';
	}catch(e){}
	showAllSelect();
}
/**
\fn show_pbar()
  \brief Tájékoztatja a töltésről a usert, és lefedi a böngésző felületét, hogy a user ne kattintgasson feleslegesen.
*/
function show_pbar(){
	hideAllSelect();
	try{
		document.getElementById('progress').style.visibility='visible';
	}catch(e){}
}
/**
\fn startUpload()
  \brief A feltöltés megkezdésekor show_pbar()-t hívja meg
*/
function startUpload(){
      show_pbar();
}
/**
\fn stopUpload(msg)
  \brief Ha a feltöltés befejeződött, msg-nek értéket ad az upload.php a feltöltés sikerességéről.
    A szöveget megjeleníti, a mezőket törli, és elrejt a várakoztató ablakot.
  \param msg Tetszőleges stringet vár, amit alert szerűen megjelenít.
*/
function stopUpload(msg, id){
	alertBox(msg);
	uploadNull();
	getImageList(id)
	hide_pbar();  
}
/**
\fn closeAlertBox()
  \brief Elrejti az alert szerűen felpattanó üzenetet (pl OK gomb megnyomására)
*/
function closeAlertBox(){
	document.getElementById('messagebox').style.visibility='hidden';
}
/**
\fn alertBox(msg)
  \brief Alert szerű üzenetet jelenít meg (msg-ben kapott string alapján), és lefedi a képernyőt.
  \param msg Stringet vár, amit üzenetként feldobhat
*/
function alertBox(msg){
	document.getElementById('msgtxt').innerHTML=msg;
	document.getElementById('messagebox').style.visibility='visible';
}
/**
\fn validators()
  \brief A form-ok kitöltésének helyességét ellenőrzi. Jelzi a hibákat,
    engedélyezi/tiltja a form elküldését. A <ctrl + v> miatt nem eventre hívódik, hanem oldal betöltésekor
    és mindíg újrahívja magát 150 msec elteltével.
*/
function validators(){
	//upload
	var file_set = false;


	if(filledFileInput()){
		document.getElementById('minfile').style.color="green";
		file_set = true;
	}else{
		document.getElementById('minfile').style.color="red";
		file_set = false;
	}

	setTimeout("validators()",150);
}
/**
\fn isChange()
  \brief Figyeli, hogy történt-e link változás. Ha igen, megjeleníti a megfelelő oldalt.
    Az előzménykezelés megtartásának céljából került bevezetésre.
*/
function isChange(){
	try{
	if ((window.location.href) != (link)){
		show_pbar();
		try{
			link = window.location.href;
			vars = link.split('#');
			var name = vars[1];
			var inpage = name.split('_')[1];
			if((inpage=='box')||(name=='help')){
				hideAll();
				document.getElementById(name).style.display='block';
			}
		}catch(e){
			document.getElementById("conn_box").style.display='block';
		}
		hide_pbar();
	}
	setTimeout("isChange();",10);
	}catch(e){}
}
/**
\fn onloadFunctions()
  \brief A dokumentum betöltésekor szükséges függvények gyűjteménye.
*/
function onloadFunctions(){
	try{
		isChange();
		validators();
		startupNull();
		if(navigator.appName == "Microsoft Internet Explorer"){
			document.getElementById('logo_text').style.position = 'absolute';
		}
	}catch(e){}
}

//belépési lehetőség megjelenítése adminnak
window.onload = onloadFunctions;


/**
\fn addFile()
  \biref Kattintás után hívódik meg. Egy file típusú beviteli mezőt ad a felülethez a hozzá tartozó törlési opcióval.
*/
function addFile(){
	var num = document.getElementById('num_file').value * 1;
	num++;
	var input = document.createElement('input');
	input.id = 'file_'+num;
	input.name = 'file_'+num;
	input.type = 'file';

	var a = document.createElement('a');
	a.id = 'link_'+num;
	a.href = 'javascript:delFile('+num+');';
	a.innerHTML = 'Törlés';
	a.className = 'delfile';
	
	var br = document.createElement('br');
	br.id = 'br_'+num;

	var fl = document.getElementById('file_list');
	fl.appendChild(br);
	fl.appendChild(input);
	fl.appendChild(a);

	document.getElementById('num_file').value = num;
}
/**
\fn delFile(id)
  \biref Töröl egy file típusú mezőt. (kattintásra)
  \param id A törlésre szánt mező id-ja (pontosabban annak egy része)
*/
function delFile(id){
	var lst       = document.getElementById('file_list');
	var del_input = document.getElementById('file_'+id);
	var del_link  = document.getElementById('link_'+id);
	var del_br  = document.getElementById('br_'+id);
	lst.removeChild(del_input);
	lst.removeChild(del_link);
	try{
		lst.removeChild(del_br);
	}catch(e){}
}
/**
\fn filledFileInput()
  \brief figyeli h van-e legalább 1 kitöltött file mező
*/
function filledFileInput(){
	var box = document.getElementById('file_list');
	var inputs = box.getElementsByTagName('input');
	var isset = false;
	for(var i=0; i<inputs.length; i++){
		if(inputs[i].value.length>0)
			isset = true;
	}
	return isset;
}

function changeAlert(newtext){
	document.getElementById('prog_text').innerHTML = newtext;
}


/**
\fn uploadNull()
  \brief A feltöltő form mezőit törli
*/
function uploadNull(){
	var inputs = document.getElementById('file_list').getElementsByTagName("input");
	for(var i = 0; i<inputs.length; i++){
		inputs[i].value = "";
	}
}
/**
\fn startupNull()
  \brief Az oldal betöltésekor törli az összes mezőt
*/
function startupNull(){
	uploadNull();
}
/**
\fn hideAllSelect()
  \brief Minden selectet elrejt. Belövi a takarófelület méretét a bűvös böngészőre :D
*/
function hideAllSelect(){
	if(navigator.appName == "Microsoft Internet Explorer"){
		var selects = document.getElementsByTagName('select');
		for(var i=0; i<selects.length; i++){
			selects[i].style.visibility = 'hidden';
		}
		var win_width = document.body.offsetWidth;
		var win_height = document.body.offsetHeight;
		win_width = win_width - 20;
		win_height = win_height - 5;
		document.getElementById('hiba').style.width = win_width + 'px';
		document.getElementById('hiba').style.height = win_height + 'px';
		
		document.getElementById('progress').style.width = win_width + 'px';
		document.getElementById('progress').style.height = win_height + 'px';

		document.getElementById('messagebox').style.width = win_width + 'px';
		document.getElementById('messagebox').style.height = win_height + 'px';
	}
}
/**
\fn showAllSelect()
  \brief megjeleníti az összes selectet
*/
function showAllSelect(){
	if(navigator.appName == "Microsoft Internet Explorer"){
		
		var selects = document.getElementsByTagName('select');
		for(var i=0; i<selects.length; i++){
			selects[i].style.visibility = 'visible';
		}
	}
}

function getImageList(id){
var xmlHttp;
var post = "id="+id;
$.ajax({
	type: "GET",
	url: "modules/get_img_list.php",
	data: post,
	success: function(msg){
		$("#actual_imgs").html(msg);
	}
});
}

function deleteImage(file, id){
var post = "id="+id+"&file="+file;
$.ajax({
	type: "GET",
	url: "modules/rm.php",
	data: post,
	success: function(msg){
		getImageList(id);
	}
});

}

