// Used to create browser independent media that are Java controllable ...
RPGUID='clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA';
RPPARAMS='<PARAM NAME="CONTROLS" VALUE="ImageWindow">';
RPATTR='CONTROLS="ImageWindow"';
AMGUID='clsid:05589FA1-C356-11CE-BF01-00AA0055595A';
AMPARAMS='<PARAM NAME="ShowDisplay" VALUE="0"><PARAM NAME="ShowControls" VALUE="0"><PARAM NAME="ShowTracker" VALUE="0">';
AMATTR='AUTOSTART="FALSE" CONTROLLER="FALSE" SCALE="TOFIT" MASTERSOUND';

var slide = null;

function RPObj(id,url)
{
	if(isIE4) return '<OBJECT ID="'+id+'OBJ" CLASSID="'+RPGUID+'" HEIGHT=100% WIDTH=100%>'+RPPARAMS+'<PARAM NAME="SRC" VALUE="'+url+'"></OBJECT>';
	else return	'<EMBED NAME="'+id+'EMB" SRC="'+url+'" WIDTH=100% HEIGHT=100% '+RPATTR+'></EMBED>';
}

function AMObj(id,url)
{
	if(isIE4) return '<OBJECT ID="'+id+'OBJ" CLASSID="'+AMGUID+'" WIDTH=100% HEIGHT=100%>'+AMPARAMS+'<PARAM NAME="FileName" VALUE="'+url+'"></OBJECT>';
	else return '<EMBED NAME="'+id+'EMB" SRC="'+url+'" WIDTH=100% HEIGHT=100% '+AMATTR+'></EMBED>';
}

// used to optimize browser independent text formatting...
function TObj(FName,bFixed,nPtSize,color,nStyle,text,shX,shY,shC)
{
	if ((nStyle&0x10)||(nStyle&0x20)) nPtSize=nPtSize*2/3;
	if(isNS4)
	{
		var attr='FACE="'+FName+'" COLOR="#'+color+'" POINT-SIZE="'+nPtSize+'"';
		var str="<FONT "+attr+">";
		if (nStyle&0x01) str+="<B>";
		if (nStyle&0x02) str+="<I>";
		if (nStyle&0x04) str+="<U>";
		if (nStyle&0x10) str+="<SUP>";
		if (nStyle&0x20) str+="<SUB>";
		str+=text;
		if (nStyle&0x20) str+="</SUB>";
		if (nStyle&0x10) str+="</SUP>";
		if (nStyle&0x04) str+="</U>";
		if (nStyle&0x02) str+="</I>";
		if (nStyle&0x01) str+="</B>";
		str+="</FONT>";
		return str;
	}
	else
	{
		var style="font-family:"+FName;
//		if (bFixed) style+=" monospace";
		style+="; font-size:"+nPtSize+"pt; color:#"+color+";";
		if (nStyle&0x01) style+=" font-weight:bold;";
		if (nStyle&0x02) style+=" font-style:italic;";
		if (nStyle&0x04) style+=" text-decoration:underline;";
		if (nStyle&0x08) style+=" text-decoration:line-through;";
		if (nStyle&0x10) style+=" vertical-align:super;";
		if (nStyle&0x20) style+=" vertical-align:sub;";
		return '<SPAN STYLE="'+style+'">'+text+'</SPAN>';
	}
}


function DivSt(id,l,t,w,h,vis,sx,sy,sc)
{
	if (isNS4) {
		var attr='NAME="'+id+'" LEFT='+l+' TOP='+t;
		if (w>0) attr+=' WIDTH='+w;
		if (h>0) attr+=' HEIGHT='+h;
		if (vis!=-1) attr+=' VISIBILITY='+(vis?'SHOW':'HIDDEN');
		attr+=" CLIP='"+w+","+h+"'";
		return '<LAYER '+attr+'>';
	}
	else {
		var style="position:absolute; left:"+l+"px; top:"+t+"px;";
		if (w>0) style+=" width:"+w+"px;";
		if (h>0) style+=" height:"+h+"px;";
		if (vis!=-1) style+=" visibility:"+(vis?"visible":"hidden");
		if (sx==256) {
			style+=" filter:DropShadow(Color=#000000,OffX=1,OffY=1);";
		}
		else if (sx!=0||sy!=0) {
			style+=" filter:DropShadow(Color=#"+sc+",OffX="+sx+",OffY="+sy+");";
		}
		style+=" overflow:hidden; clip:rect(0 "+w+" "+h+" 0)";
		return '<DIV ID="'+id+'" STYLE="'+style+'">';
	}
}

function DivEnd()
{
	if (isNS4) return "</LAYER>\n";
	else return "</DIV>\n";
}

function setIm(d,n,i) { eval("d." + n + ".src=i"); }

var factory;
var slide;
var pts="";
var transin="";
var transout="";

function addPath(init)
{
	if (init)
		pts="";
	for (l=pts.length,i=1;i<addPath.arguments.length;i++,l++)
	{
		if (pts.length==0) pts+=addPath.arguments[i];
		else pts+=","+addPath.arguments[i];
	}
}

function makeTrans(which,type,subtype)
{
	var	trans=""+type+","+subtype;
	for (i=3;i<makeTrans.arguments.length;i++)
		trans+=","+ makeTrans.arguments[i];
	if (which) transout=trans;
	else transin=trans;
}

function addIt(name,parent,agent,iter,type,transin,transout,t1,t2,t3,t4,iState,pathType,left,top,ptArray,staticPct)
{
	var timeline;
	var path;
	var entryTrans;
	var exitTrans;

	timeline=factory.createTimelineEx(t1,t2,t3,t4,iState);
	entryTrans=factory.createTransitionEx(transin);
	exitTrans=factory.createTransitionEx(transout);

	if (pathType==0)
		slide.addDivEx(name,agent,left,top,timeline,entryTrans,exitTrans,parent,iter,type);
	else {
		if (pathType==1) path=factory.createPolyPath(left,top,ptArray,staticPct);
		else if (pathType==2) path=factory.createBezierPath(left,top,ptArray,staticPct);
		else path=factory.createTimePath(left,top,ptArray,staticPct);
		slide.addDiv(name,agent,path,timeline,entryTrans,exitTrans,parent,iter,type);
	}
}

function addInter(itemName,interNum,type,param,param2,obj1,obj2)
{
	slide.addInteractiveEvent(itemName,interNum,type,param,param2,obj1,obj2);
}

var bReg = false;
var nRegCount = 0;
var bStarted = false;
var nStartCount = 0;
var bPlayNow = true;

function JUMP(evType,itemName,evNum) { if (slide!=null) slide.fireInputEvent(evType,itemName,evNum); }
function setAuthorDPI(dpi) { slide.setAuthorDPI (dpi); }
function playSlide() { bStarted=true; slide.play(); }
function pauseSlide() { slide.pause(); }
function unloadSlide(){ if (slide!=null) {slide.enableUpdates(0);slide.pause();slide.relax(1000); } }

function jumpActive()
{
	if(isIE4) return (document.JumpApplet != null) && (document.JumpApplet.readyState == 4);
	else return (document.SCL.document.JumpAppletLayer.document.applets['JumpApplet'] != null);
}

function startPlay()
{
	if (bStarted || nStartCount++>250) return;
	if (!bPlayNow || !bReg) { setTimeout("startPlay();",500); return; }
	if (!bStarted) playSlide();
}

function getClickedLink(e)
{
	if (isIE4&&window.event.srcElement!=null)
	    return window.event.srcElement.href;
    else if (e!=null&&e.target!=null)
	    return e.target.href;
    return null;
}

function clickHandler(e)
{
	if (getClickedLink(e)==null && slide!=null)
	    slide.fireInputEvent(0,"",0);
}

var cdfname = "default.cdf";

function addCDFChannel() { if(isIE4) document.location.href=cdfname; }

function addMyChannel()
{
	if (isNS4) addNCChannelAPI();
	else addCDFChannel();
}


