// www.jslint.com validatoriuje laukelyje "Predefined" nurodyti:
//   document,XMLHttpRequest,ActiveXObject,alert

var tomval_xmlHttp = null;
var hintObject = null;

function tomval_ShowThisMonth(month) {
	var searchForIds = "m_" + month;
	var element;
	var cells;
	var cellIsHiddenDef = false;

	var monthDivs = document.getElementsByTagName("div");
	var mct = monthDivs.length;
	for (i = 0; i < mct; i++) {
		element = monthDivs[i];
		if (element.getAttribute('id') && element.id.substr(0, 9) == 'monthMenu') {
			if (element.id == 'monthMenu' + month) {
				element.className = 'monthLinkSelected';
			} else {
				element.className = 'monthLink';
			}
		}
	}

	for (j = 0; j < 2; j++) {
		if (j == 0) {
			cells = document.getElementsByTagName("th");
		} else {
			cells = document.getElementsByTagName("td");
		}

		var n = cells.length;
		for (i = 0; i < n; i++) {
			element = cells[i];
			if (element.getAttribute('id')) {
				cellIsHiddenDef = element.id.substring(element.id.length - 1) == '_'; // Jeigu baigiasi '_'
				if (!cellIsHiddenDef) {
					if (element.id.substr(0, 4) == searchForIds) {
						element.style.display = '';
					} else {
						element.style.display = 'none';
					}
				}
			}
		}
	}

	return false;
}

function tomval_ShowThisSemester(sender, month) {
	// Pradinės sąlygos
    var comboBoxSem = null;
    if (document.getElementById('combo_sem'))
	{
		comboBoxSem = document.getElementById('combo_sem');
	}
	else
	{
	    return false;
	}
	if (comboBoxSem.disabled)// || comboBoxSem.value == month)
	{
	    return false;
	}

	// Pažymėjimai
    var searchForIds = "cbsem_";
	var monthDivs = document.getElementsByTagName("div");
	var mct = monthDivs.length;
    var element;
	for (i = 0; i < mct; i++) {
		element = monthDivs[i];
		if (element.getAttribute('id') && element.id.substr(0, 6) == searchForIds) {
			element.className = 'monthLink';
		}
	}
	sender.className = 'monthLinkSelected';

	// Keičiame selected value
	comboBoxSem.value = month;
	comboBoxSem.onchange();
	return true;
}

function tomval_ShowAllMonths() {
	var element;
	var cells;
	var cellIsHiddenDef = false;

	var monthDivs = document.getElementsByTagName("div");
	var mct = monthDivs.length;
	for (i = 0; i < mct; i++) {
		element = monthDivs[i];
		if (element.getAttribute('id') && element.id.substr(0, 9) == 'monthMenu') {
			if (element.id == 'monthMenu00') {
				element.className = 'monthLinkSelected';
			} else {
				element.className = 'monthLink';
			}
		}
	}

	for (j = 0; j < 2; j++) {
		if (j == 0) {
			cells = document.getElementsByTagName("th");
		} else {
			cells = document.getElementsByTagName("td");
		}

		var n = cells.length;
		for (i = 0; i < n; i++) {
			element = cells[i];
			if (element.getAttribute('id')) {
				cellIsHiddenDef = element.id.substring(element.id.length - 1) == '_'; // Jeigu baigiasi '_'
				if (!cellIsHiddenDef) {
					element.style.display = '';
				}
			}
		}
	}

	return false;
}

function tomval_StateChanged() {
	if (tomval_xmlHttp.readyState === 4) {
		if (tomval_xmlHttp.status === 200) {
			document.getElementById('marks_table').innerHTML = tomval_xmlHttp.responseText;
		} else {
			document.getElementById('marks_table').innerHTML = "Error while getting Ajax response.";
		}
		tomval_EnableDisableForm(true);
	}
}

function tomval_StateChanged2() {
	if (tomval_xmlHttp.readyState === 4) {
		if (tomval_xmlHttp.status === 200) {
			document.getElementById('marks_semcombo').innerHTML = tomval_xmlHttp.responseText;
		} else {
			document.getElementById('marks_semcombo').innerHTML = "Error while getting Ajax response.";
		}
		document.getElementById('marks_table').innerHTML = G_chooseFilter;
		tomval_EnableDisableForm(true);
	}
}

function tomval_StateChanged3() {
	if (tomval_xmlHttp.readyState === 4) {
	    tomval_EnableDisableForm(true);
		if (tomval_xmlHttp.status === 200) {
			//document.getElementById('lesson_info').innerHTML = tomval_xmlHttp.responseText;
			if (hintObject != null) {
			    showhint(tomval_xmlHttp.responseText, hintObject, null, '', true);
			}
		} else {
			//document.getElementById('lesson_info').innerHTML = "Error while getting Ajax response.";
			if (hintObject != null) {
			    showhint("Error while getting Ajax response.", hintObject, null, '', true);
			}
		}
	}
}

function tomval_EnableDisableForm(enabled) {
	document.getElementById('btn_marks_get').disabled = !enabled;
	document.getElementById('combo_am').disabled = !enabled;
	if (document.getElementById('combo_sem'))
	{
		document.getElementById('combo_sem').disabled = !enabled;
	}
}

function tomval_AjaxCmd(cmd, token, lessonId, hintObj) {
	// Ar palaikomas Ajax?
	if (tomval_xmlHttp === null) {
		return;
	}
	// Ar komanda yra tinkama?
	if (cmd !== 'getMarksTable' && cmd !== 'getSemesters' && cmd !== 'getLessonInfo' && cmd !== 'getNotes') {
		return;
	}
	// Ar šiuo metu nevyksta kitas kreipimasis
	if (!document.getElementById('btn_marks_get') || document.getElementById('btn_marks_get').disabled) {
		return;
	}

	if (cmd === 'getMarksTable' && (!document.getElementById('combo_sem') || document.getElementById('combo_sem').value === 'choose' || document.getElementById('combo_am').value === 'choose'))
	{
		return;
	}

	tomval_EnableDisableForm(false);
	// Atšaukiame pradėtus kreipinius
	if (tomval_xmlHttp.readyState !== 0) {
		tomval_xmlHttp.abort();
	}
	var url = "";
	var currentDate = new Date();
	var timeStamp = currentDate.getTime();
	hintObject = null;

	switch (cmd) {
		case 'getMarksTable':
		document.getElementById('marks_table').innerHTML = G_loadingMarks;
		//document.getElementById('lesson_info').innerHTML = G_LessonInfo;
		url += "marks.php";
		url += "?time=";
		url += timeStamp;
		url += "&token=";
		url += token;
		url += "&semester=";
		url += document.getElementById('combo_sem').value;
		url += "&alldays=";
		url += document.getElementById('ch_alldays').checked ? "1" : "0";
		url += "&final=";
		url += lessonId;
		tomval_xmlHttp.onreadystatechange = tomval_StateChanged;
		break;
		case 'getSemesters':
		document.getElementById('marks_table').innerHTML = G_loadingSemesters;
		//document.getElementById('lesson_info').innerHTML = G_LessonInfo;
		url += "semesters.php";
		url += "?time=";
		url += timeStamp;
		url += "&token=";
		url += token;
		url += "&am=";
		url += document.getElementById('combo_am').value;
		url += "&page=";
		url += lessonId;
		tomval_xmlHttp.onreadystatechange = tomval_StateChanged2;
		break;
		case 'getLessonInfo':
		hintObject = hintObj;
		//document.getElementById('lesson_info').innerHTML = G_loadingLessonInfo;
		url += "lessoninfo.php";
		url += "?time=";
		url += timeStamp;
		url += "&token=";
		url += token;
		url += "&id=";
		url += lessonId;
		tomval_xmlHttp.onreadystatechange = tomval_StateChanged3;
		break;
		case 'getNotes':
		document.getElementById('marks_table').innerHTML = G_loadingSemesters;
		url += "notes.php";
		url += "?time=";
		url += timeStamp;
		url += "&token=";
		url += token;
		tomval_xmlHttp.onreadystatechange = tomval_StateChanged;
		break;
	}

	tomval_xmlHttp.open("GET", url, true);
	tomval_xmlHttp.send(url);
}

function tomval_GetXmlHttpObject() {
	try {
		// Firefox, Opera 8.0+, Safari
		tomval_xmlHttp = new XMLHttpRequest();
	} catch (e1) {
		// Internet Explorer
		try {
			tomval_xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e2) {
			try {
				tomval_xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e3) {
				alert("Your browser does not support AJAX!");
			}
		}
	}
}

tomval_GetXmlHttpObject();