
/*	################################################
	  Copyright (c) 2005: Gafni Media Technologies  ךלחלךחלחלח
	################################################ */
var 
	oIntervalSliderProgressPeriod, 
	oIntervalSliderDragPeriod = 100, 
	oIntervalSliderProgress = null, 
	oIntervalSliderDrag, 
	sliderIsDragged = false, 
	coefProgressSlider = null, 
	oIntervalTimeProgress, 
	
	isBuffering = false, 
	oIntervalBuffering = 1, 
	oIntervalSliderVolumeProgressPeriod, 
	oIntervalSliderVolumeDragPeriod = 100, 	
	oIntervalSliderVolumeProgress = null, 
	oIntervalSliderVolumeDrag, 
	sliderVolumeIsDragged = false, 
	oIntervalPermanentPlayerStateCheck = window.setInterval('playerStateCheck()', 5000), 
	coefProgressSliderVolume = null;
	
coefProgressSlider = null,
coefProgressSliderVolume = null;
sliderIsDragged = false;
sliderVolumeIsDragged = false;
oIntervalBuffering = null;


if (typeof(IsPresentedSlider)=='undefined')IsPresentedSlider = false;
if (typeof(IsPresentedSliderVolume)=='undefined')IsPresentedSliderVolume = false;
if (typeof(IsAutoStart)=='undefined')IsAutoStart = false;
if (typeof(IsClipHourDisplay)=='undefined')IsClipHourDisplay = false;
if (typeof(itClipWidth)=='undefined')itClipWidth = null;
if (typeof(itClipHeight)=='undefined')itClipHeight = null;

function updateCurrentPositionReflection()
{
	try
	{
		var s = objPlayer.object.controls.currentPositionString;
	}
	catch(e)
	{
		return;
	}
	if ((s==null)||(s=="")) return;
	if ((s.length==5)&&IsClipHourDisplay)s= "00:" + s;
	spnTimeCurrentPosition.innerText = s;// + " ";
}
function doPlayerInit()
{
	if (typeof(objPlayer)=='undefined')objPlayer=document.objPlayer;
	objPlayer.attachEvent('buffering', onBuffering);
	objPlayer.attachEvent('playStateChange', onPlayStateChange);
	if (IsPresentedSliderVolume)initSliderVolume();
	//initSlider();
	if (objPlayer.settings.autoStart || IsAutoStart)objPlayer.controls.play();
	onPlayStateChange(objPlayer.object.playState);
	//alert(objPlayer.object.playState);
	if (IsPresentedSlider) oIntervalTimeProgress = window.setInterval('updateCurrentPositionReflection()', 1000);
}
function playerStateCheck()
{
	try
	{
		if (objPlayer.playState == 3)
			flipVisibility2Player2SplashScreen(objPlayer, spnPreview);
	}
	catch(e){}
	initSlider(true);
}

function SliderStartStopDrag()
{
	sliderIsDragged = !sliderIsDragged;
	if (sliderIsDragged==true)
	{
		document.body.onmousemove=SliderPointDragUpdate;
		document.body.onmouseup=SliderStartStopDrag;
	}
	else
	{					
		document.body.onmousemove=null;
		document.body.onmouseup=null;		
		var SliderPosition = spnSliderPoint.style.pixelLeft + spnSliderPoint.clientWidth / 2;
		objPlayer.controls.currentPosition = coefProgressSlider * SliderPosition;
	}
}
function SliderVolumeStartStopDrag()
{
	sliderVolumeIsDragged = !sliderVolumeIsDragged;
	if (sliderVolumeIsDragged==true)
	{
		document.body.onmousemove=SliderVolumePointDragUpdate;
		document.body.onmouseup=SliderVolumeStartStopDrag;
	}
	else
	{					
		document.body.onmousemove=null;
		document.body.onmouseup=null;
		var SliderVolumePosition = spnSliderVolumePoint.style.pixelLeft + spnSliderVolumePoint.clientWidth / 2;
		objPlayer.settings.volume = coefProgressSliderVolume * SliderVolumePosition;
		status = "Volume " + objPlayer.settings.volume + " %";
	}
}
function doGetElementOffsetLeft(spnSliderVolumePoint)
{
	var elParent = spnSliderVolumePoint.parentElement, 
		itOffsetLeft = elParent.offsetLeft - (spnSliderVolumePoint.clientWidth / 2) + 2;
	while(elParent.tagName!="BODY")
	{
		elParent = elParent.parentElement;
		itOffsetLeft += elParent.offsetLeft;
	}
	return itOffsetLeft;
}
function doGetSliderCommonPosition(spnSliderCommonPoint) 
{
	var	itOffsetLeft = doGetElementOffsetLeft(spnSliderCommonPoint);
	if (event.clientX > (itOffsetLeft + spnSliderCommonPoint.parentElement.clientWidth))
		return spnSliderCommonPoint.parentElement.clientWidth;
	else if (event.clientX < itOffsetLeft)
		return 0;
	else 
		return event.clientX - itOffsetLeft; 
	return event.clientX;
}
function SliderPointDragUpdate()
{
	setSliderPosition(doGetSliderCommonPosition(spnSliderPoint));
}
function SliderVolumePointDragUpdate()
{
	var SliderVolumePosition = doGetSliderCommonPosition(spnSliderVolumePoint);
	setSliderVolumePosition(SliderVolumePosition);
	objPlayer.settings.volume = coefProgressSliderVolume * SliderVolumePosition;
	status = "Volume " + objPlayer.settings.volume + " %";
}
function SliderAreaClick(sender)
{
	if (sliderIsDragged==true) return;
	setSliderPosition(sender);
}
function SliderVolumeAreaClick(sender)
{
	if (sliderVolumeIsDragged==true) return;
	setSliderVolumePosition(sender);
}
function setSliderPosition(sender)
{
	var SliderPosition = spnSliderPoint.style.pixelLeft + spnSliderPoint.clientWidth / 2;
	if ((sender.tagName)&&(event.srcElement!=spnSliderPoint))
	{
		SliderPosition = event.offsetX;
		objPlayer.controls.currentPosition = coefProgressSlider * SliderPosition;		
	}
	else if (!isNaN(sender))
		SliderPosition = sender;	
	spnSliderPoint.style.left = SliderPosition - spnSliderPoint.clientWidth / 2;
	spnSliderTrail.style.pixelWidth = spnSliderPoint.style.pixelLeft + 5;
}
function setSliderVolumePosition(sender)
{
	var SliderVolumePosition = spnSliderVolumePoint.style.pixelLeft + spnSliderVolumePoint.clientWidth / 2;
	if ((sender.tagName)&&(event.srcElement!=spnSliderVolumePoint))
	{
		SliderVolumePosition = event.offsetX + 2;
		objPlayer.settings.volume = coefProgressSliderVolume * SliderVolumePosition;
		status = "Volume " + objPlayer.settings.volume + " %";
	}
	else if (!isNaN(sender))
		SliderVolumePosition = sender;
	spnSliderVolumePoint.style.left = SliderVolumePosition - spnSliderVolumePoint.clientWidth / 2;
	// Buggy:
	// spnSliderVolumePoint.style.backgroundImage = "url(images/volumebullet.jpg)";
	// cursor="hand";
	// End Buggy
}
function SliderPointProgressUpdate()
{	
	try
	{
		SliderAreaClick(objPlayer.controls.currentPosition / coefProgressSlider);
	}
	catch(e){}
}
function SliderVolumePointProgressUpdate()
{	
	//SliderVolumeAreaClick(objPlayer.settings.volume / coefProgressSliderVolume);
}
function initSlider(blRecalculateCoef)
{	
	if (
		(typeof(IsPresentedSlider)=='undefined')||
		!IsPresentedSlider ||
		(!blRecalculateCoef && coefProgressSlider!=null)
		) return;
	try
	{
		coefProgressSlider = objPlayer.currentMedia.duration / spnSliderArea.clientWidth;
	}
	catch(e)
	{
		coefProgressSlider = null;
	}
	if (coefProgressSlider!=null) 
	{
		oIntervalSliderProgressPeriod = 5000 * coefProgressSlider;	
		oIntervalSliderProgress = window.setInterval('SliderPointProgressUpdate()', oIntervalSliderProgressPeriod);	
		SliderPointProgressUpdate();
	}
}
function initSliderVolume()
{
	if (coefProgressSliderVolume!=null) return; 
	coefProgressSliderVolume = 100 / spnSliderVolumeArea.clientWidth;
	oIntervalSliderVolumeProgressPeriod = 1000;
	oIntervalSliderProgress = window.setInterval('SliderVolumePointProgressUpdate()', oIntervalSliderVolumeProgressPeriod);
}
function onBuffering(Start)
{
	isBuffering = Start;
	if (Start)
	{ 
		oIntervalBuffering = window.setInterval('updatebp()',250); 
		flipVisibility2Player2SplashScreen(spnPreview, objPlayer);
	} 
	else {
		window.clearInterval(oIntervalBuffering);
		flipVisibility2Player2SplashScreen(objPlayer, spnPreview);
		bptext.innerHTML = "";
	}	
}

function onPlayStateChange(NewState)
{
	//status=NewState;
	switch (NewState)
	{
		case  1:		// stopped
			imgBtnPlayState.src = changeImageSource(imgBtnPlayState.src, "imgBtnPSStoppedPaused");
			flipVisibility2Player2SplashScreen(spnPreview, objPlayer);
			break; 
		case  2:		// paused
			imgBtnPlayState.src = changeImageSource(imgBtnPlayState.src, "imgBtnPSStoppedPaused");
			//flipVisibility2Player2SplashScreen(spnPreview, objPlayer);
			break;		
		case  3:		// playing
			if(IsPresentedSliderVolume) setSliderVolumePosition(objPlayer.settings.volume / coefProgressSliderVolume);
			imgBtnPlayState.src = changeImageSource(imgBtnPlayState.src, "imgBtnPSPlaying"); 
			//imgBtnPlayState.src = changeImageSource(imgBtnPlayState.src, "imgBtnPSStoppedPaused"); 
  			if (isBuffering==false)
  			{
  				flipVisibility2Player2SplashScreen(objPlayer, spnPreview);
  				initSlider(false);
  			}
  			if (IsPresentedSlider)
  			{
  				var s = objPlayer.currentMedia.durationString;
  				if((s.length==5) && IsClipHourDisplay) 
  					s = "00:" + s;
  				else if (s.length==8)
					IsClipHourDisplay = true;
				try
				{
  					spnTimeEnd.innerText = s;
  				}
  				catch(e){}
  			}
			break;
		case  4: break; // ScanForward
		case  5: break; // ScanReverse
		case  6: break; // Buffering
		case  7:		// Waiting
			bptext.innerHTML = "Please wait ...";
			break; 
		case  8:		// MediaEnded
			try
			{
				if (IsPresentedSlider)spnTimeCurrentPosition.innerText = spnTimeEnd.innerText;
			}
			catch(e){}
			imgBtnPlayState.src = changeImageSource(imgBtnPlayState.src, "imgBtnPSStoppedPaused");
			flipVisibility2Player2SplashScreen(spnPreview, objPlayer);
			bptext.innerHTML = "";
			break; 
		case  9:		// Transitioning (Preparing new media)
			//alert('Preparing new media');
			bptext.innerHTML = "Connecting ...";
			imgBtnPlayState.src = changeImageSource(imgBtnPlayState.src, "imgBtnPSPlaying");
			flipVisibility2Player2SplashScreen(spnPreview, objPlayer);
			break; 
		case 10:		// Ready (Ready to begin playing)
			oIntervalBuffering = null;
			bptext.innerHTML = "";
			imgBtnPlayState.src = changeImageSource(imgBtnPlayState.src, "imgBtnPSStoppedPaused");
			flipVisibility2Player2SplashScreen(spnPreview, objPlayer);
			break; 
		case 11:		// Reconnecting to stream
  			imgBtnPlayState.src = changeImageSource(imgBtnPlayState.src, "imgBtnPSStoppedPaused");
  			//alert('Reconnecting to stream');
 			break;
	}
	//status=NewState;
}

function flipVisibility2Player2SplashScreen(control1, control2)
{
	control1.style.display = ""; // inline
	//alert(control1.style.height + " - " + control1.style.width);
	if (
		(control1.style.height=="0%")||(control1.style.width=="0%")||
		(control1.style.width=="0")||(control1.style.height=="0")||
		(control1.style.width=="0px")||(control1.style.height=="0px")||
		(control1.style.width==0)||(control1.style.height==0)
			)
	{
		control1.style.height = itClipHeight == null ? "100%" : itClipHeight + "px";
		control1.style.width = itClipWidth == null ? "100%" : itClipWidth + "px";
		//status = control1.style.height + " - " + control1.style.width;
	}
	control2.style.display="none";
}

function updatebp()
{
	bptext.innerHTML = "Buffering:  " + objPlayer.network.bufferingProgress + "%";
}

function FP_swapImg() {//v1.0
 var 
	doc=document,
	args=arguments, elm, n; 
 doc.$imgSwaps=new Array(); 
 for(n=2; n<args.length; n+=2) 
 { 
	elm=FP_getObjectByID(args[n]); 
	if(elm) 
	{ 
		doc.$imgSwaps[doc.$imgSwaps.length]=elm;
		elm.$src=elm.src; elm.src=args[n+1]; 
	} 
 }
}

function FP_preloadImgs() 
{//v1.0
 var d=document,a=arguments;
 if(!d.FP_imgs) d.FP_imgs=new Array();
 for(var i=0; i<a.length; i++) 
 { 
	d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i]; 
 }
}

function FP_getObjectByID(id,o) 
{//v1.0
 var c, el, els, f, m, n; 
 if(!o)o=document; 
	if(o.getElementById) el=o.getElementById(id);
	else if(o.layers) c=o.layers; 
 else if(o.all) el=o.all[id]; 
 if (el) return el;
 if (o.id==id || o.name==id) return o; 
 if (o.childNodes) c=o.childNodes; 
 if (c) for (n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
 f = o.forms; 
 if (f) 
	for(n=0; n<f.length; n++) 
	{ 
		els=f[n].elements;
		for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } 
	}
 return null;
}

function FP_swapImgRestore() 
{//v1.0
 var doc=document,i;
 if(doc.$imgSwaps) 
 { 
	for(i=0;i<doc.$imgSwaps.length;i++) 
	{
		var elm=doc.$imgSwaps[i]; 
		if(elm) { elm.src=elm.$src; elm.$src=null; } 
	} 
	doc.$imgSwaps=null; 
 }
}

function clickPlayPause()
{
	//status=objPlayer.object.playState;
	switch (objPlayer.object.playState)
	{
		case 3: case 9:
			if (IsPresentedSlider) 
				objPlayer.controls.Pause(); 
			else 
				objPlayer.controls.Stop();
			//alert('Stop!!!');
			break;
		default: 
			objPlayer.controls.Play();
			//alert('palaaa');
		//break;
	}
}

function clickRunStop()
{
	//status=objPlayer.object.playState;
	switch (objPlayer.object.playState)
	{
		case 2: case 3: case 9: 
			objPlayer.controls.Stop();
			//alert('Stop!!!');
			break;
		default: 
			//objPlayer.controls.Play();
			//alert('palaaa');
		//break;
	}
}

function doMouseOverImage(sender)
{
	var szNewSrc, i = sender.src.lastIndexOf("."), szImgExt = sender.src.substr(i);	
	if(sender.src.indexOf("_MO.")>0)
		szNewSrc = sender.src.substr(0, sender.src.length - 3 - szImgExt.length);
	else
		szNewSrc = sender.src.substr(0, sender.src.length - szImgExt.length);
	if(event.type=="mouseover") szNewSrc += "_MO";
	sender.src=szNewSrc + szImgExt;
	//alert(sender.src);
}

function changeImageSource(szOldImageSource, zNewImageName)
{
	var i = szOldImageSource.lastIndexOf("."), szImgExt = szOldImageSource.substr(i);
	i = szOldImageSource.lastIndexOf("/");
	var szImagePath = i==-1 ? "" : szOldImageSource.substr(0, i + 1);	
	return szImagePath + zNewImageName + szImgExt;
}

function clickMute(sender)
{
	if(objPlayer.settings.mute)
	{
		objPlayer.settings.mute = false;
		sender.src = changeImageSource(sender.src, "imgBtnMute");
		try
		{
			sender.parentElement.children(1).innerText="השתק קול";
		}
		catch(e){}
	}
	else
	{
		objPlayer.settings.mute = true;
		sender.src = changeImageSource(sender.src, "imgBtnMuted");
		try
		{
			sender.parentElement.children(1).innerText="הפעל קול";
		}
		catch(e){}
	}
}

function clickFullScreen()
{
	if(objPlayer.playstate==3) objPlayer.fullScreen = true;
}

