// JavaScript Document

(function($){

	var ver = 'Lite-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.gif" 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.gif" 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.gif" alt="Ré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.gif" 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');
				}
				
				$("head 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 = jQuery.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);
			}
		});
		
		jQuery.cookie('typo_size', current, {path:'/'});
	}
	
	function getTypoMore(argDefault)
	{
		var list = jQuery("head link[title^=typo_size]");
	
		setTypoSize(list, argDefault);
		
		return false;
	}
	
	function getTypoLess(argDefault)
	{
		jQuery("head link[title^=typo_size]").reverseOrder();
		
		var list = jQuery("head 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);
