Function.prototype.bind = function(scope) {
  var _function = this;
  
  return function() {
    return _function.apply(scope, arguments);
  }
}

function addLoadEvent(func) {
	if(document.readyState=='complete'){
		func();
	} else {
	  var oldonload = window.onload;
  	if (typeof window.onload != 'function') {
  	  window.onload = func;
  	} else {
  	  window.onload = function() {
  	    if (oldonload) {
  	      oldonload();
  	    }
  	    func();
  	  }
  	}
  }
}

function addClass($el, $class) {
 if(!$el){
  return false;
 }
	$c = $el.className;
	if (($c === null) || ($c === '')) {
		$el.className = $class;
	} else if ($c.indexOf($class) === -1) {
		$el.className = $c + ' ' + $class;
	}
}

function removeClass($el, $class) {
 if(!$el){
  return false;
 }
	$c = $el.className;
	if (($c !== null) && ($c !== '') && ($c.indexOf($class) !== -1)) {
		if ($c.indexOf($class) === 0) $el.className = $c.replace($class, '');
                else $el.className = $c.replace(' ' + $class, ''); 
	}
}

