下面的代码是前阵子天猫抢红包,抓猫和砸金砖的客户端代码,我做了部分注释。
/*
TMALL event code
MitchellChu采集,仅供个人研究之用
*/
(function(){
Volcano = {};
Volcano.Message = {};
KISSY.mix(Volcano.Message, KISSY.EventTarget);
//数据总线
Volcano.Bus = {
isStart: true,
isEnd: false,
timeObj: {
day: '17',
hour: '20',
minute: '12',
second: '53'
},
timeNow: 1339935173,
timeEnd: 1339938000,
timeNext: 1339984800,
timeOut: 1339941599,
hourEnd: 21,
hourStart: 10,
leftBagNum: 200000,
awardCode: '&time=1339935173&checkCode=/*hash code*/',
bagTotal: 200000,
bagCycle: 30,
detailTitleMap : {
'await' : '离开抢还有',
'nervous' : '离下一轮开抢还有',
'crazy' : '疯抢进行中',
'tomorrow': '新一轮的红包疯抢将于6月18号早上10点开始'
}
};
window['g_config'] = window.g_config || {};
window['g_config'].flhstime=0.8;
// 倒计时
Volcano.Countdown=(
function(b){
var f=window;
var g="vol-countdown";
function e(i){
if(/^\d+$/.exec(i)){return i-0}
return 0
}
function h(i){return i<10?("0"+i):(""+i)}
function c(l){
var k=l.el;
k.className=k.className+" "+g;
var j=function(m){
if(m<10){return["0",""+m]}
else{return(""+m).split("")}
};
var i=function(o){
if(o.day>0){o.hour+=o.day*24}
var m=j(o.hour);
var p=j(o.minute);
var n=j(o.second);
k.innerHTML='<span class="vol-countdown-part vol-countdown-hour"><strong class="vol-countdown-digital vol-countdown-a">'+m[0]+'</strong><strong class="vol-countdown-digital vol-countdown-b">'+m[1]+'</strong><span class="vol-countdown-unit">:</span></span><span class="vol-countdown-part vol-countdown-minute"><strong class="vol-countdown-digital vol-countdown-a">'+p[0]+'</strong><strong class="vol-countdown-digital vol-countdown-b">'+p[1]+'</strong><span class="vol-countdown-unit">:</span></span><span class="vol-countdown-part vol-countdown-second"><strong class="vol-countdown-digital vol-countdown-a">'+n[0]+'</strong><strong class="vol-countdown-digital vol-countdown-b">'+n[1]+"</strong></span>"
};
l.on("timeing",i)
}
function a(j,i){
j=b.get(j);
if(!j){return}
this.el=j;
this._options=i;
this._options.timeEnd=this._options.timeEnd||j.getAttribute("data-end")-0;
this._options.timeNow=this._options.timeNow||j.getAttribute("data-now")-0;
this._exp={};
this._timePass=0;
c(this)
}
b.augment(a,b.EventTarget,{
run:function(){
var t=this;
var u=t._options;
var p=u.timeEnd-u.timeNow;
var r=setTimeout;
var s,n,m,l;
var i=function(){
return{day:s,left:p,hour:n,minute:m,second:l,timeStr:t.date("{H}:{i}:{s}")}
};
l=p;
var q=24*60*60;
s=Math.floor(l/q);
l-=q*s;
n=Math.floor(l/3600);
l-=n*3600;
m=Math.floor(l/60);
l-=60*m;
if(p<=0){
t.fire("timeOut",i());
return
}
var k=1000;
var o=new Date().getTime();
var j=function(){
var y=i();
t.fire("timeing",y);
var B=t._exp,w,D,x,v=y.timeStr;
for(w in B){
D=B[w];
if(D.re.exec(v)){
x=D.callback;
for(var A=0,C=x.length;A<C;A++){
x[A].call(f,y)
}
}
}
if(0==p){t.fire("timeEnd",y);return}
l-=1;
p-=1;
if(-1===l&&(0<m||0<n||0<s)){l=59;m--}
if(-1===m&&(0<n||0<s)){m=59;n--}
if(-1===n&&(0<s)){n=23;s--}
t._timePass++;
o+=k;
var z=o-new Date().getTime();
r(j,z>0?z:0)
};
j()
},
date:function(m){
var j=this;
var l=j._options;
m=m||"{Y}-{m}-{d}{H}:{i}:{s}";
var i=(l.timeNow+j._timePass)*1000;
var k=new Date(i);
return m.replace(/{(\w+)}/g,function(o,n){
switch(n){
case"Y":return k.getFullYear();
case"m":return h(k.getMonth()+1);
case"d":return h(k.getDate());
case"H":return h(k.getHours());
case"i":return h(k.getMinutes());
case"s":return h(k.getSeconds())
}
})
},
when:function(i,j){
var l=i.replace(/{\w+}/g,"\\d+");
var k=this._exp[l]||{re:new RegExp(l),exp:i,callback:[]};
k.callback.push(j);
this._exp[l]=k
},
removeWhen:function(l,m){
var p=l.replace(/{\w+}/g,"\\d+");
var o=this._exp[p];
if(o&&o.callback){
if(m){
var n=[],q=o.callback;
for(var k=0,j=q.length;k<j;k++){
if(q[k]!=m){n.push(q[k])}
}
o.callback=n
}
else{o.callback=[]}
}
}
});
return a
})(KISSY);
// 抓猫的代码
Volcano.cat=(
function(f,h){
var m=f.DOM,l=f.Event,i=f.Anim;
var j=m.create('<div id="J_VolCat" class="vol-cat">');
var g=m.create('<div id="J_VolCatBody" class="vol-cat-body" style="display:none;position:absolute;">');
g.appendChild(j);
var e=null;
var a=null;
var k=null;
var c=null;
var b={
run:function(){
this.setPos();
this.show()
},
setPos:function(){
m.css(g,"top",Math.round(Math.random()*(m.viewportHeight()-120))+"px");
m.css(g,"left",Math.round(Math.random()*(m.viewportWidth()-120))+"px")
},
catched:function(){
this.hide();
Volcano.getLottery("cat",function(n){})
},
show:function(){
var n=this;
var o=m.get("#J_VolCat");
if(!o){document.body.appendChild(g)}
m.css(g,"display","block");
this.status="showing";
e=i(
"#J_VolCat",
{top:"0"},
0.3,
"easyInStrong",
function(){
clearTimeout(c);
clearTimeout(k);
c=setTimeout(function(){n.hide()},(Math.random()*3)*1000);
n.status="showed"
});//i=KISSY.Anim(...);
e.run()
},
hide:function(){
var n=this;
this.status="hiding";
e=i(
"#J_VolCat",
{top:"74px"},
0.3,
"easyOutStrong",
function(){
m.css(g,"display","none");
clearTimeout(c);
clearTimeout(k);
n.afterHide&&n.afterHide();
n.status="hided"
}
);
e.run()
},
start:function(n){
n=n||60;
n=n*1000;
var o=this;
var q=2000;
var p=1;
o.run();
o.afterHide=function(){
k=setTimeout(function(){
if(o.status=="hided"){o.run()}
},(Math.random()*1)*1000)
};
a=setInterval(function(){
n-=q;
if(n<=2000){
delete o.afterHide;
clearInterval(a)
}
},2000)
},
stop:function(){
if(e){e.stop()}
clearInterval(a);
clearTimeout(c);
clearTimeout(k);
m.css(g,"display","none")
},
init:function(){
var n=this;
l.on(g,"click",function(){n.catched()})// 监听猫被抓的事件:click
}
};
b.init();
return b
})(KISSY,window);
var Volcano=Volcano||{}; //初始化Volcano
Volcano.rate=(window.g_config&&window.g_config.flhstime)||1;
Volcano.userTimes=0;
Volcano.mood={
value:0,
moodMap:["yeah","normal","sad","shock","angry","thunder"],
msgMap:["success",
"\u672a\u62bd\u4e2d\u7ea2\u5305\u56fa\u7136\u53ef\u60dc\uff0c\u4f46\u501f\u6b64\u65f6\u673a\u4fee\u70bc\u4fee\u70bc\u6027\u60c5\u662f\u6781\u597d\u7684!",
"\u7ea2\u5305\u662f\u6211\u4eec\u7684\uff0c\u4e5f\u662f\u4f60\u4eec\u7684\uff0c\u4f46\u5f52\u6839\u7ed3\u5e95\u662f\u4f60\u4eec\u7684!",
"\u53d1\u751f\u8fd9\u79cd\u4e8b\u60c5\uff0c\u5927\u5bb6\u90fd\u4e0d\u60f3\u7684\uff0c\u505a\u4eba\u6700\u91cd\u8981\u7684\u5c31\u662f\u5f00\u5fc3\uff0c\u6211\u716e\u9762\u7ed9\u4f60\u5403\u554a!",
"\u6211\u7684\u7ea2\u5305\u5462\uff1f\uff01\u6211\u7684\u7ea2\u5305\u5462\uff1f\uff01\u5305\u5927\u4eba...",
"\u8ddf\u795e\u4e5d\u4e0a\u5929\u8f6c\u4e2a\u8fd0\u518d\u6765\u62bd\uff01"],
add:function(){this.value+=1},
reset:function(){this.value=0},
getLevel:function(){
if(this.value===0){return 0}
else{
if(this.value<=2){return 1}
else{
if(this.value<=5){return 2}
else{
if(this.value<=9){return 3}
else{
if(this.value<=15){return 4}
else{return 5}
}
}
}
}
},
setRandom:function(){this.random=1+Math.floor(Math.random()*5)},
getRandom:function(){
if(!this.random){this.setRandom()}
S.log("mood random: "+this.random);
return this.random
},
getMood:function(){return this.moodMap[this.getLevel()]},
getMsg:function(){return this.msgMap[this.getLevel()]},
getMoodByRandom:function(){return this.moodMap[this.getRandom()]},
getMsgByRandom:function(){return this.msgMap[this.getRandom()]}
};
Volcano.Message.on(
"showCrazy",
function(){Volcano.mood.reset()}
);
Volcano.Msgs={
cat:{
success:"\u83b7\u5f97<span class='vol-dialog-hi'>${val}</span>\u7ea2\u5305",
fail:"\u672a\u4e2d\u5956\u7ee7\u7eed\u6349\u5427\uff01"
},
bag:{
success:"\u83b7\u5f97<span class='vol-dialog-hi'>${val}</span>\u7ea2\u5305",
fail:"\u5dee\u4e00\u70b9\u5c31\u62a2\u5230\u4e86\uff0c\u518d\u6765\u4e00\u6b21\u5427\u3002",
over:"\u522b\u7070\u5fc3,\u4e0b\u4e2a\u6574\u70b9\u518d\u6765\u5427"
}
};
Volcano.shareText="#\u4e0a\u5929\u732b\uff0c\u5c31\u8d2d\u4e86# 4000\u4e07\u7ea2\u5305\u5927\u6d3e\u9001\uff016\u670815\u65e5\u81f318\u65e5\uff0c\u8f93\u5165tmall.com\u767b\u9646\u5929\u732b\uff0c\u767e\u4e07\u4efd5\u5143\u300120\u5143\u3001100\u5143\u30011000\u5143\u30013000\u5143\u30014999\u5143\u7b49\u591a\u8fbe9\u6863\u9762\u989d\u7684\u7ea2\u5305\u5168\u573a\u65e0\u95e8\u69db\u53d1\u9001\uff0c\u5168\u57ce\u65e0\u9650\u5236\u4f7f\u7528\u3002\u8d76\u7d27\u6765\u62a2\u5427\uff01";
//抽奖核心对象
Volcano.getLottery=function(b){
var j=b.Event,a=b.DOM;
var e='<dl class="vol-tip"><dt>\u63d0\u793a\uff1a</dt><dd>1.\u53ea\u6709\u7ed1\u5b9a\u624b\u673a\u624d\u80fd\u6536\u5230\u7ea2\u5305\u54e6\u3002<a href="http://110.taobao.com/home/myInfo.htm?spm=3.278815.267595.1" target="_blank">\u67e5\u770b\u7ed1\u5b9a\u60c5\u51b5></a></dd><dd>2.\u6211\u4eec\u5c06\u4e8e\u5f53\u592924:00\u524d\uff0c\u5c06\u7ea2\u5305\u53d1\u9001\u5230\u60a8\u7684\u652f\u4ed8\u5b9d\u5e10\u6237\u3002</dd></dl>';
var c='<div class="vol-dialog-card"><p>\u5929\u732b\u8fbe\u4eba\u4eab\u5929\u732b\u9000\u8d27\u4fdd\u969c\u5361<br><a target="_blank" href="http://vip.tmall.com/vip/privilege.htm?spm=3.278815.267595.2&layer=activation&priv=returngurantee">\u70b9\u6b64\u67e5\u770b></a></p></div>';var i='<div class="vol-dialog ${type}"><s class="vol-dialog-face-${mood}"></s><div class="vol-dialog-${type}"></div><div class="vol-dialog-msg">${msg}</div>${share}${left}${other}<i class="vol-dialog-cat"></i> <a class="vol-dialog-close">X</a></div>';
var h=false;
var f=null;
//核心对象
var g={
showDialog:function(n){
n.other=n.other||e;
var o=f,l=g.renderData(i,n);
if(!o){
o=document.createElement("div");
var m=b.get("#J_Vol .vol-bg")||document.body;
m.appendChild(o);
j.on(o,"click",function(q){
var p=q.target;
if(a.hasClass(p,"vol-dialog-close")){
o.innerHTML="";
Volcano.Message.fire("closeDialog");
q.preventDefault()
}
else{
if(a.hasClass(p,"vol-dialog-share")){
g.share();
q.preventDefault()
}
}
})
}
o.innerHTML=l;
o.style.height="100px";
var k=new b.Anim(b.get(".vol-dialog",o),{top:"50px"},0.3,"easeOutStrong"); //动画弹出对话框
k.run();
f=o
},
renderData:function(l,k){return l.replace(/\$\{(.*?)\}/g,function(n,m){return k[m]||""})},
checkGetLottery:function(k,l){
if(b.get("#login-info .j_UserNick")||h){g.getlottery(k,l)}
else{g.loginGetLottery(k,l)}
},
loginGetLottery:function(k,l){
TML.use("minilogin,overlay/css/overlay.css",function(m,n){
n=n||m.MiniLogin;
n.show(function(){
h=true;
TB._isMemberInfoReady=false;
TB._isLoginStatusReady=false;
TB.Global.writeLoginInfo();
g.getlottery(k,l)
},
{check:false})
})
},
share:function(){window.open("http://service.weibo.com/share/share.php?url="+encodeURIComponent(location.href)+"&title="+encodeURIComponent(Volcano.shareText)+"&pic=http://img04.taobaocdn.com/tps/i4/T1yBzjXf8qXXXzmpoC-540-260.jpg","","height=700, width=650")},
// 这里是抽奖的关键!!!
getlottery:function(m,q){
g.showDialog({msg:"<p style='padding: 15px;'>\u6b63\u5728\u4e3a\u60a8\u62bd\u5956...</p>"});
var n=Math.random();
b.log("currentRate: "+n);
b.log("user times: "+Volcano.userTimes);
b.log("testRate: "+Volcano.rate);
if(n<Volcano.rate&&Volcano.userTimes<12){
var o="http://promotion.taobao.com/tmall/furinkazan.do?we=1",l=false;
o+=Volcano.Bus.awardCode;
o+="&ua="+encodeURIComponent(ua);
o+="&RandomNum="+new Date().getTime();
o+="&stra="+(m==="bag"?"1":"2");
var k="tml"+b.guid();
j.on(window,"error",function(r){
l=true;
g.error({isSuccess:"F",error:"E000"},m,q);
j.remove(window,"error",arguments.callee)
});
var p=function(r){
l=true;
if(r.isSuccess==="T"){g.success(r,m,q)}
else{g.error(r,m,q)}
if(r.param){Volcano.userTimes=r.param.times||0}
};
b.io({
url:o,
type:"get",
dataType:"jsonp",
jsonpCallback:k,
success:p,
error:function(){
l=true;
g.error({isSuccess:"F",error:"E000"},m,q)
}
});
Volcano.Message.fire("stat",{params:"pos=request"});
UA_Opt.Token=new Date().getTime()+":"+Math.random();
UA_Opt.reload();
setTimeout(function(){
if(!l){
l=true;
p=function(){};
g.error({isSuccess:"F",error:"E000"},m,q)
}
},3000)
}
else{g.error({isSuccess:"F",error:"E000"},m,q)}
},
success:function(l,k,m){
Volcano.mood.reset();
g.showDialog({
type:k+"-ok",
msg:g.renderData(Volcano.Msgs[k]["success"],{val:l.user.name}),
share:'<a class="vol-dialog-share">\u5206\u4eab\u5fae\u535a></a>',
left:k=="bag"&&(g.getLeft(l)<Volcano.Bus.bagTotal)?'<p class="vol-dialog-left">\u672c\u65f6\u6bb5\u5269\u4f59 <b>'+g.getLeft(l)+"</b> \u4e2a\u7ea2\u5305</p>":"",
mood:Volcano.mood.getMood()
});
m(l);
Volcano.Bus.leftBagNum=g.getLeft(l);
b.Cookie.set("leftBagNum",Volcano.Bus.leftBagNum);
b.log("leftBagNum set by lottery : success callback: "+g.getLeft(l))
},
error:function(n,k,o){
Volcano.mood.add();
if(n.param&&n.param.prizeBestow){
Volcano.Bus.leftBagNum=g.getLeft(n);
b.Cookie.set("leftBagNum",Volcano.Bus.leftBagNum);
b.log("leftBagNum set by lottery : error callback: "+g.getLeft(n))
}
var m=n.error;
if(m==="E014"){g.loginGetLottery(k,o)}
else{
if(!Volcano.Bus.inSafeMin&&k==="bag"&&n.param&&n.param.prizeBestow>=Volcano.Bus.bagTotal){
g.showDialog({
type:"over",
msg:Volcano.Msgs[k]["over"],
other:c});
o(n)
}
else{
var l=n.param&&n.param.prizeBestow&&g.getLeft(n)>0?g.getLeft(n):Volcano.Bus.leftBagNum;
Volcano.mood.setRandom();
g.showDialog({
type:"fail",
msg:Volcano.mood.getMsgByRandom(),
left:k=="bag"&&(l<Volcano.Bus.bagTotal)?'<p class="vol-dialog-left">\u672c\u65f6\u6bb5\u5269\u4f59 <b>'+l+"</b> \u4e2a\u7ea2\u5305</p>":"",
mood:Volcano.mood.getMoodByRandom()});
o(n)
}
}
},
getLeft:function(l){
var k=Volcano.Bus.bagTotal-l.param.prizeBestow;
return k>0?k:0
}
};
Volcano.closeDialog=function(){
if(f){f.innerHTML=""}
};
return function(k,l){
k=k||"bag";
l=l||function(){};
if(f){f.innerHTML=""}
g.checkGetLottery(k,l)
}
}(KISSY);
//总控制器
Volcano.Controller=(function(i,h){
var q=i.DOM,v=i.Event,j=i.Cookie;var k;var r=Volcano.Bus;
var t=r.detailTitleMap;
var e=q.get("#J_BagBox");
var c=q.get("#J_Lucky");
var n=q.get("#J_DetailTitle");
var s=q.get("#J_CountDown");
var b=q.get("#J_CatTip");
var g=q.query("li","#J_VolTimeLine");
var p=q.get("#J_TopTitle");
var m={
init:function(){},
updateDetailTitle:function(w){n.innerHTML=w},
goNextRound:function(){
this.hideBagBox();
this.showTimer();
this.updateDetailTitle(t.nervous);
this.disableLuckyBtn()
},
hideLuckyBtn:function(){
c.style.visibility="hidden"
},
showLuckyBtn:function(){this.enableLuckyBtn();c.style.visibility="visible"},
enableLuckyBtn:function(){q.removeClass(c,"vol-btn-disable");c.disabled="false"},
disableLuckyBtn:function(){
if(r.inSafeMin){
return
}
q.addClass(c,"vol-btn-disable");
c.disabled="true"
},
showTimer:function(){s.style.visibility="visible"},
hideTimer:function(){s.style.visibility="hidden"},
showBagBox:function(){e.style.visibility="visible"},
hideBagBox:function(){e.style.visibility="hidden"},
showCatchCatTip:function(){b.style.visibility="visible";p.style.visibility="hidden"},
hideCatchCatTip:function(){b.style.visibility="hidden";p.style.visibility="visible"},
updateTimeline:function(x){
var w;
if(x.indexOf(":11:")>-1){w=x.replace(/(\d+:\d+:)\d+/,"$100")}
x=x.replace(/(\d+):\d+:\d+/,"$1:00:00");
i.each(g,function(y){
var z=y.getAttribute("data-time");
q[(z==x||z==w)?"addClass":"removeClass"](y,"vol-timeline-cur")
})}
};
m.updateTimeline(r.timeObj.hour+":00:00");function u(){
k=new Volcano.Countdown(s,{timeNow:r.timeNow,timeEnd:r.timeEnd});
i.log("timer started, timeNow:"+(new Date(r.timeNow*1000))+", timeEnd:"+(new Date(r.timeEnd*1000)));
r.inFirstReq=false;
r.isNextGot=false;
k.on("timeing",function(z){
var x=z.timeStr.split(":");
r.timeObj={hour:x[0],minute:x[1],second:x[2]};
r.inSafeMin=(
x[1]-0)<=20;
if(!r.inFirstReq&&!r.inSafeMin){
r.inFirstReq=true;
var y="tml"+i.guid();
i.io({
url:"http://promotion.taobao.com/tmall/queryPrizeBestow.do",
type:"get",
dataType:"jsonp",
jsonpCallback:y,
success:function(B){
if(B.isSuccess===true){
var A=B.result&&B.result.prizeBestow;
r.leftBagNum=r.bagTotal-A;
if(r.leftBagNum<=0){r.leftBagNum=0}
i.Cookie.set("leftBagNum",r.leftBagNum);
i.log("prizeBestow:"+A);
i.log("leftBagNum:"+r.leftBagNum)
}
if(r.leftBagNum<=0&&!r.inSafeMin){m.goNextRound()}
},
error:function(){}
})
}
else{
if(location.href.indexOf("ks-debug")!=-1){
var w=location.href.match(/leftBagNum\=(\d+)/);
if(w&&w[1]){r.leftBagNum=w[1]}
}
if(r.leftBagNum<=0&&!r.inSafeMin){m.goNextRound()}
}
});
if(r.isEnd){m.updateDetailTitle(t.await)}
else{
i.each(["11:11:{v}","15:11:{v}","20:11:{v}"],function(w){
k.when(w,function(x){
i.log(1111);
m.showCatchCatTip();
m.updateTimeline(x.timeStr);
Volcano.cat.start();
k.removeWhen(w,arguments.callee)
})
});
i.each(["11:12:00","15:12:00","20:12:00"],function(w){
k.when(w,function(x){
m.hideCatchCatTip();
m.updateTimeline(x.timeStr);
Volcano.cat.stop();
Volcano.closeDialog()
})
});
k.when(r.hourEnd+1+":00:00",function(){
m.updateTimeline("0");
m.hideBagBox();
m.showTimer();
m.updateDetailTitle(t.nervous);
m.disableLuckyBtn();
console.log("1")
})
}
k.on("timeEnd",function(w){
var y=false;
var x=r.timeOut-r.timeEnd;
if(x==3600){
y=true;
r.timeNow=r.timeEnd;
r.timeEnd=r.timeNext
}
else{
if(x>=0){
r.timeNow=r.timeEnd;
r.timeEnd+=3600
}
else{return}
}
if(r.timeNow>=r.timeOut&&!y){
r.timeEnd=r.timeNext;
m.updateDetailTitle(t.tomorrow);
m.disableLuckyBtn()
}
else{
m.hideTimer();
m.showBagBox();
m.showLuckyBtn();
m.updateDetailTitle(t.crazy);
m.updateTimeline(w.timeStr);
Volcano.Message.fire("showCrazy")
}
u()});
k.on("timeing",function(w){
Volcano.Message.fire("timeing",w)}
);
k.run()
}
u();
Volcano.Timer=k;
var a=[];
var f;
Volcano.Message.on("closeDialog",function(){
var w=a.join("");
if(w.match(/10(210)*/g)){a.push("2")}
});
var o=function(){
var w=document.createElement("div");
w.style.cssText="position: absolute; width: 170px; height:68px; left: 405px;top:130px;cursor:pointer;";
q.insertAfter(w,c);
v.on(w,"mouseenter",function(){a.push("1")});
v.on(w,"mouseleave",function(){
a.push("0");
if(a.length>49){a=[]}
this.parentNode.removeChild(this);
this.onclick=null;
f=o();
f.onclick=l
});
return w
};
var l=function(){
var w=a.join("");
if(!w.match(/1(021)*/g)){return}
if("true"==c.disabled||q.hasClass(c,"vol-btn-disable")){return false}
Volcano.getLottery("bag",function(x){
Volcano.Message.fire("bagLotterySuccess",{params:x})
});
return false
};
f=o();
v.on(f,"click",l);
return m
})(KISSY,window);
// 金砖
Volcano.queryCurBrickTime=function(b){
var j=Volcano.Bus.timeObj;
var f=[j.hour,j.minute,j.second].join("")-0;
var h=Volcano.Bus.brickList;
var a=false;
var k,e;
for(var c=0,g=h.length;c<g;c++){
k=h[c];
e=h[c+1];
if(k<=f&&f<e){a=true;break}
}
if(a){
return{cur:k,next:e,idx:c}
}
};
// KISSY在Page 加载完成的时候处理
KISSY.ready(function(b){
function a(f,e,i){
if(!f){return false}
e=e||location.href;
i=i||document.title;
var h=window.external,
g=window.sidebar,
c=true;
if(h&&"AddFavorite" in h){h.AddFavorite(e,i)}
else{
if(g&&g.addPanel){g.addPanel(i,e,"")}
else{
if(window.opera){
f.setAttribute("rel","sidebar");
f.href=e;
f.title=i
}
else{
alert("\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u81ea\u52a8\u6dfb\u52a0\u6536\u85cf\u5939\u529f\u80fd\n\u8bf7\u624b\u52a8\u5c06\u672c\u9875\u6dfb\u52a0\u5230\u6536\u85cf\u5939\uff08\u5feb\u6377\u952e\uff1a"+(navigator.appVersion.indexOf("Mac")>-1?"Cmd":"Ctrl")+"+D)");
c=false
}
}
}
return c
}
b.Event.on("#J_AddFavLink","click",function(c){
c.halt();
a(this,location.href,"\u5929\u732bTmall.com")
})
});
// run at start
(function(f){
var b=KISSY;
var a=new Image();
var e=window;
function c(h){
var g="";
if(e.userCookie){g=e.userCookie._nk_||""}
h.params=h.params||h.toString();
b.log("stat fired");
b.log(h);
a.src="http://www.atpanel.com/tmallhd.1.1?nick="+g+"&"+h.params
}
Volcano.Message.on("stat",c);
KISSY.Event.on("#J_Vol","click",function(g){
var h=g.target;
var i=h.getAttribute("data-stat");
if(i){
c({params:i})
}
})
})();
// RUN at start.
// f = KISSY, i=window
/*
<div id="J_BagBox" class="vol-hongbao">
当前时段: <span>发放红包 <em id="J_BagLeft">200000</em>个</span>
</div>
*/
Volcano.bagleft=(function(f,i){
var p=f.DOM,n=f.Event,a=f.Cookie,k=f.io;
var c=p.get("#J_BagLeft"); // 还剩的红包数量
var e=p.get("#J_BagBox"); // 当前时段的红包信息
var m=c.parentNode; // span
var q=Volcano.Message;
var j=Volcano.Bus;
var l=j.bagTotal;
var h=10;
var g="http://promotion.taobao.com/tmall/queryPrizeBestow.do";
var b={
update:function(s){
var o=this;
var r="tml"+f.guid();
f.log("current bagleft: "+j.leftBagNum);
if(e&&(p.css(e,"visibility")=="visible")){
k({ url:g,
type:"get",
dataType:"jsonp",
jsonpCallback:r,
success:function(t){
if(t.isSuccess===true){o.success(t)}
else{o.error(t)}
},
error:function(){o.error(d)}
})
}
},
render:function(r){
var s="\u53d1\u653e\u7ea2\u5305";
var o="\u5269\u4f59\u7ea2\u5305";
if(r<0){r=l}
if(isNaN(r)){r=l}
if(m&&e&&(p.css(e,"visibility")=="visible")){p.html(m,(r==l?s:o)+' <em id="J_BagLeft">'+r+"</em>\u4e2a")}
},
success:function(r){
r=r||{};
var o=l;
if(r.result&&r.result.prizeBestow){
o=j.bagTotal-r.result.prizeBestow;
this.updateLeftNum(o);
if(j.inSafeMin){
if(o<=0){o=l}
f.log("get bagleft success but in safe time")
}
f.log("get bagleft success:"+j.leftBagNum)
}
this.render(o)
},
error:function(o){this.autoDown()},
autoDown:function(){
var o=j.leftBagNum;
if(o>h&&o<l){
o=o-Math.round(Math.random()*h);
this.updateLeftNum(o)
}
this.render(o)
},
updateLeftNum:function(o){
if(o>0){j.leftBagNum=o}
},
reset:function(){
this.updateLeftNum(l);
this.render(l)
},
init:function(r){
var o=this;
var s=0;
r=r||60;
q.on("timeing",function(t){
if(s%2===0){o.autoDown()}
if(s%r===0){o.update()}
s+=1
});
q.on("showCrazy",function(t){o.reset()});
n.on("error",function(){o.error()})
}
};
return b
})(KISSY,window);
})();
var ua="";
var UA_Opt=new Object;
UA_Opt.LogVal="ua";
UA_Opt.MaxMCLog=3;
UA_Opt.MaxMPLog=3;
UA_Opt.MaxKSLog=3;
UA_Opt.Token=new Date().getTime()+":"+Math.random();
UA_Opt.SendMethod=8;
UA_Opt.Flag=/*here is a number to flag*/;
从中我们能看到当年的砸金砖我们点的手都断掉了,但是人家5s才一次的请求,你点断手有啥子用?