var _this = this;
var _myIE6Hack;
var _navNodes;
var _mySubNav;
var _headerNav;
var _checkRegisterErrors;
var _checkRegisterMsgErrors;
var _legal = new Popup('http://www.coca-cola-france.fr/noticelegale.html','legal',379,388,{});
var _rules = new Popup('reglement.asp','legal',400,500,'scrollbars=yes');

var SubNav = Class.create({
	
	initialize: function () {
		for (var i=0;i<_navNodes.length;i++) {
			this[i+'_IE6NavInterval'] = null;
		}
	},
	
	setPosition: function () {
		_subNavNodes = $$('#nav .subNavItem');
		for (var i=0;i<_navNodes.length;i++) {			
			var o = _navNodes[i];
			var subNav = _navNodes[i].parentNode.getElementsByTagName('ol');
			if (subNav.length>0) {
				subNav[0].parentNode.setStyle({ 
					left:o.offsetWidth + 'px',
					top:((subNav[0].parentNode.offsetHeight*-1) + o.offsetTop + o.offsetHeight) + 'px'
				});
				Event.observe(subNav[0].parentNode,'mouseover',_mySubNav._onOverOut.bindAsEventListener(this,'visible',subNav[0].parentNode,i));
				Event.observe(subNav[0].parentNode,'mouseout',_mySubNav._onOverOut.bindAsEventListener(this,'hidden',subNav[0].parentNode,i));
			}
		}
	},
	
	view: function (e,visibility,o,id) {
		if (_myIE6Hack.IE) {
			if (this[id+'_IE6NavInterval']==null) {
				this[id+'_IE6NavInterval'] = new PeriodicalExecuter(this._viewIE6.bindAsEventListener(this,visibility,o),200/1000);
			}
			else {
				if (visibility=='visible') {
					this[id+'_IE6NavInterval'].stop();
					o.setStyle({ visibility:visibility });
				}				
				this[id+'_IE6NavInterval'].callback = this._viewIE6.bindAsEventListener(this,visibility,o);
				this[id+'_IE6NavInterval'].registerCallback();
			}
		}
		else {
			o.setStyle({ visibility:visibility });
		}
	},
	
	_viewIE6: function (e,visibility,o) {	
		o.setStyle({ visibility:visibility });
	},
	
	_onOverOut: function (e,visibility,o,id) {
		var roll;
		if (visibility == 'visible') {
			roll = 1;
			_this.setBg(id);
		}
		else {
			roll = 0;
			_this.setBg(-1);
		}
		if (_myIE6Hack.IE6) {
			var roll2 = (roll==1) ?0 :1;
			_myIE6Hack.pngRollManual(_navNodes[id].getElementsByTagName('img')[0],roll2,roll);
		}
		else {
			_this[id+'navRoll'].manual(roll);
		}
		
		this.view(e,visibility,o,id);
	}

});

var RegisterErrors = Class.create({
	
	initialize: function () {
		var o = _checkRegisterErrors;
		for (var i=0;i<o.length;i++) {
			Event.observe(o[i],'mouseover',this._view.bindAsEventListener(this,'visible',i));
			Event.observe(o[i],'mouseout',this._view.bindAsEventListener(this,'hidden',i));			
		}
	},
	
	_view: function (e,visibility,id) {
		var o = Event.element(e).parentNode.getElementsByTagName('div')[1];
		var pos = _checkRegisterErrors[id];
		$('errorsMsg').innerHTML = _checkRegisterMsgErrors[id].innerHTML;
		var addLeft = (_myIE6Hack.IE) ?675 :230;
		var addTop = (_myIE6Hack.IE) ?210 :10;
		$('errorsMsg').setStyle({
			visibility:visibility,
			left:(pos.offsetLeft+addLeft)+'px',
			top:(pos.offsetTop+addTop-$('scrollable2').scrollTop)+'px'
		});
	}
	
});

var RegisterForm = Class.create({
	
	initialize: function () {
		Event.observe(document, "keyup", this.checkKey.bindAsEventListener(this));
	},
	
	checkKey: function (e) {
		var keyCode = (window.event) ?e.keyCode :e.which;
		if (keyCode==13) {
			document.formRegister.submit();
		}
	}
	
});

function setBg (id) {
	if ($('container')) {
		$('container').setStyle({ background:'url(images/css/bg' + (id+1) + '.jpg)' });
	}
}

function reglement () {
	_rules.center();	
	_rules.init();	
}

Event.observe(window,'load',function (){
	
	_myIE6Hack = new IE6Hack();
	_myIE6Hack.IE = (navigator.appVersion.indexOf('MSIE')!=-1) ?true :false;
	_myIE6Hack.pngFix('images/pix.gif');	
	_navNodes = $$('#nav .main');
	
	if (_navNodes.length>0) {
		
		for (var i=0;i<_navNodes.length;i++) {
			
			if (_myIE6Hack.IE6) {
				_myIE6Hack.pngFixRoll(_navNodes[i].getElementsByTagName('img')[0]);
			}
			else {
				_this[i+'navRoll'] = new Roll(_navNodes[i]);
			}
			
			_subNavNode = _navNodes[i].parentNode.getElementsByTagName('div')[0];
			if (_subNavNode) {
				
				if (!_mySubNav) {
					_mySubNav = new SubNav();	
				}
				
				Event.observe(_navNodes[i],'mouseover',_mySubNav.view.bindAsEventListener(_mySubNav,'visible',_subNavNode,i));
				Event.observe(_navNodes[i],'mouseout',_mySubNav.view.bindAsEventListener(_mySubNav,'hidden',_subNavNode,i));
				
			}
			
			Event.observe(_navNodes[i],'mouseover',_this.setBg.bind(_this,i));
			Event.observe(_navNodes[i],'mouseout',_this.setBg.bind(_this,-1));
			
		}
		
		if (_mySubNav) {
			_mySubNav.setPosition();
		}
		
	}
	
	_headerNav = $$('#header a');
	if (_headerNav.length>0) {
		for (var i=0;i<_headerNav.length;i++) {
			if (_myIE6Hack.IE6) {
				_myIE6Hack.pngFixRoll(_headerNav[i].getElementsByTagName('img')[0]);
			}
			else {
				_this[i+'headerRoll'] = new Roll(_headerNav[i]);
			}
		}
	}
	
	if ($('gameRegister')) {
		var myRegisterForm = new RegisterForm();	
	}
	
	_checkRegisterErrors = $$('#gameRegister .error');
	if (_checkRegisterErrors.length>0) {
		_checkRegisterMsgErrors = $$('#gameRegister .msg');
		var myRegisterErrors = new RegisterErrors();
	}
	
	if ($('legalPopup')) {
		Event.observe($('legalPopup'),'click',function(){
			_legal.center();
			_legal.init();
		});
	}
	
	var _siteMapNav = $$('#siteMap .main');
	if (_siteMapNav.length>0) {
		for (var i=0;i<_siteMapNav.length;i++) {
			if (_myIE6Hack.IE6) {
			_myIE6Hack.pngFixRoll(_siteMapNav[i].getElementsByTagName('img')[0]);
			}
			else {
			_this[i+'siteMapNavRoll'] = new Roll(_siteMapNav[i]);
			}
		}
	}
	
});