

// marquee 
var MaqueeVertical = new Class({

    options: {
        duration: 500,
        delay: 3000
    },

    initialize: function(ele, height, options) {
        this.setOptions(options);
        this.ele = $(ele);
        this.height = height;
        this.fx = this.ele.effect('marginTop', { duration: this.options.duration });
        this.maxHeight = this.ele.offsetHeight;
    },

    loop: function() {
        this.scroll.periodical(this.options.delay, this);
    },

    scroll: function() {
        var top = parseInt(this.ele.getStyle('marginTop')) - this.height;
        if (top <= -this.maxHeight) {
            this.ele.style.marginTop = this.height + 'px';
            top = 0;
        }
        this.fx.start(top);
    }
})
MaqueeVertical.implement(new Events, new Options);

// ====== new comment ======
var commendPage = basePage.extend({
    setUrl: function(num) {
        return '#" onclick = "render(this,' + num + '); return false;';
    },
    display: function() {
        return this.preBlockPage() + this.middlePage() + this.nextBlockPage();
    },
    preBlockPage: function() {
        var pre = (this.curBlockPage - 1) * this.options.middle;
        return this.curBlockPage > 1 ? '<a class="preBlock" href="' + this.setUrl(pre) + '"><strong>&laquo;</strong></a>' : '';
        return insert_pre;
    },

    nextBlockPage: function() {
        var next = this.curBlockPage * this.options.middle + 1;
        return this.curBlockPage < this.totalBlockPage ? '<a class="nextBlock" href="' + this.setUrl(next) + '"><strong>&raquo;</strong></a>' : '';

    }
});

function render(element, num) {    //呈现新页面的内容             
    if (typeof (FunCmt) != 'undefined') {
        if (!FunCmt.cache[num]) FunCmt.get.bind(FunCmt)(num);
        else {
            FunCmt.index = num;
            FunCmt.refushList();
            var _commendPage = new commendPage(num, FunCmt.pagecount, { showLast: true });
            $('watchCmtpagelist').innerHTML = _commendPage.display();
        }
    }
}




//flash版本不支持
function watchwithoutflash(id) {	
    if (!detectFlash(7)) {
        $(id).setStyles({ width: '100%', height: '385px', 'background-color': 'black', color: 'white' }).innerHTML = '<div style="text-align:center;padding-top:160px;line-height:1.6em;"><p>如果你无法播放此视频, 请先确认是否安装了 Flash 播放器<br/>点击按钮安装最新的 Flash Player 播放器</p><p><a target="_blank" href="http://get.adobe.com/flashplayer/" class="flashinstall">安装</a></p></div>';
    }
}





// 专辑分页
var WatchPlistRender = new Class({
    options: {
        ppi: 10, //每页要显示的条数
        recordTotal:0,
		currentPlay:0,
		pageListWrap:null,
		pageWrap:null
    },
    initialize: function(options) {
		this.setOptions(options);
		if(this.options.recordTotal<=this.options.ppi){
			return;
		}
		this.pageWrap=this.options.pageWrap;
		this.pageListWrap=this.options.pageListWrap;
		this.pageTotal=Math.ceil(this.options.recordTotal/this.options.ppi);
		this.curPage=Math.ceil((parseInt(this.options.currentPlay)+1)/this.options.ppi);
		this.curPageDiv=$E('div',this.pageWrap);
		this.curPageDiv.id='watchPlistPage_'+this.curPage;
		this.cachePageNum=[parseInt(this.curPage)]; //存储已经请求过的页数
		this.renderPage();
    },
	pageEvent:function(ev){
		ev.preventDefault();
		var target=ev.target;
		if(target.hasClass('on')){
			return;
		}
		var num=parseInt(target.href.match(/\#(\d+)$/)[1]);
		this.get(num);
	},
	get:function(num,obj,direction){
		var num=parseInt(num);
		if(this.cachePageNum.indexOf(num)!=-1){
			this.curPageDiv.style.display='none';
			this.curPageDiv=document.getElementById('watchPlistPage_'+num);
			this.curPageDiv.style.display='block';
			this.curPage=num;
			this.renderPage();
			if(obj){//如果参数obj(全屏播放到下一个视频后所取得的json数据)
				this.markCur(obj,direction);
			}
			return;
		}
		var pid=pageMessage.pid;
		Request.reSend('/index.php/Playlist/getPlistVideo/','pid='+pid+'&curpage='+num,this.callback.bind(this),{curPage:num,obj:obj},'nocache');
	},
	markCur:function(obj,direction){
		var dd=document.createElement('dd');
		dd.className='fix';
		var str='<p class="vpic3"><a href="'+$E('a',this.curPageDiv).href+'" target="_blank"><img title="'+obj.title+'" alt="'+obj.title+'" src="'+obj.pic+'"/></a></p><p><a href="/index.php/profile/'+obj.user.uid+'.html" target="_blank">'+obj.user.username+'</a></p><p>播放: <em class="hit bold">'+obj.count+'</em>    评论: <em class="hit bold">'+obj.comment+'</em></p><p><a href="">更多视频信息</a></p>';
		dd.innerHTML=str;
		if(direction==1){
			$E('dl',this.curPageDiv).appendChild(dd);
			$E('li',this.curPageDiv).addClass('on');
			return;					
		}
		var last=this.curPageDiv.getElementsByTagName('li')[this.curPageDiv.getElementsByTagName('li').length-1];
		last.className='on';
		last.getElementsByTagName('dl')[0].appendChild(dd);
	},
	callback:function(xhr,ext){
		var json=Json.evaluate(xhr.responseText);
		if(json.flag!=1){
			alert(0);
		}
		var div=document.createElement('div');
		div.id='watchPlistPage_'+ext.curPage;
		var str=this.assemble(json.ret);
		div.innerHTML=str;
		this.curPageDiv.style.display='none';
		this.curPageDiv=div;
		this.curPage=ext.curPage;
		this.cachePageNum.push(parseInt(ext.curPage));
		this.pageWrap.insertBefore(div,this.pageWrap.firstChild);
		this.renderPage();
		if(ext.obj){//如果是全屏播放引发的请求
			this.markCur(ext.obj);
		}
	},
	renderPage:function(){
		$(this.pageListWrap).empty();
		var str=(new this.pageList(this.curPage,this.pageTotal,{middle:5})).display();
		this.pageListWrap.innerHTML=str;
		$ES('a',this.pageListWrap).addEvent('click',this.pageEvent.bindWithEvent(this));
	},
	assemble:function(arr){
		var str='<ul>';
		for(var i=0;i<arr.length;i++){
			str+='<li><dl><dt class="fix"><a href="/index.php/Playlist/'+pageMessage.pid+'/'+arr[i].id+'.html" title="'+arr[i].title+'" >'+(arr[i].title.length>17?arr[i].title.substring(0,17)+'...':arr[i].title)+'</a><em class="hit">'+arr[i].time+'</em></dt></dl></li>'
		}
		str+='</ul>';
		return str;
	},
	pageList:basePage.extend({
	    setUrl: function(num) {
	      return '#' + num;
	    },
	    display: function() {
	        return this.firstPage()+this.prePage() + this.middlePage()+((this.blockPageEnd!=this.pageTotal)?'<b>..</b>':'') + this.nextPage()+this.lastPage() ;
	    },
	    nextPage: function() {
	        return this.page < this.pageTotal ? '<a class="next" href="' + this.setUrl(Number(this.page) + 1) + '">下一页</a>' : '';
	    },
		middlePage: function() {
	        var htmlStr = '';
			var m=this.options.middle;//中间显示页数
			if(this.pageTotal>m){
				if(this.page<=Math.ceil(m/2)){
					this.blockPageStart=1;
					this.blockPageEnd=m;
				}
				else if(parseInt(this.page)+Math.ceil(m/2)>=this.pageTotal){
					this.blockPageStart=this.pageTotal-(m-1);
					this.blockPageEnd=this.pageTotal;
				}
				else{
					this.blockPageStart=this.page-Math.floor(m/2);
					this.blockPageEnd=parseInt(this.page)+Math.ceil(m/2);
				}
			}
	        for (var i = this.blockPageStart; i <= this.blockPageEnd; i++)
	            htmlStr += '<a  ' + (i == this.page ? 'class="on"' : '') + ' href="' + this.setUrl(i) + '">' + i + '</a>';
	        return htmlStr;
    	}
	}),
	update:function(obj,direction){  //全屏播放下一视频时 跟新列表 
		var curVideo=$E('.on',this.curPageDiv);
		if(direction==1){ //全屏播放到下一视频
			if(! curVideo.getNext()){
				this.get(this.curPage+1,obj,1);
				return;
			}
			var nextVideo=curVideo.getNext();
			curVideo.removeClass('on');
			if(nextVideo.getElementsByTagName('dd').length==0){
				var dd=document.createElement('dd');
				dd.className='fix';
				var str='<p class="vpic3"><a href="'+nextVideo.getElementsByTagName('a')[0].href+'" target="_blank"><img title="'+obj.title+'" alt="'+obj.title+'" src="'+obj.pic+'"/></a></p><p><a href="/profile/'+obj.user.uid+'.html" target="_blank">'+obj.user.username+'</a></p><p>播放: <em class="hit bold">'+obj.count+'</em>    评论: <em class="hit bold">'+obj.comment+'</em></p><p><a href="">更多视频信息</a></p>';
				dd.innerHTML=str;
				nextVideo.getElementsByTagName('dl')[0].appendChild(dd);				
			}
			nextVideo.addClass('on');
		}
		else{ //全屏播放到上一个视频
			if(! curVideo.getPrevious()){
				this.get(this.curPage-1,obj,0);
				return;
			}
			
			var preVideo=curVideo.getPrevious();
			curVideo.removeClass('on');
			if(preVideo.getElementsByTagName('dd').length==0){
				var dd=document.createElement('dd');
				dd.className='fix';
				var str='<p class="vpic3"><a href="'+preVideo.getElementsByTagName('a')[0].href+'" target="_blank"><img title="'+obj.title+'" alt="'+obj.title+'" src="'+obj.pic+'"/></a></p><p><a href="/profile/'+obj.user.uid+'.html" target="_blank">'+obj.user.username+'</a></p><p>播放: <em class="hit bold">'+obj.count+'</em>    评论: <em class="hit bold">'+obj.comment+'</em></p><p><a href="">更多视频信息</a></p>';
				dd.innerHTML=str;
				preVideo.getElementsByTagName('dl')[0].appendChild(dd);				
			}
			preVideo.addClass('on');

		}
	}

});
WatchPlistRender.implement(new Options);

//全屏播放
var PlFullScreen = {

    get: function(key) {
        key = key || eval(pageMessage.pidKey) + 1;
        this.key = key;
        var url = '/api/getPlNextVideoInfo.php?pid=' + pageMessage.pid + '&key=' + key;
        var data = '';
        var callback = this.back.bind(this);
		var extra = key ;
        Request.reSend(url, data, callback , extra);
    },

    back: function(httpObj,extra) {
        var ret = httpObj.responseText;
        try {
            this.obj = Json.evaluate(ret);  //返回错误的bug
            this.update(extra);
        } catch (e) {
            location.href = '/index.php/Playlist/' + pageMessage.pid + '/' + extra + '.html';
        }
    },

    update: function(key) {
        var obj = this.obj;
        // js 
		var direction=1;//全屏时 如果是上一个视频值为0，下一个为1;
		if(pageMessage.pidKey>key){
			direction=0;
		}
        pageMessage.vid = this.obj.id;
        pageMessage.evid = this.obj.evid;
        pageMessage.pidKey = this.key;
		R6.comment.get();
		watchPlist.update.bind(watchPlist,[obj,direction])();
		$E('#watchInfo .user a').href='/index.php/profile/'+obj.user.uid+'.html';
		$E('#watchInfo .user img').src=obj.user.pic;
		$E('#watchTitle .pvt').innerHTML = obj.title;
        $E('#watchInfo .vCount').innerHTML = obj.count;
        $E('#watchInfo .vComment').innerHTML = obj.comment;
        var memo = '';
        if (obj.memo.longCheck == 1) {
            memo = '<a href="#" onclick="watchAllMemo(); return false;" class="more"></a><span onclick="watchAllMemo()" class="all displayNone">' + obj.memo.long +'</span>';
        }
        memo += obj.memo.short;
        $E('#watchInfo .memo').innerHTML = memo;
        $E('#watchInfo .code input').value = '<object><param name="allowScriptAccess" value="always"></param><param name="wmode" value="transparent"></param><param name="movie" value="/Public/swf/player.swf?flag=0&vid=' + pageMessage.evid + '"></param><embed src="/Public/swf/player.swf?flag=0&vid=' + pageMessage.evid + '" width="480" height="415" allowScriptAccess="always" wmode="transparent"  type="application/x-shockwave-flash" /></object>';
    }
}
plFullScreenNext = PlFullScreen.get.bind(PlFullScreen);

var TimeChange = new Class({
    options:{
       delay:5000,
       sublen:4
    },
    initialize:function(img,url,images,options){
        this.img = $(img);
        this.url = $(url);
        this.images = images;        
        var len = this.images.length,i =0;
        while (i < len) {
            if (!this.images[i].src.trim()) {
                this.images.splice(i, 1);
                len--;
            } else {
                i++;
            }
        }
        var tmpArr = [];
        var sublen = this.options.sublen;
        if(len > sublen){
            var start = getRand(0,len);
            var _len   = Math.min(len - start,sublen);
            if(_len <4){
                tmpArr =  this.images.copy(start,_len);                
                tmpArr = tmpArr.concat(this.images.copy(0,sublen - tmpArr.length)); 
            }else  tmpArr =  this.images.copy(start,_len); 
            this.images = tmpArr;          
        } 
        this.maxLen = this.images.length;
        this.loopLoad();
        this.curNum = 0;              
    },
    loopLoad:function(index){
        if(index == undefined) index = 0;
        if(index > this.maxLen) return;
        var img = new Image();
        var othis = this;
        img.onload = function(){index++;othis.loopLoad(index);};
        if(this.images[index]) img.src = this.images[index].src;
    },
    display:function(first){
        if(first) {
           arguments.callee.delay(this.options.delay,this);
           return false; 
        }
        if(this.maxLen == 0){
            return false; 
        }        
        if(this.curNum >= this.maxLen) this.curNum = 0;
        var obj = this.images[this.curNum];
        this.img.src  = obj.src;
        this.url.href = obj.url;
        if(obj.title) this.url.title = obj.title; 
        if(this.maxLen != 1){
            this.curNum ++;
            arguments.callee.delay(this.options.delay,this);
        }
    }
});
TimeChange.implement(new Options);

function getUniqueId(){
    var uniqueId = jcookie.get('unique');
    var _uuid    = getRandNoReapt('6rooms',9);
    _uuid        = _uuid.length>32?_uuid.substr(0,32):_uuid;
    if(!uniqueId){                              //新创建
        jcookie.set('unique',_uuid);
        jcookie.set('unitime',new Date().getTime());
        uniqueId = _uuid;
    }else{
        var _curTime  = new Date().getTime();
        var timespan  = 1000*60*60*24;
        if(_curTime - jcookie.get('unitime') > timespan){   //超时
            jcookie.set('unique',_uuid);
            jcookie.set('unitime',new Date().getTime());
            uniqueId = _uuid;
        } else{
            jcookie.set('unitime',new Date().getTime());    // 更新
        }
    }
    return 'http://simba.ssvlog.com/g.php?r='+encodeURIComponent(jcookie.get('curUrl')|'')+'&c='+encodeURIComponent(location.href)+'&uuid=' + uniqueId+'&pv='+(jcookie.get('curVid')||'');
}



/*
 * watching 
 * 正在观看节目的用户和游客
 */

var watching =  {
	
	pub : {
		noid : [5355169,5356365,5356479,5356542,5356585,5356655,5358642,5358718,5358833,5359000]
	},
	
	send : function() {
		if(!this.pub.noid.contains(pageMessage.uid)) {
			var url = '/index.php/Program/watching/uid/' + pageMessage.uid + (pageMessage.pid ? '/pid/' + pageMessage.pid : '/vid/' + pageMessage.vid) ;
			var callback = this.back.bind(this) ;
			var data = "" ;
			Request.reSend(url,data,callback);
		}
	} ,
	
	back : function(httpObj) {
		var ret = httpObj.responseText;
	 	var obj = Json.evaluate(ret) ;
		if(obj.count > 0) {
			var htmlstr = '' ;
			obj.content.each(function(e , k){ if(k < 6) htmlstr += '<a href="/index.php/profile/' + e.id + '.html" target="_blank"><img title="' + e.name + '" alt="" src="' + e.pic + '"/></a>'}) ;
			$$('#watching .rcontent .hd').setHTML((obj.count>0?'<a href="#6rooms">查看用户</a>':'')+'<h5><span> ' + obj.count + ' </span>用户和 <span>' + obj.tcount + ' </span>游客正在看</h5>')   ;		
			watching.cache=obj.content;
			$$('#watching .rcontent .hd a')[0].addEvent('click',watching.showDetail.bindWithEvent());
			$('watching').style.display='block';
			return;
		}
	},
	showDetail:function(ev){
		var ev=new Event(ev);
		ev.preventDefault()
		if(ev.target.className=='on'){
			document.getElementById('watchingDetail').style.display='none';
			ev.target.className='';
			return;
		}
		if(document.getElementById('watchingDetail')){
			document.getElementById('watchingDetail').style.display='block';
			ev.target.className='on';
			return;
		}
		var div=document.createElement('div');
		div.id='watchingDetail';
		var str='<ul class="fix">';
		var user=watching.cache;
		for(var i=0;i<user.length;i++){
			str+='<li><a href="/index.php/profile/'+user[i].id+'.html" target="_blank" title="'+user[i].name+'"><img src="'+user[i].pic+'" alt="'+user[i].name+'"</a>'
		}
		str+='</ul>';
		div.innerHTML=str;
		$$('#watching .rcontent')[0].appendChild(div);
		ev.target.className='on';
		delete watching.cache;
	}
};




/*
 * 惰性加载
 */


var LazyLoad=new Class({
	options:{
		wrap:null,
		cellHeight:63
	},
	initialize:function(options){
		this.setOptions(options);
		this.wrap=$(this.options.wrap);
		this.wrap.addEvent('scroll',this.scroll.bind(this));
	},
	scroll:function(){
		var imges=$ES('img',this.wrap);
		if(imges[imges.length-1].parentNode.rel==''){
			this.wrap.removeEvents('scroll');
		}
		var scrollTop=this.wrap.scrollTop;
		var num=Math.ceil(scrollTop/this.options.cellHeight);
		var viewNum=Math.floor(this.wrap.offsetHeight/this.options.cellHeight);
		for(var i=viewNum;i<num+viewNum;i++){
			if(imges[i].parentNode.rel!=''){
				var img=imges[i];
				img.src=img.parentNode.rel;
				img.parentNode.rel='';
			}
		}
	}
});
LazyLoad.implement(new Options);




/*
 * 评论
 */


var HCommentPage =basePage.extend({
    setUrl: function(num) {
      return '#' + num;
    },
    display: function() {
        return this.firstPage()+this.prePage() + this.middlePage()+((this.blockPageEnd!=this.pageTotal)?'<b>..</b>':'') + this.nextPage()+this.lastPage() ;
    },
    nextPage: function() {
        return this.page < this.pageTotal ? '<a class="next" href="' + this.setUrl(Number(this.page) + 1) + '">下一页</a>' : '';
    },
	middlePage: function() {
        var htmlStr = '';
		var m=this.options.middle;//中间显示页数
		if(this.pageTotal>m){
			if(this.page<=Math.ceil(m/2)){
				this.blockPageStart=1;
				this.blockPageEnd=m;
			}
			else if(parseInt(this.page)+Math.ceil(m/2)>=this.pageTotal){
				this.blockPageStart=this.pageTotal-(m-1);
				this.blockPageEnd=this.pageTotal;
			}
			else{
				this.blockPageStart=this.page-Math.floor(m/2);
				this.blockPageEnd=parseInt(this.page)+Math.ceil(m/2);
			}
		}
        for (var i = this.blockPageStart; i <= this.blockPageEnd; i++)
            htmlStr += '<a  ' + (i == this.page ? 'class="on"' : '') + ' href="' + this.setUrl(i) + '">' + i + '</a>';
        return htmlStr;
	}
});

var HComment = new Class({
	options: {
		privateBox : null , // private checkbox
		api: {
		   'send' : '/index.php/Comment/watch_comment/',
		   'get' : '/index.php/Comment/watch_comment_op/'
		},
		faceArr : ['^_^' , '+_+' , '＝_＝' , ':)', ':(', ':-)', ':-(', ';-)', ';)', ':-/', ':\'(', ':-D', ':D', 'B-)', ':P', '=(', '=)', ':-O'] ,
		commentBao : 'watchCommentList' ,
		pageBao : 'watchCommentPageList' ,
		imageCheck:null,
		isReply : true , //是否允许回复
		ppc:10,// 每页显示多少个
		player:'flash_play'
	},
	
	initialize: function(input , button , options) {
    	this.setOptions(options); 
		this.input = $(input) ;
		this.button = $(button) ;
		this.commentBao = $(this.options.commentBao) ;
		this.pageBao = $(this.options.pageBao) ;
		// add Events
		this.button.addEvent('click' , this.submit.bindWithEvent(this)) ;
		this.input.addEvent('focus',function(){
			var check=this.input.parentNode.parentNode.getElementsByTagName('p')[1];
			if(check.style.display!='block'){
				check.style.display='block';
				check.getElementsByTagName('img')[0].onclick();
			}
			var reBox=document.getElementById('watchReplyBox');
			if(reBox&&reBox.style.display!='none'){
				reBox.style.display='none';
				reBox.previousSibling.getElementsByTagName('dd')[1].getElementsByTagName('a')[0].innerHTML='回复';
			}
		}.bind(this));
		$(this.input.parentNode.parentNode.getElementsByTagName('p')[1].getElementsByTagName('input')[0]).addEvent('keypress',function(ev){
			if(ev.key=='enter'){
				ev.preventDefault();
				ev.stopPropagation();
				this.submit.bind(this,ev)();
			}
		}.bindWithEvent(this))
		
	} ,
	
	replySubmit : function(replySubmit , replyWrite , postid){
		var input = replyWrite.getElementsByTagName('textarea')[0] ;	
		var check=replyWrite.getElementsByTagName('input')[0] ;	
		// check 
		if(!input.value.trim()){
			alert('请输入内容') ;
			return false ;
		}
		if(! /\d{4}/.test(check.value)){
			alert('请输入正确的验证码');
			return false;
		}
		this.loading(1 , 'button' , input , replySubmit) ;
		var url = this.options.api.send ;
		// callback
		var callback = function(xhr){
			var obj=Json.evaluate(xhr.responseText);
			if(parseInt(obj.flag) == 1) {
				var list=this.getList(obj.ret,false,obj.time)
				replyWrite.previousSibling.getElementsByTagName('dd')[1].getElementsByTagName('a')[0].innerHTML='回复';
				this.clear();
				replyWrite.parentNode.replaceChild(list,replyWrite);
			}
			else{
				alert(obj.msg)
				this.clear(true);
			} 
			this.loading(0 , 'button' , input , replySubmit) ;
		}.bind(this) ;
		if(!this.player){
			this.player=document.getElementById(this.options.player);
		}
		var vtime=this.player.getTime ? this.player.getTime() : 0;
		Request.reSend(url,'pid='+postid+'&vtime='+vtime+'&vid='+pageMessage.vid+'&contents='+encodeURIComponent(input.value)+'&sessimg='+check.value+'&op=reply',callback);
	} ,
	
	submit : function(event) {
		var ev=new Event(event);
		ev.preventDefault();
		var check=this.input.parentNode.parentNode.getElementsByTagName('p')[1].getElementsByTagName('input')[0];
		if(!this.input.value.trim()){
			alert('请输入内容') ;
			return false ;
		}
		if(! /\d{4}/.test(check.value)){
			alert('请输入正确的验证码');
			return false;
		}		
		this.loading(1 , 'button') ;
		var url = this.options.api.send;
		// callback
		var callback = function(xhr) {
			var obj=Json.evaluate(xhr.responseText);
			if(parseInt(obj.flag) == 1) {
				obj = obj.ret
				this.insertListBao(obj , 'top',obj.time) ;
				var count=document.getElementById('watchComment').getElementsByTagName('h2')[0].nextSibling.innerHTML;
				document.getElementById('watchComment').getElementsByTagName('h2')[0].nextSibling.innerHTML='('+(parseInt(count.match(/\((\d+)\)/)[1])+1)+')'
				this.clear();		
			}
			else {
				alert(obj.msg);
				this.clear(true);
			}
			this.loading(0 , 'button') ;
		}.bind(this)
		//if(!this.player){
			//this.player=document.getElementById(this.options.player);
		//}
		//var vtime=this.player.getTime ? this.player.getTime():0;
		Request.reSend(url,'op=commit&vid='+pageMessage.vid+'&contents='+encodeURIComponent(this.input.value)+'&sessimg='+check.value+'&uid='+pageMessage.uid,callback);
	} ,

	get : function(page) {
		page = page || 1 ;
		this.loading(1 , 'list');
		var url = this.options.api.get ;
		// callback
		var callback = function(xhr,ext) {
			var obj=Json.evaluate(xhr.responseText);
			this.loading(0 , 'list') ;
			if(parseInt(obj.flag)==1) {
				obj.ret.each(function(e){
					this.insertListBao(e , 'bottom',obj.time) ;
				} , this)
				if (Math.ceil(obj.recordtotal / this.options.ppc) > 1) {				
					this.pageBao.innerHTML = this.getPageStr(ext.page, Math.ceil(obj.recordtotal / this.options.ppc));
					$A(this.pageBao.getElementsByTagName('a')).each(function(e){
						a_addEvent(e, 'click', function(event){
							ev = new Event(event);
							ev.preventDefault();
							var target = ev.target;
							if (target.className.indexOf('on') > -1) {
								return;
							}
							var num = parseInt(target.href.match(/\#(\d+)$/)[1]);
							document.documentElement.scrollTop = $('watchComment').getTop();
							this.get(num);
						}.bind(this));
					}, this);
				}
				if(this.firstGet!==false){
					this.firestGet=false;
					document.getElementById('watchComment').getElementsByTagName('h2')[0].nextSibling.innerHTML='('+obj.recordtotal+')';
				}	
			}
		}.bind(this) ;
		Request.reSend(url,'act=list&curpage='+page+'&vid='+pageMessage.vid+'&pagesize='+this.options.ppc,callback,{page:page},'nochace');
	} ,
	
	insertListBao : function(e , injectType,serverCurTime) {
		var list = this.getList(e,true,serverCurTime);
		if(injectType=='top'){//发评论后插入
			this.commentBao.insertBefore(list,this.commentBao.firstChild);
		}
		else{
			this.commentBao.appendChild(list);			
		}
		// replay
		if(this.options.isReply) {
			// reply lists
			if(e.reply && e.reply.length > 0) {
				e.reply.each(function(e){
					this.commentBao.appendChild(this.getList(e ,false ,serverCurTime)) ;
				} , this)
			}
			var replyBtn = list.getElementsByTagName('dd')[1].getElementsByTagName('a')[0];
			a_addEvent(replyBtn , 'click' , this.displayReplyForm.bindWithEvent(this , e.id)) ;
		}
	} ,
	
	getList : function(obj , canReply,serverCurTime) {
		var dl= document.createElement('dl') ;
		if(!canReply){
			dl.className='reply';
		}
		dl.innerHTML = '<dt>'+(obj.uid!=0?'<a href="/index.php/profile/'+obj.uid+'.html" target="_blank">'+obj.uname+'</a>':'<span>游客</span>')+' ('+aptime.tdesc(obj.ctime,serverCurTime)+')</dt>'+'<dd>'+obj.contents+'</dd>' + (canReply?'<dd class="re"><a href="">回复</a></dd>':'');
		return dl;
	} ,
	
	displayReplyForm : function(ev,postid) {
		var ev=new Event(ev);
		ev.preventDefault();
		var replyBtn=ev.target;
		var reply=ev.target.parentNode.parentNode;
		var replyWrite =document.getElementById('watchReplyBox');
		if(replyBtn.innerHTML == '回复') {
			replyBtn.innerHTML = '取消' ;
			if(document.getElementById('watchComment').getElementsByTagName('form')[0].getElementsByTagName('p')[1].style.display!='none'){
				document.getElementById('watchComment').getElementsByTagName('form')[0].getElementsByTagName('p')[1].style.display='none';
			}
			if(replyWrite) {
				replyWrite.getElementsByTagName('textarea')[0].value = '' ;
				replyWrite.getElementsByTagName('input')[0].value = '' ;
				if(replyWrite.previousSibling!=reply){
					replyWrite.previousSibling.getElementsByTagName('dd')[1].getElementsByTagName('a')[0].innerHTML='回复';
				}
				if(reply.nextSibling){
					this.commentBao.insertBefore(replyWrite,reply.nextSibling);					
				}
				else{
					this.commentBao.removeChild(replyWrite);
					this.commentBao.appendChild(replyWrite);
				}
				replyWrite.style.display = 'block' ;
				replyWrite.getElementsByTagName('textarea')[0].focus();				
			}
			else {
				var replyWrite=document.createElement('dl');
				replyWrite.id='watchReplyBox';
				replyWrite.className='fix';
				replyWrite.innerHTML='<dd style="width:380px;"><p class="textarea"><textarea></textarea></p><p class="checkImage"><input type="text" /><img class="sesImg"  src="/index.php/Base/verify/n/100"  onclick=\'this.src="/index.php/Base/verify/n/" + $random(1,10000) \' title="看不清的话，请点击图片刷新"  alt="" /><span>把图片中的文字填到小输入框内</span><button><span>回复</span></button></p></dd>';
				this.commentBao.insertBefore(replyWrite,reply.nextSibling);
				var replySubmit = replyWrite.getElementsByTagName('button')[0] ;
				var checkInput=replyWrite.getElementsByTagName('input')[0];
				// add events
				a_addEvent(replySubmit , 'click' , this.replySubmit.bind(this , [replySubmit , replyWrite , postid])) ;
				a_addEvent(checkInput,'keydown',function(event){
					var ev=new Event(event);
					if(ev.key=='enter'){
						this.replySubmit.bind(this , [replySubmit , replyWrite , postid])();
					}
				}.bind(this));
				replyWrite.getElementsByTagName('textarea')[0].focus();				
			}
			
		}
		else {
			replyBtn.innerHTML = '回复' ;
			replyWrite.style.display = 'none' ;
		}
	} ,
	
	getPageStr : function(page , pageTotal) {
		var htmlstr = (new HCommentPage(page, pageTotal)).display() ;
		return htmlstr ;
	} ,
	
	loading : function(type , style , input , button) {
		style = style || 'list' ;
		if(style == 'list') {
			if (type) {
				this.commentBao.innerHTML = '<div style="padding:5px;color:#A5A5A5">加载中...</div>'
				this.pageBao.style.visibility = 'hidden';
			}
			else {
				this.commentBao.innerHTML = '';
				this.pageBao.style.visibility = 'visible';
			}
		}
		else {
			input = input || this.input ;
			button = button || this.button ;
			if(type == 1) {
				input.disabled = true ;
				button.disabled = true ;
			}
			else {
				input.disabled = false ;
				button.disabled = false ;
			}
		}
	} ,
	
	faceReplace: function(str) {
        str = str || '' ;
        this.options.faceArr.each(function(e) {
            str = str.replace(new RegExp(e.escapeRegExp(), 'ig'), '<b style="color:#005FFF">' + e + '</b>');
        })
        return str;
    },
	clear:function(onlyClearCheckBox){
		if(document.getElementById('watchReplyBox')){
			document.getElementById('watchReplyBox').getElementsByTagName('input')[0].value='';
			document.getElementById('watchReplyBox').getElementsByTagName('img')[0].onclick();
			if(onlyClearCheckBox!==true){
				document.getElementById('watchReplyBox').getElementsByTagName('textarea')[0].value='';				
			}
		}
		var c=document.getElementById('watchComment').getElementsByTagName('form')[0].getElementsByTagName('p')[1];
		c.getElementsByTagName('img')[0].onclick();
		c.getElementsByTagName('input')[0].value='';
		if (onlyClearCheckBox !== true) {
			this.input.value='';		
			c.style.display='none';
		}
		else{
			c.getElementsByTagName('input')[0].focus();
		}
	}
});

HComment.implement(new Options,new Events);

/*
 * 您可能感兴趣的
 */

var watchPush = {
	get: function(){
		var url = '/user_t.php';
		Request.reSend(url, '', this.callback.bind(this));
	},
	callback: function(xhr){
		var json = Json.evaluate(xhr.responseText);
		if(json.length==0){
			return;
		}
		var wrap = document.getElementById('watchPush').getElementsByTagName('ul')[0].parentNode;
		var str = '';
		for (var i = 1; i <= json.length; i++) {
			if (i % 3 == 1) {
				str += '<ul class="fix vlist1">';
			}
			var obj=json[i-1];
			str+='<li><p class="vpic1"><a target="_blank" href="/programs/view-'+obj.evid+'.htm"><img src="'+obj.pic+'" alt="'+obj.title+'" /></a><em title="放入点播单" class="addQlist"></em></p>';
			str+='<dl><dt><a href="/programs/view-'+obj.evid+'.htm" target="_blank" >'+obj.title+'</a></dt></dl></li>';
			if (i % 3 == 0 || i == json.length) {
				str += '</ul>';
			}
		}
		wrap.innerHTML = str;
		document.getElementById('watchPush').style.display = 'block';
	}
}
/*
 * 推荐视频
 */
var watchRecommend=function(arr){
	$$('#watchRecommended .bd')[0].innerHTML='';
	var str='';
	for(var i=0;i<arr.length;i++){
		if(i>8){
			break;
		}
		if((i+1)%3==1){
			str+='<ul class="vlist1 fix">';
		}
		var obj=arr[i];
		str+='<li><p class="vpic1"><a target="_blank" title="'+obj.title+'" href="/programs/view-'+obj.evid+'.htm"><img src="'+obj.pic+'" alt="'+obj.title+'" /></a><em title="放入点播单" class="addQlist"></em></p>';
		str+='<dl><dt><a href="/programs/view-'+obj.evid+'.htm" target="_blank" title="'+obj.title+'" >'+obj.title+'</a></dt></dl></li>';
		if((i+1)%3==0||i==8){
			str+='</ul>';			
		}
	}

	$$('#watchRecommended .bd')[0].innerHTML=str;
}

