function getById(el) {
	return document.getElementById(el);
}

function getByTag(par,el) {
	var par = (par == '') ? document.body : par;
	if (!par) return new Array();
	return par.getElementsByTagName(el);
}

function addClass(obj,newClass) {
	if(!obj.className.match(new RegExp(newClass)))
		obj.className+=(obj.className.length>0? " ": "") + newClass;
}
	
function removeClass(obj,oldClass) {
	obj.className=obj.className.replace(new RegExp("( ?|^)"+oldClass+"\\b"), "");
}

function getByClass(cla,par,el) {
	var getEls;
	if (/.*native code.*/.test(document.getElementsByClassName)) {
		getEls = function(cla,par,el) { 
			return par.getElementsByClassName(cla);
		}
	}
	else { 
		getEls = function(cla,par,el) { 
			var tagColl = par.getElementsByTagName(el);
			trimedColl = new Array;
			for (var i = 0; tagColl[i]; i++) {
				if(tagColl[i].className.match(new RegExp("( ?|^)"+cla+"\\b")))
					trimedColl[trimedColl.length]=tagColl[i];
			}
			return trimedColl;
		} 
	} 
	getByClass = function(cla,par,el) {
		var par = (!par||(par == '')) ? document.body : par;
		var el = (el == '') ? '*' : el;
		return getEls(cla,par,el); 
	}
	return getByClass(cla,par,el);
}


function getStyle(obj,cssRule) {
	if (document.defaultView && document.defaultView.getComputedStyle) {
		getStyle = function(obj,cssRule) {
			return document.defaultView.getComputedStyle(obj, "").getPropertyValue(cssRule);
		};
	}
	else {
		getStyle = function(obj,cssRule) {
			if (obj.currentStyle) {
				cssRule = cssRule.replace(/\-(\w)/g, function (match, p1) {
					return p1.toUpperCase();
				});
				return obj.currentStyle[cssRule];
			}
		};
	}
	return getStyle(obj,cssRule);
}

function findPosition( oElement ) {
  if( typeof( oElement.offsetParent ) != 'undefined' ) {
    for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
      posX += oElement.offsetLeft;
      posY += oElement.offsetTop;
    }
    return [ posX, posY ];
  } else {
    return [ oElement.x, oElement.y ];
  }
}

function getPageY() {
	var docHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
	// Order maters here as for IE 6 documentElement.clientHeight != body.clientHeight
	var docScrollY = document.documentElement.scrollTop || document.body.scrollTop;
	return [docHeight,docScrollY];
}

var addEvent = function() {
  if (window.addEventListener) {
    return function(el, type, fn) {
      el.addEventListener(type, fn, false);
    };
  } else if (window.attachEvent) {
    return function(el, type, fn) {
      var f = function() {
        fn.call(el, window.event);
      };
      el.attachEvent('on' + type, f);
    };
  }
}();

function setLinks(linkTags,prt){
	var linkCollection = [];
	for (var j = 0; linkTags[j]; j++) {
		linkCollection[j] = getByTag(prt,linkTags[j]);
		for (var i = 0; linkCollection[j][i]; i++) {
			if(/zoom/.test(linkCollection[j][i].getAttribute('rel'))) {
				new Zoom(linkCollection[j][i]);
			}
			else if(/audio/.test(linkCollection[j][i].getAttribute('rel'))) {
				linkCollection[j][i].onclick = function() {
					audioPlayer(this.href);
					return false;
				}
			}
			else if(/bookmark|external|corporate|download/.test(linkCollection[j][i].getAttribute('rel'))) {
				linkCollection[j][i].onclick = function(e) {
					if (!e) var e = window.event;
					if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey)
						return true;
					window.open(this.href);
					return false;
				}
			}
			
			if ( linkCollection[j][i].href.indexOf('/link/dl')!=-1 ) {
				trackBinaryDocument(linkCollection[j][i]);
			}
		}
	}
}

trackBinaryDocumentRequest=null;
function trackBinaryDocument(link)
{	
	var hr=link.href;
	if ( hr.indexOf("?")==-1) return true;
	hr=hr.substr( hr.indexOf("?")+1 );


	var trackBinaryDocumentRequest = null;
	try {
		trackBinaryDocumentRequest = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			trackBinaryDocumentRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
		try {
			trackBinaryDocumentRequest = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
			trackBinaryDocumentRequest = null;
		}
		}
	}
	
	if (!trackBinaryDocumentRequest) return true;

	var url="/getFileInfos?"+hr;
	trackBinaryDocumentRequest.open("GET", url, true);
	trackBinaryDocumentRequest.onreadystatechange = function()
    { 
         if(this.readyState  == 4)
         {
              if(this.status  == 200) {
                 eval("fileInfos="+this.responseText);
				if (fileInfos.weight && fileInfos.format) { 
					link.innerHTML+="&nbsp;<span class='metaData'>("+fileInfos.format+" "+fileInfos.weight+")</span>";
				}
			}
         }
    }; 




	trackBinaryDocumentRequest.send(null);

	return false;
}

function audioPlayer(aHref) {
	var dimx,dimy,xPos,yPos,featur,xEcran=800,yEcran=600;
	if(screen.width && screen.height){
		xEcran = screen.width;
		yEcran = screen.height;
	}
	xPos=(xEcran - dimx)/2; yPos=(yEcran - dimy)/2;
	dimx = 308;
	dimy = 175;
featur = "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,screenX="+xPos+",left="+xPos+",screenY="+yPos+",top="+yPos+",width="+ dimx + ",height=" + dimy + "";
	var audioPop = window.open(aHref,'audioPop',featur);
	if (window.focus && audioPop) {audioPop.focus();}
	return false;
}

function GET_XMLHTTPRequest() {
	var request;
	try{
		request = new ActiveXObject("Microsoft.XMLHTTP");
	}
	catch(ex1){
		try{
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(ex2){
			try{
				request = new ActiveXObject("Msxml3.XMLHTTP");
			}
			catch(ex3){
				request = null;
			}
		}
	}
	if(!request && typeof XMLHttpRequest != "undefined"){
		request = new XMLHttpRequest();
	}
	return request;
}

/* IE sometimes needs help
----- */
function fixIE() {
	var f = getById('footer');
	if(f) {
		var fUl = getByTag(f,'ul');
		for(var i = 0; fUl[i]; i++) {
			var fLi = getByTag(fUl[i],'li');
			if(fLi && fLi.length>0) {
				for(var j = 1; fLi[j]; j++) {
					fLi[j].innerHTML = ' | ' + fLi[j].innerHTML;
				}
			}
		}
	}
	var sm = getByClass('siteMap',getById('content'),'div');
	if(sm && sm[0]) {
		var sUl = getByTag(sm[0],'ul');
		for(var i = 0; sUl[i]; ++i) {
			var liCol = getByTag(sUl[i],'li');
			if(liCol && liCol.length > 1) {
				for(var j = 1; liCol[j]; ++j) {
					liCol[j].innerHTML = ' |  ' + liCol[j].innerHTML;
				}
			}
			
		}
	}
}

/* Specialy IE6
----- */
function fixLowIE() {
	var vs = getById('version-switcher');
	if(vs) {
		var a = getByTag(vs,'a')[0];
		addIE6span(a);
	}
	var ori = getById('orientation');
	if(ori) {
		var orLis = getByTag(ori,'li');
		for(var i = 0; orLis[i]; ++i) {
			var oa = getByTag(orLis[i],'a');
			if(oa&&oa[0]) {
				addIE6span(oa[0]);
			}
		}
		var pa = getByClass('all',ori,'p');
		if(pa&&pa[0]){
			var a = getByTag(pa[0],'a')[0];
			addIE6span(a);
		}
		ori.onmouseover = function () {
			addClass(this,'hover');
		}
		ori.onmouseout = function () {
			removeClass(this,'hover');
		}
	}
	var p = getById('programs');
	if(p) {
		var ts = getByClass('tools',p,'div');
		for(var i = 0; ts[i]; ++i) {
			var as = getByTag(ts[i],'a');
			for (var j = 0; as[j]; ++j){
				addIE6span(as[j]);
			}
		}
	}
	var np = getByClass('npslinks',getById('wrapper'),'ul');
	if(np&&np.length>0) {
		for(var i = 0; np[i]; ++i) {
			var npa = getByTag(np[i],'a');
			for(var j = 0; npa[j]; ++j) {
				addIE6span(npa[j]);
			}
		}
	}
}

function addIE6span(zz) {
	var s = document.createElement('span');
	s.className = 'ie6';
}


/* Fancy field stuff
---------------------- */
function setFancyFields(){
	var labelColl = getByClass('fancyField',getById('page'),'label');
	for(var i = 0; i < labelColl.length; i++) {
		var spansA = getByTag(labelColl[i],'span');
		var spanI = spansA[spansA.length-1];
		var fieldI = getByTag(labelColl[i],'input')[0];
		if( spanI && fieldI ){
			if(fieldI.type == 'password') {
				var fieldN = document.createElement('input');
				fieldN.type= "text";
				fieldN.value = fieldI.title = spanI.childNodes[0].nodeValue;
				fieldN.id = fieldI.id;
				fieldN.name = fieldI.name;
				fieldI.parentNode.replaceChild(fieldN,fieldI);
				addClass(fieldN,"password");
				addEvent(fieldN, 'focus', function(e) {
					if(this.value==getByTag(this.parentNode,'span')[0].childNodes[0].nodeValue)
						this.value='';
						addClass(this,'straight');
						if(/password/.test(this.className)) {
							var fieldP = document.createElement('input');
							fieldP.type= "password";
							fieldP.setAttribute("value","");
							fieldP.id = this.id;
							fieldP.name = this.name;
							fieldP.className='straight';
							this.parentNode.replaceChild(fieldP,this);
							setTimeout("document.getElementById('"+fieldP.id+"').focus()",1);
						}
				});
			}
			else {
				if (spanI.childNodes.length) {
					fieldI.value = fieldI.title = spanI.childNodes[0].nodeValue;
					addEvent(fieldI, 'focus', function(e) {
						if(this.value==getByTag(this.parentNode,'span')[0].childNodes[0].nodeValue)
							this.value='';
						addClass(this,'straight');
					});
				}
			}
		}
	}
}

/* Home Programs
----- */
function setHomePrograms() {
	var p = getById('page');
	var h = getById('head');
	var pr = getById('program');
	var prs = getById('programs');
	if(!p || !h || !pr || !prs) return;
	var reg = new RegExp("color-([a-zA-Z0-9]*)", "gi");
	var c = p.className.match(reg)[0];
	c = c.split('color-')[1];
	var programs = [];
	var l = getByTag(getById('program'),'li');
	for(var i = 0; l[i]; ++i) {
		var cl = l[i].className;
		if(cl && /program-/.test(cl)) {
			if(getById(cl)) {
				l[i].tgt = cl;
				l[i].tId = cl.split('program-')[1];
				programs[programs.length] = l[i];
			}
		}
	}
	if(programs.length>0){
		new Programs(programs,c,p,h);
	}
}

function Programs(programArray,current,parent,head) {
	this.programs = programArray;
	this.cId = current;
	this.prt = parent;
	this.head = head;
	var loader = document.createElement('span');
	loader.className = 'loader';
	loader.id = "loader";
	this.loader = loader;
	this.head.appendChild(loader)
	for (var i = 0; this.programs[i]; ++i) {
		this.programs[i].onclick = function (that) {
			return function (e) {
				that.rotate(this.tId);
				return false;
			}
		}(this);
	}
}


Programs.prototype = {
	rotate: function(tId) {
		if(this.cId==tId) return;
		addClass(this.loader,'loading');
		this.prt.className=this.prt.className.replace(new RegExp("color-([a-zA-Z0-9]*)"), "color-"+tId);
		var imgPath = getStyle(this.head,'background-image');
		var reg = new RegExp("url\\(['\"]?(.+)['\"]?\\)", "ig");
		imgPath = imgPath.replace(reg,"$1");
		var reg = new RegExp("['\"]?", "ig");
		imgPath = imgPath.replace(reg,"");
		var img = document.createElement('img');
		img.onload = function() {
			removeClass(getById('loader'),'loading');
		}
		img.src = imgPath;
		this.cId = tId;
	}
}

/* Workshops
----- */
function setHomeWorkshops() {
	var w = getById('workshops');
	if(w) new Workshops(w)
	var g = getById('gardens');
	if(g) new Workshops(g);
}

function Workshops(prt) {
	var shops = getByClass('workshop',prt,'div');
	if(!shops || shops.length < 1) return;
	var g = getByClass('globalWorkshops',prt,'div');
	var gContent = (g && g[0]) ? g[0].innerHTML : '';
	this.prt = prt;
	this.cId = 0;
	this.shops = [];
	for (var i = 0; shops[i]; ++i) {
		if (/currentWorkshop/.test(shops[i].className))
			this.cId = i;
		shops[i].sId = i;
		var desc = getByClass('desc',shops[i],'div');
		if(desc && desc[0]) {
			var gc = document.createElement('div');
			gc.innerHTML = gContent;
			desc[0].appendChild(gc);
		}
	}
	this.shops = shops;
	this.max = this.shops.length-1;
	var p = document.createElement('a');
	p.className = 'prev';
	p.href='';
	p.title='Précédent';
	var n = document.createElement('a');
	n.className = 'next';
	n.href='';
	n.title='Suivant';
	this.prt.appendChild(p);
	this.prt.appendChild(n);
	this.prev = p;
	this.nxt = n;
	this.prev.onclick = function (that) {
		return function (e) {
			that.shift('b');
			return false;
		}
	}(this);
	this.nxt.onclick = function (that) {
		return function (e) {
			that.shift('f');
			return false;
		}
	}(this);
}

Workshops.prototype = {
	shift: function(dir) {
		var f = (dir == 'b') ? ((this.cId==0) ? this.max : this.cId - 1) : ((this.cId==this.max) ? 0 : this.cId + 1);
		removeClass(this.shops[this.cId],'currentWorkshop');
		addClass(this.shops[f],'currentWorkshop');
		this.cId = f;
	}
}


/* Folds
----- */
function setFolds() {
	if(!getById('content')) return;
	
	var foldBlocks = getByClass('foldsContainer',getById('content'),'div');
	if(!foldBlocks) return;
	for (var k = 0; foldBlocks[k]; ++k) {
		addClass(foldBlocks[k],'setContainer');
		var folds = getByClass('foldable',foldBlocks[k],'div');
		if(folds){
			var tgt = foldBlocks[k].id;
			var sRelated = document.createElement('div');
			sRelated.className = 'setRelated';
			
			for(var i = 0; folds[i]; ++i) {
				var f = getByClass('fold',folds[i],'div');
				var c = getByTag(folds[i],'h2');
				var r = getByClass('related',folds[i],'div');
				if(f&&f[0]&&c&&c[0]) {
					c[0].className = 'set';
					c[0].innerHTML = '<a href="#'+tgt+'">'+c[0].innerHTML+'</a>';
					var a = getByTag(c[0],'a')[0];
					folds[i].call = a;
					folds[i].fold = f;
					folds[i].cId = i;
					folds[i].call.cId = i;
					folds[i].related = (r && r[0]) ? r[0] : '';
				}
			}
			foldBlocks[k].insertBefore(sRelated,folds[0]);
			new Folds(folds,sRelated);
		}
	}
}

function Folds(folds,tgt) {
	this.cId = 0;
	this.folds = folds;
	this.tgt = tgt;
	this.tgt.innerHTML = folds[0].related.innerHTML;
	for(var i = 0; folds[i]; ++i) {
		this.folds[i].call.onclick = function (that) {
			return function () {
				that.toggle(this.cId);
				// return false;
			}
		}(this);
	}
}

Folds.prototype = {
	toggle: function(cId) {
		if(this.cId==cId) return;
		this.tgt.innerHTML = '';
		removeClass(this.folds[this.cId],'expanded');
		addClass(this.folds[cId],'expanded');
		this.tgt.innerHTML = this.folds[cId].related.innerHTML;
		this.cId = cId;
	}
}

/* Rotate
----- */
function setRotators() {
	if(!getById('content')) return;
	var r = getByClass('rotator',getById('content'),'div');
	if(r&&r[0]) {
		for(var i = 0; r[i]; ++i) {
			var els = getByClass('illustration',r[i],'div');
			if(els&&els[0])
				new Rotator(r[i],els);
		}
	}
}

function Rotator(prt,els) {
	this.prt = prt;
	this.cId = 0;
	this.maxH = 0;
	for(var i = 0; els[i]; ++i) {
		els[i].cId = i;
		if(/current/.test(els[i].className))
			this.cId = i;
		var h = els[i].offsetHeight;
		var m = getStyle(els[i],'margin-bottom');
		if(m) {
			h = h + parseInt(m,10) + 1;
		}
		if(h>this.maxH)
			this.maxH = h;
	}
	this.max = els.length-1;
	this.items = els;
	this.prt.style.height = this.maxH + 'px';
	this.rotate(this.cId);
}

Rotator.prototype = {
	rotate: function(cId) {
		var rTimeout = setTimeout(function (that) {
			return function () {
				var n = (that.cId==that.max) ? 0 : that.cId + 1;
				removeClass(that.items[that.cId],'current');
				addClass(that.items[n],'current');
				that.cId = n;
				that.rotate();
			}
		}(this), 5000);
	}
}


/* Overlay
---------------------- */
function Zoom(a) {
	initOverlay();
	this.a = a;
	this.overlay = getById('overlay');
	this.container = getById('overlayContainer');
	this.container.w = 400;
	this.container.h = 250;
	this.a.onclick = function (that) {
        return function () {
            that.click(this.href);
			return false;
        }
    }(this);
}

Zoom.prototype = {
	click: function (file) {
		this.file = file + '&js=true';
		this.overlay.innerHTML = '<span id="loading"></span>';
		getById('loading').style.top = ((getPageY()[0] - 36) / 2) + getPageY()[1] + 'px';

		if(getById('ie6overlay'))
			removeClass(getById('ie6overlay'),'hidden');
			

		this.overlay.style.height = getById('page').offsetHeight + 'px';

			
		removeClass(this.overlay,'hidden');
		removeClass(this.container,'hidden');

		var req = GET_XMLHTTPRequest();
		if (req) {
			req.open("GET", this.file, true);
			req.setRequestHeader('User-Agent','XMLHTTP/1.0');
			req.onreadystatechange = function (that) {
		        return function (aEvt) {
					if (req.readyState != 4) return;
					if (req.status != 200 && req.status != 304) {
						that.handleError(req);
						return;
					}
		            if(req.readyState == 4){
						that.handleRequest(req);
					}
		        }
		    }(this);
			req.send(null);
		}
		else {
			getById('overlayContainer').innerHTML = 'Unable to load content';
			this.createNav();
			this.changePosition();
		}
	},
	changePosition: function () {
		this.container.style.width = this.container.w + 'px';
		this.container.style.height = this.container.h + 'px';
		this.container.style.marginLeft = -(this.container.w)/2 + 'px';
		var t = ((getPageY()[0] - this.container.h) / 2) + getPageY()[1];
		if(t < 0 ) {t = 0;}
		this.container.style.top = t + 'px';
		this.overlay.innerHTML = '';
	},
	handleRequest: function(req) {
		this.container.innerHTML = req.responseText;
		var innerContent = getById('overlayInnerContent');
		if(innerContent) {
			this.createNav();
			this.container.w = innerContent.offsetWidth;
			this.container.h = innerContent.offsetHeight;
			this.changePosition();
			var c = getByClass('content',this.container,'div');
			if(c&&c[0]){
				setLinks(['a','area'],c[0]);
				initSwfObjects(c[0]);
			}
		}
	},
	handleError: function(req) {
		this.container.innerHTML = '<strong>Data error :</strong> HTTP error' + req.status + '';
		this.container.w = 400;
		this.container.h = 250;
		this.createNav();
		this.changePosition();
	},
	createNav: function () {
		if(!getById('overlayNav')){
			var div = document.createElement('div');
			div.id = 'overlayNav';
			this.container.appendChild(div);
		}
		this.nav = getById('overlayNav');
		this.nav.items = getByTag(this.nav,'a');
		for(var i = 0; this.nav.items[i]; i++) {
			new Zoom(this.nav.items[i]);
		}
		var c = document.createElement('a');
		c.href= "#";
		c.className = "closer";
		c.onclick = function (that) {
	        return function () {
				that.close();
				return false;
			}
		}(this);
		this.closer = this.nav.appendChild(c);
	},
	close: function () {
		addClass(this.container,'hidden');
		addClass(this.overlay,'hidden');
		if(getById('ie6overlay'))
			addClass(getById('ie6overlay'),'hidden');
		this.container.innerHTML = '';
		return false;
	}
}

function initOverlay () {
	if(!getById('overlay')) {
		var ov = document.createElement('div');
		ov.id = "overlay";
		ov.className = 'hidden';
		ov.style.height = getById('page').offsetHeight + 'px';
		document.getElementsByTagName('body')[0].appendChild(ov);
		/*@cc_on @*/
		/*@if (@_win32)
		newerThanIe6 = eval('document.getElementsByTagName("body")[0].currentStyle.minWidth');
		if (!newerThanIe6) {
			var f = document.createElement('iframe');
			f.id= 'ie6overlay';
			f.className = 'hidden';
			document.getElementsByTagName('body')[0].appendChild(f);
		}
		/*@end @*/
	}

	if(!getById('overlayContainer')) {
		var ovCt = document.createElement('div');
		ovCt.id = "overlayContainer";
		ovCt.className = 'hidden';
		document.getElementsByTagName('body')[0].appendChild(ovCt); 
	}
}



/* Refolds
----- */
function setRefolds() {
	if(!getById('content')) return;
	var foldBlocks = getByClass('foldsContainer',getById('content'),'div');
	if(foldBlocks&&foldBlocks[0]) return;
	var folds = getByClass('foldable',getById('content'),'div');
	
	var h = document.location.hash;
	if(h)
		h=h.split('#')[1];

	for(var i = 0; folds[i]; ++i) {
		var f = getByClass('fold',folds[i],'div');
		var c = getByTag(folds[i],'h2');
		if(f&&f[0]&&c&&c[0]) {
			c[0].className = 'set';
			c[0].innerHTML = '<a href="#'+folds[i].id+'">'+c[0].innerHTML+'</a>';
			var a = getByTag(c[0],'a')[0];
			if(folds[i].id&&(folds[i].id==h)){
				removeClass(folds[i],'minified');
				folds[i].scrollIntoView(true);
			}
			var state = /minified/.test(folds[i].className) ? 'minified' : '';
			new Refold(folds[i],a,state);
		}
	}
}

function Refold(container,call,state) {
	this.container = container;
	this.call = call;
	this.state = state;
	this.call.onclick = function (that) {
		return function () {
			that.toggle();
			return false;
		}
	}(this);
}

Refold.prototype = {
	toggle: function(dir) {
		if(/minified/.test(this.container.className))
			removeClass(this.container,'minified');
		else
			addClass(this.container,'minified');
		this.state = (this.state == 'minified') ? '' : 'minified';
	}
}


/* Gallery
----- */
function setGalleries() {
	var g = getByClass('gallery','','div');
	if(!g) return;
	for (var i = 0; g[i]; ++i) {
		var c = getByClass('callers',g[i],'div');
		if(c&&c[0]) {
			var its = getByClass('item',c[0],'div');
			if(its) 
				new Gallery(g[i],c[0],its);
		}
	}
}

function Gallery(gallery,callBox,items) {
	this.gallery = gallery;
	this.callBox = callBox;
	this.items = items;
	this.cId = 0;
	this.scrollable = false;
	var d = document.createElement('div');
	d.className = 'displayer';
	this.displayer = d;
	var z = document.createElement('div');
	z.className = 'illustration';
	this.zoom = z;
	var lb = document.createElement('div');
	lb.className = 'legendBlock';
	this.legendBlock = lb;
	var l = document.createElement('div');
	l.className = 'legend';
	this.legend = l;
	d.appendChild(z);
	lb.appendChild(l);
	d.appendChild(lb);
	this.gallery.appendChild(d);
	var prv = document.createElement('span');
	prv.className = 'prev';
	this.prv = prv;
	var nxt = document.createElement('span');
	nxt.className = 'next';
	this.nxt = nxt;
	this.legendBlock.appendChild(prv);
	this.legendBlock.appendChild(nxt);
	for(var i = 0; items[i]; ++i) {
		items[i].cId = i;
		if(/current/.test(items[i].className))
			this.cId = i;
		var a = getByTag(items[i],'a');
		if(a&&a[0]) {
			var tgt = a[0].href;
			items[i].call = a[0];
			items[i].call.cId = i;
			items[i].img = tgt;
			var l = getByClass('desc',items[i],'div');
			items[i].legend = (l&&l[0]) ? l[0].innerHTML : '';
			items[i].call.onclick = function (that) {
				return function () {
					that.toggle(this.cId,'noScroll');
					return false;
				}
			}(this);
			items[i].call.onfocus = function (that) {
				return function () {
					that.toggle(this.cId,'noScroll');
					return false;
				}
			}(this);
		}
	}
	this.max = items.length-1;
	var m = getByClass('interstice',callBox,'div');
	var w = getByClass('wrap',callBox,'div');
	if(m&&w&&m[0]&&w[0])
		this.setScroll(m[0],w[0]);
	this.toggle(this.cId,'scroll');
}

Gallery.prototype = {
	toggle: function(cId,scroll) {
		addClass(this.displayer,'loading');
		this.zoom.innerHTML = '';
		var img = document.createElement('img');
		this.zoom.appendChild(img);
		img.onload = function (that) {
			return function () {
				removeClass(that.displayer,'loading');
				that.zoom.style.height = img.offsetHeight + 'px';
				return false;
			}
		}(this);
		img.src = this.items[cId].img;
		this.legend.innerHTML = this.items[cId].legend;
		removeClass(this.items[this.cId],'current');
		addClass(this.items[cId],'current');
		this.cId = cId;
		if((this.scrollable==true) && (scroll=='scroll'))
			this.init(this.cId);
		this.setNav();
		setLinks(['a'],this.legend);
	},
	setNav: function() {
		if(this.cId>0) {
			this.prv.innerHTML = '<a href="#" title="Précédent">Précédent</a>';
			getByTag(this.prv,'a')[0].onclick = function (that) {
				return function () {
					that.toggle(that.cId-1,'scroll');
					return false;
				}
			}(this);
			getByTag(this.prv,'a')[0].onfocus = function (that) {
				return function () {
					that.toggle(that.cId-1,'scroll');
					return false;
				}
			}(this);
		}
		else
			this.prv.innerHTML = '';
		if(this.cId<this.max) {
			this.nxt.innerHTML = '<a href="#" title="Suivant">Suivant</a>';
			getByTag(this.nxt,'a')[0].onclick = function (that) {
				return function () {
					that.toggle(that.cId+1,'scroll');
					return false;
				}
			}(this);
			getByTag(this.nxt,'a')[0].onfocus = function (that) {
				return function () {
					that.toggle(that.cId+1,'scroll');
					return false;
				}
			}(this);
		}
		else
			this.nxt.innerHTML = '';
	},
	setScroll: function(m,w) {
		this.interstice = m;
		this.wrap = w;
		this.callBox.w = this.callBox.offsetWidth;
		this.items.w = 0;
		this.items[this.items.length-1].style.marginRight = 0;
		for(var i = 0; this.items[i]; ++i) {
			if(i==0)
				this.items.mr = parseInt(getStyle(this.items[i],'margin-right'),10);
			this.items.w = this.items.w + this.items[i].offsetWidth + this.items.mr;
		}
		this.items.w = this.items.w - this.items.mr;
		this.wrap.style.width = this.items.w+'px';
		if(this.items.w > this.callBox.w) {
			this.scrollable = true;
			var b = document.createElement('div');
			b.className = 'scrollBar';
			this.scrollBar = b;
			var s = document.createElement('div');
			s.className = 'scroller';
			this.scroller = s;
			b.appendChild(s);
			this.gallery.insertBefore(b,this.displayer);
			this.w = this.scroller.offsetWidth;
			this.bW = this.wrap.offsetWidth;
			this.prtX = findPosition(this.scrollBar)[0];
			this.prtW = this.scrollBar.offsetWidth;
			this.prtZ = this.prtX + this.prtW;
			this.ratio =  (this.bW - this.prtW) / (this.prtW - this.w);
			this.state = null;
		    this.prevX = null;
			this.curOffset = null;
			this.scrolled = null;
			this.makeDraggable();
		}
	},
	makeDraggable: function () {
		this.scroller.onmousedown = function (that) {
			return function (e) {
			that.mousedown(e);
			return false;
			}
		}(this);
			this.interstice.onscroll = function (that) {
			return function (e) {
				that.scrollH();
			}
		}(this);
		this.init(this.cId);
	},
	scrollH: function () {
		this.scroller.style.left = ((this.interstice.scrollLeft - this.wrap.offsetLeft) / this.ratio) + 'px';
		this.curOffset = this.w/2;
	},
	init: function (cId) {
		x = this.items[cId].offsetLeft;
		this.interstice.scrollLeft = x;

		if(!this.curOffset) {
			this.curOffset = x - this.prtX;
		}
		else if(this.prevX) {
			this.curOffset = x - (this.prtX + this.prevX);
		}

	},
	mousedown: function (e) {
		e = e ? e : window.event;
		var x = e.clientX ? e.clientX : e.pageX;
		if(!this.curOffset) {
			this.curOffset = x - this.prtX;
		}
		else if(this.prevX) {
			this.curOffset = x - (this.prtX + this.prevX);
		}
		this.state = "drag";
		addClass(this.scroller,'scrolling');
		document.onmousemove = function (that) {
	        return function (e) {
	            that.mousemove(e);
	 			return false;
	        }
	    }(this);
	    document.onmouseup = function (that) {
	        return function (e) {
	            that.mouseup(e);
	        }
	    }(this);
	},
	mousemove: function (e) {
		e = e ? e : window.event;
		var x = e.clientX ? e.clientX : e.pageX;
		if(this.state === "drag") {
			if( (x > this.prtX) && (x < this.prtZ)) {
				var scrollerX = (x - this.curOffset) - this.prtX;
				var scrollItemsX = (this.prtX - (x - this.curOffset)) * this.ratio;
				if( (scrollerX > -1) && ( (x - this.curOffset) < (this.prtZ - this.w) )) {
					this.scroller.style.left = scrollerX + 'px';
					this.interstice.scrollLeft = - scrollItemsX;
				}
				else if(scrollerX < 0) {
					this.scroller.style.left = 0 + 'px';
					this.interstice.scrollLeft = 0;
				}
				else if (scrollerX > (this.prtW - this.w)) {
					this.scroller.style.left = (this.prtW - this.w) + 'px';
					this.interstice.scrollLeft = - (this.prtW - this.bW);
				}
			}
		}
	},
	mouseup: function (e) {
		e = e ? e : window.event;
		this.state = '';
		this.prevX = this.scroller.offsetLeft;
		removeClass(this.scroller,'scrolling');
	}
}


/* Calendar
----- */
function setCalendar() {
	var mc = getById('miniCalendar');
	var c = getById('calendar');
	if(c && mc)
		new Calendars(c,mc);
	else if(mc)
		new Calendars('',mc);
	else if(c)
		new Calendars(c,'');
}

function Calendars(cal,mini) {
	if(cal) {
		var cPrt = getByClass('calendarContainer',cal,'div');
		if(cPrt && cPrt[0]) {
			this.cal = cPrt[0];
			this.container = cPrt[0];
		}
		else
			this.cal = cal;
		var weeks = getByClass('week',cal,'div');
		if(weeks) {
			this.setMainNav();
		}
	}
	if(mini) {
		var mPrt = getByClass('miniContainer',mini,'div');
		if(mPrt && mPrt[0])
			this.mini = mPrt[0];
		else
			this.mini = mini;
		if(this.cal) {
			var aColl = getByTag(this.mini,'a');
			for(var i = 0; aColl[i]; ++i) {
				aColl[i].onclick = function (that) {
					return function () {
						that.sync(this);
						return false;
					}
				}(this);
			}
		}
		var months = getByClass('month',mini,'div');
		if(months && months.length > 1) {
			this.mini.cId = 0;
			for(var i = 0; months[i]; ++i) {
				months[i].cId = i;
				if(/current/.test(months[i].className))
					this.mini.cId = i;
			}
			this.mini.max = months.length;
			this.setNav(this.mini,'mini','Mois précédent','Mois suivant');
			this.months = months;
		}
	}
}

Calendars.prototype = {
	setNav: function(prt,type,txtL,txtR) {
		var prv = document.createElement('a');
		prv.href= '#';
		prv.className = (prt.cId==0) ? 'btn prev hidden' : 'btn prev';
		prv.title = txtL;
		prv.innerHTML = txtL;
		prt.prv = prv;
		var nxt = document.createElement('a');
		nxt.href= '#';
		nxt.className = (prt.cId==(prt.max-1)) ? 'btn next hidden' : 'btn next';
		nxt.title = txtR;
		nxt.innerHTML = txtR;
		prt.nxt = nxt;
		prt.appendChild(prv);
		prt.appendChild(nxt);
		prt.prv.onclick = function (that) {
			return function () {
				that.toggle('bck',type);
				return false;
			}
		}(this);
		prt.nxt.onclick = function (that) {
			return function () {
				that.toggle('nxt',type);
				return false;
			}
		}(this);
	},
	setMainNav: function() {
		var b = getByClass('btn',getById('calendar'),'a');
		for(var i = 0; b[i]; ++i) {
			b[i].onclick = function (that) {
				return function () {
					that.sync(this);
					return false;
				}
			}(this);
		}
	},
	toggle: function(dir,type) {
		if(type=='cal'){
			prt = this.cal;
			ar = this.weeks;
		}
		else {
			prt = this.mini;
			ar = this.months;
		}
		var n = (dir=='nxt') ? prt.cId + 1 : prt.cId - 1;
		if(n>-1){
			var m = ar[n];
			if(m) {
				removeClass(ar[prt.cId],'current');
				addClass(m,'current');
				prt.cId = n;
			}
			if(n==0)
				addClass(prt.prv,'hidden');
			else
				removeClass(prt.prv,'hidden');
			if(n==(prt.max-1))
				addClass(prt.nxt,'hidden');
			else
				removeClass(prt.nxt,'hidden');
		}
	},
	handleRequest: function(req) {
		this.container.innerHTML = req.responseText;
		this.setMainNav();
	},
	handleError: function(req) {
		this.container.innerHTML = '<strong>Data error :</strong> HTTP error' + req.status + '';
	},
	sync: function(a) {
		
		if(/id/.test(a.href)) {
			var file = a + '&js=true';
			var req = GET_XMLHTTPRequest();
			if (req) {
				req.open("GET", file, true);
				req.setRequestHeader('User-Agent','XMLHTTP/1.0');
				req.onreadystatechange = function (that) {
			        return function (aEvt) {
						if (req.readyState != 4) return;
						if (req.status != 200 && req.status != 304) {
							that.handleError(req);
							return;
						}
			            if(req.readyState == 4){
							that.handleRequest(req);
						}
			        }
			    }(this);
				req.send(null);
			}
			return false;
		}
	}
}

function initSwfObjects(prt) {/*
	if(prt=='') prt = document.getElementsByTagName('body')[0];
	var obs = getByTag(prt,'object');
	if(obs&&obs[0]) {
		for(var i = 0; obs[i]; ++i) {
			if(obs[i].id&&obs[i].id!='') {
				var io = getByTag(obs[i],'object');
				if(io&&io[0]&&io[0].type&&/flash/.test(io[0].type)) {
					if(obs[i].id)
						swfobject.registerObject(obs[i].id, "9.0.0", "/static/media/swf/expressInstall.swf");
				}
			}
		}
	}
	*/
}

function testTextSheet() {
	var s = document.styleSheets;
	for(var i = 0; i < s.length; ++i) {
		if(s[i].disabled==false) {
			var h = s[i].href;
			if(h&&/css\/text/.test(h))
				return true;
		}
	}
	return false;
}


/* Init
-------------------- */
var init = function() {
	if (arguments.callee.done) return;
	arguments.callee.done = true;
	if(!document.getElementsByTagName)
		return false;
	addClass(getById('page'),'scripted');
	var lowCss = testTextSheet();
	if(lowCss){
		removeClass(getById('page'),'scripted');
	}
	else {
		setFancyFields();
		setHomePrograms();
		setHomeWorkshops();
		setFolds();
		setRefolds();
		setCalendar();
		setRotators();
		initSwfObjects(getById('page'));
		setGalleries();
		setLinks(['a','area'],'');
		/*@cc_on @*/
		/*@if (@_win32)
			var ua = navigator.userAgent;
			var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
			if (re.exec(ua) != null) {
				rv = parseFloat( RegExp.$1 );
				if(rv < 7) fixLowIE();
				if(rv < 8) fixIE();
			}
		/*@end @*/
	}
}

if (document.addEventListener) {
	document.addEventListener( "DOMContentLoaded", function(){
		document.removeEventListener("DOMContentLoaded",arguments.callee,false);
		init();
	}, false );
} else if (document.attachEvent) {
	document.attachEvent("onreadystatechange", function(){
		if (document.readyState === "complete") {
			document.detachEvent("onreadystatechange",arguments.callee);
			init();
		}
	});
	if (document.documentElement.doScroll && window == window.top) (function(){
		if (arguments.callee.done) return;
		try {
			document.documentElement.doScroll("left");
		} catch(error) {
			setTimeout(arguments.callee, 0);
			return;
		}
		init();
	})();
}
window.onload = init;

/* SWFObject v2.1 <http://code.google.com/p/swfobject/>
	Copyright (c) 2007-2008 Geoff Stearns, Michael Williams, and Bobby van der Sluis
	This software is released under the MIT License <http://www.opensource.org/licenses/mit-license.php>
*/
var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return }f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return }if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return }}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return }var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return }var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return }AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();