/*----------------------------------------------------------------------------//
// Javascript pour le site client  -------------------------------------------//
//----------------------------------------------------------------------------//
// Client : OSL
// Note   : Javascript du site
// Date   : avril 2010
//----------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------*/
// Inclusion dynamique des fichiers externes javascripts
/*----------------------------------------------------------------------------*/
function importJavascript(src)
{
	document.write("<script type=\"text/javascript\" src=\"" + src + "\"></scr" + "ipt>");
}
function importCss(href, media)
{
	document.write('<link rel="stylesheet" type="text/css" media="' + media + '" href="' + href + '" />');
}

/*----------------------------------------------------------------------------*/
// Importations de fichiers
/*----------------------------------------------------------------------------*/
importJavascript("/includes/js/swfobject.js");
importJavascript("/includes/js/plugins/abso.thickbox.js");
importCss("/includes/js/plugins/abso.thickbox.css", "screen");

/*----------------------------------------------------------------------------*/
// Declarations jQuery
/*----------------------------------------------------------------------------*/
var ie6 = (jQuery.browser.msie && parseInt(jQuery.browser.version) <= 6) ? true : false;
var OSL = {};

$(document).ready(function(){

	/* +-------------------------------------------------------
	   | Extraits player
	   +------------------------------------------------------- */
	var flashvars = {
		xmlPath: '/music.xml'
	};
	var params = {
	  wmode: 'Opaque',
	  allowScriptAccess: 'always'
	};
	swfobject.embedSWF('/includes/swf/osl.swf', 'ExtraitsPlayer',	'241', '49', '10.0.0', '',	flashvars,	params);
	swfobject.createCSS('#ExtraitsPlayer', "outline:none");


	// extrait externes
	$('#ExtraitsMusicaux a').click(function(){
		$('#ExtraitsPlayer').get(0).playSong($(this).attr('href').substr(1));

		$('#ExtraitsMusicaux li').removeClass('loading');

		$(this).parent()
			.css('backgroundPosition', ($(this).width()+10)+ 'px 0')
			.addClass('loading')
		;
		return false;
	});

	OSL.extraitLoaded = function() {
		$('#ExtraitsMusicaux li').removeClass('loading');
		return false;
	};

	/* +-------------------------------------------------------
	   | Menu principal
	   +------------------------------------------------------- */

	// ie doesn't like nowrap 				   
	$('#MenuPrincipal a').each(function(){
		$(this)
			.html( $(this).html().replace(/\s/g,'&nbsp;') )
			.html( $(this).html().replace(/\-/g,'&#8722;') )
		;
	});
				   

	// first level
	$('#MenuPrincipal > li').each(function(){
		var $this = $(this);

		$this
			.data('OriginalClass', $this.attr('class'))
			.data('MenuId', $this.attr('class').split('-')[0])
			.hover(
				function(){
					$(this).removeClass().addClass($(this).data('MenuId')+'-Hover Hover'); 
				},
				function(){
					$(this).removeClass().addClass($(this).data('OriginalClass')); 
				}
			)
		;
	});
	

	// sub menu 
	$('#MenuPrincipal li li').hover(
		function(){
			$(this).addClass('Hover'); 

			/* ie doesn't like 100% */
			$(this).width($(this).parent().width());

			/* position sub-sub-menu */
			$(this).find('ul').css('left', $(this).width());
		},
		function(){
			$(this).removeClass('Hover');
		}
	);


	/* +-------------------------------------------------------
	   | Animation accueil
	   +------------------------------------------------------- */
	if (!ie6) {
		$('body.Accueil #EnteteSplash').cjFlashySlideShow({
			xBlocks: 60,
			yBlocks: 1,
			minBlockSize: 0,
			delay: 2500,
			sloppy: true
		});
	}

	

	/* +-------------------------------------------------------
	   | Input label
	   +------------------------------------------------------- */
	function isEmpty(field) {
		 var text = field.value;
		 text = text.replace(/^\s*|\s*$/g, '');
		 text = text.replace(/^\t*|\t*$/g, '');
		 return (text == '') ? true : false;
	};
		
	$('input.label').each(function(){
   	var $this = $(this);

		$this
			.data('Label', $this.val())
			.bind({
				focus: function() {
					$this.removeClass('label');
					if ($this.val() == $this.data('Label')) {
						$this.val('');
					}
				},
				blur: function() {
					if (isEmpty($this.get(0))) {
						$this
							.val($this.data('Label'))
							.addClass('label')
						;
					}
				}
			})
		;
	});
	
	/* +-------------------------------------------------------
	   | Input focus
	   +------------------------------------------------------- */
		$('input[type="text"], textarea')
			.bind('focus',function(){
				$(this).addClass('focus');
			})
			.bind('blur',function(){
				$(this).removeClass('focus');
			}
		);
		
		
	/* +-------------------------------------------------------
	   | Titre double couleurs
	   +------------------------------------------------------- */
	$('body.Accueil h2, h1:not(.SousTitre), h2.TitrePrincipal').each(function(){
		var $this = $(this);
		
		var elem    = $this.html().split(' ');
		var premier = elem.shift();
		
		$this
			.html('')
			.append(premier+' ')
			.append($('<span>').html(elem.join(' ')))
		;
	});


	/* +-------------------------------------------------------
	   | Liste Arborescence
	   +------------------------------------------------------- */
	$('#ListeArborescence a').click(function(){
		var $li   = $(this).parent();
		var $sub  = $li.find('ul');
		
		// if submenu
		if ($sub.length) {

			// hide
			if ($li.hasClass('On')) {
				$sub.slideUp('fast',function(){
					$li.removeClass('On');
					$li.find('span').html('[+]');
				});

			// show
			} else {
				$li.find('span').html('[-]');
				$sub.slideDown('fast',function(){
					$li.addClass('On');
				});
			}
			
			return false;
		}
		
		return true;		
	});


	/* +-------------------------------------------------------
	   | Galerie
	   +------------------------------------------------------- */
	if ($('#ListePhotos').length) {
		var g = {};
		

		/* Liste Photos
		------------------------------------------------------- */
		g.$liste     = $('#ListePhotos');
		g.$nav       = $('#GalerieNav');
		g.$precedent = g.$nav.find('.precedent');
		g.$suivant   = g.$nav.find('.suivant');
		g.$position  = g.$nav.find('.position span:first-child');
		g.$max       = g.$nav.find('.position span:last-child');
		
		g.width = g.$liste.find('li ul:first-child').width() + 'px';
		g.curr  = 1;
		g.max   = g.$liste.find('> li').length;

		
		// initial
		g.$max.html(g.max);
		g.$precedent.click(function(){ return g.Move(-1); });
		g.$suivant.click(function(){   return g.Move(1);  });

		if (g.max == 1) {
			g.$nav.hide();
		}

		
		
			/* Move
			------------------------------------------------------- */
			g.Move = function(way) {
	
				// current li
				var $liCurr = g.$liste.find('li:nth-child('+g.curr+')')
				
				// new li
				g.curr = g.curr + way;
				var $liNew  = g.$liste.find('li:nth-child('+g.curr+')')
	
	
				// move
				$liCurr.animate({
					left: (way == 1) ? '-'+g.width : g.width
				});
				
				$liNew.animate({
					left: '0px'
				});
				
				
				// nav
				g.$precedent.css('visibility', (g.curr == 1) ? 'hidden' : 'visible');
				g.$suivant.css('visibility', (g.curr == g.max) ? 'hidden' : 'visible');
				g.$position.html(g.curr);
		
				return false;
			};



		/* Afficher les photos
		------------------------------------------------------- */
		g.$PhotoContainer = $('#Photo');
		g.$Photo          = g.$PhotoContainer.find('img');
		g.$Vignette       = g.$PhotoContainer.find('p span');
		g.$Agrandir       = g.$PhotoContainer.find('p a');

		g.$liste.find('a').click(function(){
			var $a   = $(this);
			var $img = $a.find('img');
			
			g.$Photo.attr({
				src: $a.attr('href'),
				alt: $img.attr('alt')
			});
			
			g.$Vignette.html($img.attr('alt'));
			g.$Agrandir.attr('href', $a.attr('rel'));
			g.$Agrandir.attr('title', $img.attr('alt'));
			
			return false;
		});
		
		
		// show first
		g.$liste.find('li:first-child li:first-child a').click();
				
		// afficher publiquement au besoin
		OSL.Galerie = g;
	}



});



function CheckForm(formName) {
    if (typeof (Page_ClientValidate) == 'function') {
        if (!Page_ClientValidate(formName)) {
            ValidateForm(formName, true, "Erreur");
            return false;
        }
    }
    return true;
}

function ValidateForm(groupName, OnlyOneErrorByField, classError) {
    var msg = new Array();
    var ctl = new Array();
    if (classError != '') jQuery('.' + classError).removeClass(classError);
    //Ne pas oublier d'appliquer "Page_ClientValidate()" avant d'appeler cette procédure
    for (var i = 0; i < Page_Validators.length; i++) {
        if (Page_Validators[i].validationGroup == groupName && !Page_Validators[i].isvalid) {
            if (OnlyOneErrorByField) {
                var exist = false;
                for (var y = 0; y < ctl.length; y++) {
                    if (ctl[y] == Page_Validators[i].controltovalidate)
                        exist = true;
                }
                if (!exist) {
                    msg[msg.length] = Page_Validators[i].errormessage;
                    if (classError != '') jQuery('#' + Page_Validators[i].controltovalidate).addClass(classError);
                }
            }
            else {
                msg[msg.length] = Page_Validators[i].errormessage;
                if (classError != '') jQuery('#' + Page_Validators[i].controltovalidate).addClass(classError);
            }
            ctl[i] = Page_Validators[i].controltovalidate;
        }
    }
    return msg;
}
