Function.prototype.bind = function(arguments){ 
 if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
    var __method = this, args = jQuery.makeArray(arguments), object = args.shift();
    return function() {
        return __method.apply(object, args.concat( jQuery.makeArray(arguments)));
    }
}
function createCookie(name, value, days){
    var expires = "";
    if(isNumber(days)){
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        expires = "; expires="+date.toGMTString();
    }
    document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}
function deleteCookie(name) {
    createCookie(name,"",-1);
}
function isNull(object){
    return object == null || object == undefined;
}
function isUndefined(object){
    return object == undefined;
}
function isArray(object){
    if (isNull(object) || object.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}
function isObject(object){
    if (isNull(object) || object.constructor.toString().indexOf("Object") == -1)
      return false;
   else
      return true;
}
function isNumber(object){
    return !isNull(object) && (/^-{0,1}\d*\.{0,1}\d+$/.test(object.toString()));
}

