﻿// Add event listeners:
function addListeners () 
{
	if (document.getElementById("sUniversity")) { document.getElementById("sUniversity").onchange = Select_Change; }
	if (document.getElementById("sBuilding")) { document.getElementById("sBuilding").onchange = Select_Change; }
	if (document.getElementById("sClass")) { document.getElementById("sClass").onchange = Select_Change; }
	
	if (document.getElementById("btnLookup")) { document.getElementById("btnLookup").onclick = lookupClass; }
	
	if (document.getElementById("btnAddNew")) { document.getElementById("btnAddNew").onclick = btnAddNew_Click; }
	
	if (document.getElementById("btnBack")) { document.getElementById("btnBack").onclick = btnBack_Click; }
	
	if (document.getElementById("btnCancelAdd")) { document.getElementById("btnCancelAdd").onclick = btnCancelAdd_Click; }
	
	if (document.getElementById("btnSaveNew")) { document.getElementById("btnSaveNew").onclick = btnSaveNew_Click; }
	
	if (document.getElementById("btnCalendar")) { document.getElementById("btnCalendar").onclick = popCalendar; }
	
	// Add preview pictures events:
	var Pics = document.getElementsByTagName('img');
	for (var i=0; i < Pics.length; i++)
	{
		if (Pics[i].className == 'picPreview' || Pics[i].className == 'picPreviewCurrent') {
			Pics[i].onclick = changePreviewPic ;
		}
	}
}

function populateList (items, list_obj) {
	// Empty list first
	list_obj.length = 0;
	if (items.length == 0) {
		var newOption = document.createElement('option');
		newOption.value = -1;
		newOption.text = '(לא נמצא מידע)';
		try {
			list_obj.add(newOption, null);
		} catch (e) {
			list_obj.add(newOption); // IE
		}
		list_obj.disabled='disabled';
		if (list_obj.id == 'sBuilding') {
			populateList('', document.getElementById('sClass'));
		}
	} else {
		var newOption = document.createElement('option');
		newOption.value = -1;
		newOption.text = 'בחר';
		try {
			list_obj.add(newOption, null);
		} catch (e) {
			list_obj.add(newOption); // IE
		}
		var options = items.split(";");
		for (var i=0; i<options.length; i++)
		{
			var optionItem = options[i].split("=");
			var newOption = document.createElement('option');
			newOption.value = optionItem[0];
			newOption.text = optionItem[1];
			try {
				list_obj.add(newOption, null);
			} catch (e) {
				list_obj.add(newOption); // IE
			}
		}
		list_obj.disabled='';
	}
	if (document.getElementById('frmPageId').value=='addNewThanks') {
		list_obj.disabled = '';
		var newOption = document.createElement('option');
		newOption.value = -99;
		newOption.text = 'אחר';
		try {
			list_obj.add(newOption, null);
		} catch (e) {
			list_obj.add(newOption); // IE
		}
	}
}

function Select_Change ()
{
	// Get selection
	var selectedId = parseInt(this.options[this.selectedIndex].value);
	
	// Hide direct input fileds
	if (document.getElementById('add-building-label')) { document.getElementById('add-building-label').style.display='none'; }
	if (document.getElementById('add-building-input')) { document.getElementById('add-building-input').style.display='none'; }
	if (document.getElementById('add-class-label')) { document.getElementById('add-class-label').style.display='none'; }
	if (document.getElementById('add-class-input')) { document.getElementById('add-class-input').style.display='none'; }
	
	if (selectedId > 0) {
		// Get children of the next select box via ajax
		nextList = null;
		if (this.id == 'sUniversity') {
			nextList = document.getElementById("sBuilding");
		} else if (this.id == 'sBuilding') {
			nextList = document.getElementById("sClass");
		}
		
		if (nextList != null) {
			var httpRequest;

			if (window.XMLHttpRequest) { // Mozilla, Safari, ...
				httpRequest = new XMLHttpRequest();
				if (httpRequest.overrideMimeType) {
					httpRequest.overrideMimeType('text/xml');
				}
			} 
			else if (window.ActiveXObject) { // IE
				try {
					httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
				} 
				catch (e) {
					try {
						httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
					} 
					catch (e) {}
				}
			}

			if (!httpRequest) {
				alert('Giving up :( Cannot create an XMLHTTP instance');
				return false;
			}
			httpRequest.onreadystatechange = function() { 
				//try {
					if (httpRequest.readyState == 4) {
						if (httpRequest.status == 200) {
							var xmldoc = httpRequest.responseXML;
							var data_node = xmldoc.getElementsByTagName('data').item(0);
							if (data_node.firstChild != null) {
								var listOptions = data_node.firstChild.data;
							} else {
								var listOptions = '';
							}
							//var listOptions = httpRequest.responseText;
							populateList (listOptions, nextList);
						} else {
						alert('There was a problem with the request.');
						}
					}
				//} catch( e ) {
				//	alert('Caught Exception: ' + e.description );
				//}
				
			};
			httpRequest.open('POST', 'ajax-populate-list.php', true);
			httpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			httpRequest.send("list="+this.id+'&selectedId='+selectedId);
		}
	} else if (selectedId == -99) {
		if (this.id == 'sBuilding') {
			document.getElementById("add-building-label").style.display='block';
			document.getElementById("add-building-input").style.display='block';
			document.getElementById("add-class-label").style.display='block';
			document.getElementById("add-class-input").style.display='block';
			document.getElementById('sClass').disabled='disabled';
		} else if (this.id == 'sClass') {
			document.getElementById("add-class-label").style.display='block';
			document.getElementById("add-class-input").style.display='block';
		}
	}
}

function changePreviewPic () 
{
	var mainPic = document.getElementById('classPics-main-img');
	mainPic.src = this.src;
	// Remove the selected picture class from the other pictures
	var Pics = document.getElementsByTagName('img');
	for (var i=0; i < Pics.length; i++) 
	{
		if (Pics[i].className == 'picPreviewCurrent') {
			Pics[i].className = 'picPreview';
		}
	}
	// Set selected picture style to current picture
	this.className = 'picPreviewCurrent';
}

function lookupClass () {
	// Validate:
	var selectedUniversity = parseInt(document.getElementById("sUniversity").options[document.getElementById("sUniversity").selectedIndex].value);
	var selectedBuilding = parseInt(document.getElementById("sBuilding").options[document.getElementById("sBuilding").selectedIndex].value);
	var selectedClass = parseInt(document.getElementById("sClass").options[document.getElementById("sClass").selectedIndex].value);
	if (selectedUniversity > 0 && selectedBuilding > 0 && selectedClass > 0) {
		document.getElementById("frmKitot").submit();
	} else {
		document.getElementById("frmError").style.display = 'block';
	}
	return false;
}

function btnAddNew_Click () {
	document.getElementById ("frmPageId").value="addNew";
	document.getElementById("frmKitot").submit();
	return false;
}

function btnBack_Click () {
	document.getElementById ("frmPageId").value="returnHome";
	document.getElementById("frmKitot").submit();
	return false;
}

function btnCancelAdd_Click () {
	document.getElementById ("frmPageId").value="homepage";
	document.getElementById("frmKitot").submit();
	return false;
}

function popError (msg)
{
	document.getElementById('frmError-text').innerHTML = msg;
	document.getElementById('frmError').style.display = 'block';
}

function btnSaveNew_Click () {
	document.getElementById ("frmPageId").value="addNewThanks";
	// Validate
	var valid = true;
	var Select = document.getElementById('sUniversity');
	if (parseInt(Select.options[Select.selectedIndex].value) == -1) {
		valid = false;
		popError('יש לבחור מוסד.');
	}
	var Select = document.getElementById('sBuilding');
	if (valid && parseInt(Select.options[Select.selectedIndex].value) == -1) {
		valid = false;
		popError('יש לבחור בבניין.');
	} 
	if (valid && parseInt(Select.options[Select.selectedIndex].value) == -99 && document.getElementById('txtBuildingName').value.length == 0) {
		valid = false;
		popError('נא להקליד שם בניין');
	}
	var Select = document.getElementById('sClass');
	if (valid && parseInt(Select.options[Select.selectedIndex].value) == -1 && parseInt(document.getElementById('sBuilding').options[document.getElementById('sBuilding').selectedIndex].value != -99)) {
		valid = false;
		popError('יש לבחור בחדר או בכיתה.');
	} 
	if (valid && (parseInt(Select.options[Select.selectedIndex].value) == -99 || parseInt(document.getElementById('sBuilding').options[document.getElementById('sBuilding').selectedIndex].value) == -99) && document.getElementById('txtClassName').value.length == 0) {
		valid = false;
		popError('נא להקליד שם חדר/כיתה.');
	}
	var Select = document.getElementById('sTableType');
	if (valid && parseInt(Select.options[Select.selectedIndex].value) == -1) {
		valid = false;
		popError('נא לבחור בסוג השולחן.');
	}
	var Select = document.getElementById('sClassCapacity');
	if (valid && parseInt(Select.options[Select.selectedIndex].value) == -1) {
		valid = false;
		popError('נא לבחור במספר הנבחנים.');
	}
	if (valid && document.getElementById('txtEmail').value.length == 0) {
		valid = false;
		popError('נא למלא כתובת דואר אלקטרוני.');
	}
	if (valid) {
		document.getElementById("frmKitot").submit();
	}
	return false;
}

