﻿/**
  * elmInternals.js
  * Michal Gron, (c) e-learnmedia.sk
  */

function getURLParam(aParamName)
{
	var tReturn = "";
	var tHref = window.location.href;

	if (tHref.indexOf('?') > -1 ) 
	{
		var tTempQueryString = tHref.substr(tHref.indexOf('?') + 1);
		var tQueryString = tTempQueryString.split("&");

		var tCmpString = aParamName + "=";
		var tCmpLength = tCmpString.length;

		for(var a = 0; a < tQueryString.length; a++)
		{
			if (tQueryString[a].substr(0, tCmpLength) == tCmpString)
			{
				var tParam = tQueryString[a].split("=");

				tReturn = tParam[1];
				break;
			}
		}
	}

	return tReturn;
}

function elm_openWindow(aURL,aName,aObject)
{
	var tURL = (aURL != undefined) ? aURL : "application.html";
	var tName = (aName != undefined) ? aName : "blank";
	var tOptions = (aObject != undefined) ? aObject : ''+
		'fullscreen = 0' +
		',width = 640' +
		',height = 480' +
		',left = ' + (screen.width - 640)/2 +
		',top = ' + (screen.height - 480)/2 +
		',location = 0' +
		',menubar = 0' +
		',toolbar = 0' +
		',resizable = 1' +
		',scrollbars = 1' +
		',status = 1' +
		'';

	tNewDoc = window.open(tURL,tName,tOptions);
}

/* source: http://www.dynamicdrive.com/dynamicindex17/iframessi_dev.htm */
function resizeIframe()
{
	var tFrames = new Array();

	for (i = 0; i < tIframes.length; i++)
	{
		if (document.getElementById)
		{
			tFrames[tFrames.length] = document.getElementById(tIframes[i]);
			if (tFrames[i] && !window.opera)
			{
				tFrames[i].style.display = "block";
				if (tFrames[i].contentDocument && tFrames[i].contentDocument.body.offsetHeight)
				{ //ns6
					tFrames[i].height = tFrames[i].contentDocument.body.offsetHeight;
				} else if (tFrames[i].Document && tFrames[i].Document.body.scrollHeight)
				{ //ie5+
					tFrames[i].height = tFrames[i].Document.body.scrollHeight;
				}
			}
		}
	}
	//lower end browsers
	if((document.all || document.getElementById) && tIframeHide == "no") {
		var tempobj = document.all? document.all[tIframes[i]] : document.getElementById(tIframes[i]);
			tempobj.style.display="block";
	}
}

function clearCharacters(aString)
{
	var tString = '';
		tString = aString.replace(/č/g,'c');
		tString = tString.replace(/ľ/g,'l');
		tString = tString.replace(/ť/g,'t');
		tString = tString.replace(/š/g,'s');

	return tString;
}

function addDivElement(aParent,aInnerHTML,aClear) {

	if(aClear) {
		removeElements(aParent);
	}

	var e = document.getElementById(aParent);
	var tDiv = document.createElement('div');
		tDiv.innerHTML = aInnerHTML;
		
	return e.appendChild(tDiv);
}

function addDivElementWithId(aParent,aInnerHTML,aClear,aId)
{
	var tNewElement = addDivElement(aParent, aInnerHTML, aClear)
		tNewElement.setAttribute('id',aId);
}

function removeElements(aParent)
{
	var tE = document.getElementById(aParent);
	
	for(var a = 0; a < tE.childNodes.length; a++) {
		tE.removeChild(tE.childNodes[a]);
	}
};

function setElementsVisible(aElementNames,aTrigger)
{
	var tArgs = [];
		tArgs = aElementNames;
		
	for(var a = 0; a < tArgs.length; a++) {
		var tE = document.getElementById(tArgs[a]);
			tE.style.display = (aTrigger ? 'block' : 'none');
	}
}

function initializeTips()
{
	var as = [];
	$$('.tips a, .tip').each(function(a){
	  if (a.getAttribute('title')) as.push(a);
	});

	var tTips = new Tips(as, {
	  maxTitleChars: 25,
	  onShow: function(tip){
		tip.setStyle('opacity', '0.8');
	  },
	  onHide: function(tip){
		tip.setStyle('visibility', 'hidden');
	  },
	  offsets: {'x': -10, 'y': 15}
	});
}

elmForm = function() {};
elmForm.prototype.getRadioChecked = function(aForm)
{
	for (var a = 0; a < aForm.length; a++) {
		if (aForm[a].checked) {
			return aForm[a].value;
		}
	}
	return null;
};
elmForm.prototype.getCheckBoxChecked = function(aForm)
{
	var tCheckedArray = [];

	for (var a = 0; a < aForm.elements.length; a++)
	{
		//can be a submit button
		if(aForm.elements[a].type != 'checkbox') {
			continue;
		}
		if(aForm.elements[a].name == 'master' && aForm.elements[a].checked) {
			return [aForm.elements[a].value];
		}
		if (aForm.elements[a].checked) {
			tCheckedArray.push(aForm.elements[a].value);
		}
	}

	return (tCheckedArray.length > 0) ? tCheckedArray : null;
};
elmForm.prototype.onFormEvent = function(o){};
elmForm.prototype.trackCheckBoxForm = function(aForm)
{
	for(var a = 0; a < aForm.elements.length; a++) {
		aForm.elements[a].parent = aForm;
		if(aForm.elements[a].name == 'master') {
			aForm.elements[a].onclick = this.checkMasterEvent;
		} else {
			aForm.elements[a].onclick = this.checkAllSlavesEvent;
		}
	}
};
//scope is on element not on elmForm
elmForm.prototype.checkMasterEvent = function(e)
{
	for(var a = 0; a < this.parent.elements.length; a++) {
		if(this.parent.elements[a] != this) {
			this.parent.elements[a].checked = (this.checked);
		}
	}
};
//scope is on element not on elmForm
elmForm.prototype.checkAllSlavesEvent = function(e)
{
	var tCheckedAllSlaves = true;

	for(var a = 0; a < this.parent.elements.length; a++) {
		if(this.parent.elements[a].name == 'master') {
			this.parent.elements[a].checked = false;
		}
		if(this.parent.elements[a].name == 'slave' && !this.parent.elements[a].checked) {
			tCheckedAllSlaves = false;
		}
	}

	if(tCheckedAllSlaves) {
		for(var a = 0; a < this.parent.elements.length; a++) {
			this.parent.elements[a].checked = true;
		}
	}
};
elmForm.prototype.checkAll = function(aForm,aSwitch)
{
	for(var a = 0; a < aForm.elemets.length;a++) {
		aForm.elements[a].checked = aSwitch;
	}
};

function printPage()
{
		window.print();
}
