/*
FontSizer v2.2
Javascript to dynamically change font sizes on a web page.
Coded by Phil Nash of www.unintentionallyblank.co.uk
Cookies script courtesy of http://www.quirksmode.org/js/cookies.html
Measuring the current font size courtesy of http://www.alistapart.com/articles/fontresizing

** Please don't remove this notice **

See http://www.unintentionallyblank.co.uk/2007/11/09/fontsizer-reloaded-changing-font-sizes-with-javascript/ for full details

To use the code, upload this file to your site's main directory and add the following lines to the <head> element of your site:

  <script type="text/javascript" src="fontSizer.js"></script>
  
*/
/** This function tries to resize the blue box on the "sommaire" pages. 

    aZoomLevel (string) : '0', '1', '2' or '3' that represents the
	                      zoom level we are at.
**/
function toggleAccueil(aZoomLevel) {
    var e = document.getElementsByName("sublink");
    var f = document.getElementsByName("blankBgLink");
	var g = document.getElementsByName("btn_link");
    var vRecherche = document.getElementById("recherche");
    var vPlanifier = document.getElementById("planLink");
    var vBus = document.getElementById("horaire_bus");
    var vMetro = document.getElementById("horaire_metro");
    var vRegExp = /_ov/; //regular expression to check if the "ov" version is the displayed one
    var matchBus = vBus.style.backgroundImage.search(vRegExp);
    var matchMetro = vMetro.style.backgroundImage.search(vRegExp);
	var vString = ''; //suffix
	var vExtension = 'png';
	if (aZoomLevel !== '0') {
		vString = '_' + aZoomLevel;
		vExtension = 'gif';
	}
    vRecherche.style.backgroundImage = 'url(new_developpement/images/bg_recherche' + vString + '.' + vExtension + ')';
    vPlanifier.style.backgroundImage = 'url(new_developpement/images/bg_mainselector_arrow' + vString + '.png)';
    vBus.style.backgroundImage = (matchBus === -1) ? 'url(new_developpement/images/bg_mainselector' + vString + '_of.' + vExtension + ')': 'url(new_developpement/images/bg_mainselector' + vString + '_ov.' + vExtension + ')';
    vMetro.style.backgroundImage = (matchMetro === -1) ? 'url(new_developpement/images/bg_mainselector' + vString + '_of.' + vExtension + ')': 'url(new_developpement/images/bg_mainselector' + vString + '_ov.' + vExtension + ')';
    for (var i = 0; i < e.length; i++) {
        e[i].setAttribute('class', 'sublink' + vString);
        e[i].setAttribute('className', 'sublink' + vString);
    }
    for (var j = 0; j < f.length; j++) {
        f[j].style.backgroundImage = 'url(new_developpement/images/bg_mainselector_blank' + vString + '.png)';
    }
	for (var k = 0; k < f.length; k++) {
        g[k].style.backgroundImage = 'url(new_developpement/images/bg_btn_lrg' + vString + '.png)';
    }
}
/** This function increase/reduce the wrapper width when the font size function is used.
    If we're on the "sommaire" page, it calls a function that tries to resize the blue
	box so it doesn't screw up. **/
function toggle(){
	var vElement = document.getElementById("wrapper");
	
	if (fS.cFS === 1.25){
		vElement.style.width = '1109px';
		if(document.getElementById("recherche")){
			toggleAccueil('1');
		}
		set_background('hide');
	}
	else if (fS.cFS === 1.5625){
		vElement.style.width = '1200px';
		if(document.getElementById("recherche")){
			toggleAccueil('2');
		}
		set_background('hide');
	}
	else if (fS.cFS > 1.9){
		vElement.style.width = '1400px';
		if(document.getElementById("recherche")){
			toggleAccueil('3');
		}
		set_background('hide');
	}
	else {
		vElement.style.width = '999px';
		if(document.getElementById("recherche")){
			toggleAccueil('0');
		}
		set_background('show');
	}	
}

addDOMLoadEvent=(function(){var e=[],t,s,n,i,o,d=document,w=window,r='readyState',c='onreadystatechange',x=function(){n=1;clearInterval(t);while(i=e.shift())i();if(s)s[c]=''};return function(f){if(n)return f();if(!e[0]){d.addEventListener&&d.addEventListener("DOMContentLoaded",x,false);/*@cc_on@*//*@if(@_win32)d.write("<script id=__ie_onload defer src=//0><\/scr"+"ipt>");s=d.getElementById("__ie_onload");s[c]=function(){s[r]=="complete"&&x()};/*@end@*/if(/WebKit/i.test(navigator.userAgent))t=setInterval(function(){/loaded|complete/.test(d[r])&&x()},10);o=w.onload;w.onload=function(){x();o&&o()}}e.push(f)}})();

var fS={
  iFS:null,
  cFS:null,
  init: function (fC) {
    if (!document.getElementById || !document.createTextNode) { return; }
    if (UBCookie.read("fS")) {
      var sizes = UBCookie.read("fS").split(",");
      fS.iFS = sizes[0]*1; 
      fS.cFS = sizes[1]*1;
      fS.setBodySize();
	  toggle();
    } else {
      var el = document.createElement('span');
      el.innerHTML = "&nbsp;";
      el.style.position = "absolute";
      el.style.left = "-9999px";
      el.style.lineHeight = "1em";
      document.body.insertBefore(el,document.body.firstChild);
      fS.iFS = el.offsetHeight/16;
      fS.cFS = fS.iFS;
      UBCookie.create("fS",fS.iFS+","+fS.cFS,30);
    }
    fS.addJSLink(fC,fS.decFS," A ","decreaseSize");
    fS.addJSLink(fC,fS.incFS," A ","increaseSize");
    //fS.addJSLink(fC,fS.rFS," Reset ","resetSize");
  },
  incFS: function () {
    if(fS.cFS < 1.9){
        fS.cFS = fS.cFS*1.25;
        fS.setBodySize();
        set_background('hide');
		toggle();
	    return false;
	} else {
		return false;
	}
  },
  decFS: function () {
    if (fS.cFS > 1){
        fS.cFS = fS.cFS*0.8;
        fS.setBodySize();
        set_background('hide');
		toggle();
        return false;
	} else {
		return false;
	}
  },
  rFS: function () {
    fS.cFS = fS.iFS;
    fS.setBodySize();
    set_background('show');
	toggle();
    return false;
  },
  setBodySize: function() {
		document.body.style.fontSize = fS.cFS + 'em';
    UBCookie.create("fS",fS.iFS+","+fS.cFS,30);
  },
  addJSLink: function (elementId, onClickFunction, linkText, className) {
	var element = document.getElementById(elementId);
	var link = document.createElement("a");
	link.id = className;
	//link.className = className;
	var linkText = document.createTextNode(linkText);
	link.appendChild(linkText);
	link.onclick = onClickFunction;
	link.href="#"+elementId;
	element.appendChild(link);
  }
}

var UBCookie={
  create: function (name,value,days) {
	if (days) {
	  var date = new Date();
	  date.setTime(date.getTime()+(days*24*60*60*1000));
	  var expires = "; expires="+date.toGMTString();
	} else { var expires = ""; }
	document.cookie = name+"="+value+expires+"; path=/";
  },
  read: function (name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
	  var c = ca[i];
	  while (c.charAt(0)==' ') c = c.substring(1,c.length);
	  if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
  },
  erase: function(name) { createCookie(name,"",-1); }
}

addDOMLoadEvent(function() {fS.init("fontControls")});