/* Copyright (c) 2008 Publicis
 * Made by Laurent Valdes (laurent.valdes@publicis-modem.fr)
 * All rights reserved
 */

(function($) {
	
		$.fn.bindXitiHit = function(parameters)
		{
			
			switch(parameters.type)
			{
				case 'S': //sortie
					var updatingFunction=function(el) 
					{
						if(typeof(parameters.blank)=='undefined')
							parameters.blank=0;
						
						if(typeof(parameters.idBinding)!='undefined' && parameters.idBinding=="true")
						{
							if(typeof(parameters.extractingSelector)!='undefined')
								parameters.page=jQuery(parameters.extractingSelector).extractText();
							else
								parameters.page=jQuery(el).extractText();
						}
						
						if(typeof(parameters.subchapterSelector)!='undefined' && typeof(parameters.grouping)!='undefined')
							var subchapterName=jQuery(parameters.grouping+" "+parameters.subchapterSelector).extractText();
						else if(typeof(parameters.subchapterSelector)!='undefined')
							var subchapterName=jQuery(parameters.subchapterSelector).extractText();

						if(typeof(subchapterName)!='undefined')
							var clickName=parameters.chapter+'::'+subchapterName+'::'+parameters.page;
						else if(typeof(parameters.chapter)=='undefined' || parameters.chapter=="")
							var clickName=parameters.page;
						else
							var clickName=parameters.chapter+'::'+parameters.page;
						
						if(typeof(xt_med)=='function')
							xt_med(
								'C', //type
								parameters.level2, //niveau
								clickName,
								parameters.type
							);
					};
					break;
				
				case 'A': //action
					var updatingFunction=function(el) 
					{
						if(typeof(parameters.idBinding)!='undefined' && parameters.idBinding=="true")
						{
							if(typeof(parameters.extractingSelector)!='undefined')
								parameters.page=jQuery(parameters.extractingSelector).extractText();
							else
								parameters.page=jQuery(el).extractText();
						}
						
						if(typeof(parameters.subchapterSelector)!='undefined' && typeof(parameters.grouping)!='undefined')
							var subchapterName=jQuery(parameters.grouping+" "+parameters.subchapterSelector).extractText();
						else if(typeof(parameters.subchapterSelector)!='undefined')
							var subchapterName=jQuery(parameters.subchapterSelector).extractText();
						
						
						if(typeof(subchapterName)!='undefined')
							var clickName=parameters.chapter+'::'+subchapterName+'::'+parameters.page;
						else if(typeof(parameters.chapter)=='undefined' || parameters.chapter=="")
							var clickName=parameters.page;
						else
							var clickName=parameters.chapter+'::'+parameters.page;

						if(typeof(xt_med)=='function')
							xt_med(
								'C',
								parameters.level2,
								clickName,
								parameters.type
							);
					};
					break;
					
				case 'N': //navigation
					var updatingFunction=function(el) 
					{
						if(typeof(parameters.blank)=='undefined')
							parameters.blank=0;
						
						if(typeof(parameters.idBinding)!='undefined')
						{		
							if(typeof(parameters.extractingSelector)!='undefined')
								parameters.page=jQuery(parameters.extractingSelector).extractText();
							else
								parameters.page=jQuery(el).extractText();
						}	
						
						if(typeof(parameters.subchapterSelector)!='undefined' && typeof(parameters.grouping)!='undefined')
							var subchapterName=jQuery(parameters.grouping+" "+parameters.subchapterSelector).extractText();
						else if(typeof(parameters.subchapterSelector)!='undefined')
							var subchapterName=jQuery(parameters.subchapterSelector).extractText();
						
						if(typeof(subchapterName)!='undefined')
							var clickName=parameters.chapter+'::'+subchapterName+'::'+parameters.page;
						else if(typeof(parameters.chapter)=='undefined' || parameters.chapter=="")
							var clickName=parameters.page;
						else
							var clickName=parameters.chapter+'::'+parameters.page;
						
						if(typeof(xt_med)=='function')
							xt_med(
								'C',
								parameters.level2,
								clickName,
								parameters.type
							);
					};
					break;
					
				case 'T': //téléchargement
					var updatingFunction=function(el) 
					{
						if(typeof(parameters.blank)=='undefined')
							parameters.blank=0;
						
						if(typeof(parameters.idBinding)!='undefined' && parameters.idBinding=="true")
						{
							if(typeof(parameters.extractingSelector)!='undefined')
								parameters.page=jQuery(parameters.extractingSelector).extractText();
							else
								parameters.page=jQuery(el).extractText();
						}
						
						if(typeof(parameters.subchapterSelector)!='undefined' && typeof(parameters.grouping)!='undefined')
						{
						    var subchapterName=jQuery(parameters.subchapterSelector,jQuery(el).parents(parameters.grouping)).extractText();
						}
						else if(typeof(parameters.subchapterSelector)!='undefined')
						{	
						    var subchapterName=jQuery(parameters.subchapterSelector).extractText();
						  

							
						}
						
						if(typeof(subchapterName)!='undefined')
							var clickName=parameters.chapter+'::'+subchapterName+'::'+parameters.page;
						else if(typeof(parameters.chapter)=='undefined' || parameters.chapter=="")
							var clickName=parameters.page;
						else
							var clickName=parameters.chapter+'::'+parameters.page;
						
							
							
						if(typeof(xt_med)=='function')
							xt_med(
								'C', //type
								parameters.level2, //niveau
								clickName,
								parameters.type
							);
					};
					break;
					
				default:
					
					break;	
				
			}
		    
			
			
			switch(parameters.action)
			{
				case 'submit':

					jQuery(this).live("submit", function() {
							try{ 	
								return updatingFunction(this); 
							} 
							catch(e) 
							{ 
								console.log(e);
							}							
						});
					break;
					
				case 'click':
                    
					if(typeof(parameters.grouping)=='undefined')
					{
					    var mustclick=true;
					    
					    jQuery(parameters.selector).live("click", 
							function() {
								try{ 
									return updatingFunction(this); 
								    mustclick=false;
								}
								catch(e) 
								{ 
								    console.log(e);
								}
							}
						).click(
						  function() {
								try{ 
								    if(mustclick)
									   return updatingFunction(this); 
								}
								catch(e) 
								{ 
								    console.log(e);
								}
							});
						
						
						  
					}
					else
					{
					   
					    jQuery(parameters.grouping+" "+parameters.selector).live("click", function() {    
							   
					           /*console.group();
                               console.log(parameters.type);
                               console.log(parameters.selector);
                               console.log(parameters.action);
                               console.log(parameters.grouping);
                               console.groupEnd();*/
                    	       
                               try{ 
									
								    
								    return updatingFunction(this); 
									
    						   }
    						   catch(e) 
    						   { 
    								console.log(e.message);
    						   }
							}
						);
					}	
					break;
					
				default:
					if(typeof(parameters.grouping)=='undefined')
						jQuery(this).live("click",
							function() {
								try{ 
									return updatingFunction(this); 
								}
								catch(e) 
								{ 
									log.debug(e);
								}
							}
						);
					else
						jQuery(parameters.grouping+" "+parameters.selector).live("click", function() {
								try{ 
									return updatingFunction(this); 
								}
								catch(e) 
								{ 
									log.debug(e);
								}
							}
						);
					break;
			}
		};
		$.fn.extractText = function(parameters)
		{
		    

		    
			if(jQuery(this).val().length>0)
				var pageName=jQuery(this).val().replace(/[^àâäéèêëîïôöùûüa-z0-9]+/gi,'_').toLowerCase();
			else if(typeof(this.id)!="undefined" && this.id.length>0)
				var pageName=this.id;
			else if(jQuery(this).text().length>0)
				var pageName=jQuery(this).text().replace(/[^àâäéèêëîïôöùûüa-z0-9]+/gi,'_').toLowerCase();
			
		    pageName=xiti.noAccent(pageName);
			return pageName;		
		};
	}
)(jQuery);

var xiti = {
	bindAll:function()
	{
		if(typeof(xitiBinding)=='object')
			jQuery(xitiBinding).each(
				function () {
				    jQuery(this.selector).bindXitiHit(this);
				}
			);
	},
	addXitiHitRow:function(parameters)
	{
		if(!typeof(xitiBinding)=="array")
			xitiBinding=[];
		xitiBinding.push(parameters);
	},
	noAccent: function(str)
	{
        var norm = new Array('À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï', 'Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß', 'à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ', 'ò','ó','ô','õ','ö','ø','ù','ú','û','ü','ý','ý','þ','ÿ');
        var spec = new Array('A','A','A','A','A','A','A','C','E','E','E','E','I','I','I','I', 'D','N','O','O','O','0','O','O','U','U','U','U','Y','b','s', 'a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','d','n', 'o','o','o','o','o','o','u','u','u','u','y','y','b','y');
        for (var i = 0; i < spec.length; i++)
            str = xiti.replaceAll(str, norm[i], spec[i]);
        return str;
	    
	},
	replaceAll: function(str, search, repl) {
        while (str.indexOf(search) != -1)
        str = str.replace(search, repl);
        return str;
    }
}

jQuery(document).ready(function(){
	xiti.bindAll();
});
//jQuery('#product_'+productId).addXitiHit("basket::quantity_"+productId);



