jQuery.fn.extend({ 
    disableSelection : function() { 
        this.each(function() { 
            this.onselectstart = function() {
                return false;
            }; 
            this.unselectable = "on"; 
            jQuery(this).css('-moz-user-select', 'none'); 
        }); 
    },
    enableSelection : function() { 
        this.each(function() { 
            this.onselectstart = function() {}; 
            this.unselectable = "off"; 
            jQuery(this).css('-moz-user-select', 'auto'); 
        }); 
    },
    slideover: function() {
        var contW = $(this).width();
        var elW = 0;
        $("li",this).each(function(){
            elW += $(this).outerWidth();
        });
        $(this).mousemove(function(event){
            var contL = $(this).offset().left;
            var mX = event.pageX - contL;
            var offsetL = -parseInt(mX/contW*(elW-contW));
//            $("ul",this).stop().animate({left: offsetL}, 300);
            $("ul",this).offset({left:offsetL+contL});
        });
    }
});
jQuery.extend({
  getUrlVars: function(){
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
    }
    return vars;
  },
  getUrlVar: function(name){
    return jQuery.getUrlVars()[name];
  }
});
$.fn.serializeObject = function()
{
   var o = {};
   var a = this.serializeArray();
   $.each(a, function() {
       if (o[this.name]) {
           if (!o[this.name].push) {
               o[this.name] = [o[this.name]];
           }
           o[this.name].push(this.value || '');
       } else {
           o[this.name] = this.value || '';
       }
   });
   return o;
};

