window.onload = boot;
var xhr = false;
var outMsg = "";
var curId = 0;

function boot() {
	var bigImgs = new Array();
	function preLoadImgs() {
		for (i = 0; i < preLoadImgs.arguments.length; i++) {
			bigImgs[i] = new Image();
			bigImgs[i].src = preLoadImgs.arguments[i];
		}
	}
	preLoadImgs('images/loading.gif', 'bar_shadow2.png');
}

function newAlbum() {
	var albumName = prompt("Insert album title/description","title/description");
	if (albumName != null && albumName != "") {
		var cell = document.getElementById("status");
		cell.innerHTML = '<img src="images/loading.gif" border="0" />';
		
		/* refresh status from database */
		if (window.XMLHttpRequest) {
			xhr = new XMLHttpRequest();
		}
		else {
			if (window.ActiveXObject) {
				try {
					xhr = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) { }
			}
		}
		if (xhr) {
			var url = "config/new_album.php";
			var params="title_description="+albumName;
			xhr.onreadystatechange =  newAlbumResponse;
			xhr.open("POST", url+"?sid="+Math.random(), true);
			xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //"application/x-www-form-urlencoded"
			xhr.setRequestHeader("Content-length", params.length);
			xhr.setRequestHeader("Connection", "close");
			xhr.send(params);
		}
		else {
			alert("Sorry, but I couldn't create an XMLHttpRequest");
		}
	}
}

function newAlbumResponse() {
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			outMsg = xhr.responseText;
			if (outMsg == "0")
				alert("Error creating new album.");
			else {
				refreshMainTable();
			}
		}
	}
	else 
		outMsg = "There was a problem with the request";
}

function refreshMainTable() {
	var cell = document.getElementById("status");
	cell.innerHTML = '<img src="images/loading.gif" border="0" />';
	
	var albunsTd = document.getElementById("albunsContent");
	albunsTd.innerHTML = "";
	
	/* refresh status from database */
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	}
	else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	if (xhr) {
		var url = "config/albuns_table.php";
		var params="temp=4";
		xhr.onreadystatechange =  refreshMainTableResponse;
		xhr.open("POST", url+"?sid="+Math.random(), true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //"application/x-www-form-urlencoded"
		xhr.setRequestHeader("Content-length", params.length);
		xhr.setRequestHeader("Connection", "close");
		xhr.send(params);
	}
	else {
		alert("Sorry, but I couldn't create an XMLHttpRequest");
	}
}

function refreshMainTableResponse() {
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			outMsg = xhr.responseText;
			var albunsTd = document.getElementById("albunsContent");
			albunsTd.innerHTML = outMsg;
			refreshStatus();
			//alert(outMsg);
		}
	}
	else 
		outMsg = "There was a problem with the request";
}


function refreshStatus() {
	var cell = document.getElementById("status");
	cell.innerHTML = '<img src="images/loading.gif" border="0" />';
	
	/* refresh status from database */
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	}
	else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	if (xhr) {
		var url = "config/refresh_status.php";
		var params="temp=4";
		xhr.onreadystatechange =  refreshStatusResponse;
		xhr.open("POST", url+"?sid="+Math.random(), true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //"application/x-www-form-urlencoded"
		xhr.setRequestHeader("Content-length", params.length);
		xhr.setRequestHeader("Connection", "close");
		xhr.send(params);
	}
	else {
		alert("Sorry, but I couldn't create an XMLHttpRequest");
	}
}

function refreshStatusResponse() {
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			outMsg = xhr.responseText;
			if (outMsg == "-1")
				alert("Error refreshing status.");
			else {
				var cell = document.getElementById("status");
				cell.innerHTML = outMsg;
			}
		}
	}
	else 
		outMsg = "There was a problem with the request";
}

function getItemInfo(id) {
	var item = document.getElementById(id);
	//alert("Título/descrição: " + item.cells[1].innerHTML);
}

function editItem(id) {
	var item = document.getElementById(id);
	var trIndex = item.rowIndex;
	
	var albunsTable = document.getElementById("albunsTable");
	if (albunsTable.rows[trIndex+1] && albunsTable.rows[trIndex+1].cells[0].className == "editTd") {
		albunsTable.deleteRow(trIndex+1);
		return;
	}
	albunsTable.insertRow(trIndex+1);
	var newRow = albunsTable.rows[trIndex+1];
	newRow.insertCell(0);
	var insideCell = newRow.cells[0];
	insideCell.colSpan = 10;
	insideCell.className = "editTd";
	
	insideCell.id = Math.random();
	
	curId = insideCell.id;
	insideCell.innerHTML = '<img src="images/loading.gif" border="0" />';
	
	/*request html for edit table */
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	}
	else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	if (xhr) {
		var url = "config/edit_table.php";
		var params="id="+id;
		xhr.onreadystatechange =  editItemResponse;
		xhr.open("POST", url+"?sid="+Math.random(), true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //"application/x-www-form-urlencoded"
		xhr.setRequestHeader("Content-length", params.length);
		xhr.setRequestHeader("Connection", "close");
		xhr.send(params);
	}
	else {
		alert("Sorry, but I couldn't create an XMLHttpRequest");
	}
}

function editItemResponse() {
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			outMsg = xhr.responseText;
			insertHtml(outMsg, curId, true);
		}
	}
	else 
		outMsg = "There was a problem with the request editing item.";
}

function viewItem(id) {
	var item = document.getElementById(id);
	var trIndex = item.rowIndex;
	
	var albunsTable = document.getElementById("albunsTable");
	if (albunsTable.rows[trIndex+1] && albunsTable.rows[trIndex+1].cells[0].className == "viewTd") {
		albunsTable.deleteRow(trIndex+1);
		return;
	}
	albunsTable.insertRow(trIndex+1);
	var newRow = albunsTable.rows[trIndex+1];
	newRow.insertCell(0);
	var insideCell = newRow.cells[0];
	insideCell.colSpan = 10;
	insideCell.className = "viewTd";
	
	insideCell.id = Math.random();
	
	curId = insideCell.id;
	insideCell.innerHTML = '<img src="images/loading.gif" border="0" />';
	
	/*request html for view table */
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	}
	else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	if (xhr) {
		var url = "config/view_table.php";
		var params="id="+id;
		xhr.onreadystatechange =  viewItemResponse;
		xhr.open("POST", url+"?sid="+Math.random(), true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //"application/x-www-form-urlencoded"
		xhr.setRequestHeader("Content-length", params.length);
		xhr.setRequestHeader("Connection", "close");
		xhr.send(params);
	}
	else {
		alert("Sorry, but I couldn't create an XMLHttpRequest");
	}
}

function viewItemResponse() {
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			outMsg = xhr.responseText;
			insertHtml(outMsg, curId, false);
		}
	}
	else 
		outMsg = "There was a problem with the request editing item.";
}

function insertHtml(msg, id, edit) {
	var el = document.getElementById(id);
	el.innerHTML = msg;
	if (edit == true)
		el.getElementsByTagName("input")[0].select();
}

function delItem(id) {
	
	if (!confirm("Confirm delete album: " + id))
		return;
	
	/* delete album from database */
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	}
	else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	if (xhr) {
		var url = "config/delete_album.php";
		var params="id="+id;
		xhr.onreadystatechange =  delItemResponse;
		xhr.open("POST", url+"?sid="+Math.random(), true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //"application/x-www-form-urlencoded"
		xhr.setRequestHeader("Content-length", params.length);
		xhr.setRequestHeader("Connection", "close");
		xhr.send(params);
	}
	else {
		alert("Sorry, but I couldn't create an XMLHttpRequest");
	}
}

function delItemResponse() {
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			outMsg = xhr.responseText;
			if (outMsg == "0")
				alert("Error deleting.");
			else
				refreshMainTable();
		}
	}
	else 
		outMsg = "There was a problem with the request deleting item.";
}

function saveChanges(id) {
	var item = document.getElementById(id);
	var trIndex = item.rowIndex;
	var albunsTable = document.getElementById("albunsTable");
	var editTable = albunsTable.rows[trIndex+1].cells[0].getElementsByTagName("table")[0];
	var title = editTable.getElementsByTagName("input")[0].value;
		
	/* update database */
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	}
	else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	if (xhr) {
		var url = "config/save_changes.php";
		var params="id="+id+"&title="+title;
		xhr.onreadystatechange =  saveChangesResponse;
		xhr.open("POST", url+"?sid="+Math.random(), true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //"application/x-www-form-urlencoded"
		xhr.setRequestHeader("Content-length", params.length);
		xhr.setRequestHeader("Connection", "close");
		xhr.send(params);
	}
	else {
		alert("Sorry, but I couldn't create an XMLHttpRequest");
	}
}

function saveChangesResponse() {
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			outMsg = xhr.responseText;
			if (outMsg == "-1")
				alert("Error saving.");
			else {
				refreshMainTable();
			}
		}
	}
	else 
		outMsg = "There was a problem with the request saving changes.";
}

function uploadPicture(id) {
	var form = document.getElementById(id);
	form.target = 'upload_target';
	
	/* update database 
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	}
	else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	if (xhr) {
		var url = "config/upload_picture.php";
		var params="id="+id+"&filename="+filename;
		xhr.onreadystatechange =  uploadPicutreResponse;
		xhr.open("POST", url+"?sid="+Math.random(), true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //"application/x-www-form-urlencoded"
		xhr.setRequestHeader("Content-length", params.length);
		xhr.setRequestHeader("Connection", "close");
		xhr.send(params);
	}
	else {
		alert("Sorry, but I couldn't create an XMLHttpRequest");
	}*/
}

function uploadPicutreResponse() {
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			outMsg = xhr.responseText;
			alert(outMsg);
			//if (outMsg != "-1")
				//alert("Error uploading.");
			//document.location.replace("index.php");
		}
	}
	else 
		outMsg = "There was a problem with the request uploading.";
}

function changeThumbnail(picId, albumId) {
	var cell = document.getElementById("status");
	cell.innerHTML = '<img src="images/loading.gif" border="0" />';
	
	/* update database */
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	}
	else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	if (xhr) {
		var url = "config/change_thumbnail.php";
		var params="picId="+picId+"&albumId="+albumId;
		xhr.onreadystatechange =  changeThumbnailResponse;
		xhr.open("POST", url+"?sid="+Math.random(), true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //"application/x-www-form-urlencoded"
		xhr.setRequestHeader("Content-length", params.length);
		xhr.setRequestHeader("Connection", "close");
		xhr.send(params);
	}
	else {
		alert("Sorry, but I couldn't create an XMLHttpRequest");
	}
}

function changeThumbnailResponse() {
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			outMsg = xhr.responseText;
			if (outMsg == "-1")
				alert("Error changing thumbnail.");
			else {
				var tempASD = outMsg;
				refreshMainTable();
				
				//editItem(tempASD);
				//alert(tempASD);
			}
		}
	}
	else 
		outMsg = "There was a problem with the request changing thumbnail.";
}

function delPicture(picId, name) {
	var cell = document.getElementById("status");
	cell.innerHTML = '<img src="images/loading.gif" border="0" />';
	
	/* update database */
	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	}
	else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}
	if (xhr) {
		var url = "config/delete_picture.php";
		var params="picId="+picId+"&fname="+name;
		xhr.onreadystatechange =  delPictureResponse;
		xhr.open("POST", url+"?sid="+Math.random(), true);
		xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //"application/x-www-form-urlencoded"
		xhr.setRequestHeader("Content-length", params.length);
		xhr.setRequestHeader("Connection", "close");
		xhr.send(params);
	}
	else {
		alert("Sorry, but I couldn't create an XMLHttpRequest");
	}
}

function delPictureResponse() {
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			outMsg = xhr.responseText;
			if (outMsg == "-1")
				alert("Error deleting picture.");
			else {
				refreshMainTable();
			}
		}
	}
	else {
		outMsg = "There was a problem with the request changing thumbnail.";
	}
		
}