/*
<ChangeLog>
 <Versions>
   <Version> 
   <Version>1.1</Version> 
   <DateTime>16.3.2009 19:35:42</DateTime>
   <Author>Marek Skotnica</Author> 
   <Description>Nova funkce pro usnadneni pridavani window onloadove udalosti. Funkce pro vytvarereni query stringu.</Description> 
  </Version> 
  <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](); } );
	    }
    } , 
    
    addOnLoad : function(fn){
        ///<summary>Add event window onload</summary>
        ///<param name="fn" type = "function">Function we want to attach.</param>
        this.addEvent(window, "load", 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 = '';
	    }
    }, 
    
    enterPressed : function(event) {
      return (event.keyCode ? event.keyCode : event.which ? event.which : event.charCode) == 13;
    }, 
    
    buildUrl : function (urlBase, valuePairArray) {
        ///<summary>Build URL with query string</summary>
        ///<param name="urlBase" type = "string">Base url. Like http://www.karsa.cz/</param>
        ///<param name="valuePairArray" type = "ValuePairArray">Array of ValuePair type witch is located in Karsa.js</param>
        ///<returns type="string">Url with query string</returns>
        var result = urlBase;
        if(valuePairArray.length>0){
            result += '?' + valuePairArray[0].toString();
        }
        for(var i = 1;i<valuePairArray.length;i++){
                if(valuePairArray[i].value!=''){
                    result += '&' + valuePairArray[i].toString();
                }
        }
        return result;
    }

}

