/*-----------------------------------------------------------------------------
  [JS - application]
  
  Page : Toutes
  Navigateurs : Tous
  
  1. Fonction de construction d'une animation flash
  2. Remplacement des titres avec sIFR
  3. Insertion des animations flash de la page
  4. Input replace
  5. Pop-in aide
  6. Target blank valid
  7. Remplacement des emails prot�g�s
  8. Hover sur le bouton "Ok" de l'espace Banetiers
  Squeezebox
-----------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------
  [1. Fonction de construction d'une animation flash]
*/

var swiffConstruct = function(object){
	var swiffInstance = new Swiff(object.filePath, {
		id: object.objectId,
		width: object.width,
		height: object.height,
		params: {
			align: 'right',
			allowScriptAccess: 'sameDomain',
			loop: this.isLoop,
			play: this.isAutoplay,
			pluginspage: 'http://www.adobe.com/go/getflashplayer',
			quality: this.quality
		},
		vars: object.vars
	}).replaces($(object.objectId));
	
	return swiffInstance;
};

/*-----------------------------------------------------------------------------
  [2. Remplacement des titres avec sIFR]
*/

var din = { src: uriBase+"design/banette/flash/sifr-fonts/din.swf",
			ratios: [8, 1.42, 9, 1.33, 12, 1.35, 19, 1.3, 27, 1.27, 28, 1.25, 32, 1.26, 33, 1.24, 38, 1.25, 53, 1.24, 56, 1.23, 57, 1.24, 83, 1.23, 85, 1.22, 87, 1.23, 94, 1.22, 95, 1.23, 1.22]
};

sIFR.fitExactly = true;
sIFR.useStyleCheck = true;
sIFR.activate(din);

sIFR.replace(din, {
	selector: '#bntt-main-menu ul li.current',
	css: [
		'.sIFR-root { cursor: pointer; font-size: 17px; font-weight: bold; text-transform: uppercase; }',
		'a:link { color: #9e1919; text-decoration: none; }',
		'a:hover { color: #9e1919; }'
	],
	offsetTop: -1,
	tuneWidth: 0,
	tuneHeight: -10,
	wmode: 'transparent',
	fixFocus: true
});
sIFR.replace(din, {
	selector: '#bntt-main-menu ul li',
	css: [
		'.sIFR-root { cursor: pointer; font-size: 17px; font-weight: bold; text-transform: uppercase; }',
		'a:link { color: #6c665a; text-decoration: none; }',
		'a:hover { color: #9e1919; }'
	],
	offsetTop: -1,
	tuneWidth: 0,
	tuneHeight: -10,
	wmode: 'transparent',
	fixFocus: true
});
sIFR.replace(din, {
	selector: '#header-school',
	css: [
		'.sIFR-root { cursor: pointer; font-size: 14px; font-weight: bold; letter-spacing: -0.4; text-transform: uppercase; }',
		'a:link { color: #ffffff; text-decoration: none; }',
		'a:hover { color: #ffffff; text-decoration: underline; }'
	],
	tuneHeight: -5,
	wmode: 'transparent',
	fixFocus: true
});
sIFR.replace(din, {
	selector: '#banetiers-title',
	css: [
		 '.sIFR-root { color: #ffffff; font-size: 14px; font-weight: bold; letter-spacing: -0.4; text-transform: uppercase; }',
		 'a:link { color: #ffffff; text-decoration: none; }',
		 'a:hover { color: #ffffff; text-decoration: underline; }'
	],
	offsetTop: 1,
	tuneHeight: -2,
	wmode: 'transparent',
	fixFocus: true
});
sIFR.replace(din, {
	selector: '#section-title h2',
	css: [
		 '.sIFR-root { color: #ffffff; font-size: 26px; font-weight: bold; letter-spacing: 1; text-transform: uppercase; }',
		 'a:link { color: #ffffff; text-decoration: none; }',
		 'a:hover { color: #ffffff; text-decoration: none; }'
	],
	offsetTop: -3,
	tuneHeight: -7,
	wmode: 'transparent',
	fixFocus: true
});

function substr_replace(str, replace, start, length) {
    // Replaces part of a string with another string 
    // version: 905.3122
    // discuss at: http://phpjs.org/functions/substr_replace
    // +   original by: Brett Zamir (http://brett-zamir.me)
    if (start < 0) {
        start = start + str.length;
    }
    length = length !== undefined ? length : str.length;
    if (length < 0) {
        length = length + str.length - start;
    }
    return str.slice(0, start)+replace.substr(0, length)+replace.slice(length)+str.slice(start+length);
}

window.addEvent('domready', function(){

/*-----------------------------------------------------------------------------
  [3. Insertion de flash via swiff]
*/

	if(Browser.Plugins.Flash.version != 0) {
		flashObjectsArray.each(function(object) {
			swiffConstruct(object);
		});
	} else {
		$$(".swf-object").each(function(object) {
			object.removeClass('loader');
			new Element('a', {
				'href': 'http://www.adobe.com/go/getflashplayer',
				'html': '<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />'
			}).replaces(object);
		});
	}
	
/*---------------------------------------------------------------------
  [4. Input replace]
*/

	$$('.box').addEvents({
		'focus': function() {
			this.setProperty('value', this.getProperty('value') == this.getProperty('title') ? '' : this.getProperty('value'));
		},
		'blur': function()  {
			this.setProperty('value', this.getProperty('value') == '' ? this.getProperty('title') : this.getProperty('value'));
		}
	});
	
/*---------------------------------------------------------------------
  [5. Pop-in aide]
*/

	if($('login-help')){
		var loginHelpContainer = $('login-help');
		loginHelpContainer.setStyles({
			opacity: 0,
			display: 'block'
		}).addClass('js');
		
		$$('.help-button').setProperty('href', 'javascript:void(0)').addEvent('click', function(){
			var divDisplay = loginHelpContainer.getStyle('opacity');
			if(divDisplay == 0)
				loginHelpContainer.fade('in');
			else
				loginHelpContainer.fade('out');
		});
		
		$('close-help').addEvent('click', function(){
			var divDisplay = loginHelpContainer.getStyle('opacity');
			if(divDisplay == 0)
				loginHelpContainer.fade('in');
			else
				loginHelpContainer.fade('out');
		});
	}
	
/*---------------------------------------------------------------------
  [6. Target blank valid]
*/

	$$('a.external').each(function(e) {
		e.setProperty('target','_blank');
	});
	
/*---------------------------------------------------------------------
  [7. Remplacement des emails prot�g�s]
*/
	
	$$('a[href^=mailto:]').each(function(e) {
		var dot = new RegExp('banettedot', 'g');
		var at = new RegExp('banetteat', 'g');
		e.setProperty(
			'href',
			e.getProperty('href').replace(dot, '.').replace(at, '@')
		);
		if(e.get('html').toLowerCase().indexOf("<img",0) == -1){
			e.set(
				'text',
				e.get('text').replace(dot, '.').replace(at, '@')
			);
		}
	});

/*---------------------------------------------------------------------
  [8. Hover sur le bouton "Ok" de l'espace Banetiers]
*/	
	var LoginButton = $('LoginButton');
	if(LoginButton != null) {
		var LoginButtonSrc = LoginButton.getProperty('src');
		LoginButton.addEvents({
			'mouseover': function(){
				this.setProperty('src', substr_replace(LoginButtonSrc, '-h', -4, 0));
			},
			'mouseleave': function(){	
				this.setProperty('src', LoginButtonSrc);
			}
		});
	}

/*---------------------------------------------------------------------
  [8. Manipulation du cookie]
*/

    function write_cookie(name, value, expires) {
        document.cookie = name + '=' + escape(value) + ((expires == null) ? '' : ('; expires='+expires.toGMTString()));
    }


    function cookie_arguments(offset){
        var endstr = document.cookie.indexOf (';', offset);
        if(endstr == -1) endstr = document.cookie.length;
        return unescape(document.cookie.substring(offset, endstr)); 
    }

    function cookie_read(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 cookie_arguments(j);
            
            i = document.cookie.indexOf(' ',i) + 1;
            if(i == 0) break;
        }
        return null; 
    }


/*---------------------------------------------------------------------
  [Squeezebox]
*/

    if(cookie_read('is_logged_in') == 'true' && cookie_read('bntt') != 1) {
        var jsonRequest = new Request.JSON({
            url: uriBase + 'baker/check',
            onSuccess: function(response) {
                if(response.status == 0) {
                    SqueezeBox.initialize({
                        size: {x: 538, y: 190},
                        onShow: function() {
                            new inputreplace({element: '.replace'});
                            
                            var chk_email = function() {
                                var email = $('email');
                                var email_value = email.getProperty('value').trim();
                                var parts = 0;

                                if(email_value.length > 0) {
                                    parts = email_value.split('@');
                                    var user = parts[0];
                                    var domain = parts[1];
                                }

                                if(!$chk(email) || parts.length != 2 || !user.test('^[a-zA-Z0-9][a-zA-Z0-9_.-]*$', "gi") || !domain.test('^([a-z0-9]([-a-z0-9]*[a-z0-9])?[.])+[a-z]{2,}$', "gi")) {
                                    return false;
                                }

                                return true;
                            };
                            
                            $$('#change-email').addEvent('submit', function() {
                                if(!chk_email()) {
                                    return false;
                                }
                            });
                        }
                    });
                    SqueezeBox.open(uriBase + 'layout/set/popin/baker/changeemail');
                    write_cookie('bntt', '1');
                }
            }
        }).get();
    }
});
