var lbserver="http://fursuit.timduru.org/";
var localserver="http://fursuit.de.timduru.org/";
var idsroot='ids';
 
var basewidth="320";
var baseheight="240";
var width=basewidth;
var height=baseheight;

var version="1.1";
var pos=0;
var sflv, snameAlone,sautoPlay,sdownloadURL,slinkBaseURL;
var ssize = 1.5;
var sdivxExists = 'false';
var version = GetCookie("Version");
var cookieSize = GetCookie("PreviewSize");
if(cookieSize=="" || cookieSize ==null) {cookieSize="1";}
if(version=="" || version ==null) {cookieSize="1.5";SetCookie("Version",version,null,"/"); }



var flvMode = true;

var cookieLoc = GetCookie("Location");
var sloc = (cookieLoc==null?"rs":cookieLoc);

function SetCookie (name,value,expires,path,domain,secure)
    {
      document.cookie = name + "=" + escape (value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
    }

function GetCookie(name)
{
	var cookies = document.cookie.split(/; /);
	for(var i=0; i < cookies.length; i++){
		var mycook = cookies[i].split(/=/);
		if(mycook[0]==name)return unescape(mycook[1]);
	}
}

 function getObjectById(id)
                {
                        if(document.getElementById) return  document.getElementById(id) ;
                        if(document.all) return  document.all[id];
                        return 0;
                }

function videoPreview(flv, nameAlone,autoPlay,downloadURL, linkBaseURL,divxExists)
{
	sflv=flv;
	snameAlone=nameAlone;
	sautoPlay=autoPlay;
	sdownloadURL=new String(downloadURL);
	sdownloadURL = sdownloadURL.replace(/[/]+ids[/]+/,"ids/");
	sdownloadURL = sdownloadURL.replace(/[/]+albums[/]+/,"/albums/");

	slinkBaseURL=linkBaseURL;
	if(nameAlone.match("_sdivx") !=null) 
	{if(nameAlone.match("_disp16") !=null) divxExists="16/9"; else divxExists="true";}
	sdivxExists = divxExists;
	if(divxExists!='true' && divxExists !='16/9') 
		flvMode=true;
	
	
	pos = gup('pos'); if(!pos) pos=0;
	size(ssize);
}

function runVideoPreview(flv, nameAlone,autoPlay,downloadURL,linkBaseURL)
{
        try
        {
		var title = 'Video<br>';
		title += '<a href="'+lbserver+downloadURL+'">'+nameAlone+ '</a>';

		var previewFormat  ='';

		var flvsize = '<div align="right" title="Change to the desired size before playing or copying the embedding code">Viewing and embedding size: <a href="#" onclick="size(0.5);return false;">x0.5</a> | <a href="#" onclick="size(1);return false;">x1</a> | <a href="#" onclick="size(1.5);return false;">x1.5</a> | <a href="#" onclick="size(2);return false;">x2</a></div>';

		var flvPlayer = '<div align="center">' + flvPreviewPlayerNew(flv, nameAlone,autoPlay,downloadURL,false) + '</div>';


		var div  = getObjectById('videoPreview');
		var footer = '<div align="center">When preview is available, <br>click on the thumbnail to preview<br>click on the name to <a href="'+lbserver+downloadURL+'">download</a></div>';
		var link = '<tr title="URL to post to show this page"><td align="left" >Link:</td><td> <input type="text" size="35" value=\'';
		var linkURL = new String(linkBaseURL);
        	linkURL = linkURL.replace(/\.(de|rs)\./,'.');
 		linkURL+="&vidPreview="+nameAlone;

		link+= linkURL;
		link+= '\' onclick="this.focus();this.select();"  readonly="true"></td></tr>';

		var download = '<tr><td align="left">Download: </td><td><a href="'+lbserver+downloadURL+'">original</a> | <a href="'+flv+'">low bitrate flv</a>';

		var embed = embedbox("copy and paste this code in your webpage to embed the video",false,flvMode,sdivxExists,linkBaseURL +"&vidPreview="+nameAlone,localserver+downloadURL);
		var embedLJ = embedbox("copy and paste this code in your LJ message to embed the video.(if allowed)",true,flvMode,sdivxExists,linkBaseURL +"&vidPreview="+nameAlone,localserver+downloadURL);

//divx

		var divxPlayer = '';
		var divxnav = '';
		if(sdivxExists=='true' || sdivxExists=='16/9')
		{
			//previewFormat +='<table bgcolor="#404080" align="center">;
			previewFormat+='<tr><td colspan="2" align="center">Preview and embedding format </td></tr><tr>';
			previewFormat +='<td '+(flvMode?'bgcolor="#40A040"':'')+'>';
			previewFormat +='<a href="#" onclick="flvMode=true;sautoPlay=true;size(parseFloat(cookieSize));return false;">Low bitrate Flash</a></td>';


			previewFormat +='<td '+(!flvMode?'bgcolor="#40A040"':'')+'>';
			previewFormat +='<a href="#" onclick="flvMode=false;sautoPlay=true;size(parseFloat(cookieSize));return false;">Medium bitrate divx</a></td>';
			previewFormat +='</tr>';
			//previewFormat+='</table>';



			var divxFileURL = divxURLFromFLV(flv,sdivxExists,localserver+downloadURL); // divxExists : true if exists, 16/9 if exists and 16/9

			download+=' | <a href="'+divxFileURL+'">medium bitrate divx</a>';
			
			if(flvMode==false)
			{
			divxPlayer = '<div align="center">' + divxPreviewPlayer(divxFileURL,sautoPlay,sdivxExists)+ '</div>';
			divxnav = '<div align="right" title="If the video is buffering for too long try one of the server that might be more local to you">Switch to preview server located in ';
			divxnav +='<a href="#" onclick="flvMode=false;switchLocal(\'rs\');sautoPlay=true;size(parseFloat(cookieSize));return false;">US</a>';
			divxnav +=" | ";
			divxnav +='<a href="#" onclick="flvMode=false;switchLocal(\'de\');sautoPlay=true;size(parseFloat(cookieSize));return false;">France</a>';
			}
		}
//
		download += '</td></tr>';
			player = (flvMode?flvPlayer:divxPlayer);
			videonav = (flvMode?flvsize:divxnav);

		//div.innerHTML = title + '<br><table><tr><td>' + link +embed + download+ videonav +  player+ footer + '</td></tr></table><br>';



		var innerHTML = '<div align="center" style="background-color: #505070;border:3px ridge black;padding-bottom:5px">'+ title +'</div>'; 
		innerHTML += '<table cellpadding="2" align="center" style="background-color: #505070;border:2px ridge black;border-top:none;border-bottom:none;">';
		innerHTML+= previewFormat;
		innerHTML+= '</table>';
		innerHTML+='<table align="center" style="background-color: #505070;border:2px ridge black;"><tr><td>';
		innerHTML+='<table align="center" style="border-bottom:2px ridge black;"><tr><td >'+ videonav +  player+'</td></tr></table>';
		innerHTML+= '<table align="center" >' +link+ embed + embedLJ+ download+ '</table>';
		innerHTML+= '<table width="100%" align="center" style="border-top:2px ridge black;"><tr><td>'+footer+'</td></tr></table>'; 
		innerHTML+= '</td></tr></table><br>';
		div.innerHTML = innerHTML;
        }
        catch(e){}

}


function divxPreviewPlayer(urlToDivx,autoPlay,format)
{
	var ww=704;
	var hh=(format=='16/9'?(18+704*9/16):(18+704*3/4));
        try
        {
		var player = '<object codebase="http://go.divx.com/plugin/DivXBrowserPlugin.cab" height="'+hh+'" width="'+ww+'" classid="clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616"><param name="autoplay" value="'+(autoPlay?"true":"false")+'"><param name="src" value="'+urlToDivx+'" /><param name="disableDimmer" value="true" /><param name="showpostplaybackad" value="false" />';
		player += '<embed type="video/divx" src="'+urlToDivx+'" pluginspage="http://go.divx.com/plugin/download/"     showpostplaybackad="false" autoplay="'+(autoPlay?"true":"false")+'" disableDimmer="true" height="'+hh+'" width="'+ww+'" />';
		player+= '</object>';
                return player;
        }
        catch(e){}

}


function flvPreviewPlayerNew(flv, nameAlone,autoPlay,downloadURL,embed)
{
	try
	{
		var server = localserver;
		var swfplayer = server+idsroot+'/js/faplayer.swf';


		var args = '&file='; 
		args += flv; 
		args += '&start='+pos;
		//args += '&showdigits=total';
                //args += '&streamscript=vid.php';
		if(embed) args += '&showdownload=true&linkfromdisplay=true&link='+slinkBaseURL+"%26vidPreview="+nameAlone;
		args += '&height='+height+'&width='+width+'&displayheight='+height;
		args += '&autostart='+autoPlay+'&autoRewind=true';



	 	var player ='<object id="objectPlayer" width="'+width+'" height="'+height+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"> <param name="salign" value="lt"> <param name="quality" value="high"><param name="allowfullscreen" value="true">';

		player += '<param name="movie" value="'+swfplayer+'">';
		player += '<param name="FlashVars" value="'+ args +'">';
		player+=' <embed id="embedPlayer" width="'+width+'" height="'+height+'" ';
		player += ' flashvars="'+ args +'"';
		player += ' quality="high" allowfullscreen="true"  type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="'+ swfplayer +'" > </embed></object>';

	
		return player;
	}
	catch(e){}

}



function flvPreviewPlayer(flv, nameAlone,autoPlay,downloadURL)
{
	try
	{
		var server = 'http://fursuit.timduru.org/';

	 	var player ='<object id="objectPlayer" width="'+width+'" height="'+height+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"> <param name="salign" value="lt"> <param name="quality" value="high">   <param name="scale" value="noscale"> <param name="wmode" value="transparent">';

		player += '<param name="movie" value="'+server+idsroot+'/js/flvplay.swf"> <param name="FlashVars" value="&streamName=';
		player += flv;
		player+='&skinName='+server+idsroot+'/js/flvskin&autoPlay='+autoPlay+'&autoRewind=true">  <embed id="embedPlayer" width="'+width+'" height="'+height+'" flashvars="&streamName=';
		player += flv;
		player += '&autoPlay='+autoPlay+'&autoRewind=true&skinName='+server+idsroot+'/js/flvskin" quality="high" scale="noscale" salign="LT" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="'+server+idsroot+'/js/flvplay.swf" wmode="transparent"> </embed></object>';


	
		return player;
	}
	catch(e){}

}


function size(size)
{
	ssize=size;
if(parseFloat(cookieSize)!=size) SetCookie("PreviewSize",size,null,"/");
	try
	{
	switch(size)
	{
		case 0.5:
		case 1:
		case 1.5:
		case 2:  
		width = basewidth*size;
		height = baseheight * size;
	}
//	getObjectById('embedPlayer').width=width;
//	getObjectById('embedPlayer').height=height;
//	getObjectById('objectPlayer').width=width;
//	getObjectById('objectPlayer').height=height;
	runVideoPreview(sflv, snameAlone,sautoPlay,sdownloadURL,slinkBaseURL)
	}catch(e){}
}

function embedbox(title,lj,flvMode,divxFormat,link,localDownloadURL)
{
                var embed= '';
 		embed += '<tr title="'+title+'"><td align="left" >Embed'+(lj?" LJ":"")+': </td><td><input type="text" size="35" value=\'';
		if(lj) embed += '<lj-embed>';
                if(flvMode) embed += flvPreviewPlayerNew(sflv, snameAlone,false,sdownloadURL,true);
		else
		{ embed += divxPreviewPlayer(divxURLFromFLV(sflv,divxFormat,localDownloadURL), false,divxFormat);
		  embed += '<div title="If you have buffering problems go there to try another server"><a href="'+link+'" target="_new">Watch & download the video from the fursuit archive</a> (more streaming & download options)</div>';
		}
		if(lj) embed += '</lj-embed>';
                embed+= '\' onclick="this.focus();this.select();"  readonly="true"></td></tr>';


		return embed;

}
size(parseFloat(cookieSize));

function switchLocal(loc)
{
	sloc = loc;
	SetCookie("Location",loc,null,"/");
}

function divxURLFromFLV(flv,format,localDownloadURL)
{
	var divxFileURL = new String(flv);
	if(divxFileURL.match("_sdivx")!=null) {divxFileURL=localDownloadURL;return divxFileURL;}
	//alert(divxFileURL);
	//divxFileURL = divxFileURL.replace(/[/]+ids[/]+/,"/dirlist/");
	//divxFileURL = divxFileURL.replace(/albums[/]+/,"");
	divxFileURL = divxFileURL.replace(/\.flv/,".divx");
	divxFileURL = divxFileURL.replace(/\.(de|rs)\./,'.'+sloc+'.');
	if(format=='16/9' && (divxFileURL.match("_disp16") ==null))         divxFileURL = divxFileURL.replace(/_disp/,"_disp16");
	//alert(divxFileURL);
return divxFileURL;
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}
