var showvote = {
	mpid : 0,
	typename : '',
	defaultValue : 'One Sentence Movie Review...',
	imgswitch:'',
	maincontainer : document.getElementById("votestar"),
	container1: null,
	container2: null,
	voteNum : 0,
	starVoteTotal : null,
	starVoteAll : null,
	starVoteMale : null,
	starVoteFemale : null,
	ImgWidth :"21px",
	ImgHeight:"20px",
	movieName : '',
	personName : '',
	likenumFlag : '',
	totalVoteNum : 0,
	totalLikeNum : 0,
	totalUnlikeNum : 0,
	isExtend : false

}

showvote.personCallBack = function(oData){
	var voteNum = (oData.VoteNum == 0)?0.0:FormatNumber(oData.VoteMark/oData.VoteNum,1);
	this.personName = oData.PersonChineseName;
	this.showCommonPerson(voteNum,oData.VoteNum);

	var maincontainer = document.getElementById("votestar");
	var container = document.createElement("div");
	this.showVote(maincontainer,container,true,voteNum,'main_','total');
}

showvote.init = function(impid,stypename){
	this.mpid = impid;
	this.typename = stypename;
	var url = "/mdb/aspx/vote/vote_"+stypename+".aspx?"+stypename+"id="+impid;
	if (this.isExtend)
	{
		url+="&cacheflag=1";
	}
	if (isLogin2())
	{
		var userinfo = GetCookie("userinfo");
		url+="&userid="+userinfo.split('|')[0];
	}
	if (stypename=='movie')
	{
		showbtn.loadData(url,this.movieCallBack,this);
	}else{
		showbtn.loadData(url,this.personCallBack,this);
	}
	
}

showvote.movieCallBack = function(oData){
	var voteNum = (oData.VoteNum == 0)?0.0:FormatNumber(oData.VoteMark/oData.VoteNum,1);
	this.voteNum = voteNum;
	this.movieName = oData.MovieChineseName;
	this.showCommonMovie(voteNum,oData.VoteNum);

	this.totalVoteNum = oData.VoteNum;
	this.totalLikeNum = oData.LikeTotalNum;
	this.totalUnlikeNum = oData.UnlikeTotalNum;

	var maincontainer = this.maincontainer;
	maincontainer.innerHTML = "";

	//table1
    var container1 = document.createElement("DIV");
	this.container1 = container1;
	container1.id = "main_div1";
	var table1 = document.createElement("TABLE");
	var table1Body = document.createElement("TBODY");
	var TR1 = document.createElement("TR");
    

	var star1_numspan = document.createElement("TD");
	var star1_numspan_strong = document.createElement("SPAN");
	star1_numspan_strong.appendChild(document.createTextNode(oData.VoteNum));
	star1_numspan.appendChild(star1_numspan_strong);
	var star1 = document.createElement("TD");
	star1.id = "star1_span";
	//star1.className = "w215";
	this.showVote(maincontainer,star1,true,this.voteNum,'main_','total');
    
	TR1.appendChild(star1);
	TR1.appendChild(star1_numspan);
    this.showLike(oData.LikeTotalNum,oData.UnlikeTotalNum,true,true,'total',TR1);
	table1Body.appendChild(TR1);
	table1.appendChild(table1Body);

	//table2
    var container2 = document.createElement("DIV");
	container2.style.display = 'none';
	this.container2 = container2;
	container2.id = "main_div2";
	var table2 = document.createElement("TABLE");
	var table2Body = document.createElement("TBODY");
	var TR2_1 = document.createElement("TR");
	var TR2_2 = document.createElement("TR");
	var TR2_3 = document.createElement("TR");
	var TR2_4 = document.createElement("TR");
    
	if (isLogin2())
	{
		var likeNum = 0,unlikeNum = 0,voteNum = 0;
		if (oData.myMovieVoteInfo.LikeType==1)
		{
			likeNum = 1;
		}
		else if (oData.myMovieVoteInfo.LikeType==2)
		{
			unlikeNum = 1;
		}
		if (oData.myMovieVoteInfo.VoteMark > 0)
		{
			voteNum = 1
		}
		this.showLikeByGender(maincontainer,TR2_1,"My:",
			voteNum,
			oData.myMovieVoteInfo.VoteMark,
			likeNum,
			unlikeNum,
			"m_votestarmy",
			true,
			container1,
			true,
			'my');
		this.showLikeByGender(maincontainer,TR2_2,"All:",oData.VoteNum,oData.VoteMark,oData.LikeTotalNum,oData.UnlikeTotalNum,"m_votestarall",false,container1,false,'all');
		table2Body.appendChild(TR2_1);
	}else{
		this.showLikeByGender(maincontainer,TR2_2,"All:",oData.VoteNum,oData.VoteMark,oData.LikeTotalNum,oData.UnlikeTotalNum,"m_votestarall",true,container1,true,'all');
	}
	
	this.showLikeByGender(maincontainer,TR2_3,"Female:",oData.VoteNumFemale,oData.VoteMarkFemale,oData.LikeNumFemale,oData.UnlikeNumFemale,"m_votestarfemale",false,container1,false,'female');
	this.showLikeByGender(maincontainer,TR2_4,"Male:",oData.VoteNumMale,oData.VoteMarkMale,oData.LikeNumMale,oData.UnlikeNumMale,"m_votestarmale",false,container1,false,'male');
	
	table2Body.appendChild(TR2_2);
	table2Body.appendChild(TR2_3);
	table2Body.appendChild(TR2_4);
	table2.appendChild(table2Body);
	
    container1.appendChild(table1);
	container2.appendChild(table2);
	//add comment box
	this.showCommentBox(container2);
    maincontainer.appendChild(container1);
    maincontainer.appendChild(container2);

	//add inviteFriends box
	this.showIFBox(maincontainer);

	if (this.isExtend)
	{
		//extend more
		showvote.extendList();
	}
	
}

showvote.showIFBox = function(container){

	var span1 = document.createElement("SPAN");
	span1.className = "invitefriend";

	var label1 = document.createElement("LABEL");
	label1.appendChild(document.createTextNode("Invite your friends:"));

	var a1 = document.createElement("A");
	a1.className = "hotmail";
	a1.href = "/mdb/invitefriends/msn/"+this.mpid;
	a1.target = "_blank";
	a1.appendChild(document.createTextNode("Hotmail"));

	var a2 = document.createElement("A");
	a2.className = "gmail";
	a2.href = "/mdb/invitefriends/gmail/"+this.mpid;
	a2.target = "_blank";
	a2.appendChild(document.createTextNode("Gmail"));

	span1.appendChild(label1);
	span1.appendChild(a1);
	span1.appendChild(a2);
	container.appendChild(span1);

}


showvote.showCommonMovie = function(voteNum,voteNum2){
	var voteStr = ' <a href="http://mwo.playcomet.com/?mcometdtl" style="color:#FF0000" target="_blank">First Video Chat MMORPG</a> | <a href="http://www.mpcstar.com/index.htm?mcomet" target="_blank" style="color:#ff6600;">Recommended player: MPCStar</a> | <a href="http://www.bitcomet.com/recommend/firefox/us/?mcomet" target="_blank">Speed up your browser</a> | <a href=" http://www1.ccmove.com/" target="_blank"><font color="#FF0000">Free Ringtone</font></a>';
	document.getElementById('viewvote').innerHTML = voteStr;
}

showvote.showCommonPerson = function(voteNum,voteNum2){
	var voteStr = ' <a href="http://mwo.playcomet.com/?mcometdtl" style="color:#FF0000" target="_blank">First Video Chat MMORPG</a> | <a href="http://www.mpcstar.com/index.htm?mcomet" target="_blank" style="color:#ff6600;">Recommended player: MPCStar</a> | <a href="http://www.bitcomet.com/recommend/firefox/us/?mcomet" target="_blank">Speed up your browser</a> | <a href=" http://www1.ccmove.com/" target="_blank"><font color="#FF0000">Free Ringtone</font></a>';
	document.getElementById('viewvote').innerHTML = voteStr;
}

showvote.showVote = function(maincontainer,container,CanVote,voteNum,flag,voteType){
	var personID = (this.typename=='person')?0:this.mpid;
	var movieID = (this.typename=='movie')?0:this.mpid;
	var StarLength = 10;
	var VoteImg2 = "/image/star_1.gif";
	var VoteImg1 = "/image/star_2.gif";
	switch(voteType){
		case "total":
			this.starVoteTotal = new starVote(container,
				flag,
				VoteImg1,
				VoteImg2,
				personID,
				movieID,
				parseFloat(voteNum),
				CanVote,
				null
				);
			this.initStaticVote(container,StarLength,parseFloat(voteNum),VoteImg2,VoteImg1,flag,CanVote,voteType);
			break;
		case "m_votestarall":
			this.starVoteAll = new starVote(container,
				flag,
				VoteImg1,
				VoteImg2,
				personID,
				movieID,
				parseFloat(voteNum),
				CanVote,
				null
				);
			this.initStaticVote(container,StarLength,parseFloat(voteNum),VoteImg2,VoteImg1,flag,CanVote,voteType);
			break;
		case "m_votestarfemale":
			this.starVoteMale = new starVote(container,
				flag,
				VoteImg1,
				VoteImg2,
				personID,
				movieID,
				parseFloat(voteNum),
				CanVote,
				null
				);
			this.initStaticVote(container,StarLength,parseFloat(voteNum),VoteImg2,VoteImg1,flag,CanVote,voteType);
			break;
		case "m_votestarmale":
			this.starVoteFemale = new starVote(container,
				flag,
				VoteImg1,
				VoteImg2,
				personID,
				movieID,
				parseFloat(voteNum),
				CanVote,
				null
				);
			this.initStaticVote(container,StarLength,parseFloat(voteNum),VoteImg2,VoteImg1,flag,CanVote,voteType);
			break;
		case "m_votestarmy":
			this.starVoteMy = new starVote(container,
				flag,
				VoteImg1,
				VoteImg2,
				personID,
				movieID,
				parseFloat(voteNum),
				CanVote,
				null
				);
			this.initStaticVote(container,StarLength,parseFloat(voteNum),VoteImg2,VoteImg1,flag,CanVote,voteType);
			break;
	}

	maincontainer.appendChild(container);
	
}

showvote.showCommentBox = function(container){
	var othis = this;
	var defaultValue = this.defaultValue;
	var container2_c = document.createElement("P");
    container2_c.className = "m_votestarcom";
    var c_textarea = document.createElement("textarea");
    c_textarea.id = "c_textarea";
	c_textarea.value = defaultValue;
    c_textarea.className = "m_votestararea";
	c_textarea.onfocus = function(){
		this.value = (this.value==defaultValue)?'':this.value;
	}
	c_textarea.onblur = function(){
		this.value = (this.value=='')?defaultValue:this.value;
	}
    var c_submit = document.createElement("INPUT");
	c_submit.type = 'button';
    c_submit.id = "votecbtn";
	c_submit.style.cursor = "pointer";
    c_submit.value = "Post";
    c_submit.className = "m_votestarbutton";
	c_submit.onclick = function(){
		this.enable = false;
		othis.doComment(document.getElementById("c_textarea").value,othis.defaultValue,this,othis.movieName);
	}
    container2_c.appendChild(c_textarea);
    container2_c.appendChild(c_submit);

    container.appendChild(container2_c);
}

showvote.showLike = function(likeNum,unlikeNum,CanVote,isShowMBtn,flag,container){
	var othis = this;
	this.likenumFlag = flag;

	var TD1 = document.createElement("TD");    
    var img1 = document.createElement("IMG");
    img1.src = (flag=="my" && likeNum==0)?"/images/vote_yes1.gif":"/images/vote_yes.gif";
    img1.alt = "want to see it";
	img1.title = "want to see it";
	TD1.appendChild(img1);
	container.appendChild(TD1);

	var TD2 = document.createElement("TD");
	var a1span = document.createElement("SPAN");
	a1span.id = "likenum_"+flag;
	if (flag!="my")
	{
		a1span.innerHTML = showvote.formatLikeNum(this.totalLikeNum,likeNum);
	}
	TD2.appendChild(a1span);
	container.appendChild(TD2);
    
	var TD3 = document.createElement("TD");
    var img2 = document.createElement("IMG");
    img2.src = (flag=="my" && unlikeNum==0)?"/images/vote_no1.gif":"/images/vote_no.gif";
    img2.alt = "not interested";
	img2.title = "not interested";
	TD3.appendChild(img2);
	container.appendChild(TD3);

	var TD4 = document.createElement("TD");
	var a2span = document.createElement("SPAN");
	a2span.id = "notlikenum_"+flag;
	if (flag!="my")
	{
		a2span.innerHTML = showvote.formatLikeNum(this.totalUnlikeNum,unlikeNum);
	}
	TD4.appendChild(a2span);
	container.appendChild(TD4);
    
	if(CanVote){
		img1.onclick = function(){othis.dl(1);othis.extendList();}
		img2.onclick = function(){othis.dl(2);othis.extendList();}
		img1.style.cursor = "pointer";
		img2.style.cursor = "pointer";
	}
	
	//hidden show button
	var TD5 = document.createElement("TD");
    container.appendChild(TD5);

	if (isShowMBtn)
	{
		this.showMoreBtn(TD5,flag+"moreimg");
	}
}

showvote.showLikeByGender = function(maincontainer,container,typeName,votenum,votemark,likenum,unlikenum,classname,isShowMBtn,container1,CanVote,flag){
    var voteNum = (votenum == 0)?0.0:FormatNumber(votemark/votenum,1);
	
    var td1 = document.createElement("TD");
    td1.className = classname;
    td1.appendChild(document.createTextNode(typeName));
    
    var td2 = document.createElement("TD");
    this.showVote(maincontainer,td2,CanVote,voteNum,classname,classname);
	
	var td3 = document.createElement("TD");
    var td3_span = document.createElement("SPAN");
	if (flag!="my")
	{
		td3_span.innerHTML = showvote.formatLikeNum(this.totalVoteNum,votenum);
	}
	td3.appendChild(td3_span);

	container.appendChild(td1);
	container.appendChild(td2);
	container.appendChild(td3);
	
    this.showLike(likenum,unlikenum,CanVote,isShowMBtn,flag,container);
}

showvote.showMoreBtn = function(container,id){
	var othis = this;
    var img3 = document.createElement("IMG");
	img3.id = id;
	img3.src = (id=="totalmoreimg")?"/images/vote_show.gif":"/images/vote_hidden.gif";
    img3.alt = (img3.src.indexOf("hidden") > 0)?"hidden":"show";
	img3.title = (img3.src.indexOf("hidden") > 0)?"hidden":"show";
	img3.onclick = function(){othis.doMoreBtn(img3);}
	img3.style.cursor = "pointer";

	container.appendChild(img3);
}

showvote.doMoreBtn = function(obj,container2,container1){
	var container1 = document.getElementById("main_div1");
	var container2 = document.getElementById("main_div2");
	container2.style.display = (container2.style.display=='')?'none':'';
	container1.style.display = (container2.style.display=='')?'none':'';
}

showvote.extendList = function(){
	this.container2.style.display = 'none';
	this.container1.style.display = '';
	var container = document.getElementById("mainDDLike");
	this.doMoreBtn(null,this.container2,this.container1);
}

showvote.dl = function (sdl){
	var othis = this;
	var returnUrl = 'http://www.mcomet.com/movie/'+buileUrlName(this.movieName)+'-'+this.mpid+'/';
	var url = "/mdb/aspx/vote/dolike.aspx?liketype="+sdl+"&movieid="+this.mpid;
	if (!isLogin())
	{
		window.location = "/bar/login.aspx?return="+returnUrl;
		return;
	}

	if(sdl == "") return;
	var oReq = zXmlHttp.createRequest();
	oReq.onreadystatechange = function(){
		if(oReq.readyState == 4){
			if(oReq.status == 200 || oReq.status == 304){
				var result = oReq.responseText;
				if (result.indexOf('|') > 0)
				{
					var resultAry = result.split('|');
					alert(resultAry[0]);
					showvote.isExtend = true;
					showvote.init(showvote.mpid,showvote.typename);	
				}else{
					alert(result);
				}
				if(result.indexOf("login")>-1){
					window.open("/bar/login.aspx?return="+returnUrl);
				}
			}
		}
	}

	oReq.open("GET",url,true);
	oReq.send(null);

 }

showvote.formatLikeNum = function(total,sub){
	return sub;
	var stotal = total + '';
	var ssub = sub + '';
	var addNum = '';
	for(var i =0;i<stotal.length;i++){
		addNum += '0';
	}
	var result = (ssub + '' + addNum + '').substr(0,stotal.length);
	result = ssub + '' + '<span style="color:#fff">' + result.substr(ssub.length) + '</span>';
	return result;
}

showvote.doComment = function(str,defaultstr,obj,moviename){
	var returnUrl = 'http://www.mcomet.com/movie/'+buileUrlName(moviename)+'-'+this.mpid+'/';
	if (!isLogin())
	{
		window.location = "/bar/login.aspx?return="+returnUrl;
		return;
	}
	
	if (str == '' || str == defaultstr)
	{
		alert('Forget to write movie review?');
		obj.enable = true;
		return;
	}

	obj.onclick = function(){}
	var url = "/bar/barpublish.aspx?txtTitle="+escape(moviename+": "+defaultstr)+"&resourcetype=1&resourceid="+this.mpid+"&txtBody="+escape(str);
	
	var oReq = zXmlHttp.createRequest();
	oReq.onreadystatechange = function(){
		if(oReq.readyState == 4){
			if(oReq.status == 200 || oReq.status == 304){
				alert('Thanks for your movie review!');
				obj.enable = true;
			}
		}
	}

	oReq.open("POST",url,true);
	oReq.send("txtTitle="+escape(moviename + ": " + defaultstr)+"&resourcetype=1&resourceid="+this.mpid+"&txtBody="+escape(str));
}

showvote.initStaticVote = function(container,StarLength,CVoteN,VoteImg2,VoteImg1,flag,CanVote,voteType){
	var starhtml = new stringBuilder();
	container.innerHTML = "";
	var i,temp;
	for(i=1;i<=StarLength;i++){
		starhtml.Append("<img id=\""+flag+"starimg");
		starhtml.Append(i);
		starhtml.Append("\" src='");
		if(i<=CVoteN) starhtml.Append(VoteImg2); else starhtml.Append(VoteImg1);
		starhtml.Append("' width='");
		starhtml.Append(this.ImgWidth);
		starhtml.Append("' height='");
		starhtml.Append(this.ImgHeight);
		starhtml.Append("' alt='");
		starhtml.Append(i);
		starhtml.Append(" points'/>");
	}
	starhtml.Append(' <b id="'+flag+'Rating" style="color:#FF5E66;font-family:Tahoma;font-size:16px;font-weight:bold;">');
	starhtml.Append(CVoteN.toFixed(1).toString());
	starhtml.Append('</b>');
	container.innerHTML = starhtml.toString("");
	
	for(i=0;i<container.childNodes.length;i++){
		if (container.childNodes[i].tagName == 'IMG')
		{
			var temp = container.childNodes[i];
			if(CanVote){
			   temp.style.cursor="pointer";
			   switch(voteType){
				case "total":
				    this._AddListener(temp,"onclick",showvote.starVoteTotal_voteImgClick);
				    this._AddListener(temp,"onmouseover",showvote.starVoteTotal_voteImgOver);
				    this._AddListener(temp,"onmouseout",showvote.starVoteTotal_voteImgOut);
				    break;
				case "m_votestarall":
					this._AddListener(temp,"onclick",showvote.starVoteAll_voteImgClick);
				    this._AddListener(temp,"onmouseover",showvote.starVoteAll_voteImgOver);
				    this._AddListener(temp,"onmouseout",showvote.starVoteAll_voteImgOut);
					break;
				case "m_votestarmy":
					this._AddListener(temp,"onclick",showvote.starVoteMy_voteImgClick);
				    this._AddListener(temp,"onmouseover",showvote.starVoteMy_voteImgOver);
				    this._AddListener(temp,"onmouseout",showvote.starVoteMy_voteImgOut);
					break;
					   }
			}
		}
	}	

}

showvote._AddListener = function(Obj,eventType,Func){
  if (document.all){
    Obj.attachEvent(eventType,Func);
  }
  else{
    Obj.addEventListener(eventType.substr(2,eventType.length-2),Func,true);
  }
}

showvote.starVoteTotal_voteImgOver = function(evt){
	var evt=(evt)?evt:(window.event)?window.event:"";
	showvote.starVoteTotal._voteImgOver(evt,showvote.starVoteTotal);
}

showvote.starVoteTotal_voteImgClick = function(evt){
	var evt=(evt)?evt:(window.event)?window.event:"";
	var callback = function(){
		if (showvote.typename=='person')
		{
			return;
		}
		showvote.isExtend = true;
		showvote.init(showvote.mpid,showvote.typename);	
	}
	showvote.starVoteTotal._voteImgClick(evt,callback,showvote.starVoteTotal);
}

showvote.starVoteTotal_voteImgOut = function(evt){
	var evt=(evt)?evt:(window.event)?window.event:"";
	showvote.starVoteTotal._voteImgOut(evt,showvote.starVoteTotal);
}

showvote.starVoteAll_voteImgOver = function(evt){
	var evt=(evt)?evt:(window.event)?window.event:"";
	showvote.starVoteAll._voteImgOver(evt,showvote.starVoteAll);
}

showvote.starVoteAll_voteImgClick = function(evt){
	var evt=(evt)?evt:(window.event)?window.event:"";
	var callback = function(){
		if (showvote.typename=='person')
		{
			return;
		}
		showvote.isExtend = true;
		showvote.init(showvote.mpid,showvote.typename);		
	}
	showvote.starVoteAll._voteImgClick(evt,callback,showvote.starVoteAll);
}

showvote.starVoteAll_voteImgOut = function(evt){
	var evt=(evt)?evt:(window.event)?window.event:"";
	showvote.starVoteAll._voteImgOut(evt,showvote.starVoteAll);
}

showvote.starVoteMy_voteImgOver = function(evt){
	var evt=(evt)?evt:(window.event)?window.event:"";
	showvote.starVoteMy._voteImgOver(evt,showvote.starVoteMy);
}

showvote.starVoteMy_voteImgClick = function(evt){
	var evt=(evt)?evt:(window.event)?window.event:"";
	var callback = function(){
		if (showvote.typename=='person')
		{
			return;
		}
		showvote.isExtend = true;
		showvote.init(showvote.mpid,showvote.typename);		
	}
	showvote.starVoteMy._voteImgClick(evt,callback,showvote.starVoteMy);
}

showvote.starVoteMy_voteImgOut = function(evt){
	var evt=(evt)?evt:(window.event)?window.event:"";
	showvote.starVoteMy._voteImgOut(evt,showvote.starVoteMy);
}