// -- Adobe GoLive JavaScript Library// -- Global Functionsfunction CSScriptInit() {if(typeof(skipPage) != "undefined") { if(skipPage) return; }idxArray = new Array;for(var i=0;i<CSInit.length;i++)	idxArray[i] = i;CSAction2(CSInit, idxArray);}function CSScriptExit() {idxArray = new Array;for(var i=0;i<CSExit.length;i++)	idxArray[i] = i;CSAction2(CSExit, idxArray);}CSInit = new Array;CSExit = new Array;CSStopExecution = false;function CSAction(array) { 	return CSAction2(CSAct, array);}function CSAction2(fct, array) { 	var result;	for (var i=0;i<array.length;i++) {		if(CSStopExecution) return false; 		var actArray = fct[array[i]];		if (actArray == null) return false;		var tempArray = new Array;		for(var j=1;j<actArray.length;j++) {			if((actArray[j] != null) && (typeof(actArray[j]) == "object") && (actArray[j].length == 2)) {				if(actArray[j][0] == "VAR") {					tempArray[j] = CSStateArray[actArray[j][1]];				}				else {					if(actArray[j][0] == "ACT") {						tempArray[j] = CSAction(new Array(new String(actArray[j][1])));					}				else					tempArray[j] = actArray[j];				}			}			else				tempArray[j] = actArray[j];		}					result = actArray[0](tempArray);	}	return result;}CSAct = new Object;CSStateArray = new Object;CSCookieArray = new Object;CSCookieValArray = new Object;function CSWriteCookie(action) {	var name   = "DFT" + action[1];	var hrs    = action[2];	var path   = action[3];	var domain = action[4];	var secure = action[5];		var exp    = new Date((new Date()).getTime() + hrs * 3600000);		var cookieVal = "";	for(var prop in CSCookieArray) {		if(("DFT" + CSCookieArray[prop]) == name) {			if(cookieVal != "") cookieVal += "&";			cookieVal += prop + ":" + escape(CSStateArray[prop]);		}	}	if(hrs != 0)		cookieVal += "; expires=" + exp.toGMTString();	if(path != "")		cookieVal += "; path=" + path;	if(domain != "")		cookieVal += "; domain=" + domain;	if(secure == true)		cookieVal += "; secure";			//alert(cookieVal);	document.cookie = name + '=' + cookieVal;}function CSReadCookie(action) {	var name    = "DFT" + action[1];	var cookies = document.cookie;	if(cookies == "") return;	var start = cookies.indexOf(name);	if(start == -1) return;	start += name.length + 1;	var end = cookies.indexOf(";", start);	if(end == -1) end = cookies.length;			var cookieVal = cookies.substring(start, end);		var arr = cookieVal.split('&');	for(var i = 0; i < arr.length; i++) {		var a = arr[i].split(':');		CSStateArray[a[0]] = unescape(a[1]);	}	}function CSDefineState(action) {	CSCookieArray[action[1]] = action[3]; }function CSSetState(action) {	CSStateArray[action[1]] = action[2];}function CSInitState(action) {	if(typeof(CSStateArray[action[1]]) == "undefined")		CSStateArray[action[1]] = action[2];}function CSCheckState(action) {	var obj1 = CSStateArray[action[1]];	var obj2 = action[2];	if(typeof(obj1) == "object") {		for(var i=0;i<obj1.length;i++) {			if(obj1[i] != obj2[i])				return false;			}		return true;		}	var res;	var op = action[3];		     if(op == "==") res = (CSStateArray[action[1]] == action[2]);			else if(op == "!=") res = (CSStateArray[action[1]] != action[2]);			else if(op == ">" ) res = (CSStateArray[action[1]] >  action[2]);			else if(op == ">=") res = (CSStateArray[action[1]] >= action[2]);			else if(op == "<" ) res = (CSStateArray[action[1]] <  action[2]);			else if(op == "<=") res = (CSStateArray[action[1]] <= action[2]);		return res;}CSIm = new Object();function CSIShow(n,i) {	if (document.images) {		if (CSIm[n]) {			var img = (!IsIE()) ? CSFindElement(n,0) : document[n];			if (img && typeof(CSIm[n][i].src) != "undefined") {img.src = CSIm[n][i].src;}			if(i != 0)				self.status = CSIm[n][3];			else				self.status = " ";			return true;		}	}	return false;}function CSILoad(action) {	im = action[1];	if (document.images) {		CSIm[im] = new Object();		for (var i=2;i<5;i++) {			if (action[i] != '') { CSIm[im][i-2] = new Image(); CSIm[im][i-2].src = action[i]; }			else CSIm[im][i-2] = 0;		}		CSIm[im][3] = action[5];	}}function CSClickReturn () {	var bAgent = window.navigator.userAgent; 	var bAppName = window.navigator.appName;	if ((bAppName.indexOf("Explorer") >= 0) && (bAgent.indexOf("Mozilla/3") >= 0) && (bAgent.indexOf("Mac") >= 0))		return true; // dont follow link	else return false; // dont follow link}function CSButtonReturn () {	var bAgent = window.navigator.userAgent; 	var bAppName = window.navigator.appName;	if ((bAppName.indexOf("Explorer") >= 0) && (bAgent.indexOf("Mozilla/3") >= 0) && (bAgent.indexOf("Mac") >= 0))		return false; // follow link	else return true; // follow link}function CSBrowserSwitch(action) {	var bAgent	= window.navigator.userAgent;	var bAppName	= window.navigator.appName;	var isNS		= (bAppName.indexOf("Netscape") >= 0);	var isIE		= (bAppName.indexOf("Explorer") >= 0);	var isWin		= (bAgent.indexOf("Win") >= 0); 	var isMac		= (bAgent.indexOf("Mac") >= 0); 	var vers		= 0;	var versIdx	= (bAgent.indexOf("Mozilla/"));	if(versIdx >= 0)		{		var sstr	= bAgent.substring(versIdx + 8, versIdx + 9);		vers		= parseInt(sstr) - 2;		}	var url		= action[1];	var platform	= action[2];	var versVec;	if(platform)		{		if(isNS && isMac) versVec = action[3];		if(isIE && isMac) versVec = action[5];		if(isNS && isWin) versVec = action[4];		if(isIE && isWin) versVec = action[6];		}	else		{		if(isNS) versVec = action[3];		if(isIE) versVec = action[4];		}	if(vers > (versVec.length-1))		vers = versVec.length-1;	if(versVec[vers] == 0)		{		location			= url;		CSStopExecution	= true;			}}function CSURLPopupShow(formName, popupName, target) {	var form  = CSFindElement(formName);	var popup = form.elements[popupName];	window.open(popup.options[popup.selectedIndex].value, target);	popup.selectedIndex = 0;}CSAg = window.navigator.userAgent; CSBVers = parseInt(CSAg.charAt(CSAg.indexOf("/")+1),10);function IsIE() { return CSAg.indexOf("MSIE") > 0;}function CSIEStyl(s) { return document.all.tags("div")[s].style; }function CSNSStyl(s) { return CSFindElement(s,0); }function CSFindElement(n,ly) { if (CSBVers < 4) return document[n];	var curDoc = ly ? ly.document : document; var elem = curDoc[n];	if (!elem) { for (var i=0;i<curDoc.layers.length;i++) {		elem = CSFindElement(n,curDoc.layers[i]); if (elem) return elem; }}	return elem;}CSLoopIsRunning = false; CSFctArray = new Array; CSTimeoutID = null;function CSLoop() {		CSLoopIsRunning = false;	for (i=0;i<CSFctArray.length;i++) {		var curFct = CSFctArray[i];		if (curFct)	{			if (curFct.DoFunction(curFct)) { CSLoopIsRunning = true; curFct.counter++; }			else CSFctArray[i] = 0;		}	}	if (CSLoopIsRunning) CSTimeoutID = setTimeout("CSLoop()", 1);}function CSStartFunction(fct,data) {	if (!CSLoopIsRunning) { CSFctArray = 0; CSFctArray = new Array; }	var fctInfo = new Object;	fctInfo.DoFunction = fct; fctInfo.counter = 0; fctInfo.data = data;	CSFctArray[CSFctArray.length] = fctInfo; 	if (!CSLoopIsRunning) CSLoop();}function CSStopFunction(sceneName) {	var i;	for (i=0;i<CSFctArray.length;i++) {		var curFct = CSFctArray[i];		if (curFct){ if (curFct.data.name == sceneName){ CSFctArray[i] = 0; return; } }	}}function CSStopComplete() {	if (CSTimeoutID == null) return;	clearTimeout (CSTimeoutID); CSLoopIsRunning = false; CSTimeoutID = null;}function CSSetStylePos(s,d,p) { if (IsIE()) { if (d == 0) CSIEStyl(s).posLeft = p; else CSIEStyl(s).posTop = p; }	else { if (d == 0) CSNSStyl(s).left = p; else CSNSStyl(s).top = p; } }function CSGetStylePos(s,d) { if (IsIE()) { if (d == 0) return CSIEStyl(s).posLeft; else return CSIEStyl(s).posTop; }	else { if (d == 0) return CSNSStyl(s).left; else return CSNSStyl(s).top; }}function CSSetStyleVis(s,v) { if (IsIE()) CSIEStyl(s).visibility = (v == 0) ? "hidden" : "visible";	else CSNSStyl(s).visibility = (v == 0) ? 'hide' : 'show'; }function CSGetStyleVis(s) { if (IsIE()) return (CSIEStyl(s).visibility == "hidden") ? 0 : 1;	else return (CSNSStyl(s).visibility == 'hide') ? 0 : 1;}function CSSetStyleDepth(style,depth) { if (IsIE()) CSIEStyl(style).zIndex = depth; else CSNSStyl(style).zIndex = depth;}function CSGetStyleDepth(style) { if (IsIE()) return (CSIEStyl(style).zIndex); else return (CSNSStyl(style).zIndex); }CSSeqArray = new Array;function CSSeqActionFct(seq,loopCount,continueLoop) {	if ((seq.loop < 2) || ((loopCount % 2) != 0)) {		for (var i=0;i<seq.actionCount;i++) {			if (seq.actions[3*i + 1] <= seq.frame) {				if ((loopCount > 1) && (seq.actions[3*i + 1] < seq.start)) continue;				if (seq.actions[3*i + 2] < loopCount) {					seq.actions[3*i + 2] = loopCount; CSLoopIsRunning = true;					CSAction(new Array(seq.actions[3*i + 0])); continueLoop = true;				}			} else { continueLoop = true; break; }		}	} else {		for (var i=seq.actionCount-1;i>=0;i--) {			if (seq.actions[3*i + 1] > seq.frame) {				if (seq.actions[3*i + 1] > seq.end) continue;				if (seq.actions[3*i + 2] < loopCount) {					seq.actions[3*i + 2] = loopCount; CSLoopIsRunning = true;					CSAction(new Array(seq.actions[3*i + 0])); continueLoop = true;				}			} else { continueLoop = true; break; }		}	}	return continueLoop;}		function CSSeqFunction(fctInfo){	var seq = fctInfo.data; var oldFrame = seq.frame;	var newTicks = (new Date()).getTime();	seq.frame = Math.round((seq.fps * (newTicks - seq.startTicks)/1000.0) - 0.5);	var continueLoop  = false; var loopCount = 1;		if (seq.loop > 0) {		continueLoop = true;		if (seq.loop == 1) {			var iv = (seq.end - seq.start);			var f = Math.round(((seq.frame - seq.start) / iv) - 0.5);			if (f < 0) f = 0;			loopCount = f+1;			seq.frame = seq.start + ((seq.frame - seq.start) % (seq.end - seq.start));		} else {			var iv = (seq.end - seq.start);			var f = Math.round(((seq.frame - seq.start) / iv) - 0.5);			if (f < 0) f = 0;			loopCount = f+1;			f = (seq.frame - seq.start) % (2 * iv);			if (f > iv) f = 2*iv - f;			seq.frame = seq.start + f;		}	}	continueLoop = CSSeqActionFct(seq,loopCount,continueLoop);	for (var i=0;i<seq.tracks.length;i++) {		var track = seq.tracks[i]; var frameCount = 0; var lastCount = 0; var partCount = 0;		var partIdx = track.parts.ticks.length;		for (var k=0;k<track.parts.ticks.length;k++) {			frameCount += track.parts.ticks[k];			if (frameCount > seq.frame) { partIdx = k; partCount = seq.frame - lastCount; break; }			lastCount = frameCount;		}		if (partIdx < track.parts.ticks.length) {			var type=track.parts.moveType[partIdx];			if(type==1) CSSetLinearPos (track, partIdx, partCount);			else if(type==2) CSSetCurvePos (track, partIdx, partCount);			else if(type==3) if (oldFrame != seq.frame) CSSetRandomPos (track, partIdx, partCount);							 else { x = CSGetStylePos(track.layer,0); y = CSGetStylePos(track.layer,1); }			CSSetStyleVis(track.layer,track.parts.visibilities[partIdx]);			CSSetStyleDepth(track.layer,track.parts.depths[partIdx]);			continueLoop = true;		} else {			var partIdx = track.parts.moveType.length-1;			var posArray = track.parts.positions;			var x = posArray[partIdx * 6 + 0]; var y = posArray[partIdx * 6 + 1];			CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);			CSSetStyleVis(track.layer,track.parts.visibilities[partIdx]);			CSSetStyleDepth(track.layer,track.parts.depths[partIdx]);		}	}	return continueLoop;}function CSSetLinearPos (track, partIdx, partCount) {	var curTicks = track.parts.ticks[partIdx];	var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;	var posArray = track.parts.positions;	var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];	var x1,x2,y1,y2;	var factor = partCount/curTicks;	x1 = x; y1 = y;	x2 = posArray[pIdx2 + 0]; y2 = posArray[pIdx2 + 1];	x = x1 * (1-factor) + x2 * factor; y = y1 * (1-factor) + y2 * factor;	CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);}function CSSetCurvePos (track, partIdx, partCount) {	var curTicks = track.parts.ticks[partIdx];	var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;	var posArray = track.parts.positions;	var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];	var x1,x2,x3,x4,y1,y2,y3,y4;	var factor = partCount/curTicks;	var t = factor; var u = t * t; var v = u * t;	var val1 = 3*(u-t) - v + 1; var val2 = 3*(v+t - 2*u); var val3 = 3*(u-v); var val4 = v;	x1 = x; y1 = y; x2 = posArray[pIdx1 + 2]; y2 = posArray[pIdx1 + 3];	x3 = posArray[pIdx1 + 4]; y3 = posArray[pIdx1 + 5];	x4 = posArray[pIdx2 + 0]; y4 = posArray[pIdx2 + 1];	x = x1 * val1 + x2 * val2 + x3 * val3 + x4 * val4;	y = y1 * val1 + y2 * val2 + y3 * val3 + y4 * val4;	CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);}function CSSetRandomPos (track, partIdx, partCount) {	var curTicks = track.parts.ticks[partIdx];	var pIdx1 = partIdx * 6; var pIdx2 = (partIdx+1) * 6;	var posArray = track.parts.positions;	var x = posArray[pIdx1 + 0]; var y = posArray[pIdx1 + 1];	var x1,x2,y1,y2;	var factor = partCount/curTicks;	x1 = x; y1 = y;	x2 = posArray[pIdx2 + 0]; y2 = posArray[pIdx2 + 1];	var factorx = Math.random(); var factory = Math.random();	x = x1 * (1-factorx) + x2 * factorx; y = y1 * (1-factory) + y2 * factory;	CSSetStylePos(track.layer,0,x); CSSetStylePos(track.layer,1,y);}function CSStartSeq(name) {	var seq = CSGetScene(name); var date = new Date()	seq.startTicks = date.getTime()	for (var i=0;i<seq.actionCount;i++) seq.actions[3*i+2] = 0;	CSStartFunction(CSSeqFunction,seq);}function CSSceneObj (name,fps,loop,start,end,frame,sTicks,numAct,acts,tracks) {	this.name=name;this.fps=fps;this.loop=loop;this.start=start;this.end=end;	this.frame=frame;this.startTicks=sTicks;this.actionCount=numAct;	this.actions=acts;this.tracks=tracks;}function CSTrackObj (name,partIdx,partCount,parts) {	this.layer=name;this.partIdx=partIdx;this.partCount=partCount;this.parts=parts;}function CSPartObj (ticks,pos,depths,vis,moveType) {	this.ticks=ticks;this.positions=pos;this.depths=depths;this.visibilities=vis;	this.moveType=moveType;}function CSGetScene (name) {	for (i=0;i<CSSeqArray.length;i++) { var seq = CSSeqArray[i]; if (seq.name==name) return seq; }	return 0;}function CSAutoStartScene(action) { CSStartSeq (action[1]); }// -- Action Functions// EOF