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-9 + 'px',
					top:o.parentNode.offsetTop + '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;
			Element.addClassName(o.parentNode,"hover");
		}
		else {
			roll = 0;
			Element.removeClassName(o.parentNode,"hover");
		}
		if(_navNodes[id].parentNode.className.indexOf("on") == -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 reglement () {
	_rules.center();	
	_rules.init();
}

function animFlash() {
    thisMovie('homeFlash').goToLinks(this.id);
}

function stopFlash() {
    thisMovie('homeFlash').goToIntro();
}

function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return document.getElementById(movieName);
    } else {
        return document[movieName];
    }
}


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 (_navNodes[i].parentNode.className.indexOf("on") == -1) {
                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));

            }


        }

        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]);
            }
        }
    }

    if ($('home')) {
        var links = $('nav').getElementsByClassName('main');

        for (var i = 0, l = links.length; i < l; i++) {
            var item = links[i];
            item.observe('mouseover', animFlash);
            item.observe('mouseout', stopFlash);
        }
    }
});