// JavaScript Document

(function($){

var ver = 'jquery.artifica.toolsbox-1.0';

$.fn.reverseOrder = function() {
	return this.each(function() {
		$(this).prependTo( $(this).parent() );
	});
};

$.fn.artificaToolsbox = function(vars) { 

	var element = $(this);
    var buttons = (vars.buttons != undefined) ? vars.buttons : 'print';
	var filesSize = (vars.filesSize != undefined) ? vars.filesSize : '';
	var defaultSize = (vars.defaultSize != undefined) ? vars.defaultSize : '';
	var fileContrast = (vars.fileContrast != undefined) ? vars.fileContrast : '';
	var path = (vars.path != undefined) ? vars.path : '';
	
	var start = function() {
		loadListButtons();
		loadStylesheets(filesSize);
	};
	
	var loadListButtons = function() {
		
		var str = '';
		var list = buttons.split(',');
		
		if(list.length > 0)
		{
			for(var i = 0; i < list.length; i++)
			{				
				switch(list[i])
				{
					case "print" :
						
						element.append('<a href="#" id="print"><img src="' + path + 'icon-print.png" alt="Imprimer" width="20" height="20" border="0" /></a>\n');
						
						$('#print').bind('click', function(){window.print(); return false;});
						$('#print').attr('href', 'javascript:void(0);');
						
						break;
						
					case "typoMore":
							
						if(filesSize != '')
						{
							element.append('<a href="#" id="btnTypoMore"><img src="' + path + 'icon-zoom2.png" alt="Agrandir la taille du texte" width="20" height="20" border="0" /></a>\n');
							
							$('#btnTypoMore').bind('click', function(){return getTypoMore(defaultSize)});
							$('#btnTypoMore').attr('href', 'javascript:void(0);');
						}

						break;
						
					case "typoLess":
					
						if(filesSize != '')
						{
							element.append('<a href="#" id="btnTypoLess"><img src="' + path + 'icon-zoom1.png" alt="R&eacute;duire la taille du texte" width="20" height="20" border="0" /></a>\n');
							$('#btnTypoLess').bind('click', function(){return getTypoLess(defaultSize)});
							$('#btnTypoLess').attr('href', 'javascript:void(0);');
						}
						
						break;
						
					case 'contrast' :
					
						str += fnInsertButtonTypoContrast(path);
						
						element.append('<a href="#" id="btnTypoContrast"><img src="' + path + 'icon-contrast.png" alt="Inverser les contrastes" width="20" height="20" border="0" /></a>\n');
						
						$('#btnTypoContrast').bind('click', function(){return getTypoContrast()});
						$('#btnTypoContrast').attr('href', 'javascript:void(0);');
						
						break;						
						
					default:

						break;
				}
			}
		}
	};
	
	var loadStylesheets = function(argList) {
		
		var str = '';
		var list = argList.split(',');
		
		// COOKIES
		var current = $.cookie('typo_size');
		
		if(list.length > 0)
		{
			for(var i = 0; i < list.length; i++)
			{
				file = jQuery.trim(list[i]);
				title = basename(file, '.css');

				$('head').append('<link type="text/css" rel="alternate stylesheet" href="' + file + '" title="' + title + '" />\n');
			}
			
			$("link[title^=typo_size]").each(function(i){
				var child = $(this);
				
				child.attr('disabled', true);
				
				if(current != null && current == child.attr('title'))
				{
					child.attr('disabled', false);
				}
			});
		}
	};
	
	start();
}

function setTypoSize(argList, argDefault)
{
	// COOKIES
	var currentOld = $.cookie('typo_size');
	var newi = null;
	
	if(currentOld == null) currentOld = basename(argDefault, '.css');
	
	var current = currentOld;
	
	jQuery.each(argList, function(i) {
		var child = $(this);
		
		if(newi != null && newi == i)
		{
			child.attr('disabled', false);
			current = child.attr('title');
		}
		
		if(currentOld == child.attr('title'))
		{
			newi = (i + 1);
		}
	});
	
	$.cookie('typo_size', current, {path:'/'});
}

function getTypoMore(argDefault)
{
	var list = $("link[title^='typo_size']");

	setTypoSize(list, argDefault);
	
	return false;
}

function getTypoLess(argDefault)
{
	$("link[title^='typo_size']").reverseOrder();
	
	var list = $("link[title^='typo_size']").reverseOrder();
	
	setTypoSize(list, argDefault);
	
	return false;	
}


function getTypoContrast()
{
	//alert('bobo');
}

function basename(path, suffix)
{
    var b = path.replace(/^.*[\/\\]/g, '');
    
    if (typeof(suffix) == 'string' && b.substr(b.length-suffix.length) == suffix) {
        b = b.substr(0, b.length-suffix.length);
    }
    
    return b;
}

$.fn.artificaToolsbox.ver = function() { return ver; };

})(jQuery);
