/**
 * @author    Alexei Betancourt Brito
 * @copyright Copyright (c) 2010, Grupo Humidif
 * @link      http://www.humidif.com
 * @package   jQuery 1.3.2
 * @category  Plugin
 * @licence   GPL MIT
 * ------------------------------------------------------------------------ 
 * Plugin para intercambiar los estilos del sitio, asi como el contenido de
 * las distintas secciones de la web.
 * ------------------------------------------------------------------------
 */
$.siteStylizer = {
	/**
	 * Declaracion de los valores por defecto del plugin.
	 * ------------------------------------------------------------------------
	 * Esta funcion establece valores por defecto para el uso del plugin.
	 * ------------------------------------------------------------------------
	 * @param {String} style
	 */
	defaultValues : {
		default_site : 'humidif'
	},
	/**
	 * Establece el sitio activo.
	 * ------------------------------------------------------------------------
	 * Esta funcion establece, mediante la llamada a un script PHP, el sitio 
	 * que se va a mostrar, almacenando en una variable de sesion el nombre del
	 * sitio y, llamando cuando se completa la peticion, a la funcion que 
	 * modifica el estilo del sitio. Esta funcion ademas oculta el layer
	 * principal del sitio con un fade.
	 * ------------------------------------------------------------------------
	 * @param {String} site
	 * @param {String} action
	 */
	fixStyle : function(site, action){
		if(action == 'redirect'){
			$.humidifAjax.loadScript(base_url + 'stylizer/get_set_site/set/' + site + '/', window.location.href = base_url + 'home/', null);
		}else if(action == 'same'){
			$.humidifAjax.loadScript(base_url + 'stylizer/get_set_site/set/' + site + '/', window.location.href = window.location, null);	
		}else{
			$('div#main-div').fadeOut('fast', function(){
				$.humidifAjax.loadScript(base_url + 'stylizer/get_set_site/set/' + site + '/', $.siteStylizer.changeStyle, site);
			});
		}
	},
	
	initStyle : function(){
		$.getJSON(base_url + 'stylizer/get_set_site/get/', function(data){
			if(data != '' || data != null){
				site = data;
			}else{
				site = $.siteStylizer.defaultValues.default_site;
			}
			$('*[skinable="true"]').addClass('skin-' + site);
			$.siteStylizer.changeContent(site);
		});
	},
	/**
	 * Modifica la apariencia visual de la pagina cambiando los estilos.
	 * ------------------------------------------------------------------------
	 * Esta funcion determina el estilo que estan usando actualmente los
	 * distintos elementos del sitio y los intercambia por el estilo pasado a
	 * la funcion por parametro. Para esto primero obtenemos el skin que tienen
	 * aplicados los elementos y lo almacenamos en la variable actual_skin, lo
	 * siguiente sera remplazar este skin por el del sitio seleccionado. Una 
	 * vez que reemplaza el estilo, llama a la funcion que cambia el contenido
	 * segun el sitio.
	 * ------------------------------------------------------------------------
	 * @param {String} style
	 */
	changeStyle : function(site){
		if($('body').attr('class') != ''){
			actual_style = $('body').attr('class');
			$('*').removeClass(actual_style).addClass('skin-' + site);
		}else{
			$.getJSON(base_url + 'stylizer/get_set_site/get/', function(data){
				actual_style = data;
				$('*').removeClass('skin-' + data).addClass('skin-' + site);
			});
		}
		$.siteStylizer.changeContent(site);
	},
	/**
	 * Modifica el clontenido de los elementos que sean necesarios.
	 * ------------------------------------------------------------------------
	 * Esta funcion realiza peticiones AJAX para modificar el contenido de los
	 * distintos elementos que contengan datos dinamicos, por ejemplo del menu
	 * de las marcar y las areas de contenido. Antes de modificar el contenido,
	 * esta funcion se encarga de mostrar el layer principal de la aplicacion
	 * con el nuevo estilo aplicado.
	 * ------------------------------------------------------------------------
	 * @param {String} style
	 */
	changeContent : function(site){
		// Obtenemos la seccion que estamos visualizando
		url_params = window.location.pathname;
		url_array  = url_params.split("/");
		section    = url_array[1];
		$('div#brands-data').load(base_url + 'assets/html/brands_menu_' + site + '.html');
		$('div#main-div').fadeIn('fast', function(){
			$('div#brands-main').fadeIn('slow');
			if(section == 'home'){
				$('#shuffler').fadeIn('slow');	
				$('#text').load(base_url + 'assets/html/home_' + site + '_' + base_lang + '.html');
			}else if(section == 'aboutus'){
				$('#section-data').load(base_url + 'assets/html/aboutus_' + site + '.html');
			}
		});
	}
}