// ---- 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 ChangeLocale(site) { // desired site: 'ca' or 'us'

    //user has decided to change countries...set cookie approprately
    SetCookie("thsite", site);
    var url = window.location.href;
    var domain = 'http://' + parseUri(url).host
    var newurl = '';
    if (site == 'ca') {
        //switching to canada, check cookie to see which language
        var calang = GetCookie('thlang');
        if (calang !='') {
            if (calang == 'FRC'){
                newurl = domain + '/ca/fr/index.html';
            } else {
                newurl = domain + '/ca/en/index.html';
            }
        } else {
            SetCookie("thlang", 'ENC');
            newurl = domain + '/ca/en/index.html';
        }
    } else {
        newurl = domain + '/us/en/index.html';
    }
    window.location = 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');
    }
}
 
//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;
}

function redirecttimcarduser(landingpage) {
    //do nothing
}
 
/*    SWFObject v2.2 <http://code.google.com/p/swfobject/> 
    is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();