/**
* @package GS_Common
* @copyright GuidoSoft 2006
* @author Kovacs Guido
* @internal Altalanos JS fuggvenyek.
* @version 1.1
*/

/*-------------------------------------------------------------------------------------------------*/

/**
* Egy adott class-u tag-ek tombjet adja vissza.
*
* strClass (string):	A keresett osztaly neve
* strTag (string):		A HTML tag fajtaja (opcionalis, alapertelmezetten '*')
* objContElm (object):	A szulo (kontener) objektum (opcionalis, alapertelmezetten a document objektum)
*
* Tamogatja a tobb class egyuttes kereseset ("osztaly1 osztaly2") illetve ugyenezeknek
* a vagylagos formajat is ("osztaly1|osztaly2").
*/
function getElementsByClassName(strClass, strTag, objContElm) {
	strTag = strTag || "*";
	objContElm = objContElm || document;
	var objColl = (strTag == '*' && document.all && !window.opera) ? document.all : objContElm.getElementsByTagName(strTag);
	var arr = new Array();
	var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
	var arrClass = strClass.split(delim);
	for (var i=0; i<objColl.length; ++i) {
		var arrObjClass = objColl[i].className.split(' ');
		if (delim==' ' && arrClass.length>arrObjClass.length) {continue;}
		var c=0;
		comparisonLoop:
		for (var k = 0, l = arrObjClass.length; k < l; k++) {
			for (var m = 0, n = arrClass.length; m < n; m++) {
				if (arrClass[m] == arrObjClass[k]) {c++;}
				if ((delim=='|' && c==1) || (delim==' ' && c==arrClass.length)) {
					arr.push(objColl[i]);
					break comparisonLoop;
				}
			}
		}
	}
	return arr;
}

/*-------------------------------------------------------------------------------------------------*/

/**
* A megadott azonositoju objektuma(i)t adja vissza.
* Egy azonosito altal jelzett objektumok, tobb argumentum eseten az azonositok altal meghatarozott
* objektumokat tartalmazo tombot ad vissza.
*
* @param string	Az objektum azonosito(k) (tetszoleges szamu lehet)
* @return object or array
*/
function $()
{
	var elements = new Array();

	for (var i=0; i<arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string') {element = document.getElementById(element);}
		if (arguments.length == 1) {return element;}
		elements.push(element);
	}
	return (elements.length > 0) ? elements : false;
}

/*-------------------------------------------------------------------------------------------------*/

/**
* A megadott JavaScript fajlt betolti.
*
* @param string script_filename A betöltendo script url-je (lehet relativ, vagy abszolut is!)
* @return void
*/
function include(script_filename)
{
	document.write('<'+'script');
	document.write(' type="text/javascript"');
	document.write(' src="'+script_filename+'">');
	document.write('</'+'script'+'>');
}

/*-------------------------------------------------------------------------------------------------*/

/**
* Cookie letrehozasa.
* Ha nem adunk meg ervenyesseget (nap), akkor un. session cookie lesz, azaz a bongeszo bezarasaig el.
* Ha erteket sem adunk meg, akkor toroljuk a szoban forgo cookie-t.
*
* @param string name	A cookie neve
* @param string value	A cookie tartalma
* @param int days		A cookie ervenyessege
* @return bool
*/
function createCookie(name, value, days)
{
	var date, expires;

	if (typeof name == 'undefined') {return false;}
	if (days) {
		date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000)); 
		expires = "; expires="+date.toGMTString();
	}
	else {expires = "";}
	document.cookie = name+"="+value+expires+"; path=/";
	return true;
}

/*-------------------------------------------------------------------------------------------------*/

/**
* Cookie tartalmanak beolvasasa.
*
* @param string name A kert cookie neve
* @return string or bool
*/
function readCookie(name)
{
	var nameEQ, ca, i, c;

	nameEQ = name + "=";
	ca = document.cookie.split(';');
	for (i=0; i<ca.length; i++) {
		c = ca[i];
		while (c.charAt(0) == ' ') {c = c.substring(1, c.length);}
		if (c.indexOf(nameEQ) == 0) {return c.substring(nameEQ.length, c.length);}
	}
	return false;
}

/*-------------------------------------------------------------------------------------------------*/

