home *** CD-ROM | disk | FTP | other *** search
- // -- Adobe GoLive JavaScript Library// -- Global Functionsfunction 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);
- }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;
- 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
- }
- 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]); }
-
- 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;
- }
- // -- Action Functions
- function CSOpenWindow(action) {
- var wf = "";
- wf = wf + "width=" + action[3];
- wf = wf + ",height=" + action[4];
- wf = wf + ",resizable=" + (action[5] ? "yes" : "no");
- wf = wf + ",scrollbars=" + (action[6] ? "yes" : "no");
- wf = wf + ",menubar=" + (action[7] ? "yes" : "no");
- wf = wf + ",toolbar=" + (action[8] ? "yes" : "no");
- wf = wf + ",directories=" + (action[9] ? "yes" : "no");
- wf = wf + ",location=" + (action[10] ? "yes" : "no");
- wf = wf + ",status=" + (action[11] ? "yes" : "no");
- window.open(action[1],action[2],wf);
- }
- function CSFixFct() {
- var d = document; var w = window;
- if (d.cs.csFix.w != w.innerWidth || d.cs.csFix.h != w.innerHeight) {
- d.location = d.location; }
- }
- function CSNSFix(action) {
- var d = document; var w = window;
- if ((navigator.appName == 'Netscape') && (parseInt(navigator.appVersion) == 4)) {
- if (typeof d.cs == 'undefined') {
- d.cs = new Object;
- d.cs.csFix = new Object;
- } else if (CSIsFrame (w) == true) CSFixFct();
- d.cs.csFix.w = w.innerWidth;
- d.cs.csFix.h = w.innerHeight;
- window.onresize = CSFixFct;
- }
- }
- function CSIsFrame (window) {
- var rootWindow = window.parent;
- if (rootWindow == 'undefined') return false;
- for (i = 0; i < rootWindow.frames.length; i++)
- if (window == rootWindow.frames[i]) return true;
- return false;
- }// EOF