﻿//修改定时执行函数，附加参数，带callback(返回值)
var _st = window.setTimeout;
 window.setTimeout = function(fRef, mDelay,callback) {
     if(typeof fRef == 'function'){
        if(typeof callback == 'function')
        {
            var argu = Array.prototype.slice.call(arguments,3);
            var f = (function(){
            var _rev = fRef.apply(null, argu); 
                 callback(_rev);
            });
        }
        else
        {
            var argu = Array.prototype.slice.call(arguments,2);
            var f = (function(){
                fRef.apply(null, argu); 
            });
        }
        return _st(f, mDelay);
    }
    return _st(fRef,mDelay);
}
//修改重复执行函数，附加参数，带callback(返回值)
var _int = window.setInterval;
window.setInterval = function(fRef, mDelay,callback) {
    if(typeof fRef == 'function'){
        if(typeof callback == 'function')
        {
            var argu = Array.prototype.slice.call(arguments,3);
            var f = (function(){
            var _rev = fRef.apply(null, argu); 
                 callback(_rev);
            });
        }
        else
        {
            var argu = Array.prototype.slice.call(arguments,2);
            var f = (function(){
                fRef.apply(null, argu); 
            });
        }
        return _int(f, mDelay);
    }
    return _int(fRef,mDelay);
}
/*计数执行函数*/
//callback 执行函数
//s 秒数
//text 显示文本
$.fn.counter = function(callback,s,text)
{
    _msg = $(this);
    if(s==0)
    {
        callback();
        return ;
    }
    _s = s*1000;
    _text = text;
    _callback = callback;
    
    _exeCount = function()
    {
        if(_s>0)
        {
            _msg.html((_s/1000)+'秒后<strong style="cursor:pointer;" onclick="_callback();clearTimeout(timer);">'+text+'</strong>');
            _s=_s-1000;
            timer = window.setTimeout("_exeCount()",1000);
        }
        else
        {
            _msg.html('执行中...');
            callback();
            clearTimeout(timer);
         }

    }
    timer = window.setTimeout("_exeCount()",1);
}