(function(jQuery) {
	
	jQuery.fn.bo = function(f,s) {
		
		
		
	}
	
	// on retrouve la dernier instance de - et on prend le reste
	jQuery.fn.bo.get_module_key = function(module_id){
				
		switch(module_id){
			case 1: return "crm"; break;
			case 2: return "cms"; break;
			case 3: return "galerie"; break;
			case 4: return "blog"; break;
			case 5: return "mrk"; break;
			case 6: return "param"; break;
			default: return "-inconnu-"; break;
		}
			
	}	
	// on retrouve la dernier instance de - et on prend le reste
	jQuery.fn.bo.get_module_id = function(module_key){
		switch(module_key){
			case "crm": 	return 1; break;
			case "cms": 	return 2; break;
			case "galerie": return 3; break;
			case "blog": 	return 4; break;
			case "mrk": 	return 5; break;
			case "param": 	return 6; break;
			default: return "-inconnu-"; break;
		}		
	}
	
	// on retrouve la dernier instance de - et on prend le reste
	jQuery.fn.bo.parse_field_name = function(string_dom_id,splitter){			
		// on essai d'identifier le nom du field en enlevant le id à la fin
		var i 		= String(string_dom_id).lastIndexOf(splitter)+1;    		
		var name 	= string_dom_id.substring(0,i);
		return name;			
	}	
	// on retrouve la dernier instance de - et on prend le reste
	jQuery.fn.bo.parse_id = function(string_dom_id){
				
		// on essai d'identifier le cms parent id, à l'aide du dom element id
		// > structure appellation row-[id]
		var i = String(string_dom_id).lastIndexOf("-")+1;    		
		var id = parseInt(String(string_dom_id).substring(i));
		id = (parseInt(id)=="nan")?-1:id;
		
		return id;		
			
	}
	// on retrouve la dernier instance de - et on prend le reste
	jQuery.fn.bo.parse_ids = function(string_dom_id){
				
		var ret_arr = []; // le tableau de ids retourner
		var my_string_dom_id = string_dom_id;
		var my_id = "";
		var i = -1;
		while(my_id!=-1){						
			// on retrouve le dernier index
			i = String(my_string_dom_id).lastIndexOf("-")+1;    		
			my_id = parseInt(String(my_string_dom_id).substring(i));
			my_id = (isNaN(my_id)!==false)?-1:my_id;
			
			if(my_id!=-1){
				my_string_dom_id = String(my_string_dom_id).substring(0,(i>0)?(i-1):1);
				ret_arr[ret_arr.length] = my_id;
			}
		}	
		return ret_arr;
	}	
	
	jQuery.fn.bo.parse_string_key = function(string_key){
				
		// on essai d'identifier le cms parent id, à l'aide du dom element id
		// > structure appellation row-[id]
		var i = String(string_key).lastIndexOf("-")+1;    		
		var key = String(string_key).substring(i);
		key = (key && key.length>0)?key:"-inconnu-";
		return key;		
			
	}
	// parse une string avec un separateur
	jQuery.fn.bo.parse_string_keys_gen = function(string_key,separator){
				
		var ret_arr = []; // le tableau de ids retourner
		var my_string_dom_id = string_key;
		var my_id = "";
		var i = -1;
		while(my_id!=-1){						
			// on retrouve le dernier index
			i = String(my_string_dom_id).lastIndexOf(separator)+1;    		
			
			my_id = String(my_string_dom_id).substring(i);
			my_id = (my_id && jQuery.trim(my_id).length>0)?my_id:-1;
			// si le id est le meme
			my_id = (ret_arr&&ret_arr.length>0&&ret_arr[(ret_arr.length-1)]==my_id)?-1:my_id;
			
			if(my_id!=-1){
				my_string_dom_id = String(my_string_dom_id).substring(0,(i>0)?(i-1):1);
				ret_arr[ret_arr.length] = my_id;
			}		
			
			my_id = (i==0)?-1:my_id;
		}	
		return ret_arr;
			
		
		
	}	
	
	jQuery.fn.bo.strpos = function (haystack, needle, offset) {
	    // http://kevin.vanzonneveld.net
	    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	    // +   improved by: Onno Marsman    
	    // +   bugfixed by: Daniel Esteban
	    // +   improved by: Brett Zamir (http://brett-zamir.me)
	    // *     example 1: strpos('Kevin van Zonneveld', 'e', 5);
	    // *     returns 1: 14
	
	    var i = (haystack+'').indexOf(needle, (offset || 0));
	    return i === -1 ? false : i;
	}
	
	// valide un adresse courriel
	jQuery.fn.bo.is_valid_email_address = function(email_address) {
		var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
		return pattern.test(email_address);
	}	
	
	// parse query variables
	jQuery.fn.bo.get_query_variable = function (query,variable) {
		var query = (query)?query:window.location.search.substring(1);
		var vars 	= query.split("&");
	
		for (var i=0;i<vars.length;i++) {
	    	var pair = vars[i].split("=");
	    	if (pair[0] == variable) {
	      		return pair[1];
	    	}
	  	}
	} 
	// ajoute un javascript on the fly
	jQuery.fn.bo.add_javascript = function (js_src,pos) {
		
		if(jQuery.fn.bo.is_file_loaded(js_src,pos)==false){
		
			var th = document.getElementsByTagName(pos)[0];
			var s = document.createElement('script');
			s.setAttribute('type','text/javascript');
			s.setAttribute('src',js_src);
			th.appendChild(s);
		}// on ajoute le script, si pas deja loade		
	}
	jQuery.fn.bo.is_file_loaded = function(src_file,pos){

		var th = document.getElementsByTagName(pos)[0];
		
		jQuery(th.childNodes).each(function(i,el){			
			var src_test = $(el).attr("src");
			if(src_test==src_file){				
				return true; // loaded
			}			
		});
		return false; // not loaded
	}
	
})(jQuery);



