// Common functions

function getCachedElement(elementID) {
	return document.getElementById(elementID);
}

/*
function getFieldValue(aID) {
	var objField = document.getElementById(aID);
	if (objField != null) return escape(objField.value);
	 else return '';
}
*/

function extractValue(dataString, startPos) {
	if (startPos > 0) dataString = dataString.substring(startPos);
	var dataStringEnd = dataString.lastIndexOf('";');
	if (dataStringEnd > 0) dataString = dataString.substring(0, dataStringEnd)
	 else dataString = '';
	return dataString;
}

function getResponseBody(responseHtml) {
	var bodyStart = responseHtml.indexOf('<body>');
	var bodyEnd = responseHtml.indexOf('</body>');
	if (bodyStart > 0 && bodyEnd > bodyStart) responseHtml = responseHtml.substring(bodyStart+6, bodyEnd);
	return responseHtml;
}

// dodana za projekt www.arkada-int.si
function getReturnedValue(valueID, responseLines) {
	if (valueID == null || responseLines == null) return '';
	valueID += '="';
	var valueIDlength = valueID.length;
	for (var i=0; i<responseLines.length; i++) {
		if (responseLines[i].substring(0, valueIDlength) == valueID) return extractValue(responseLines[i], valueIDlength);
	}
	return '';	// Tole je treba mal bolj razmislit in pretestirat... Preveri, ce null evaluates isto kot Bool(false) in Int(0) ali ne... Poleg tega je verjetno ni pametneje, da vrnemo prazen string (''), lahko pa dodamo še en optional parameter defaultValue in ce vrednost ne obstaja, vrnemo njega.
				// Ko tole spreminjaš, preveri tudi vse vrstice po strani, ki uporabljajo odgovor te funkcije; ce ga bodo tudi po novem pravilno razumele...
}

// dodana: na HermesNovi imam isto funkcijo, vendar izven ajax.js
function responseStatus(responseLines, expectedResult) {
	var aStatus = getReturnedValue('STATUS', responseLines);
	if (aStatus == expectedResult) return true;
	 else return false;
}

// dodana v projektu NK-Olimpija.si
function isArray(aObject) {
	if (aObject == null) return false;
	return (aObject.constructor.toString().indexOf("Array") == -1)?false:true;
}

function ajaxObject(url, callbackFunction) {
	var objAjax = this;
	this.updating = false;
	this.abort = function() {
		if (objAjax.updating) {
			objAjax.updating = false;
			objAjax.AJAX.abort();
			objAjax.AJAX = null;
		}
	}
	this.update = function(passData, postMethod, errorIfBusy) {
		if (objAjax.updating) {
			if (errorIfBusy != null) alert(errorIfBusy);
			return false;
		}
		objAjax.AJAX = null;
		if (window.XMLHttpRequest) objAjax.AJAX = new XMLHttpRequest();
		 else objAjax.AJAX = new ActiveXObject("Microsoft.XMLHTTP");
		if (objAjax.AJAX == null) return false;
		 else {
			objAjax.AJAX.onreadystatechange = function() {
				if (objAjax.AJAX.readyState == 4) {
					objAjax.updating = false;
					objAjax.callback(objAjax.AJAX.responseText, objAjax.AJAX.status, objAjax.AJAX.responseXML);
					objAjax.AJAX = null;
				}
			}
			objAjax.updating = new Date();
			if (isArray(passData)) passData = this.passDataToString(passData);
			var uri=urlCall+'?ajaxCounter='+objAjax.updating.getTime();
			if (/post/i.test(postMethod)) {
				objAjax.AJAX.open("POST", uri, true);
				objAjax.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				objAjax.AJAX.setRequestHeader("Content-Length", passData.length);
				objAjax.AJAX.send(passData);
			}
			else {
				objAjax.AJAX.open("GET", uri+'&'+passData, true);
				objAjax.AJAX.send(null);
			}
			return true;
		 }
	}
	this.passDataToString = function (pvPairs) {		// dodano v projekt NK-Olimpija.si
		var postData = '';
		for (var param in pvPairs) {
			if (postData != '') postData += '&';
			postData += param + '=' + encodeURIComponent(pvPairs[param]);
		}
		return postData;
	}


	var urlCall = url;
	this.callback = callbackFunction || function () { };
}

//////////// Submenu   ////////////////////////////////////

/*
Zaenkrat disabled, ker rešujemo z CSS style div.smi1:hover
function hSmi(itemID, newState) {
	var objItemDiv = document.getElementById('smi' + itemID);
	if (objItemDiv != null) {
		if (newState == 1) objItemDiv.style.backgroundColor = '#ffffff';
		 else objItemDiv.style.backgroundColor = 'transparent';
	}
}
*/

function toggleSubmenu(menuID) {
	var objSubmenuContainer = getCachedElement('subMenu');
	if (objSubmenuContainer != null) objSubmenuContainer.style.height = 'auto';

	var objSubmenuDiv = getCachedElement('smi'+menuID+'m');
	if (objSubmenuDiv != null) {
		if (objSubmenuDiv.style.display == 'block') objSubmenuDiv.style.display = 'none';
		 else objSubmenuDiv.style.display = 'block';
	}
	adjustMainframeLayers();
// TO DO: realign Layers...
}

//////////// News List ////////////////////////////////////

function hltNewsBlock(blockID, newState) {
	var objNewsBlock = getCachedElement('newsBox'+blockID);
	if (!objNewsBlock) return false;
	if (newState == 1) objNewsBlock.className = 'newsBoxActive';
	 else objNewsBlock.className = 'newsBox';
}

//////////// Ostalo  //////////////////////////////////////

function hltDevider(deviderID, newState) {
	var objDeviderImg = getCachedElement('deviderImg_'+deviderID);
	if (!objDeviderImg ) return;
	if (newState == 1) objDeviderImg.src='/img/devider-'+deviderID+'-a.gif';
	 else objDeviderImg.src='/img/devider-'+deviderID+'.gif';
}


var imglinkArrow = new Image(13, 7);
imglinkArrow.src = '/img/link.gif';
var imglinkArrow_active = new Image(13, 7);
imglinkArrow_active.src = '/img/link-active.gif';
var imglinkArrowGreen = new Image(13, 7);
imglinkArrowGreen.src = '/img/link-green.gif';
var imglinkArrowGreen_active = new Image(13, 7);
imglinkArrowGreen_active.src = '/img/link-green-active.gif';

function hLink(linkIndex, newState) {
	var objLinkArrow = document.getElementById('linkArrow'+linkIndex);
	if (!objLinkArrow) return false;
	if (objLinkArrow.src.indexOf('link-green.gif') != -1 || objLinkArrow.src.indexOf('link-green-active.gif') != -1) {
		if (newState == 1) objLinkArrow.src = imglinkArrowGreen_active.src;
		 else objLinkArrow.src = imglinkArrowGreen.src;
	}
	 else {
		if (newState == 1) objLinkArrow.src = imglinkArrow_active.src;
		 else objLinkArrow.src = imglinkArrow.src;
	 }
}