// 2009 - Severin Fink

(function($)
{  
    // focus: value='' and blur value=start
    $.gepost=function(url,get,func,post)
    {
		if ( get && typeof get !== "string" )
			get = jQuery.param(get);
			
         $.ajax({
           type: "POST",
           url: url+'?'+get,
           data:post,
           success:func
         });

    };
    $.gepostJSON=function(url,get,func,post)
    {
		if ( get && typeof get !== "string" )
			get = jQuery.param(get);
			
         $.ajax({
           type: "POST",
           url: url+'?'+get,
           data:post,
           dataType:"json",
           success:func
         });

    };    
    $.fn.blurAndFocus=function()
    {
       $(this).focus(function()
       {
           if(!$(this).data("value") || this.value==$(this).data("value"))
           {
            $(this).data("value",this.value);    
            this.value="";
           } 
            
       }).blur(function()
       {
           if(!this.value.length)
            this.value=$(this).data("value");    
       });
       return this;
    };
    $.fn.dropDown=function(down,eClass,eName)
    {
        
        $(this).click(function()
        {
               if($.currentDrop && $.currentDrop.ob!=this) 
               {
                   $($.currentDrop.down).toggle();
                   $($.currentDrop.eClass).toggleClass($.currentDrop.eName);  
                   $.currentDrop=null;                
               }
           $(down).toggle();
           $(eClass).toggleClass(eName);
 
        });
        $(this).add(down).hover(function()
        {
           if($.dropTimer) 
              $.dropTimer=clearTimeout($.dropTimer);            
        },
        function()
        {
           if($(down).is(":visible"))
           {
               if($.dropTimer)
                  $.dropTimer=clearTimeout($.dropTimer); 
                  
               $.currentDrop={ob:this,down:down,eClass:eClass,eName:eName};   
               $.dropTimer=setTimeout(function()
               { 
                   if($.currentDrop) 
                   {
                       $($.currentDrop.down).toggle();
                       $($.currentDrop.eClass).toggleClass($.currentDrop.eName);  
                       $.currentDrop=null;                
                   }
               },1000); 
           }
        });
       return this;
    };
    $.fn.input=
    {
      'mouse':function(e) 
      {  
        var mouse={'x':0,'y':0};
              if (document.all)
              {
                if (document.documentElement && document.documentElement.scrollTop)
                {
                	mouse.x=e.clientX+document.documentElement.scrollLeft;
                	mouse.y=e.clientY+document.documentElement.scrollTop;
                }
                else if (document.body)
                {
                	mouse.x=e.clientX+document.body.scrollLeft;
                	mouse.y=e.clientY+document.body.scrollTop;
                }     
              } 
              else                                    
              {
               mouse.x=e.pageX;
               mouse.y=e.pageY;               
              }  
       return mouse;
      }
    };
    $.fn.scrollTo=function(add)
    {
     var pos=$(this).getPos();
     window.scroll(0,pos.top+add);
       return $(this); 
    };
    $.fn.getPos=function()
    {
       var pos = {'left':0,'top':0};
       var parentObj=this[0];
       pos.left=parentObj.offsetLeft;
       pos.top=parentObj.offsetTop;   
          
       while(parentObj=parentObj.offsetParent ) 
       {
    
       pos.left+=parentObj.offsetLeft;
       pos.top+=parentObj.offsetTop;
          
       }
      
       return pos;   
    };
    $.object=
    {
        clone:function(ob)
        {
        	var retObj = new Object();
        	if (typeof(dupeObj) == 'object') {
        		if (typeof(dupeObj.length) != 'undefined')
        			var retObj = new Array();
        		for (var objInd in dupeObj) {
        			if (typeof(dupeObj[objInd]) == 'object') {
        				retObj[objInd] = dupeObj[objInd];
        			} else if (typeof(dupeObj[objInd]) == 'string') {
        				retObj[objInd] = dupeObj[objInd];
        			} else if (typeof(dupeObj[objInd]) == 'number') {
        				retObj[objInd] = dupeObj[objInd];
        			} else if (typeof(dupeObj[objInd]) == 'boolean') {
        				((dupeObj[objInd] == true) ? retObj[objInd] = true : retObj[objInd] = false);
        			}
        		}
        	}
        	return retObj;            
            
        }
    };
})(jQuery); 