/**
 * @author lgerbaud
 */
var translate= Array() ;
translate['product'] = 'produit';
translate['manufacturer'] = 'fabricant';
$(document).ready(function(){
	$("#modal_bookmark").dialog({
					autoOpen:false,
					bgiframe: true,
					modal: true,
					resizable:false,
					width:465,
				    close: function() {
				        $('#folder_id_selector').val('');
				    }
				});
	
	$("#modal_confirm_bookmark").dialog({
		autoOpen:false,
		bgiframe: true,
		modal: true,
		resizable:false,
		width:250
	});
	
	$('.add_bookmark_btn').click(function(){$("#modal_bookmark").dialog('open');});
	
	$('#modal_bookmark #add_bookmark_button').click(function(ev){
		//current_folder_id = add_bookmark_folder(0,folder_name,0);
		if ($('#new_folder_name').val()) {
			current_folder_id = add_bookmark_folder(0, $('#new_folder_name').val(), 0,save_bookmark_after_folder_creation);
		}
		else 
			add_bookmark($('#object_type').val(), $('#object_id').val(), $('#folder_id_selector').val(), 0,
					function(data){
						var returned_message;
						if($('#object_type').val()=='product'){
							switch(data.answer){
						        case '0':
						        	returned_message = 'Une erreur est survenue et le produit n\' a pu être ajouté à vos favoris.<br />Merci de réessayer.';
						        	break;
						        case '1':
						        	returned_message = 'Ce produit a bien été ajouté à vos favoris.';
						        	break;
						        case '2':
						        	returned_message = 'Ce produit a déjà été placé dans vos favoris';
						        	break;
					        }
						}else if($('#object_type').val()=='manufacturer'){
							switch(data.answer){
								case '0':
						        	returned_message = 'Une erreur est survenue et le fabricant n\' a pu être ajouté à vos favoris.<br />Merci de réessayer.';
						        	break;
						        case '1':
						        	returned_message = 'Ce fabricant a bien été ajouté à vos favoris.';
						        	break;
						        case '2':
						        	returned_message = 'Ce fabricant a déjà été placé dans vos favoris';
						        	break;
					        }
						}else if($('#object_type').val()=='cp'){
							switch(data.answer){
							case '0':
								returned_message = 'Une erreur est survenue et le communiqué n\' a pu être ajouté à vos favoris.<br />Merci de réessayer.';
								break;
							case '1':
								returned_message = 'Ce communiqué a bien été ajouté à vos favoris.';
								break;
							case '2':
								returned_message = 'Ce communiqué a déjà été placé dans vos favoris';
								break;
							}
						}
						$('#modal_confirm_bookmark').html(returned_message);
					});
		$('#modal_bookmark').dialog('close');
		$('#modal_confirm_bookmark').dialog('open');
	});
	RefreshFolderList();
});

function save_bookmark_after_folder_creation(data){
	$('#modal_bookmark #add_bookmark_button').click();
}

//Fonction de raffraichissement des favoris dans l'encart utilisateur
function RefreshFolderList()
{
	/*$('#bookmark_list').fadeOut();
	$('#bookmark_list').html('');
	$('#folder_id_selector').html('');
	$('#folder_to_id_selector').html('');*/
	$.post('action-favoris',{
	    action:'list_folder'
		},function(data,textStatus){
		    var new_list='';
		    data = eval(data);
			for(var i in data)
		    {
		        $('<div id="folder-'+data[i]['folder_id']+'"><strong>'+data[i]['folder_name']+'</strong><ul></ul></div>').appendTo($('#bookmark_list'));
				$('<option value="'+data[i]['folder_id']+'">'+data[i]['folder_name']+'</option>').appendTo($('#folder_id_selector'));
				$('<option value="'+data[i]['folder_id']+'">'+data[i]['folder_name']+'</option>').appendTo($('#folder_to_id_selector'));
		    }
		    //RefreshBookmarkList();
	});
}

//Créer/modifier/supprimer un dossier de favoris
function add_bookmark_folder(folder_id,folder_name,folder_date_delete,callback){
	$.post(
		'action-favoris',
		{
			action:'add_folder',
			folder_id:folder_id,
			folder_name:folder_name,
			folder_date_delete:folder_date_delete
		},
		function(data,textStatus){
			data = eval('('+data+')');
			$('#new_folder_name').val('');
			/* *
			if(data.folder_date_delete==0){
				$('<li class="folder_name" folder_id="'+data.folder_id+'"><h3>'+data.folder_name+'</h3></li><ul class="bookmark_folder" folder_id="'+data.folder_id+'"></ul>').insertAfter('#central_part ul.bookmark_folder:last');
				//prepare_bookmark_drag_n_drop();
				$('#folder_id_selector').append('<option value="'+data.folder_id+'">'+data.folder_name+'</option>');
				$('#new_folder_name').val('');
			}
			else
				$('#folder_id_selector option[value="'+data.folder_id+'"]').remove();
			$('#folder_id_selector option[value="'+data.folder_id+'"]').attr('selected','selected');
			/* */
			
			if(callback)
				callback(data, textStatus);
		}
	);
}

function PrepareBookmarkActions()
{
	//Favoris
	$('.add_bookmark:not(.ready)').click(function(){
	    var object_type=$(this).attr('object_type');
	    if($(this).hasClass("bookmarked")){
		    var type_fr = translate[object_type];
	        if(confirm('Êtes-vous sûr de vouloir supprimer ce '+type_fr+' de vos favoris ?'))
			   add_bookmark(object_type,$(this).attr('object_id'),0,1);
			return false;
		}
		$('div#dialog_bookmark #object_type').val(object_type);
		$('div#dialog_bookmark #object_id').val($(this).attr('object_id'));
						
		$('#dialog_bookmark').dialog('open'); //modal de création de dossier de favoris				
		return false;
	});
	$('.add_bookmark').addClass("ready");
	         
	$('a.delete_bookmark:not(.ready)').click(function(){
	var object_type=$(this).attr('object_type');
	var type_fr = translate[object_type];
	if(confirm('Êtes-vous sûr de vouloir supprimer ce '+type_fr+' de vos favoris ?')){
	    
	    var object_id=$(this).attr('object_id');
		var folder_id=0;
	    $(this).parent().parent().remove();
	    add_bookmark(object_type,object_id,folder_id,1);
		return false;
	    }
	});
	$('.delete_bookmark').addClass("ready");
}

//Ajout de bookmark	
function add_bookmark(object_type,object_id,folder_id,date_delete, callback){
  $.post('action-favoris',{
        action:'add_bookmark',
        object_type:object_type,
        object_id:object_id,
        folder_id:folder_id,
		date_delete:date_delete
    },function(data,textStatus){
        var data = eval('(' +data+')');

        /* *
		if(date_delete!=1){
                $('<li class="bookmark" object_type="'+data['objectType']+'" object_id="'+data['objectId']+'"><span class="action_bookmark"><a href="#" class="delete_bookmark" object_type="'+data.objectType+'" object_id="'+data.objectId+'">X</a></span><a href="'+data.href+'-'+data.objectType.substr(0,1)+data.objectId+'">'+data.text+'</a></li>').appendTo($('#bookmark_list #folder-'+data.folderId+'>ul'))
				$('.add_bookmark[object_type='+data['objectType']+'][object_id='+data['objectId']+']').addClass('bookmarked');
			}
		else{
		    $('.add_bookmark[object_type='+data['objectType']+'][object_id='+data['objectId']+']').removeClass('bookmarked');
			$('li.bookmark[object_id='+data['objectId']+'][object_type='+data['objectType']+']').remove();
		}
		PrepareBookmarkActions();
		return data["answer"];
		/* */
		
		if(callback)
			callback(data, textStatus);
    });
  
  return false;
}
