/**
 * The navigation script for handling the web site
 *
 * @author Steven de Marco
 * @since 17.10.2008
 * @version 1.0.0
 */

var $j = jQuery.noConflict();
var $ = {};

var menuLink = 'div.menu > ul > li > a';

var domainLink = 'div.listDomain > div > a';
var domainView = 'div.ImageCadre > ul > li > img';

var ImgOn = 'ON.jpg';
var ImgOf = 'OF.jpg';

var menuColor = '#333333';

var ImageViewerArtist = 'div.ImageViewerArtist > div';
var artistsDiv= 'div.listArtists > ul > div';
var artistsLink = 'div.listArtists > ul > div > ul > li > a';
var artistsView = 'div.viewArtistes > div';

var domainImage = 'div#ImageViewerDomain > ul > li > img';
var artistsImage = 'div.ImageViewerArtist > div > ul > li > img';

var picturesViewer = 'div#pictureViewer > img';	
var pictureViewer = 'div.viewArtistes > div > div#pictureViewer > img';
var pictureNav = 'div.viewArtistes > div > div#pictureViewer > div.pictureNav > a';

var artistsAllDiv= 'div.listArtistsAll > ul > div';
var artistsAllLink = 'div.listArtistsAll > ul > div > ul > li > a';

var pageHanlder = 'div.page';

/**
 * The Page load fonction
 * 
 * @param hash string
 */
function pageload ( hash ) {
	if (hash) {
		//$j(pageHanlder).html('<div class="ajaxLoader"><img src="imgs/structures/ajax-loader.gif" alt="Chargement" /></div>');
		$j(pageHanlder).load('www/views/' + hash);
	}else{
		$j(pageHanlder).load('www/views/accueil.html');
	}
}

/**
 * Default actions when the html page is loaded
 */
$j(document).ready( function ( ) {
	$j.history.init(pageload);
	
	$j(menuLink).click( function ( ) {
		$j(menuLink).css('color', menuColor);
		$j(this).css('color', 'white');
		$j(this).blur();
		
		this.rel = this.rel.replace(/Menu/, '');
		var hash = this.href;
		$j.history.load(this.href.replace(/^.*#/, ''));
		return false;
	});
	
	$j(menuLink).mouseover(function(){
		$j(this).css('color', 'white');
	});
	$j(menuLink).mouseout(function(){
		$j(this).css('color', menuColor);
		if($j.history._curHash == ''){
			$j(menuLink + ':first').css('color', 'white');
		}else{
			$j(menuLink + '[href=' + $j.history._curHash + ']').css('color', 'white');
		}
	});
});

/**
 * Action when the ajax Request is complete (the page is loaded)
 */
$j(document).ajaxComplete(function(){	
	var picturePos = 0;
	
	//------------------ The Current Page is highlighted -------------------------------------
	
	$j(menuLink).css('color', menuColor);
	if($j.history._curHash == ''){
		$j(menuLink + ':first').css('color', 'white');
	}else{
		$j(menuLink + '[href=' + $j.history._curHash + ']').css('color', 'white');
	}
	
	
	//--------------------- Gallerie Page Preparation -------------------------
	
	$j(artistsDiv).hide();
	$j(artistsView).hide();
	$j(ImageViewerArtist).hide();
	
	//------------------  Domain -------------------------------------
	
	$j(domainLink).mouseover(function(){switchImage(this.id, ImgOf, ImgOn);});
	$j(domainLink).mouseout(function(){switchImage(this.id, ImgOn, ImgOf);});
	
	$j(domainLink).click(function(){
		/*$j('div#ImageViewerDomain').hide();
		$j(artistsDiv).hide();
		$j(artistsView).hide();
		$j(ImageViewerArtist).hide();
		$j(artistsDiv + '[id=' + this.id +']').show();
		$j(ImageViewerArtist + '[id=' + this.id +']').show();
		$j(domainLink).css('color', menuColor);
		$j(this).css('color', 'white');
		$j(this).blur();
		return false;*/
		clickOnADomain(this);
	});
	
	function clickOnADomain(node){
		$j('div#ImageViewerDomain').hide();
		$j(artistsDiv).hide();
		$j(artistsView).hide();
		$j(ImageViewerArtist).hide();
		$j(artistsDiv + '[id=' + node.id +']').show();
		$j(ImageViewerArtist + '[id=' + node.id +']').show();
		$j(domainLink).css('color', menuColor);
		$j(node).css('color', 'white');
		$j(node).blur();
		return false;
	}
	
	//------------------ Click on a Artiste -------------------------------------
	
	$j(artistsLink).mouseover(function(){switchImage(this.id, ImgOf, ImgOn);});
	$j(artistsLink).mouseout(function(){switchImage(this.id, ImgOn, ImgOf);});
	
	$j(artistsLink).click(function(){
		/*$j('div#ImageViewerDomain').hide();
		$j(ImageViewerArtist).hide();
		$j(artistsDiv).hide();
		$j(artistsView).hide();
		$j(artistsView + '[id=' + this.id + ']').show();
		$j(pictureViewer).hide();
		$j(artistsView + '[id=' + this.id + '] > ' + picturesViewer + ':first').show();
		picturePos = 0;
		return false;*/
		clickOnArtiste(this);
	});
	
	function clickOnArtiste(node){
		$j('div#ImageViewerDomain').hide();
		$j(ImageViewerArtist).hide();
		$j(artistsDiv).hide();
		$j(artistsView).hide();
		$j(artistsView + '[id=' + node.id + ']').show();
		$j(pictureViewer).hide();
		$j(artistsView + '[id=' + node.id + '] > ' + picturesViewer + ':first').show();
		picturePos = 0;
		return false;
	}
	
//------------------ Click on a Artiste for All  -------------------------------------
		
	$j(artistsAllLink).click(function(){
		$j('div#ImageViewerDomain').hide();
		$j(ImageViewerArtist).hide();
		$j(artistsDiv).hide();
		$j(artistsAllLink).hide();
		$j(artistsView).hide();
		$j(artistsView + '[id=' + this.id + ']').show();
		$j(pictureViewer).hide();
		$j(artistsView + '[id=' + this.id + '] > ' + picturesViewer + ':first').show();
		picturePos = 0;
		return false;
	});
	
	//------------------ Picture Navigation -------------------------------------
	
	$j(pictureViewer).hide();
	$j(pictureNav + '.Next').click(function(){
		var picturesRef = artistsView + '[id=' + this.id + '] > ' + picturesViewer;
		picturePos++;
		if(picturePos >= $j(picturesRef).length){
			picturePos = 0;
		}
		$j(picturesRef).hide();
		$j(picturesRef + ':eq(' + picturePos + ')').fadeIn();
		return false;
	});
	
	$j(pictureNav + '.Prev').click(function(){
		var picturesRef = artistsView + '[id=' + this.id + '] > ' + picturesViewer;
		picturePos--;
		if(picturePos < 0){
			picturePos = $j(picturesRef).length - 1;
		}
		$j(picturesRef).hide();
		$j(picturesRef + ':eq(' + picturePos + ')').fadeIn();
		return false;
	});
	
	//------------------ ScrollTo -------------------------------------
	
	$j('div.content_txt > a.exposAnchor').click(function(){
		$j.scrollTo('a#exposAnchor');
		return false;
	});
	
	//------------------ Image Mouse Over -------------------------------------
	
	$j(domainImage).mouseover(function(){
		switchImage(this.id, ImgOf, ImgOn);
		$j(domainLink + '#' + this.id).css('color', 'white');
	});
	
	$j(domainImage).mouseout(function(){
		switchImage(this.id, ImgOn, ImgOf);
		$j(domainLink + '#' + this.id).css('color', menuColor);
	});
	
	$j(artistsImage).mouseover(function(){
		switchImage(this.id, ImgOf, ImgOn);
		$j(artistsLink + '#' + this.id).css('color', 'white');
	});
	
	$j(artistsImage).mouseout(function(){
		switchImage(this.id, ImgOn, ImgOf);
		$j(artistsLink + '#' + this.id).css('color', menuColor);
	});
	
	//------------------ Link Artiste Mouse Over -------------------------------------
	
	$j(domainImage).click(function(){
		clickOnADomain(this);
	});
	
	$j(domainLink).mouseover(function(){
		$j(this).css('color', 'white');
	});
	
	$j(domainLink).mouseout(function(){
		$j(this).css('color', menuColor);
	});
	
	$j(artistsImage).click(function(){
		clickOnArtiste(this);
	});
	
	$j(artistsLink).mouseover(function(){
		$j(this).css('color', 'white');
	});
	
	$j(artistsLink).mouseout(function(){
		$j(this).css('color', menuColor);
	});
});


/**
 * Change the image node given with the systen On/Of...
 * 
 * @param string node
 * @param node begin
 * @param node end
 */
function switchImage(node, begin, end){
	var name = $j(domainView + '[id=' + node + ']').attr('src');
	if(name.substr(name.length-begin.length, name.length) == begin){
		var newName = name.substr(0,name.length-begin.length);
		$j(domainView + '[id=' + node + ']').attr('src', newName + end);
	}
}