var lelivresurlesquais = {}

lelivresurlesquais.init = function() {
	this.url = 'http://lelivresurlesquais.ch/';
		
	this.zone = {};
	this.zone.header = jQuery('#header');
	this.zone.footer = jQuery('#footer');
	this.zone.sidebar = jQuery('#sidebar');
	
	this.calculMinima();

	
	this.customBackground = '';
	this.hauteurSupersize = jQuery('#zone').outerHeight() + jQuery(this.zone.header).outerHeight() + jQuery('div#actus').outerHeight();

	jQuery('ul#navigation li:last').css('border-bottom-width', '0');

	if(jQuery('.homepage').length > 0) {

	}
	else if(jQuery('input[name=image_fond]', this.zone.page).length > 0 && jQuery('input[name=image_fond]', this.zone.page).val().length > 0) {
		this.backgroundStartImage = '4';
		this.customBackground = jQuery('input[name=image_fond]', this.zone.page).val();
	}
	else if(jQuery(this.zone.page).hasClass('authors_list'))
		this.backgroundStartImage = '3';
	else
		this.backgroundStartImage = '2';

	// --------------------------------------------------------

	if(window.location.hash && window.location.hash.length != 0) {
		if(window.location.hash.substr(0,14) == '#fiche_auteur_') {
			lelivresurlesquais.ficheAuteur(window.location.hash.substr(14));
		}
	}

	// --------------------------------------------------------

	this.initPrintLink();
	
	// --------------------------------------------------------
	
	if(jQuery('.event_box').length > 0) {
			jQuery("table.event_box tr").attr('valign', 'top').hide();
			jQuery("table.event_box td.title h3").css('padding-top', '0');
			
			jQuery.getScript(
				'http://lelivresurlesquais.ch/wp-content/themes/lelivresurlesquais_fixed_width/js/jquery.tinysort.min.js', 
				function() {
					var jour = Array();
					var jourDispo = Array();
					
					jour[0] = 'vendredi';
					jour[1] = 'samedi';
					jour[2] = 'dimanche';

					var dernierJour = '';
					
					for(i = 0; i < jour.length; i++) {
						if(jQuery("table.event_box tr." + jour[i]).length > 0) {
							if(dernierJour != jour[i]) {
								dernierJour = jour[i];
								jourDispo.push(jour[i]);
							}
							
							jQuery("table.event_box tr." + jour[i]).appendTo("table.event_box");
							jQuery("ul.listeJour li[title=\"" + jour[i]+ "\"]").appendTo("ul.listeJour");
						}
							
						jQuery('table.event_box tr' + jour[i]).tsort({attr:'title'});
					}
					
					jQuery("table.event_box tr." + jourDispo[0]).show();
					
					//console.log('[title="' + jourDispo.join('"],[title="') + '"]');
					//console.log(jQuery('ul.listeJour li').not('[title="' + jourDispo.join('"],[title="') + '"]'));
					
					jQuery('ul.listeJour li').not('[title="' + jourDispo.join('"],[title="') + '"]').remove();
					jQuery('ul.listeJour li:first a').addClass('active');
					
					jQuery("table.event_box, ul.listeJour").removeClass('hideJS');
					
					jQuery('ul.listeJour a').click(function(e) {
						e.preventDefault();
						e.stopImmediatePropagation();
						
					
						jQuery('ul.listeJour a').removeClass('active');
						
						var currentItem = jQuery(this);

						jQuery('table.event_box tr').hide();
						jQuery('table.event_box tr.' + currentItem.parent().attr('title') ).show();
											
					
						jQuery(this).addClass('active');
						
						
						return false;
					});
				}
			);		
	}
	
	// --------------------------------------------------------

	if(this.zone.page) {

		// Position de la légende sur la page
		if(jQuery(this.zone.page).hasClass('has_thumbnail')) {
			jQuery('.thumbnail div.legend', this.zone.page).width(jQuery('.thumbnail img', this.zone.page).width() * 0.8);
			jQuery('.thumbnail div.legend', this.zone.page).css({
				'margin-top' : '-' + ( jQuery('.thumbnail div.legend', this.zone.page).outerHeight()  ) + 'px',
				'margin-left' : jQuery('.thumbnail img', this.zone.page).width() + 2 - jQuery('.thumbnail div.legend', this.zone.page).outerWidth() + 'px'
			});
			//jQuery('div.content', this.zone.page).width(418);
		}

		if(jQuery(this.zone.page).hasClass('authors_list')) {
			jQuery('div.authors_column:last span', this.zone.page).css('border', '0px solid #f00');

			
			jQuery('li.filter', this.zone.page)
			.unbind()
			.click(lelivresurlesquais.eventTriList);

			jQuery('div.authors_column a', this.zone.page)
			.unbind()
			.click(function(e) {
				e.preventDefault();
				
				window.location.hash = '#fiche_auteur_' + jQuery(this).attr('name');

				lelivresurlesquais.ficheAuteur(jQuery(this).attr('name'));

				return false;
			});


			if(jQuery(this.zone.page).hasClass('author_card')) {
				// On rajoute la place pour
				//jQuery('.authors_list div.article').css('margin-left', lelivresurlesquais.addMargin + 'px');


				jQuery.getJSON(lelivresurlesquais.url + 'wp-content/themes/lelivresurlesquais/ajax_auteur.php?auteurPage=1', function(data) {
					lelivresurlesquais.saveAuthorsList.controlColumn = jQuery(data.controlColumn).children('ul');
					lelivresurlesquais.saveAuthorsList.article = data.auteurList;

					// Retour à la liste
					jQuery('a[title=return_to_authors_list]').click(lelivresurlesquais.retourListeAuteur);
				});
			}
		}

		if(jQuery(this.zone.page).hasClass('program_list')) {
			jQuery('li.filter', this.zone.page)
			.unbind()
			.click(lelivresurlesquais.eventTriList);

			jQuery('table.event_box tr:odd', this.zone.page).each(function() {
				jQuery(this).addClass('odd');
			});

		}
		if(jQuery(this.zone.page).hasClass('infos_contact')) {
			jQuery(window).load(GoogleMap());

			//jQuery('#infos_pratiques', this.zone.page).hide();
			jQuery('#google_map', this.zone.page).hide();
			jQuery('#plan', this.zone.page).hide();
			
			if(jQuery('#google_map', this.zone.page).is(':visible'))
				jQuery('h3 span.gmap', this.zone.page).addClass('active');
			if(jQuery('#plan', this.zone.page).is(':visible'))
				jQuery('h3 span.plan', this.zone.page).addClass('active');
			if(jQuery('#infos_pratiques', this.zone.page).is(':visible'))
				jQuery('h3 span.infos_pratiques', this.zone.page).addClass('active');
				
			jQuery('h3 span', this.zone.page).click(function() {
				jQuery('h3 span', lelivresurlesquais.zone.page).removeClass('active');
				jQuery(this).addClass('active');
				
				
				if(jQuery(this).hasClass('gmap')) {
					jQuery('#plan').hide();
					jQuery('#google_map').show();
					jQuery('#infos_pratiques').hide();
					GoogleMap();
				}
				if(jQuery(this).hasClass('plan')) {
					jQuery('#plan').show();
					jQuery('#google_map').hide();
					jQuery('#infos_pratiques').hide();
				}
				if(jQuery(this).hasClass('infos_pratiques')) {
					jQuery('#plan').hide();
					jQuery('#google_map').hide();
					jQuery('#infos_pratiques').show();
				}
			});
			
			jQuery('div.info_bloc:last').css('border-right-width', '0');

		}
	}


	jQuery.getJSON(lelivresurlesquais.url + 'wp-content/themes/lelivresurlesquais_fixed_width/ajax_auteur.php?logo=1', function(data) {
		jQuery('#logo').html(data.logo);
		lelivresurlesquais.logoBoxInit();
	});

	lelivresurlesquais.newsletterBoxInit();
	
	jQuery(window).bind('resize', function() {
		var throttleTimeout;
		if (jQuery.browser.msie && jQuery.browser.version != '9.0') {
			// IE fires multiple resize events while you are dragging the browser window which
			// causes it to crash if you try to update the scrollpane on every one. So we need
			// to throttle it to fire a maximum of once every 50 milliseconds...
			if (!throttleTimeout) {
				throttleTimeout = setTimeout(
					function()
					{
						lelivresurlesquais.refreshPosition();
						throttleTimeout = null;
					},
					50
				);
			}
		} else {
			lelivresurlesquais.refreshPosition();
		}
	})
}
	
lelivresurlesquais.calculMinima = function() {
	this.min_height_sidebar = jQuery(this.zone.sidebar).outerHeight() + jQuery(this.zone.footer).outerHeight();
	this.min_height_sidebar = this.min_height_sidebar + 20;
	this.min_height_page = 0;

	// Sauvegarde de la barre de contrôle de la liste des auteurs
	this.saveAuthorsList = {};
	// Marge à ajouter pour les fiches auteurs
	this.addMargin = 289;

	if(jQuery('#page').length > 0) {
		this.zone.page = jQuery('#page');
		this.refreshContentWidth();
		this.min_height_page = jQuery(this.zone.page).outerHeight() + 50;
	}


	this.hauteurMinimumNecessaire = (this.min_height_sidebar < this.min_height_page) ? this.min_height_page : this.min_height_sidebar;
}

lelivresurlesquais.newsletterBoxInit = function() {
	jQuery('#register_newsletter').hide();

	jQuery('#link-to-register').click(function() {
		jQuery('#register_newsletter').fadeToggle();
	});
}

lelivresurlesquais.blueBoxPosition = function() {

}

// event triListe
lelivresurlesquais.eventTriList = function() {

	if(jQuery(lelivresurlesquais.zone.page).hasClass('program_list'))  {
		if(
			   jQuery(this).attr('title') == 'vendredi'
			|| jQuery(this).attr('title') == 'samedi'
			|| jQuery(this).attr('title') == 'dimanche'
		) {
			jQuery('.control_column li.active[title=vendredi]', lelivresurlesquais.zone.page).not(this).removeClass('active');
			jQuery('.control_column li.active[title=samedi]', lelivresurlesquais.zone.page).not(this).removeClass('active');
			jQuery('.control_column li.active[title=dimanche]', lelivresurlesquais.zone.page).not(this).removeClass('active');
		}
	}
	
	if(jQuery(this).hasClass('active'))
		jQuery(this).removeClass('active');
	else
		jQuery(this).addClass('active');

	// Tri
	lelivresurlesquais.triListe(jQuery('.control_column li.active', lelivresurlesquais.zone.page), jQuery('.article', lelivresurlesquais.zone.page));
}

// Tri de liste intéractif
lelivresurlesquais.triListe = function(selectedItem, listToEdit) {
	var needToBeHide;

	if(jQuery(this.zone.page).hasClass('authors_list'))
		needToBeHide = jQuery('span', listToEdit);
	if(jQuery(this.zone.page).hasClass('program_list'))
		needToBeHide = jQuery('table.event_box tr', listToEdit);

	// Si rien n'est sélectionné, on ne fait apparaître
	if(selectedItem.length == 0) {
		jQuery('.highlight', listToEdit).removeClass('highlight');
		jQuery('.hide', listToEdit).removeClass('hide');
	}
	else {
		jQuery('.highlight', listToEdit).removeClass('highlight');
		jQuery('.hide', listToEdit).removeClass('hide');
		
		var class_to_remove = '';
		var class_to_hide = '';
		
		selectedItem.each(function() {
				if(jQuery(lelivresurlesquais.zone.page).hasClass('authors_list')) {
					needToBeHide.filter('.' + jQuery(this).attr('title')).addClass('highlight');
				}
				if(jQuery(lelivresurlesquais.zone.page).hasClass('program_list')) {
					if(
						   jQuery(this).attr('title') == 'vendredi'
						|| jQuery(this).attr('title') == 'samedi'
						|| jQuery(this).attr('title') == 'dimanche'
					) {
						needToBeHide.filter('.' + jQuery(this).attr('title')).addClass('hide');
					}
					else {
						needToBeHide.filter('.' + jQuery(this).attr('title')).addClass('highlight');
					}
				}

		});

		if(class_to_remove != '')
			needToBeHide.filter(class_to_remove).addClass('highlight');
	}
	

	/*if(jQuery('.hide', listToEdit).length == 0) {
		jQuery('tr', listToEdit).fadeIn(400, 'linear', function() { });
	}
	else {
		jQuery('.hide', listToEdit).fadeOut(400, 'linear', function() {
			; 
			setTimeout(function() {
				jQuery('.event_box tr:not(.hide)', listToEdit).fadeIn(400, 'linear', function() {
				
				});
			}, 100);
		});
		
	}*/

	if(jQuery(this.zone.page).hasClass('program_list')) {
		var runOnce = true;
		// S'il n'y a pas d'élément à planquer
		if(jQuery('.hide', listToEdit).length == 0) {
			// On réaffiche les éléments cachés
			if(jQuery('tr:hidden', listToEdit).length == 0) {
				if(jQuery('.highlight', listToEdit).length == 0) {
					jQuery('tr', listToEdit).fadeTo(400, 1);
				}
				else {
					jQuery('tr:not(.highlight)', listToEdit).fadeTo(400, 0.4);
					jQuery('tr.highlight', listToEdit).fadeTo(400, 1);
				}
			}
			else {
				jQuery('tr:hidden', listToEdit).fadeIn(400, function() {
					
					if(runOnce) {
						runOnce = false;
						if(jQuery('.highlight', listToEdit).length == 0) {
							jQuery('tr', listToEdit).fadeTo(400, 1);
						}
						else {
							jQuery('tr:not(.highlight)', listToEdit).fadeTo(400, 0.4);
							jQuery('tr.highlight', listToEdit).fadeTo(400, 1);
						}
					}
				});
			}
		}
		// Si on a des éléments à cacher
		else {
			// Hé bien on les caches
			jQuery('tr:not(.hide)', listToEdit).fadeOut(400, function() {
				
				if(runOnce) {
					runOnce = false;
					if(jQuery('.highlight', listToEdit).length == 0) {
						jQuery('tr.hide', listToEdit).fadeTo(400, 1);
					}
					else {
						jQuery('tr.hide:not(.highlight)', listToEdit).fadeTo(400, 0.4);
						jQuery('tr.highlight.hide', listToEdit).fadeTo(400, 1);
					}
				}
			});
		}
	}
	

	if(jQuery(this.zone.page).hasClass('authors_list')) {
		if(jQuery('.highlight', listToEdit).length == 0) {
			jQuery('span a', listToEdit).fadeTo(500, 1);
		}
		else {
			jQuery('span.highlight a', listToEdit).fadeTo(500, 1);
			jQuery('span:not(.highlight) a', listToEdit).fadeTo(500, 0.4);
		}
	}
}

lelivresurlesquais.ficheAuteur = function(id) {

	jQuery('div.article,\n\
	div.control_column', this.zone.page).fadeOut(500);

	var t = setTimeout(function() {

		// On rajoute la place pour
		//jQuery('.authors_list div.article').css('margin-left', lelivresurlesquais.addMargin + 'px');
		//jQuery('.jspContainer').width(jQuery('.jspContainer').width() - lelivresurlesquais.addMargin);
		//jQuery('.jspPane').width(jQuery('.jspPane').width() - lelivresurlesquais.addMargin);

		lelivresurlesquais.saveAuthorsList.controlColumn = jQuery('div.control_column').html();
		lelivresurlesquais.saveAuthorsList.article = jQuery('.authors_list div.article').html();

		//jQuery('.authors_list div.article')
		//.prepend('<div class="author_picture"><img src="images/author_picutre.png"></div>');

		jQuery.getJSON(lelivresurlesquais.url + 'wp-content/themes/lelivresurlesquais/ajax_auteur.php?auteurFiche=1&auteurId=' + id, function(data) {
			jQuery('div.article', lelivresurlesquais.zone.page)
			.html(data.author_card)
			.addClass('author_card_2');
		jQuery('div.control_column', lelivresurlesquais.zone.page).html(data.author_control_column);
			jQuery('.authors_list div.article').before(data.author_picture);


			jQuery('div.article,\n\
			div.control_column', lelivresurlesquais.zone.page).fadeIn(500);
			
			//jQuery.getScript('http://lelivresurlesquais.ch/wp-content/themes/lelivresurlesquais_fixed_width/js/jquery.ba-bbq.min.js');




			// Retour à la liste
			jQuery('a[title=return_to_authors_list]').click(lelivresurlesquais.retourListeAuteur);
		});
	}, 500);

}

jQuery(window).bind('hashchange', function(e) {
	if(jQuery('div.author_card_2').length > 0)
		lelivresurlesquais.retourListeAuteur();
});

lelivresurlesquais.retourListeAuteur = function() {
	jQuery('div.article,\n\
	div.control_column,\n\
	div.author_picture').fadeOut(500);

	var t = setTimeout(function() {
		jQuery(lelivresurlesquais.zone.page).removeClass('author_card');

		jQuery('div.author_picture').remove();
		jQuery('div.control_column').html(lelivresurlesquais.saveAuthorsList.controlColumn);

		jQuery('.authors_list div.article').html(lelivresurlesquais.saveAuthorsList.article);

		//jQuery('.authors_list div.article').css('margin-left', '15px');
		//jQuery('.jspContainer').width(jQuery('.jspContainer').width() + lelivresurlesquais.addMargin);
		//jQuery('.jspPane').width(jQuery('.jspPane').width() + lelivresurlesquais.addMargin);
		
		jQuery('div.article').removeClass('author_card_2');

		jQuery('div.article,\n\
		div.control_column', lelivresurlesquais.zone.page).fadeIn(500);


		jQuery('li.filter', lelivresurlesquais.zone.page)
		.unbind()
		.click(lelivresurlesquais.eventTriList);

		jQuery('div.authors_column a', lelivresurlesquais.zone.page)
		.unbind()
		.click(function(e) {

			e.preventDefault();
			
			window.location.hash = '#fiche_auteur_' + jQuery(this).attr('name');

			lelivresurlesquais.ficheAuteur(jQuery(this).attr('name'));	
			

			return false;
		});
	}, 500);
}

// Largeur de la zone de contenu
lelivresurlesquais.refreshContentWidth = function() {
	// Homepage
	if(jQuery(this.zone.page).hasClass('homepage')) {
		//jQuery(this.zone.page).css('width', 'auto');
		jQuery('.date-salon').hide();
	}
	// Avec une miniature
	else if(jQuery(this.zone.page).hasClass('has_thumbnail')) {
		//jQuery(this.zone.page).width((jQuery('#zone').width() - jQuery('#sidebar').outerWidth() - 40) * 0.80);
		//jQuery('.content', this.zone.page).width(jQuery(this.zone.page).width() - jQuery('.thumbnail', this.zone.page).width() - 30);

		//jQuery('.description-salon').hide();
		//jQuery('.english-programm').hide();
	}
	// Page auteurs
	else if(jQuery(this.zone.page).hasClass('authors_list')) {
		//jQuery(this.zone.page).width((jQuery('#zone').width() - jQuery('#sidebar').outerWidth() - 20) * 1.00);
		//jQuery('.content', this.zone.page).width(jQuery(this.zone.page).width() - 30);

		//jQuery('.description-salon').hide();
		//jQuery('.english-programm').hide();
	}
	// Page programmes
	else if(jQuery(this.zone.page).hasClass('program_list')) {
		//jQuery(this.zone.page).width((jQuery('#zone').width() - jQuery('#sidebar').outerWidth() - 20) * 1.00);
		//jQuery('.content', this.zone.page).width(jQuery(this.zone.page).width() - 30);

		//jQuery('.description-salon').hide();
		//jQuery('.english-programm').hide();
	}
	// Page programmes
	else if(jQuery(this.zone.page).hasClass('infos_contact')) {
		//jQuery(this.zone.page).width((jQuery('#zone').width() - jQuery('#sidebar').outerWidth() - 20) * 1.00);
		//jQuery('.content', this.zone.page).width(jQuery(this.zone.page).width() - 30);

		//jQuery('.description-salon').hide();
		//jQuery('.english-programm').hide();
	}
	else {
		//jQuery(this.zone.page).width((jQuery('#zone').width() - jQuery('#sidebar').outerWidth() - 40) * 0.50);
		//jQuery('.content', this.zone.page).width(jQuery(this.zone.page).width() - 30);
		//jQuery('.english-programm').hide();
	}
}


lelivresurlesquais.refreshPosition = function() {

}

lelivresurlesquais.definitionHauteurDeLaZoneDeContenu = function() {
	if(jQuery(window).height() - jQuery(this.zone.header).height() < this.hauteurMinimumNecessaire)
		jQuery('#zone').height(this.hauteurMinimumNecessaire);
	else
		jQuery('#zone').height(jQuery(window).height() - jQuery(this.zone.header).height() - 100);
}

lelivresurlesquais.calculHauteurADisposition = function() {

}

lelivresurlesquais.sidebarPositionRefresh = function() {

}

lelivresurlesquais.pagePositionRefresh = function() {

}

lelivresurlesquais.homepagePositionRefresh = function() {

}

lelivresurlesquais.programPositionRefresh = function() {

}

lelivresurlesquais.logoBoxInit = function() {
	// Largeur des différentes boites réservées aux logos
	jQuery('#logo .logo_box').css('width', ( 100 / jQuery('#logo .logo_box').length ) + '%' );
	jQuery('#logo  div.content a').height(35);
		
	jQuery('#logo .logo_box div.content').each(function() { 
		jQuery(this).scrollTop(0);
	});

	// Animation
	t = setInterval(function() {
		lelivresurlesquais.logoBoxScroll();
	}, 5000);

	jQuery('#see_all_logos').click(function() {
		clearInterval(t);

		// on affiche tous les logos
		jQuery('#logo').addClass('all_displayed');

		jQuery('#logo div.content').each(function() {
			jQuery(this).height(jQuery('a', this).length * 45);
		});
	});
}

lelivresurlesquais.logoBoxScroll = function() {
	
	jQuery('#logo .logo_box div.content').each(function() {
		var nombreDeLigne = 0;
		var ligneCourante = 0;
		var prochaineLigne = 0;

		nombreDeLigne = jQuery('div', this).height() / 45;
		//console.log('nombreDeLigne ' + nombreDeLigne);
		ligneCourante = parseInt(jQuery(this).scrollTop() / 45);
		//console.log('ligneCourante :' + ligneCourante);
	
		if(nombreDeLigne > 1) {
			jQuery(this).fadeTo(600, 0).delay(500).fadeTo(600, 1);
			
			//console.log('if statement (ligneCourante (' + ligneCourante + ') + 1) == nombreDeLigne (' + nombreDeLigne + ') )');
			if((ligneCourante + 1) == Math.ceil(nombreDeLigne))
				prochaineLigne = 0;
			else
				prochaineLigne = ligneCourante + 1;

			var pouic = jQuery(this);
			
			var t = setTimeout(function() { pouic.scrollTop(prochaineLigne * 45); }, 610);
		}
	});

}

lelivresurlesquais.initPrintLink = function() {
	jQuery('a.print').attr('href', 'javascript:window.print();');
}

function GoogleMap() {
	// Position sur la carte
	var position_depart = new google.maps.LatLng(46.507633,6.49882);

	// Paramètre de la carte
	var myOptions = {
		zoom: 17,
		center: position_depart,
		mapTypeId: google.maps.MapTypeId.HYBRID,
		mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
		navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}
	};
	var map = new google.maps.Map(document.getElementById("google_map"), myOptions);

}

jQuery(document).ready(function(jQuery) {
	lelivresurlesquais.init();
});
