/*
 * Creativyst(R) Ballistic Scroller:
 *
 *      (C) Copyright 2004 - 2007 Creativyst, Inc.
 *                ALL RIGHTS RESERVED
 *
 * Use of this software in running applications, with
 * or without modification, is permitted provided
 * that the conditions published at:
 * www.creativyst.com/Prod/18/Scroller/BalScr.htm 
 * are met.
 *
 *    This software may not be redistributed
 *
 *     - This comment may not be removed -
 *
 * v1.0f
*/
var bsWidth=140;//          The width of the scroller
var bsHeight=200;//         The height of the scroller
var bsMoveIncr=10;//        How far to move on each frame
var bsFrameRate = 50;//     How often (in miliseconds) to move the frame (default: 40)
var bsPauseDelay = 7000;//  How long to pause (in milisecs) between each message
var bsUseBallistics = 1;//  1 to slow down near end of scroll, 0 for linear movers

var bsContent=new Array();  // don't change
bsContent[0] = "";


/* Static Content:
 *  Fill elements of the bsContent[] array with static messages you'd like
 *  to display on the scroller.  You can use the ballistic scroller to
 *  display only these static messages, or you can include a static
 *  message or two to be displayed along with dynamic JSMsg feed data (see below).
 *
 *  Delete or comment out these array lines (but not the above declaration)
 *  if you don't want to display static messages.
 *
*/
bsContent[6] = '<img src="2008_conference/grcs/pix/amundson.jpg" height="100" width="138" alt="" border="0" style="border:1px solid #fff;margin-bottom:10px;"><p><small>IN BANFF, THERE WAS<\/small><br><span style="font-weight:bold;font-size:12px;">Dr. Norman Amundson<\/span><br>Professor, Counselling Psychology / Faculty of Education, UBC<\/p>';
bsContent[5] = '<img src="2008_conference/grcs/pix/augustine.jpg" height="100" width="138" alt="" border="0" style="border:1px solid #fff;margin-bottom:10px;"><p><small>IN BANFF, THERE WAS<\/small><br><span style="font-weight:bold;font-size:12px;">Jean Augustine<\/span><br>Fairness Commissioner, Province of Ontario<\/p>';
bsContent[4] = '<img src="2008_conference/grcs/pix/bhullar.jpg" height="100" width="138" alt="" border="0" style="border:1px solid #fff;margin-bottom:10px;"><p><small>IN BANFF, THERE WAS<\/small><br><span style="font-weight:bold;font-size:12px;">Manmeet Bhullar<\/span><br>Parliamentary Assistant, Alberta Advanced Education and Technology & MLA, Calgary-Montrose<\/p>';
bsContent[3] = '<img src="2008_conference/grcs/pix/cappon.jpg" height="100" width="138" alt="" border="0" style="border:1px solid #fff;margin-bottom:10px;"><p><small>IN BANFF, THERE WAS<\/small><br><span style="font-weight:bold;font-size:11px;">Dr. Paul Cappon<\/span><br>President and CEO, Canadian Council on Learning (CCL)<\/p>';
bsContent[2] = '<img src="2008_conference/grcs/pix/cardozo.jpg" height="100" width="138" alt="" border="0" style="border:1px solid #fff;margin-bottom:10px;"><p><small>IN BANFF, THERE WAS<\/small><br><span style="font-weight:bold;font-size:12px;">Andrew Cardozo<\/span><br>Executive Director / The Alliance of Sector Councils (TASC)<\/p>';
bsContent[1] = '<img src="2008_conference/grcs/pix/simosko.jpg" height="106" width="113" alt="" border="0" style="border:1px solid #fff;margin-bottom:10px;"><p><small>IN BANFF, THERE WAS<\/small><br><span style="font-weight:bold;font-size:12px;">Susan Simosko<\/span><br>President, Susan Simosko Associates, Inc.<\/p>';
bsContent[0] = '<img src="2008_conference/grcs/pix/woodward.jpg" height="100" width="138" alt="" border="0" style="border:1px solid #fff;margin-bottom:10px;"><p><small>IN BANFF, THERE WAS<\/small><br><span style="font-weight:bold;font-size:12px;">Ron Woodward<\/span><br>President, Red Deer College; Chair of Alberta Council on Admissions and Transfer (ACAT)<\/p>';
bsContent[7] = '<img src="grcs/spcr.gif" height="20" width="138" alt="" border="0" style="margin-bottom:10px;"><p style="font-size:12px;"><span style="font-weight:bold;">THERE WAS<\/span><br>specific sessions <br>on apprenticeship, <br>labour force <br>development, <br>human resource <br>management, <br>immigrant learning, <br>competency <br>assessment.<\/p>';
bsContent[8] = '<img src="grcs/spcr.gif" height="20" width="138" alt="" border="0" style="margin-bottom:10px;"><p style="font-size:12px;"><span style="font-weight:bold;">Also THERE WAS<\/span><br>specific sessions <br>on certification and <br>regulation, college <br>and university RPL <br>practice and <br>employer <br>engagement.<\/p>';
//bsContent[9] = '<img src="grcs/spcr.gif" height="1" width="138" alt="" border="0" style="margin-bottom:10px;"><p><span style="font-weight:bold;font-size:12px;">Upcoming deadlines:<\/span><\/p><p>Travel Subsidy Application:<br>September 12<\/p><p>Preferred Room Rate:<br>September 18<\/p><!--p>Award Nominations:<br>September 19<\/p--><p>Early Bird Registration<br>September 26<\/p>';




/* Dynamic Content (JSMsg feeds):
 *  JSMsgNS     
 *      Namespace of the JSMsg feed who's messages you'd
 *      like to display.  You must include the JSMsg
 *      link in a JavaScript <SCRIPT> tag ABOVE this
 *      script.
 *
 *      You may display messages from multiple JSMsg feeds
 *      by listing multiple namespaces in the JSMsgNS variable.
 *      e.g.  
 *
 *          JSMsgNS = "ciq cvtnew"; 
 *
 *      Leave this set to JSMsgNS = ""; if you only need
 *      to display static messages from the above arrays.
 *
 *  JSMsgSeq
 *      Messages from muliple newsfeeds are normally interleaved
 *      but they can be sequential by setting the JSMsgSeq variable
 *      to 1
 *
*/
var JSMsgNS = "";
var JSMsgSeq = 0;

var bsOrgArray = new Array();
bsOrgArray[0] = "";
var Cur_i = 0;
var DOMObj;
var IEObj;
var NS4xObj;
var BalIncr = bsMoveIncr;
var beenHere;
var MousePaused = 0;
var MessagePaused = 0;
var MsgPauseNow = bsPauseDelay;
var bsISRWaiting = 0;
var bsOrgArray = new Array();


function bsInitialize(){
	var divobj, cpyi;
	for (cpyi = 0;cpyi < bsContent.length;cpyi++) {
		bsOrgArray[cpyi] = bsContent[cpyi];
	}
	bsContent = JSMsgIf(bsContent, JSMsgNS, JSMsgSeq);
	if(document.getElementById) {
		divobj = document.getElementById('ScrollerFrame');
		divobj.style.width = bsWidth + 'px';
		divobj.style.height = bsHeight + 'px';
		divobj = document.getElementById('bsWindow');
		divobj.style.width = bsWidth + 'px';
		divobj.style.height = bsHeight + 'px';
		divobj = document.getElementById('bsMover');
		divobj.style.width = bsWidth + 'px';
		divobj.style.height = bsHeight + 'px';
		DOMObj=eval( document.getElementById('bsMover') );
		DOMObj.innerHTML = bsContent[Cur_i];
		DOMObj.style.top=bsHeight + 'px';
		moverDOM();
	} else if (document.all) {
		ScrollerFrame.style.width = bsWidth;
		IEObj=eval(MoverWin);
		IEObj.innerHTML=bsContent[Cur_i];
		IEObj.style.pixelTop=bsHeight;
		sizeup=IEObj.offsetHeight;
		moverIE();
	} else if (document.layers) {
		if(!beenHere) {
			beenHere = 1;
			setTimeout("bsInitialize()", 1000);
		}
		NS4xObj=document.SlideWindow.document.SlideMover;
		NS4xObj.document.write(bsContent[Cur_i]);
		NS4xObj.document.close();
		moverNS4x();
	}
}

function moverDOM(){
	var reducer;
	var myTop = parseInt(DOMObj.style.top);
	BallisticsProc(myTop);
	reducer = (myTop-BalIncr);
	if(myTop>(BalIncr)) {
		DOMObj.style.top=reducer + 'px';
		if(!MousePaused && !MessagePaused) {
			bsISRWaiting++;
			setTimeout("moverDOM()",bsFrameRate);
		}
	} else {
		PauseTop();
	}
}

function moverIE(){
	var myTop = parseInt(IEObj.style.pixelTop);
	BallisticsProc(myTop);
	if (IEObj.style.pixelTop>=bsMoveIncr) {
		IEObj.style.pixelTop-=BalIncr;
		if(!MousePaused && !MessagePaused) {
			bsISRWaiting++;
			setTimeout("moverIE()",bsFrameRate);
		}
	} else {
		PauseTop();
	}
}

function moverNS4x(){
	BallisticsProc(NS4xObj.top);
	if(NS4xObj.top>=bsMoveIncr) {
		NS4xObj.top-=BalIncr;
		if(!MousePaused && !MessagePaused) {
			bsISRWaiting++;
			setTimeout("moverNS4x()",bsFrameRate);
		}
	} else {
		PauseTop();
	}
}


function BallisticsProc(ThisTop){
	if(bsUseBallistics && BalIncr > 2 ) {
		if(ThisTop < (bsHeight/7)) {
			BalIncr = bsMoveIncr - 1;
		}
		if(ThisTop < (bsHeight/8) ) {
			BalIncr = bsMoveIncr - 3;
		}
		if(ThisTop < (bsHeight/10) ) {
			BalIncr = bsMoveIncr - 7;
		}
		if(ThisTop < 8) {
			BalIncr = 1;
		}
		BalIncr = (BalIncr < 1 ? 1 : BalIncr);
	}
}

function PauseTop(){
	MessagePaused = 1;
	setTimeout("ChangeContent()", MsgPauseNow);
}

function ChangeContent(){
	MessagePaused = 0;
	MsgPauseNow = bsPauseDelay;
	if(!MousePaused) {
		Cur_i++;
		if(Cur_i >= bsContent.length) { Cur_i = 0;}
		if(document.getElementById) {
			DOMObj.style.top=bsHeight + 'px';
			BalIncr = bsMoveIncr;
			setTimeout("MakeDOMChangeNow()",3);
			moverDOM();
		} else if(document.all) {
			IEObj.style.pixelTop=bsHeight;
			IEObj.innerHTML=bsContent[Cur_i];
			BalIncr = bsMoveIncr;
			moverIE();
		} else {
			NS4xObj.document.write(bsContent[Cur_i]);
			NS4xObj.document.close();
			NS4xObj.top=bsHeight;
			BalIncr = bsMoveIncr;
			moverNS4x();
		}
	} else {
		MsgPauseNow = bsFrameRate;
	}
}

function MakeDOMChangeNow(){
	DOMObj.innerHTML=bsContent[Cur_i];
}
function MousePause(){
	MousePaused = 1;
}

function MouseStart(){
	MousePaused = 0;
	if(!MessagePaused) {
		if(document.getElementById) {
			moverDOM();
		} else if(document.all) {
			moverIE();
		} else {
			moverNS4x();
		}
	}
}

function RunScroller(){
	var msg;
	msg = '';
	msg += '<div id="ScrollerFrame" class="ScrollerFrame">';
	if(!document.getElementById && !document.all) {
		msg += '<ilayer name="SlideWindow" width="' + bsWidth + '"; height="' + bsHeight + '";>\n';
		msg += '<layer name="SlideMover" width="' + bsWidth + '"; onMouseover="MousePause();" onMouseout="MouseStart();">';
		msg += '<\/layer>';
		msg += '<\/ilayer>';
	}
	document.write(msg);
	if (document.getElementById || document.all) {
		document.write('<div id="bsWindow" class="bsWindow" style="position:relative;overflow:hidden;width:' +bsWidth+ ';height:' +bsHeight+ ';clip:rect(0 ' +bsWidth+ ' ' +bsHeight+ ' 0);" onMouseover="MousePause();" onMouseout="MouseStart();">');
		document.write('<div id="bsMover" class="bsMover" style="position:relative;width:'+bsWidth+';">');
		document.write('<\/div><\/div>');
	}
	document.write('<\/DIV>');
	bsInitialize();
}

function JSMsgIf(msgAr, myNs, mySeq){
	var TotNS,LongestNS;
	var NSAr = new Array();
	var i,j,k,o;
	if(!myNs) {
		myNs = "";
	}
	if(!mySeq) {
		mySeq = 0;
	}
	o = msgAr.length;
	if(myNs) {
		NSAr = myNs.split(" ");
		TotNS = NSAr.length;
		LongestNS = 0;
		j = 0;
		for(i = 0;i < TotNS;i++) {
			j = jsmMetaMsg(NSAr[i], "MetaCount");
			if(j > LongestNS) {
				LongestNS = j;
			}
		}
		if(!j) {
			return(msgAr);
		}
		k = o;
		if(mySeq) {
			for(j = 0;j < TotNS;j++) {
				for(i = 0;i < LongestNS;i++) {
					if(jsmMetaMsg(NSAr[j],"MetaCount") <= i) {
						continue;
					}
					msgAr[k] = jsmGetN(NSAr[j], "LinkTitle", i);
					if(!msgAr[k]) {
						msgAr[k] = jsmGetN(NSAr[j], "Body", i);
						msgAr[k] += "<BR>   -";
						t = jsmGetN(NSAr[j], "Attrib",i);
						if(t.length > 17) {
							t = t.substr(0,14);
							t += "...";
						}
						msgAr[k] += t;
					}
					msgAr[k] = msgAr[k].replace(/&/g, "&");
					msgAr[k] = msgAr[k].replace(/'/g, "\'");
					k++;
				}
			}
		} else {
			for(j = 0;j < LongestNS;j++) {
				for(i = 0;i < TotNS;i++) {
					if(jsmMetaMsg(NSAr[i],"MetaCount") <= j) {
						continue;
					}
					msgAr[k] = jsmGetN(NSAr[i], "LinkTitle", j);
					if(!msgAr[k]) {
						msgAr[k] = jsmGetN(NSAr[i], "Body", j);
						msgAr[k] += "<BR>   -";
						t = jsmGetN(NSAr[i], "Attrib",j);
						if(t.length > 17) {
							t = t.substr(0,14);
							t += "...";
						}
						msgAr[k] += t;
					}
					msgAr[k] = msgAr[k].replace(/&/g, "&");
					msgAr[k] = msgAr[k].replace(/'/g, "\'");
					k++;
				}
			}
		}
	}
	return(msgAr);
}

function jsmGetN(ns,MsgPart,number){
	var rv, c, er;
	c = "rv = " + ns + ".GetN('" + MsgPart + "'," + number + ");";
	er = eval(c);
	return(rv);
}

function jsmGet(ns,MsgPart,offset){
	var rv, c, er;
	c = "rv = " + ns + ".Get('" + MsgPart + "'," + offset + ");";
	er = eval(c);
	return(rv);
}

function jsmGetDay(ns,MsgPart){
	var rv, c, er;
	c = "rv = " + ns + ".GetDay('" + MsgPart + "');";
	er = eval(c);
	return(rv);
}

function jsmMetaMsg(ns,MsgPart){
	var rv, c, er;
	c = "rv = " + ns + ".MetaMsg('" + MsgPart + "');";
	er = eval(c);
	return(rv);
}
