﻿/*
File Encode: utf-8

0 mpStopped Playback is stopped. 
1 mpPaused Playback is paused. 
2 mpPlaying Stream is playing. 
3 mpWaiting Waiting for stream to begin. 
4 mpScanForward . 
5 mpScanReverse Stream is scanning in reverse. 
6 mpSkipForward Skipping to next. 
7 mpSkipReverse Skipping to previous. 
8 mpClosed Stream is not open. 
*/
var pu={};
var VP={};
function addVideo(src, w, h, isAutoPlay, opt){
	var strMoz='<embed ';
	strMoz+='type="application/x-mplayer2" ';
	strMoz+='pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" ';
	strMoz+='name="mediaObjectId" ';
	strMoz+='filename="mediaSrcForReplace" ';
	strMoz+='autostart="mediaIsAutoStartForReplace" ';
	strMoz+='enablecontextmenu="1" ';
	strMoz+='clicktoplay="0" ';
	strMoz+='enablepositioncontrols="0" ';
	strMoz+='showcontrols="1" ';
	strMoz+='showstatusbar="0" ';
	strMoz+='showtracker="1" ';
	strMoz+='showdisplay="0" ';
	strMoz+='width="mediaWidthForReplace" ';
	strMoz+='height="mediaHeightForReplace"> ';
	strMoz+='</embed>';
    
	var strIE='<object classid="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" ';
	strIE+='id="mediaObjectId" ';
	strIE+='type="application/x-oleobject" ';
	strIE+='width="mediaWidthForReplace" ';
	strIE+='height="mediaHeightForReplace">';
	strIE+='<param name="FileName" value="mediaSrcForReplace">';
	strIE+='<param name="AutoStart" value="mediaIsAutoStartForReplace">';
	strIE+='<param name="AutoRewind" value="-1">';
	strIE+='<param name="AnimationAtStart" value="true">';
	strIE+='<param name="ShowControls" value="true">';
	strIE+='<param name="ShowTracker" value="true">';
	strIE+='<param name="ClickToPlay" value="false">';
	strIE+='<param name="EnableContextMenu" value="true">';
	strIE+='<param name="EnablePositionControls" value="true">';
	strIE+='<param name="Balance" value="0">';
	strIE+='<param name="ShowStatusBar" value="0">';
	strIE+='<param name="AutoSize" value="0">';
	strIE+='</object>';
	try{
		var strToInsert=(document.all)?strIE:strMoz;
		var mediaRef;
		if(src && (typeof src=='string')){
			strToInsert=strToInsert.replace(/mediaSrcForReplace/, src);
		}else{
			strToInsert=strToInsert.replace(/mediaSrcForReplace/, "");
		}
		if(w && (typeof parseInt(w)=='number')){
			strToInsert=strToInsert.replace(/mediaWidthForReplace/, w);
		}else{
			strToInsert=strToInsert.replace(/mediaWidthForReplace/, '402');
		}
		if(h && (typeof parseInt(h)=='number')){
			strToInsert=strToInsert.replace(/mediaHeightForReplace/, h+35);
		}else{
			strToInsert=strToInsert.replace(/mediaHeightForReplace/, '323');
		}
		if(isAutoPlay){
			strToInsert=strToInsert.replace(/mediaIsAutoStartForReplace/, '1');
		}else{
			strToInsert=strToInsert.replace(/mediaIsAutoStartForReplace/, '0');
		}
		if(opt && opt.id && (typeof opt.id=='string')){
			strToInsert=strToInsert.replace(/mediaObjectId/, opt.id);
			mediaRef=(window[opt.id] ? window[opt.id] : document[opt.id]);
		}else{
			var objId=new Date().getTime();
			strToInsert=strToInsert.replace(/mediaObjectId/, 'media_'+objId);
			mediaRef=(window[objId] ? window[objId] : document[objId]);
		}
		pu.$('video_player_box_id').innerHTML=strToInsert;
		return mediaRef;
	}catch(ex){}
}

pu.winloadevent=[];
pu.$=function(ni){
	return document.getElementById(ni);
};
pu.isIE=document.all?true:false;
pu.gtag=function(parentO,tagi){
	if(typeof parentO!='object'){
		//alert("this is not object");
		parentO=pu.$(parentO);
	}
	//alert(parentO)
	return parentO.getElementsByTagName(tagi);
};
pu.showDetail=function(oi){
	if(typeof oi=='object'){
		var tt_str="";
		for(var i in oi){
			tt_str+="obj."+i+"="+oi[i]+",\n";
		}
		return tt_str;
	}
};
pu.switchBtnImg=function(imgi){
	///alert(imgi);
	if(imgi.src.indexOf('normal')!=-1){
		imgi.src=imgi.src.replace('normal','hover');
	}else{
		imgi.src=imgi.src.replace('hover','normal');
	}
};
pu.mpCode={
	iecode:'<object classid="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95"  codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"  id="video_player_id" type=application/x-oleobject width="352" height="288"><param name="FileName" value=""><param name="AutoStart" value="flase"><param name="AutoRewind" value="-1"><param name="AnimationAtStart" value="false"><param name="ShowControls" value="false"><param name="ShowTracker" value="false"><param name="ClickToPlay" value="false"><param name="EnableContextMenu" value="false"><param name="EnablePositionControls" value="false"><param name="Balance" value="0"><param name="ShowStatusBar" value="false"><param name="AutoSize" value="0"></object>',
	ffcode:'<embed type="application/x-mplayer2" name="video_player_id"  pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" filename="" src  autostart="false" enablecontextmenu="false" clicktoplay="false" enablepositioncontrols="false" showcontrols="0"  showstatusbar="0" ShowTracker="0" showdisplay="0" width="352" height="288"> </embed>'
};
VP.seekBarBound={min:-2,max:108,total:110,cur:-2};
VP.volumeBarBound={min:0,max:44,total:44,cur:6};
VP.volumeBound={min:-2800,max:-200,total:2600,cur:-2800};

VP.curX=0;
VP.mouseDown=false;
VP.btns=[];
VP.muteBtnClick=function(){
	if(!VP.vpObj){return;}
	if(VP.vpObj.mute){
		//alert(VP.vpObj.mute);
		VP.vpObj.mute=false;
		VP.muteBtn.src=VP.muteBtn.src.replace('on_','off_');
		VP.muteBtn.alt="";
	}else{
		VP.vpObj.mute=true;
		VP.muteBtn.src=VP.muteBtn.src.replace('off_','on_');
		VP.muteBtn.alt="";
	}
};
VP.volumePointMouseDown=function(){
	VP.curX=window.event.clientX;
	VP.mouseDown=true;
	//alert(oi);
	VP.volumePoint.onmouseup=VP.volumePointMouseUp;
	VP.volumePoint.parentNode.onmouseout=VP.volumePointMouseUp;
	VP.volumePoint.parentNode.onmousemove=VP.volumeBoxMove;
};

VP.volumePointMouseUp=function(){
	if(VP.mouseDown){
		VP.mouseDown=false;
		VP.volumePoint.parentNode.onmousemove=null;
		VP.updateVolume();
	}
};
VP.volumeBoxMove=function(){
	var nowX=window.event.clientX;
	VP.volumeBarBound.cur+=Math.round(nowX-VP.curX);
	VP.curX=nowX;
	///pu.$("temp_id").innerHTML=VP.volumeBarBound.cur;
	if(VP.volumeBarBound.cur>VP.volumeBarBound.max){VP.volumeBarBound.cur=VP.volumeBarBound.max;}
	if(VP.volumeBarBound.cur<VP.volumeBarBound.min){VP.volumeBarBound.cur=VP.volumeBarBound.min;}
	VP.volumePoint.style.left=VP.volumeBarBound.cur+'px';
};
VP.updateVolume=function(){
	var curVolume=(VP.volumeBarBound.cur-VP.volumeBarBound.min)/(VP.volumeBarBound.total);
	if(curVolume<0){curVolume=0.01;}
	VP.volumeBound.cur=Math.round((VP.volumeBound.total)*curVolume+VP.volumeBound.min)
	if(curVolume<=1){
		VP.vpObj.volume=VP.volumeBound.cur;
	}else{
		VP.vpObj.volume=VP.volumeBound.max;
	}
};


VP.seekPointMouseDown=function(){
	clearInterval(VP.updateSeekPosTimer);
	VP.curX=window.event.clientX;
	VP.mouseDown=true;
	VP.seekPoint.onmouseup=VP.seekPointMouseUp;
	VP.seekPoint.parentNode.onmouseout=VP.seekPointMouseUp;
	VP.seekPoint.parentNode.onmousemove=VP.seekBarMove;
};
VP.seekPointMouseUp=function(){
	if(VP.mouseDown){
		VP.mouseDown=false;
		VP.seekPoint.parentNode.onmousemove=null;
		VP.updateSeek();
		VP.updateSeekPosTimer=setInterval(function(){VP.updateSeekPos();},1000);
	}
};
VP.seekBarMove=function(){
	var nowX=window.event.clientX;
	VP.seekBarBound.cur+=(nowX-VP.curX);
	VP.curX=nowX;
	///pu.$("temp_id").innerHTML=VP.seekBarBound.cur;
	if(VP.seekBarBound.cur>VP.seekBarBound.max){VP.seekBarBound.cur=VP.seekBarBound.max;}
	if(VP.seekBarBound.cur<VP.seekBarBound.min){VP.seekBarBound.cur=VP.seekBarBound.min;}

};
VP.updateSeek=function(){
	var curSeek=(VP.seekBarBound.cur-VP.seekBarBound.min)/(VP.seekBarBound.total);
	VP.seekCur=(VP.totalTime)*curSeek;
	if(curSeek<=1){
		VP.vpObj.currentPosition=VP.seekCur;
	}else{
		VP.vpObj.currentPosition=VP.totalTime;
	}
};

VP.playpauseBtnClick=function(){
	if(!VP.isPlay){
	//stop or pause
		VP.vpObj.play();
		VP.playpauseBtn.src=VP.playpauseBtn.src.replace("pause_btn","play_btn");
		VP.playpauseBtn.alt="";
		VP.stopBtnEnable();
	}else if(VP.vpObj.playState==2){
	//playing
		if(VP.playpauseBtn.src.indexOf('pause_btn')!=-1){
			//if current show is pause
			VP.playpauseBtn.src=VP.playpauseBtn.src.replace("play_btn","pause_btn");
			VP.playpauseBtn.alt="";
		}
	}
};
VP.toPlay=function(){
	VP.vpObj.play();
	VP.isPlay=true;
	VP.isPause=false;
	VP.isStop=false;
	VP.playpauseBtn.src=VP.playpauseBtn.src.replace("play_btn","pause_btn");
	VP.playpauseBtn.alt="";
	VP.stopBtn.className="";
	VP.playpauseBtn.onclick=VP.toPause;
	VP.stopBtn.onclick=VP.toStop;
	VP.stopBtn.alt="";
	VP.updateSeekPosTimer=setInterval(function(){VP.updateSeekPos();},1000);
};

VP.toPause=function(){
	VP.vpObj.pause();
	VP.isPlay=false;
	VP.isPause=true;
	VP.playpauseBtn.onclick=VP.toPlay;
	VP.playpauseBtn.src=VP.playpauseBtn.src.replace("pause_btn","play_btn");
	VP.playpauseBtn.alt="";
	clearInterval(VP.updateSeekPosTimer);
};
VP.toStop=function(){
	var oi=VP.stopBtn;
	VP.vpObj.stop();
	VP.isStop=true;
	VP.isPause=true;
	VP.isPlay=false;
	VP.playpauseBtn.onclick=VP.toPlay;
	oi.onclick=null;
	VP.playpauseBtn.src=VP.playpauseBtn.src.replace("pause_btn","play_btn");
	VP.playpauseBtn.alt="";
	oi.className="grayed";
	oi.alt="";
};
VP.playV=function(fileIn){
	//pu.$("video_replace_id").style.display="";
	VP.isPlay=false;
	VP.isPause=true;
	VP.isStop=true;
	VP.vpObj.filename=fileIn;
	VP.seekBarBound.cur=VP.seekBarBound.min;
	VP.seekPoint.style.left=VP.seekBarBound.cur+"px";
	//VP.vpObj.autoStart=false;
	VP.updateVolume();
	VP.getTotalTimer=setInterval(
		function(){
			if(VP.vpObj.playState==2){
				VP.totalTime=VP.vpObj.duration;
				if(!VP.totalTime){VP.totalTime=Number.MAX_VALUE;}
				//pu.$("video_replace_id").style.display="none";
				clearInterval(VP.getTotalTimer);
				//if(!autoStart){return;}
				VP.toPlay();
			}
		},200);

};
VP.init=function(){
	if(pu.isIE){
		pu.$('video_obj_id').innerHTML=pu.mpCode.iecode;
		///alert(VP.code.iecode);
	}else{
		return;
	}
	VP.vpObj=document['video_player_id'];
	pu.$("video_replace_id").style.display="none";
	var imgList=pu.gtag("video_controlbar_id","img");
	var imgListLen=imgList.length;
	var btns=VP.btns;
	for(var i=0;i<imgListLen;i++){
		var imgCur=imgList[i];
		if(imgCur.src.indexOf("btn")!=-1){
			VP.btns.push(imgCur);
			imgCur.onmouseover=function(){
				pu.switchBtnImg(this);
			};
			imgCur.onmouseout=function(){
				pu.switchBtnImg(this);
			};
			if(imgCur.src.indexOf('mute')!=-1){
				VP.muteBtn=imgCur;
				imgCur.onclick=function(){
					VP.muteBtnClick(this);
				};
			}
			
		}else if(imgCur.src.indexOf("seek_point")!=-1){
			VP.seekPoint=imgCur;
			imgCur.onmousedown=VP.seekPointMouseDown;
		}else if(imgCur.src.indexOf("volume_point")!=-1){
			VP.volumePoint=imgCur;
			imgCur.onmousedown=VP.volumePointMouseDown;
		}else if(imgCur.src.indexOf("full_screen")!=-1){
			imgCur.onmousedown=function(){
				if(VP.vpObj.playState == 2){
					VP.vpObj.DisplaySize = 3;	
					VP.vpObj.ClickToPlay = false;
				}
			};
		}
	}
	var btnsLen=btns.length;
	for(var i=0;i<btnsLen;i++){
		if((btns[i].src.indexOf('play_btn')!=-1)||(btns[i].src.indexOf('pause_btn')!=-1)){
			VP.playpauseBtn=btns[i];
		}else if(btns[i].src.indexOf('stop_btn')!=-1){
			VP.stopBtn=btns[i];
		}
	}
	VP.seekInfo=pu.$('seek_info_id');
	VP.volumeBarBound.cur=Math.round(VP.volumeBarBound.total*0.6+VP.volumeBarBound.min);
	VP.volumePoint.style.left=VP.volumeBarBound.cur+'px';
};

VP.updateSeekPos=function(){
	if(VP.vpObj.playState==1||VP.vpObj.playState==0||VP.vpObj.playState==8){
		//VP.toStop();
		clearInterval(VP.updateSeekPosTimer);
	}
	var curT=VP.vpObj.currentPosition;
	var sSeekTime="";
	var curT2=parseInt(curT);
	/*if(curT2/3600 >=1){//>1h
		sSeekTime+=(parseInt(curT2/3600)<10)?('0'+parseInt(curT2/3600)):parseInt(curT2/3600);
		curT2=curT2%3600;
	}*/
	if(curT2/60 >=1){//>1m
		sSeekTime+=((parseInt(curT2/60)<10)?('0'+parseInt(curT2/60)):parseInt(curT2/60))+":";
		curT2=curT2%60;
	}else{
		sSeekTime+="00:";
	}
	sSeekTime+=(curT2<10)?('0'+curT2):curT2;
	
	VP.seekInfo.innerHTML=sSeekTime;
	var curPercent=curT/(VP.totalTime);
	if(VP.isStop){curPercent=0;}
	VP.seekBarBound.cur=Math.round(curPercent*(VP.seekBarBound.total))+VP.seekBarBound.min;
};
VP.init();
document.ondragstart=function(){window.event.returnValue=false;};

function playMedia(videoUrl){
	if(document.all){
		VP.playV(videoUrl);
	}else{
		addVideo(videoUrl, 352, 288, true);
	}
}
