// ---- start generic functions ----
function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
              return pair[1];
        }
    } 
}
function OpenVideoWindow(theURL) { 
window.open(theURL,'newWindow','width=320, height=240, resizable=no, scrollbars=no, toolbar=no, status=no');
}
function shoutout(txt) {
    alert(txt);
}
function getFileName()
{
   wholeurl = window.location.href;
    //alert(parseUri(wholeurl).path);
    return parseUri(wholeurl).path
    }
/*
    parseUri 1.2.1
    (c) 2007 Steven Levithan <stevenlevithan.com>
    MIT License
*/
function parseUri (str) {
    var    o   = parseUri.options,
        m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
        uri = {},
        i   = 14;
    while (i--) uri[o.key[i]] = m[i] || "";
    uri[o.q.name] = {};
    uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
        if ($1) uri[o.q.name][$1] = $2;
    });
    return uri;
};
parseUri.options = {
    strictMode: false,
    key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
    q:   {
        name:   "queryKey",
        parser: /(?:^|&)([^&=]*)=?([^&]*)/g
    },
    parser: {
        strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
        loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
    }
};
function OpenPrintWindow(theURL) { 
    var anc1 = parseUri(window.location).anchor;
    var qs1 = parseUri(window.location).query;
    if(qs1 !== '') {
        theURL += '?'+qs1;
        theURL += '&mode=print';
    }else{
        theURL += '?mode=print';
    }
    if(anc1 !== '') {
        theURL += '#'+anc1;
    }
window.open(theURL,'newWindow','width=703, height=600, resizable=yes, scrollbars=yes, toolbar=no, status=no, location=no, menubar=no');
}
// crossbrowser function to load xml and rewrite xsl param with this page's filename
function displayXml(sXmlLocation,sXslLocation,whichinstance) {
    //alert(whichinstance);
    if (window.ActiveXObject) {        // microsoft ie
    
        //new
        xslt = new ActiveXObject("Msxml2.XSLTemplate.3.0");
        var xslproc;
        // load xml
        //var xml = new ActiveXObject("Microsoft.XMLDOM");
        var xml = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.3.0");
        xml.async = false;
        xml.load(sXmlLocation);
        
        // load xsl
        //var xsl = new ActiveXObject("Microsoft.XMLDOM");
        var xsl = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.3.0");
        xsl.async = false;
        xsl.load(sXslLocation);
        
        // transform doc and write to div
        //var out = document.getElementById("output");
        var out = document.getElementById(whichinstance);
        
        
        //alter stylesheet param with filename
        xslt.stylesheet = xsl;
        xslproc = xslt.createProcessor();
        xslproc.input = xml;
        xslproc.addParameter("thisfilename", getFileName()); 
        xslproc.transform();
        //out.innerHTML = xml.transformNode(xsl);
        var output = xslproc.output;
        var xsloutput = output.replace(/&amp;/g,"&");
        
        //alert(output);
        //alert(xsloutput);
               
        out.innerHTML = xsloutput;
        //alert(xsloutput.substring(xsloutput.indexOf('uvres')-15, xsloutput.indexOf('uvres')+15)+' ('+whichinstance+')'); 
        
    } else if (document.implementation && document.implementation.createDocument) {        // firefox & netscape
        
        // create xslt processor object
        var processor = new XSLTProcessor(); 
    
        // load xml
        xml=document.implementation.createDocument("","",null);
        xml.async = false;
        xml.load(sXmlLocation);
        
        // load xsl
        xsl=document.implementation.createDocument("","",null);
        xsl.async = false;
        xsl.load(sXslLocation);
        processor.importStylesheet(xsl);
        
        //alter stylesheet param with filename
        processor.setParameter(null, "thisfilename", getFileName());
    
        // transform doc and serialize to string
        var result = processor.transformToDocument(xml);
        var xmls = new XMLSerializer(); 
        var output = xmls.serializeToString(result); 
        //var xsloutput = output;
        var xsloutput = output.replace(/amp;/g,"");
        //alert(xsloutput);
        //alert(output);
        //alert(xsloutput.substring(xsloutput.indexOf('uvres')-15, xsloutput.indexOf('uvres')+15)+' ('+whichinstance+')');
        
        // write to div
        //var out = document.getElementById("output");
        var out = document.getElementById(whichinstance);
        out.innerHTML = xsloutput;
    } else {
        alert('Browser not supported.');
    }
}
function ShowRotateControls(){
dv = document.getElementsByTagName('div')
}
function ShowHidePromo(promo1,promo2,promo3,promo4){
    //alert('function fired...');
    dv = document.getElementsByTagName('div');
    var p1 = document.getElementById('promo1');
    if (p1) {
        //alert('promo 1 div found!');
        dv[promo1].style.display='inline';
    }else{
        //alert('promo 1 div not found!');
    }
    var p2 = document.getElementById('promo2');
    if (p2) {
        //alert('promo 2 div found!');
        dv[promo2].style.display='none';
    }else{
        //alert('promo 2 div not found!');
    }
    var p3 = document.getElementById('promo3');
    if (p3) {
        //alert('promo 3 div found!');
        dv[promo3].style.display='none';
    }else{
        //alert('promo 3 div not found!');
    }
    var p4 = document.getElementById('promo4');
    //alert('p4= '+p4);
    if (p4) {
        //alert('promo 4 div found!');
        dv[promo4].style.display='none';
    }else{
        //alert('promo 4 div not found!');    
    }
}
function CheckAnchor(anchor) {
    var anc = '#'+anchor;
    var nanc = 'K'+anchor;
    var qs = location.hash;
    //alert(qs);
    if (qs!== '') {
        //alert(anc == qs);
        if (anc == qs) {
            //alert(nanc);
            showbox(anchor);    
        } 
    }  
}
function SetCookie (name, value) {  
    var argv = SetCookie.arguments;  
    var argc = SetCookie.arguments.length;  
    var expires = new Date("July 21, 2200 01:15:00");
    var path = "/"  
    var domain = "timhortons.com" 
    var strcookie = name + "=" + escape (value) + "; expires=" + expires.toGMTString() + "; path=" + path + "; domain=" + domain;
    //alert(strcookie);
    document.cookie = strcookie
}
function SetNestedCookie (name, value) {   
    var path = "/"  
    var domain = "timhortons.com" 
    var strcookie = name + "=" + escape (value) + "; path=" + path + "; domain=" + domain;
    //alert(strcookie);
    document.cookie = strcookie
}
function getCookieVal(offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1)
    endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
}
   function GetCookie (name) {  
        var arg = name + "=";  
        var alen = arg.length;  
        var clen = document.cookie.length;  
        var i = 0;  
        while (i < clen) {    
            var j = i + alen;    
            if (document.cookie.substring(i, j) == arg)      
                return getCookieVal (j);    
                i = document.cookie.indexOf(" ", i) + 1;    
                if (i == 0) break;   
        }  
        return null;
    }
function eraseCookie(name) {
    var date = new Date();
    date.setTime(date.getTime()+(-1*24*60*60*1000));
//alert(date);
    //var expires = "; expires="+date.toGMTString();
    
  SetCookie(name, "", date);
}
function ChangeLangVar(url, lang) {
    SetCookie("thlang", lang);
    //alert(url);
    var anc = parseUri(window.location).anchor;
    //alert(anc);
    var qs = parseUri(window.location).query;
    //alert(qs);
    if(qs !== '') {
        //alert('querystring found');
        if (qs.indexOf("195616") != -1 && lang == 'FRC') {
            qs = qs.replace(/195616/, "197055");
        }
        if (qs.indexOf("197055") != -1 && lang == 'ENC') {
            qs = qs.replace(/197055/, "195616");
        }
        if (qs.indexOf("lang_en") != -1 && lang == 'FRC') {
            qs = qs.replace(/lang_en/, "lang_fr");
        }
        if (qs.indexOf("lang_fr") != -1 && lang == 'ENC') {
            qs = qs.replace(/lang_fr/, "lang_en");
        }
        url += '?'+qs;
        //alert('new url'+url);
    }
    if(anc !== '') {
        //alert('anchor found');
        url += '#'+anc;
        //alert('new url'+url);
    }
    var protocol = parseUri(window.location).protocol+'://';
    var domain = parseUri(window.location).host;
    var newurl = protocol+domain+url;
    //alert(newurl);
    window.location.href = newurl;   
}
function showbox(id)
{
    //alert('open id: '+id);
    var showText = document.getElementById('k' + id);
    var showTextHeader = document.getElementById('k' + id + 'opener');
    var cname = 'nest_' + parseUri(window.location).path;
    if (showText.style.display == 'none') {
          //open nest
          showText.style.display = 'block';
          showTextHeader.style.display = 'none';
          //set cookie
          SetNestedCookie (cname, id);
          //alert('set "open" cookie');
    }
    else {
          //close nest
          showText.style.display = 'none';
          showTextHeader.style.display = 'block';
          //clear cookie
          eraseCookie(cname);
          //alert('erase cookie');
    }
}
 
/**
 * SWFObject v1.4.2: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
 *   legal reasons.
 */
if(typeof deconcept == "undefined") var deconcept = new Object();
if(typeof deconcept.util == "undefined") deconcept.util = new Object();
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();
deconcept.SWFObject = function(swf, id, w, h, ver, c, useExpressInstall, quality, xiRedirectUrl, redirectUrl, detectKey){
 if (!document.getElementById) { return; }
 this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
 this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
 this.params = new Object();
 this.variables = new Object();
 this.attributes = new Array();
 if(swf) { this.setAttribute('swf', swf); }
 if(id) { this.setAttribute('id', id); }
 if(w) { this.setAttribute('width', w); }
 if(h) { this.setAttribute('height', h); }
 if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
 this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
 if(c) { this.addParam('bgcolor', c); }
 var q = quality ? quality : 'high';
 this.addParam('quality', q);
 this.setAttribute('useExpressInstall', useExpressInstall);
 this.setAttribute('doExpressInstall', false);
 var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
 this.setAttribute('xiRedirectUrl', xir);
 this.setAttribute('redirectUrl', '');
 if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
}
deconcept.SWFObject.prototype = {
 setAttribute: function(name, value){
  this.attributes[name] = value;
 },
 getAttribute: function(name){
  return this.attributes[name];
 },
 addParam: function(name, value){
  this.params[name] = value;
 },
 getParams: function(){
  return this.params;
 },
 addVariable: function(name, value){
  this.variables[name] = value;
 },
 getVariable: function(name){
  return this.variables[name];
 },
 getVariables: function(){
  return this.variables;
 },
 getVariablePairs: function(){
  var variablePairs = new Array();
  var key;
  var variables = this.getVariables();
  for(key in variables){
   variablePairs.push(key +"="+ variables[key]);
  }
  return variablePairs;
 },
 getSWFHTML: function() {
  var swfNode = "";
  if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
   if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "PlugIn"); }
   swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'"';
   swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
   var params = this.getParams();
    for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
   var pairs = this.getVariablePairs().join("&");
    if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
   swfNode += '/>';
  } else { // PC IE
   if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "ActiveX"); }
   swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'">';
   swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
   var params = this.getParams();
   for(var key in params) {
    swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
   }
   var pairs = this.getVariablePairs().join("&");
   if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
   swfNode += "</object>";
  }
  return swfNode;
 },
 write: function(elementId){
  if(this.getAttribute('useExpressInstall')) {
   // check to see if we need to do an express install
   var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
   if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
    this.setAttribute('doExpressInstall', true);
    this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
    document.title = document.title.slice(0, 47) + " - Flash Player Installation";
    this.addVariable("MMdoctitle", document.title);
   }
  }
  if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
   var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
   n.innerHTML = this.getSWFHTML();
   return true;
  }else{
   if(this.getAttribute('redirectUrl') != "") {
    document.location.replace(this.getAttribute('redirectUrl'));
   }
  }
  return false;
 }
}
/* ---- detection functions ---- */
deconcept.SWFObjectUtil.getPlayerVersion = function(){
 var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
 if(navigator.plugins && navigator.mimeTypes.length){
  var x = navigator.plugins["Shockwave Flash"];
  if(x && x.description) {
   PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
  }
 }else{
  // do minor version lookup in IE, but avoid fp6 crashing issues
  // see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
  try{
   var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
  }catch(e){
   try {
    var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
    PlayerVersion = new deconcept.PlayerVersion([6,0,21]);
    axo.AllowScriptAccess = "always"; // throws if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
   } catch(e) {
    if (PlayerVersion.major == 6) {
     return PlayerVersion;
    }
   }
   try {
    axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
   } catch(e) {}
  }
  if (axo != null) {
   PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
  }
 }
 return PlayerVersion;
}
deconcept.PlayerVersion = function(arrVersion){
 this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
 this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
 this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;
}
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
 if(this.major < fv.major) return false;
 if(this.major > fv.major) return true;
 if(this.minor < fv.minor) return false;
 if(this.minor > fv.minor) return true;
 if(this.rev < fv.rev) return false;
 return true;
}
/* ---- get value of query string param ---- */
deconcept.util = {
 getRequestParameter: function(param) {
  var q = document.location.search || document.location.hash;
  if(q) {
   var pairs = q.substring(1).split("&");
   for (var i=0; i < pairs.length; i++) {
    if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
     return pairs[i].substring((pairs[i].indexOf("=")+1));
    }
   }
  }
  return "";
 }
}
/* fix for video streaming bug */
deconcept.SWFObjectUtil.cleanupSWFs = function() {
 var objects = document.getElementsByTagName("OBJECT");
 for (var i=0; i < objects.length; i++) {
  objects[i].style.display = 'none';
  for (var x in objects[i]) {
   if (typeof objects[i][x] == 'function') {
    objects[i][x] = null;
   }
  }
 }
}
if (typeof window.onunload == 'function') {
 var oldunload = window.onunload;
  window.onunload = function() {
  deconcept.SWFObjectUtil.cleanupSWFs();
  oldunload();
 }
} else {
 window.onunload = deconcept.SWFObjectUtil.cleanupSWFs;
}
/* add Array.push if needed (ie5) */
if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }}
/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for legacy support
var SWFObject = deconcept.SWFObject;
function TWnewWindow(imageName,imageWidth,imageHeight,alt) {
var posLeft=(screen.width)?(screen.width-imageWidth)/2:100;
var posTop=(screen.height)?(screen.height-imageHeight)/2:100;
newWindow = window.open("","newWindow","width="+imageWidth+",height="+imageHeight+",left="+posLeft+",top="+posTop);
newWindow.document.open();
newWindow.document.write('<ht'+'ml><tit'+'le>'+alt+'</tit'+'le><bo'+'dy bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginheight="0" marginwidth="0" onBlur="self.close()">'); 
newWindow.document.write('<a href=javascript:self.close()><img src='+imageName+' border=0 width='+imageWidth+' height='+imageHeight+' alt=\"'+alt+'\"></a>'); 
newWindow.document.write('</bo'+'dy></ht'+'ml>');
newWindow.document.close();
newWindow.focus();
}
//scripts for the investor landing scroller
function ccbnSetZIndex(objID,index){
    if (document.layers && document.layers[objID] != null) {
        document.layers[objID].zIndex = index;
    }
    else if (document.all) {
        document.all[objID].style.zIndex = index;
    }
    else if (document.getElementById){
       document.getElementById(objID).style.zIndex = index;
    }
}
/* moves the object to the specified X and Y coordinates */
function ccbnDoMove(objectID, moveToX, moveToY, moveToPx) {
//alert('move started');
    if (document.layers && document.layers[objectID] != null) {
        document.layers[objectID].left = moveToX + moveToPx;
        document.layers[objectID].top = moveToY + moveToPx;
    }
    else if (document.all) {
        document.all[objectID].style.posLeft = moveToX;
        document.all[objectID].style.posTop = moveToY;
    }
    else if (document.getElementById){
       document.getElementById(objectID).style.left = moveToX + moveToPx;
       document.getElementById(objectID).style.top = moveToY + moveToPx;
    }
}
function ccbnSetScrollLayerBoundaries(){
    switch(this.scrollDirection){
        case 0:    
                //set the scrollTop for the current layer
                this.scrollTop=this.scrollHeight*-this.scrollLayer;
                //set the scrollScrollLayerY to zero it out
                this.scrollLayerY=this.scrollTop+this.scrollHeight;
                
                break;
        
        case 1:
                //set the scrollTop for the current layer
                this.scrollTop=this.scrollHeight*-this.scrollLayer;
                        
                //set the scrollScrollLayerY to zero it out
                this.scrollLayerY=this.scrollTop;
                        
                //set the scrollTop for the current layer
                this.scrollLeft=0;
                this.scrollLayerX=this.scrollWidth;
                
                break;
    }
}
var IdNo=0;
function ccbnScroller(scrollContainer,scrollWidth,scrollHeight,scrollPause,scrollSpeed,scrollTime,scrollDirection){
/* ||||||||||||||||||||||||||||||||||||||||||||||||||||
    ccbnScroller - This is an object that will scroll
    all div's that are contained within the scrollContainer
    arguments
    scrollContainer - an object that contains the divs to be scrolled
    scrollHeight - this is an integer representing the height, in pixels, of the container
    scrollPause - this is an integer representing the amount of time to wait once a div has completed its scroll, before triggering the next div to begin its scroll; the time is in milliseconds
    scrollSpeed - this is an integer representing the number of pixels to move the div each time the move is triggered
    scrollTime - this is an integer representing the amount of time to wait before triggering the movement; the time is in milliseconds (1000 = 1 second)
                    Example
                    scrollPause = 5000
                    scrollSpeed = 1
                    scrollTime = 10
                    The div will move by 1 pixel every 10 milliseconds.  Once it has finished scrolling, the current div will remain on the page for 5000 milliseconds before the next div will begin to scroll
   |||||||||||||||||||||||||||||||||||||||||||||||||||| */
   
    //Save a reference to myself
    this.id = "myObject" + IdNo++;
    window[this.id] = this;
    
    this.container=scrollContainer;
    this.layers=this.container.getElementsByTagName("div");
    this.layerCount=this.layers.length;
    this.currentLayer=1;
    this.scrollTime=scrollTime;
    this.scrollSpeed=scrollSpeed;
    this.scrollPause=scrollPause;
    this.scrollWidth=scrollWidth;
    this.scrollHeight=scrollHeight;
    /*  
        scrollDirection:
        0 = scrolls from below
        1 = scrolls from above
        2 = scrolls from right to left
        3 = scrolls from left to right
    */    
    this.scrollDirection=scrollDirection;
    this.currentLayerY;
    this.currentLayerX;    
    this.scrollLayerY=0;
    this.scrollLayerX=0;
    this.ccbn_px=navigator.appName=="Netscape"?'px':'';
    this.runTimeout;
    this.scrollTimeout;
    
    this.stopped;
    
    this.scrollTop;
    this.scrollRight;
    this.scrollBottom;
    this.scrollLeft;
    this.previousLayer;
    this.scrollLayer;
    this.ccbnStartScroll=ccbnStartScroll;
    this.ccbnStopScroll=ccbnStopScroll;
    this.ccbnDoScroll=ccbnDoScroll;    
    this.ccbnRunScroll=ccbnRunScroll;
    this.ccbnRestartScroll=ccbnRestartScroll;
    
    this.ccbnSetScrollLayerBoundaries=ccbnSetScrollLayerBoundaries
    
}
function ccbnStartScroll(){
    //alert('start scrollin'); //---------------------------------------------------------------------------------------------------------------------------
    //alert(this.scrollHeight); //--------------------------------------------------------------------------------------------------------------------------
    //alert(this.layerCount);
    //alert(ccbnGetObj("ccbnNewsScrollHolder"));
    ccbnDoMove(this.layers[this.currentLayer].id, 0, (-this.scrollHeight), this.ccbn_px);
    ccbnDoMove(this.layers[0].id, -1000, -1000, this.ccbn_px);  //move the loading... div    
    this.currentLayerY=-this.scrollHeight;
    this.currentLayerX=0;
    this.runTimeout=setTimeout("window."+this.id+".ccbnRunScroll()",this.scrollPause);
}
function ccbnStopScroll(){
    this.stopped=true;
    clearTimeout(this.runTimeout);
}
function ccbnRestartScroll(){
    this.stopped=false;
    this.runTimeout=setTimeout("window."+this.id+".ccbnRunScroll()",this.scrollPause);
}
function ccbnRunScroll(){
    //if the user has hovered over the div, the scroller is stopped
    if(this.stopped) return;
    
    //move the layer that is now hidden to its original position and zindex
    if(this.previousLayer) ccbnSetZIndex(this.layers[this.previousLayer].id,-1);
    
    //set the index of the currently shown layer
    ccbnSetZIndex(this.layers[this.currentLayer].id,0);
    
    //set the scrollLayer by incremening the currentLayer or, if we have reached the count, setting it back to 1
    this.scrollLayer=(this.currentLayer==(this.layerCount-1))?1:this.currentLayer+1;
    this.ccbnSetScrollLayerBoundaries();
    //set the zIndex for the scrollLayer
    ccbnSetZIndex(this.layers[this.scrollLayer].id,1);        
    
    //move the scroll layer into position which is directly under the clipped area
    ccbnDoMove(this.layers[this.scrollLayer].id, (this.scrollLayerX), (this.scrollLayerY), this.ccbn_px);
    
    //begin the scroll process
    this.scrollTimeout=this.ccbnDoScroll();
        
}
function ccbnSetScrollLayerBoundaries(){
    switch(this.scrollDirection){
        case 0:    
                //set the scrollTop for the current layer
                this.scrollTop=this.scrollHeight*-this.scrollLayer;
                //set the scrollScrollLayerY to zero it out
                this.scrollLayerY=this.scrollTop+this.scrollHeight;
                
                break;
        
        case 1:
                //set the scrollTop for the current layer
                this.scrollTop=this.scrollHeight*-this.scrollLayer;
                        
                //set the scrollScrollLayerY to zero it out
                this.scrollLayerY=this.scrollTop;
                        
                //set the scrollTop for the current layer
                this.scrollLeft=0;
                this.scrollLayerX=this.scrollWidth;
                
                break;
    }
}
function ccbnDoScroll(){
    switch(this.scrollDirection){
        case 0:
    
            if(this.scrollLayerY!=this.scrollTop){
                var ccbn_y=((this.scrollLayerY-this.scrollSpeed)<this.scrollTop)?this.scrollTop:(this.scrollLayerY-this.scrollSpeed);
                ccbnDoMove(this.layers[this.scrollLayer].id, 0, ccbn_y, this.ccbn_px);
                this.scrollLayerY=ccbn_y;
                var ccbn_yCur=this.currentLayerY-this.scrollSpeed;
                ccbnDoMove(this.layers[this.currentLayer].id, 0, ccbn_yCur, this.ccbn_px);
                this.currentLayerY=ccbn_yCur;        
                this.scrollTimeout=setTimeout("window."+this.id+".ccbnDoScroll()",this.scrollTime);
            }
            else{
                //scroll is complete, reset values
                this.previousLayer=this.currentLayer;
                this.currentLayer=this.scrollLayer;
                this.currentLayerY=this.scrollLayerY;
                clearTimeout(this.scrollTimeout);
                clearTimeout(this.runTimeout);
                
                //run the next scroll
                this.runTimeout=setTimeout("window."+this.id+".ccbnRunScroll()",this.scrollPause);    
            }
            
            break;
        
        case 1:
        
            if(this.scrollLayerX!=this.scrollLeft){
                var ccbn_x=((this.scrollLayerX-this.scrollSpeed)<this.scrollLeft)?this.scrollLeft:(this.scrollLayerX-this.scrollSpeed);
                ccbnDoMove(this.layers[this.scrollLayer].id, ccbn_x, this.scrollLayerY, this.ccbn_px);
                this.scrollLayerX=ccbn_x;
                var ccbn_xCur=this.currentLayerX-this.scrollSpeed;
                var jdx = (this.scrollLayerY+(this.scrollHeight*(this.scrollLayer)))
                ccbnDoMove(this.layers[this.currentLayer].id, ccbn_xCur, jdx, this.ccbn_px);
                this.currentLayerX=ccbn_xCur;        
                this.scrollTimeout=setTimeout("window."+this.id+".ccbnDoScroll()",this.scrollTime);
            }
            else{
                //scroll is complete, reset values
                this.previousLayer=this.currentLayer;
                this.currentLayer=this.scrollLayer;
                this.currentLayerX=this.scrollLayerX;
                clearTimeout(this.scrollTimeout);
                clearTimeout(this.runTimeout);
                
                //run the next scroll
                this.runTimeout=setTimeout("window."+this.id+".ccbnRunScroll()",this.scrollPause);    
            }
            
            break;
    
    }
}
function ccbnSetZIndex(objID,index){
    if (document.layers && document.layers[objID] != null) {
        document.layers[objID].zIndex = index;
    }
    else if (document.all) {
        document.all[objID].style.zIndex = index;
    }
    else if (document.getElementById){
       document.getElementById(objID).style.zIndex = index;
    }
}
/* cross browser method that finds named DOM objects on a page */
function ccbnGetObj(objName){
    //alert('* '+objName);
    if (document.layers && document.layers[objName] != null){  return document.layers[objName]; }
    else if (document.all){  return document.all[objName]; }
    else if (document.getElementById){  return document.getElementById(objName); }
}
function setbluetooth( name, value, expires, path, domain, secure )
    {
    // set time, it's in milliseconds
    var today = new Date();
    today.setTime( today.getTime() );
    if ( expires )
        {
        expires = expires * 1000 * 60 * 60;
    }
    var expires_date = new Date( today.getTime() + (expires) );
    document.cookie = name + "=" +escape( value ) +
    ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
    ( ( path ) ? ";path=" + path : "" ) +
    ( ( domain ) ? ";domain=" + domain : "" ) +
    ( ( secure ) ? ";secure" : "" );
}
function rewritelink(oldlink,newlink) {
    //alert(oldlink);
    for (var i=0; i<document.links.length; i++) {
            document.links[i].href = document.links[i].href.replace(oldlink, newlink);
    }
}
// ---- end generic functions ----

//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
    var version;
    var axo;
    var e;
    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("$version");
    } catch (e) {
    }
    if (!version)
    {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
            
            // installed player is some revision of 6.0
            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful. 
            
            // default to the first public version
            version = "WIN 6,0,21,0";
            // throws if AllowScripAccess does not exist (introduced in 6.0r47)        
            axo.AllowScriptAccess = "always";
            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {
        }
    }
    if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }
    
    return version;
}
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
    // NS/Opera version >= 3 check for Flash plugin in plugin array
    var flashVer = -1;
    
    if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
            var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
            var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
            var descArray = flashDescription.split(" ");
            var tempArrayMajor = descArray[2].split(".");            
            var versionMajor = tempArrayMajor[0];
            var versionMinor = tempArrayMajor[1];
            var versionRevision = descArray[3];
            if (versionRevision == "") {
                versionRevision = descArray[4];
            }
            if (versionRevision[0] == "d") {
                versionRevision = versionRevision.substring(1);
            } else if (versionRevision[0] == "r") {
                versionRevision = versionRevision.substring(1);
                if (versionRevision.indexOf("d") > 0) {
                    versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                }
            }
            var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
        }
    }
    // MSN/WebTV 2.6 supports Flash 4
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
    // WebTV 2.5 supports Flash 3
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
    // older WebTV supports Flash 2
    else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
    else if ( isIE && isWin && !isOpera ) {
        flashVer = ControlVersion();
    }    
    return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
    versionStr = GetSwfVer();
    if (versionStr == -1 ) {
        return false;
        //alert('fire static version');
    } else if (versionStr != 0) {
        if(isIE && isWin && !isOpera) {
            // Given "WIN 2,0,0,11"
            tempArray         = versionStr.split(" ");     // ["WIN", "2,0,0,11"]
            tempString        = tempArray[1];            // "2,0,0,11"
            versionArray      = tempString.split(",");    // ['2', '0', '0', '11']
        } else {
            versionArray      = versionStr.split(".");
        }
        var versionMajor      = versionArray[0];
        var versionMinor      = versionArray[1];
        var versionRevision   = versionArray[2];
            // is the major.revision >= requested major.revision AND the minor version >= requested minor
        if (versionMajor > parseFloat(reqMajorVer)) {
            return true;
        } else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer))
                return true;
            else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision))
                    return true;
            }
        }
        return false;
    }
}
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    {
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }
  document.write(str);
}
function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    
    switch (currArg){    
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":    
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblclick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}