/*
<ChangeLog>
 <Versions>
   <Version> 
   <Version>1.1</Version> 
   <DateTime>9.1.2009 19:29:42</DateTime>
   <Author>Marek Skotnica</Author> 
   <Description>Dodelane zkratkz na funkce getElementsByName a getElemensByTagName.</Description> 
  </Version> 
  <Version> 
  <Version> 
   <Version>1.0</Version> 
   <DateTime>17.12.2008 17:29:42</DateTime>
   <Author>Marek Skotnica</Author> 
   <Description>Vytvoren zakladni navrh. Potreba dodelat zkratky na funkce getElementsByName a getElemensByTagName. Nepouzivat Karsa.GetObjById, ale $(elementname)</Description> 
  </Version> 
 </Versions>
</ChangeLog>
*/


var Karsa = {
    GetObjById: function(id) {
    ///<summary>multi-browser get element by id</summary>
    ///<param name="id">ID string of element</param>
    ///<returns type="domElement">Dom object with ID or null</returns>
            if (document.getElementById)
                return document.getElementById(id);
            else if (document.all)
                return document.all[id];
            else if (document.layers)
                return document.layers[id];
            return null;
    }
}

function $() {
    ///<summary>Multi-browser get element by id. Example: $('divID', domElement);</summary>
    ///<param type="string" parameterArray="true">IDs string of element.</param>
    ///<returns type="domElement">DOM object or array of DOM objects.</returns>
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = Karsa.GetObjById(element);
	    if (arguments.length == 1)
		    return Karsa.GetObjById(arguments[i]);
		elements.push(element);
	}
    return elements;

}

function $$(searchClass,node,tag) {
    ///<summary>Get group of elements by class</summary>
    ///<param name="searchClass" type="string">String of search class</param>
    ///<param name="node" type="node" optional = "true" >Node - document is default</param>
    ///<param name="tag" type="string" optional = "true" >Tag - '*' is default</param>
    ///<returns elementType="ArrayElementType">Dom objects with class</returns>
    var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function $$$(elementName) {
    ///<summary>Get group of elements by name</summary>
    ///<param name="elementName" type="string">String of search class</param>
    ///<returns elementType="ArrayElementType">Dom objects with class</returns>
    return document.getElementsByName(elementName);
}

function $$$$(tagName) {
    ///<summary>Get group of elements by tagName</summary>
    ///<param name="tagName" type="string">String of search class</param>
    ///<returns elementType="ArrayElementType">Dom objects with class</returns>
    return document.getElementsByTagName(tagName);
}