var tmpImg = document.createElement("input")
tmpImg.type = 'image';
tmpImg.src = './templates/img/ajax-loader-c.gif';

/*
	On-load handler to initialize the AJaX object.
*/
function loadHandler(){
		
	if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } 
	else if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
	else alert("Ihr Webbrowser unterstuetzt leider kein Ajax!");
	
}

/*
	Download files without showing the complete path.
	Handler is located at the server.
*/

function getFile(theFile,mode){
	var URL = './../download.php?mode='+ mode + '&file=';
	window.location = URL + theFile ;	
}

/*
	slide on the file infos
*/
function showDetails(item,mode,tFile){
	slidedown(item+mode);
	document.getElementById(item+'desc'+mode).onclick = function () { hideDetails(item,mode,tFile) }
	document.getElementById(item+mode).innerHTML = '<img src="templates/img/ajax-loader.gif" alt="Loading..."/>';
	
	if(xmlHttp){
		var URL = './inc/function.getFileInformation.php?file=' + tFile + '&mode=' + mode;
		
		xmlHttp.open('GET', URL , true);
		
		xmlHttp.onreadystatechange = function() {
			if (xmlHttp.readyState == 4){
				if (xmlHttp.responseText == "") alert ('Es ist ein Fehler im AJAX-Modul aufgetreten');
					// ------------------------------------
					
					var node = xmlHttp.responseText;
					document.getElementById(item+mode).innerHTML = node;
				}
			}
			
		xmlHttp.send(null);
			
	} else {
		alert('Großer Fehler!');
	}
}

function hideDetails(item,mode,tFile){
	slideup(item+mode);
	document.getElementById(item+'desc'+mode).onclick = function () { showDetails(item,mode,tFile) }
	document.getElementById(item+mode).innerHTML = '';
}

function switchDlMode(){
	if(document.getElementById("f_mode").value == "privat"){
		document.getElementById("f_mode").value = "öffentlich";
		document.getElementById("f_mode").style.background = "#6AB785";
		document.getElementById("f_mode").style.border = "2px solid #4EBC35";
	} else {
		document.getElementById("f_mode").value = "privat";
		document.getElementById("f_mode").style.background = "#CE2915";
		document.getElementById("f_mode").style.border = "2px solid #8A1A19";
	}
}

/*
	Editing - displayed file name, description and version
	administration permission required
*/

function editItem(mode,item){
	if(xmlHttp){
		var URL = './inc/function.editFileInformation.php?mode=' + mode + '&file=' + item;
		
		xmlHttp.open('GET', URL , true);
		
		xmlHttp.onreadystatechange = function() {
			if (xmlHttp.readyState == 4){
				if (xmlHttp.responseText == "") alert ('Es ist ein Fehler im AJAX-Modul aufgetreten');
					// ------------------------------------
					
					var node = xmlHttp.responseText;
					document.getElementById("addendum").innerHTML = node;
					document.getElementById("addendum").style.display = 'inherit';
				}
			}
			
		xmlHttp.send(null);
			
	} else {
		alert('Großer Fehler!');
	}
}

function writeNewFileInfo(mode){
	if(xmlHttp){
		
		f_link = document.getElementById("f_link").value;		
		f_name = document.getElementById("f_name").value;
		f_desc = document.getElementById("f_desc").value;
		f_vers = document.getElementById("f_vers").value;
				
		var URL = './inc/function.editFileInformation.php?stor=act&mode=' + mode + '&link=' + f_link + '&name=' + f_name + '&desc=' + f_desc + '&vers=' + f_vers;
		
		xmlHttp.open('GET', URL , true);
		
		xmlHttp.onreadystatechange = function() {
			if (xmlHttp.readyState == 4){
					//if (xmlHttp.responseText == "") alert ('Es ist ein Fehler im AJAX-Modul aufgetreten');
					// ------------------------------------
					node = xmlHttp.responseText;
					document.getElementById("addendum").style.display = 'none';
					document.getElementById("addendum").innerHTML = '';
					window.location = 'https://www.it05-2.de/page/downloads';	
				}
			}
			
		xmlHttp.send(null);
			
	} else {
		alert('Großer Fehler!');
	}
}

function abortNewInfo(){
	document.getElementById("addendum").style.display = 'none';
	document.getElementById("addendum").innerHTML = '';
}

function upload(){
	document.getElementById("upload_button").disabled = true;
	document.getElementById("upload_button").src = tmpImg.src;
	return true;
}

function deleteItem(mode, item){
	Check = confirm("Die Datei wirklich löschen?");
	if (Check == true){
		if(xmlHttp){
			var URL = './inc/function.deleteFile.php?mode=' + mode + '&file=' + item;
			
			xmlHttp.open('GET', URL , true);
			
			xmlHttp.onreadystatechange = function() {
				if (xmlHttp.readyState == 4){
					window.location = 'https://www.it05-2.de/page/downloads';
				}
			}
				
			xmlHttp.send(null);
				
		} else {
			alert('Großer Fehler!');
		}
	}
}

/**************************************************\
|	SLIDE FUNCTIONS
| originally from here:
| http://www.harrymaugans.com/2007/03/06/how-to-create-an-animated-sliding-collapsible-div-with-javascript-and-css/
\**************************************************/

var timerlen = 10;
var slideAniLen = 500;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
  if(moving[objname])
    return;
 
  if(document.getElementById(objname).style.display != 'none')
    return; // cannot slide down something that is already visible
 
  moving[objname] = true;
  dir[objname] = 'down';
  startslide(objname);
}
 
function slideup(objname){
  if(moving[objname])
    return;
 
  if(document.getElementById(objname).style.display == 'none')
    return; // cannot slide up something that is already hidden
 
  moving[objname] = true;
  dir[objname] = 'up';
  startslide(objname);
}

function startslide(objname){
  obj[objname] = document.getElementById(objname);
 
  endHeight[objname] = parseInt(obj[objname].style.height);
  startTime[objname] = (new Date()).getTime();
 
  if(dir[objname] == 'down'){
    obj[objname].style.height = '1px';
  }
 
  obj[objname].style.display = 'block';
 
  timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
  var elapsed = (new Date()).getTime() - startTime[objname];
 
  if (elapsed > slideAniLen)
    endSlide(objname)
  else {
    var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
    if(dir[objname] == 'up')
      d = endHeight[objname] - d;
 
    obj[objname].style.height = d + 'px';
  }
 
  return;
}

function endSlide(objname){
  clearInterval(timerID[objname]);
 
  if(dir[objname] == 'up')
    obj[objname].style.display = 'none';
 
  obj[objname].style.height = endHeight[objname] + 'px';
 
  delete(moving[objname]);
  delete(timerID[objname]);
  delete(startTime[objname]);
  delete(endHeight[objname]);
  delete(obj[objname]);
  delete(dir[objname]);
 
  return;
}
