/*
<ChangeLog>
 <Versions>
  <Version> 
   <Version>1.0</Version> 
   <DateTime>17.12.2008 17:35:42</DateTime>
   <Author>Marek Skotnica</Author> 
   <Description>Prorotypy beznych a pouzitelnych funkci. AddEvent a Remove event jsou nejefektivnejsi co se daji sehnat. Toggle je jednoduche prepnuti visibility objektu.</Description> 
  </Version> 
 </Versions>
</ChangeLog>
*/

var KarsaCommon = { 
///<summary>Common JS functions.</summary>
    addEvent : function( obj, type, fn )
    {
        ///<summary>Add event to domElement</summary>
        ///<param name="obj" type = "domElement">Object we want assign event to.</param>
        ///<param name="type" type = "string">Type of event. Ex. "click", "mouseover", "load", "submit", ...</param>
        ///<param name="fn" type = "function">Function we want to attach.</param>
	    if (obj.addEventListener)
		    obj.addEventListener( type, fn, false );
	    else if (obj.attachEvent)
	    {
		    obj["e"+type+fn] = fn;
		    obj.attachEvent( "on"+type, function() { obj["e"+type+fn](); } );
	    }
    } ,

    removeEvent : function( obj, type, fn )
    {
        ///<summary>Remove event from domElement</summary>
        ///<param name="obj" type = "domElement">Object we want to remove event from.</param>
        ///<param name="type" type = "string">Type of event. Ex. "click", "mouseover", "load", "submit", ...</param>
        ///<param name="fn" type = "function">Function we want to remove.</param>
	    if (obj.removeEventListener)
		    obj.removeEventListener( type, fn, false );
	    else if (obj.detachEvent)
	    {
		    obj.detachEvent( "on"+type, obj["e"+type+fn] );
		    obj["e"+type+fn] = null;
	    }
    } ,

    toggle : function (obj) {
        ///<summary>Show or hide object.</summary>
        ///<param name="obj" type = "domElement">Object we want to hide or show</param>
	    var el = document.getElementById(obj);
	    if ( el.style.display != 'none' ) {
		    el.style.display = 'none';
	    }
	    else {
		    el.style.display = '';
	    }
    }

}


