$(document).ready(function()	{
	collapseAll();
	initFormulaireRecherche();
	initFormulaireTelecharger();
	
	$('.button, .inputButton, .inputSubmit, .inputButtonGestion').live('mouseenter',function(){
		$(this).addClass('hover').addClass('inputOver');
	}).live('mouseleave',function(){
		$(this).removeClass('hover').removeClass('inputOver');
	});

	$('#detail .fermer').live('click',function(){
		if($(this).parents('#other').length > 0){
			fermerOther();
		}else{
			fermerDetail();
		}
	});
	
	$('#catalogue .liste_auteur a').live('click',function(){
		var id_auteur = $(this).dataset('id');
		var mg = $(this).dataset('mg');
		$('#catalogue .liste_auteur .current').removeClass('current');
		$(this).addClass('current');
		$('#liste_auteur_livres').html('');
		$.post(baseUrl+'includes/getAuteurLivre.php',{id_auteur:id_auteur}, function(data){	
			$('#liste_auteur_livres').html(data.page_content);
			$('#liste_auteur_livres').css('margin-top',mg+'px');
		},"json");
		
		return false;
	});
	
	$(".collapsible .titre label").live('click',function(){
		var label = $(this).closest('label');
		var id =label.attr('for');
		label.find('.ui-icon').toggleClass('ui-icon-triangle-1-e').toggleClass('ui-icon-triangle-1-s');
		$('#'+id).toggleClass('collapsed');
	});
	
	$("#liens .liste_lien .lien_display").live('click',function(){
		var id = $(this).dataset('id');
		if(!$(this).hasClass('curren')){
			$("#liens .liste_lien .current").removeClass('current');
			$("#liens .categorie").hide();
			$(this).addClass('current');
			$("#liens .categorie-"+id).show();
		}
	});
	
	$(".collapsibleCheckbox").change(function(){
		var id = $(this).attr('id');
		$('#livre-texte_'+id).toggleClass('collapsed');
	});
	
	$(".collapseButton .collapseAll").live('click',function(){
		collapseAll();
	});
	
	$(".collapseButton .decollapseAll").live('click',function(){
		decollapseAll();
	});
	
	$('.imprimer').live('click',function(){
		var url = $(this).attr('href');
		printPopup(url);
		return false;
	});
	
	$.datepicker.setDefaults($.datepicker.regional['fr']);
	var dates = $( "#date_debut, #date_fin" ).datepicker({
		changeMonth: true,
		changeYear: true,
		onSelect: function( selectedDate ) {
			var option = this.id == "date_debut" ? "minDate" : "maxDate",
				instance = $( this ).data( "datepicker" ),
				date = $.datepicker.parseDate(
					instance.settings.dateFormat ||
					$.datepicker._defaults.dateFormat,
					selectedDate, instance.settings );
			dates.not( this ).datepicker( "option", option, date );
		}
	});
	
});

function initFormulaireTelecharger(){

	$('#formulaire_telecharger').submit(function(){
		$(this).find('.erreur').html('');
		if($(this).find('.inputCheckbox:checked').length > 0){
			return true;
		}else{
			$(this).find('.erreur').html('choisir au moins une image')
			return false;
		}
	});
}

function collapseAll(id){
	if(id == undefined)
		id = "";
		
	$(id+'.collapsible .ui-icon').addClass('ui-icon-triangle-1-e').removeClass('ui-icon-triangle-1-s');
	$(id+'.collapsible .content').addClass('collapsed');
}

function decollapseAll(id){
	if(id == undefined)
		id = "";
		
	$(id+'.collapsible .ui-icon').removeClass('ui-icon-triangle-1-e').addClass('ui-icon-triangle-1-s');
	$(id+'.collapsible .content').removeClass('collapsed');
}

function initFormulaireRecherche(){
	$('.formulaire_recherche .autocomplete').each(function(){
		var select = $(this).find('select');
		select.combobox();
	});
}

function insertDetail(content){
	
	$('#detail').html(content).show();
	collapseAll('#detail ');
}

function showLoader(move){
	if(move != 0)
		moveDetail();
		
	var height = $('#detail').height();
	var margin = (height-32)/2;
	if(margin<50)
		margin = 50;
		
	$("#detail").html('<div class="loading" style="margin: '+margin+'px 0;"><img src="'+baseUrl+'./images/ajax-loader.gif"/></div>').show();	
}

function addAutocomplete(){
	
	$('.formulaire .autocomplete').each(function(){
		var select = $(this).find('select');
		select.combobox();
	});
}

function addDetailAutocomplete(){
	$('#other .formulaire .autocomplete').each(function(){
		var select = $(this).find('select');
		select.combobox();
	});
	
	$('#detail .formulaire .autocomplete').each(function(){
		var select = $(this).find('select');
		select.combobox();
	});
}

$.widget( "ui.combobox", {
	_create: function() {
		var self = this,
			select = this.element.hide(),
			selected = select.children( ":selected" ),
			value = selected.val() ? selected.text() : "";
		var input = this.input = $( "<input>" )
			.insertAfter( select )
			.val( value )
			.autocomplete({
				delay: 0,
				minLength: 0,
				/*
				source: function( request, response ) {
					var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
					response( select.children( "option" ).map(function() {
						var text = $( this ).text();
						if ( this.value && ( !request.term || matcher.test(text) ) )
							return {
								label: text.replace(
									new RegExp(
										"(?![^&;]+;)(?!<[^<>]*)(" +
										$.ui.autocomplete.escapeRegex(request.term) +
										")(?![^<>]*>)(?![^&;]+;)", "gi"
									), "<strong>$1</strong>" ),
								value: text,
								option: this
							};
					}) );
				},
				*/
				source: function( request, response ) {
					var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
					var select_el = select.get(0); // get dom element
					var rep = new Array(); // response array
					// simple loop for the options
					for (var i = 0; i < select_el.length; i++) {
						var text = select_el.options[i].text;
						if ( select_el.options[i].value && ( !request.term || matcher.test(text) ) )
							// add element to result array
							rep.push({
								label: text, // no more bold
								value: text,
								option: select_el.options[i]
							});
					}
					// send response
					response( rep );
				},
				select: function( event, ui ) {
					ui.item.option.selected = true;
					select.trigger('change');
					self._trigger( "selected", event, {
						item: ui.item.option
					});
				},
				change: function( event, ui ) {
					if ( !ui.item ) {
						var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( $(this).val() ) + "$", "i" ),
							valid = false;
						select.children( "option" ).each(function() {
							if ( $( this ).text().match( matcher ) ) {
								this.selected = valid = true;
								return false;
							}
						});
						if ( !valid ) {
							// remove invalid value, as it didn't match anything
							$( this ).val( selected.text() );
							select.val( selected.val() );
							input.data( "autocomplete" ).term = "";
							return false;
						}
					}
				}
			})
			.addClass( "autocompleteInput inputText" );

		input.data( "autocomplete" )._renderItem = function( ul, item ) {
			return $( "<li></li>" )
				.data( "item.autocomplete", item )
				.append( "<a>" + item.label + "</a>" )
				.appendTo( ul );
		};

		this.button = $( "<button type='button'>&nbsp;</button>" )
			.attr( "tabIndex", -1 )
			.attr( "title", "Show All Items" )
			.insertAfter( input )
			.button({
				icons: {
					primary: "ui-icon-triangle-1-s"
				},
				text: false
			})
			.removeClass( "ui-corner-all" )
			.addClass( "ui-button-icon" )
			.click(function() {
				// close if already visible
				if ( input.autocomplete( "widget" ).is( ":visible" ) ) {
					input.autocomplete( "close" );
					return;
				}

				// pass empty string as value to search for, displaying all results
				input.autocomplete( "search", "" );
				input.focus();
			});
	},

	destroy: function() {
		this.input.remove();
		this.button.remove();
		this.element.show();
		$.Widget.prototype.destroy.call( this );
	}
});

function hideCollapsed(elem){
	var label = $(elem).prev('label');
	var id =label.attr('for');
	label.find('.ui-icon').addClass('ui-icon-triangle-1-e').removeClass('ui-icon-triangle-1-s');
	$('#'+id).addClass('collapsed');
}

function refreshFormPart(data){
	var refreshed_part = data.refreshed_part;
	var refreshed_part_content = data.refreshed_part_content;
	if(refreshed_part_content != "")
		$('#'+refreshed_part).html(refreshed_part_content);
}

function showCollapsed(elem){
	var label = $(elem).prev('label');
	var id = label.attr('for');
	label.find('.ui-icon').removeClass('ui-icon-triangle-1-e').addClass('ui-icon-triangle-1-s');
	$('#'+id).removeClass('collapsed');
}

function moveDetail(){
	var top = 101;
	var scrollTop = $(window).scrollTop();
	if(scrollTop>top){
		$("#detail").addClass("fixed").css('top',(scrollTop-top)+'px'); 
	}else{
		$("#detail").removeClass("fixed"); 
	}
}

function fermerDetail(){
	if(currentDetail != ""){
		hideCollapsed('#'+currentDetail);
		currentDetail = "";
		$('.formulaire .ligne .active').removeClass('active');
		$('#detail').html('').hide();
	}
}

function fermerOther(){
	if(currentOther != ""){
		currentOther = "";
		$('.formulaire .ligne .active').removeClass('active');
		$('#other').remove();
	}
}

function insertOther(content){
	$('#other').html(content).show();
}

function showLoaderOther(move){
	var height = $('#other').height();
	var margin = (height-32)/2;
	if(margin<50)
		margin = 50;
		
	$("#other").html('<div class="loading" style="margin: '+margin+'px 0;"><img src="'+baseUrl+'./images/ajax-loader.gif"/></div>').show();	
}

function printPopup(url) {
	newwindow=window.open(url,'Imprimer','height=500,width=760,scrollbars=yes, location=0');
	if (window.focus) {newwindow.focus()}
	newwindow.print();
	return false;
}

function in_array(arr,p_val) {
    for(var i = 0, l = arr.length; i < l; i++) {
        if(arr[i] == p_val) {
            rowid = i;
            return true;
        }
    }
    return false;
}
