			function ucfirst( str ) {
				str += '';
				var f = str.charAt(0).toUpperCase();
				return f + str.substr(1);
			}
			
			function ucwords(str){
				return (str+'').replace(/^(.)|\s(.)/g, function ( $1 ) { return $1.toUpperCase( ); } );
			}
			
			function array_diff() {
				var arr1 = arguments[0], retArr = {};
				var k1 = '', i = 1, k = '', arr = {};

				arr1keys:
				for (k1 in arr1) {
					for (i = 1; i < arguments.length; i++) {
						arr = arguments[i];
						for (k in arr) {
							if (arr[k] === arr1[k1]) {
								// If it reaches here, it was found in at least one array, so try next value
								continue arr1keys; 
							}
						}
						retArr[k1] = arr1[k1];
					}
				}

				return retArr;
			}

			function remove_loader(){
				$j("div.products div.tableau-content table").each(function(){
					$j(this).parent(".height").removeClass("loader");
					$j(this).removeClass("visible");
				});
			}
			
			function sort (inputArr, sort_flags) {
				var valArr = [], keyArr=[];
				var k = '', i = 0, sorter = false, that = this;
				 
				for (k in inputArr) { // Get key and value arrays
					valArr.push(inputArr[k]);
					delete inputArr[k];
				}
			 
				switch (sort_flags) {
					case 'SORT_STRING': // compare items as strings
						sorter = function (a, b) {
							return that.strnatcmp(a, b);
						};
						break;
					case 'SORT_LOCALE_STRING': // compare items as strings, based on the current locale (set with  i18n_loc_set_default() as of PHP6)
						var loc = this.i18n_loc_get_default();
						sorter = this.php_js.i18nLocales[loc].sorting;
						break;
					case 'SORT_NUMERIC': // compare items numerically
						sorter = function (a, b) {
							return (a - b);
						};
						break;
					case 'SORT_REGULAR': // compare items normally (don't change types)
					default:
						sorter = function (a, b) {
							if (a > b) {
								return 1;
							}
							if (a < b) {
								return -1;
							}
							return 0;
						};
						break;
				}
				valArr.sort(sorter);
			 
				for (i = 0; i < valArr.length; i++) { // Repopulate the old array
					inputArr[i] = valArr[i];
				}
				return true;
			}
			
			function strnatcmp ( f_string1, f_string2, f_version ) {
				if (f_version == undefined) {
					f_version = false;
				}

				var __strnatcmp_split = function( f_string ) {
					var result = [];
					var buffer = '';
					var chr = '';
					var i = 0, f_stringl = 0;

					var text = true;

					f_stringl = f_string.length;
					for (i = 0; i < f_stringl; i++) {
						chr = f_string.substring(i, i + 1);
						if (chr.match(/[0-9]/)) {
							if (text) {
								if(buffer.length > 0){
									result[result.length] = buffer;
									buffer = '';
								}

								text = false;
							}
							buffer += chr;
						} else if ((text == false) && (chr == '.') && (i < (f_string.length - 1)) && (f_string.substring(i + 1, i + 2).match(/[0-9]/))) {
							result[result.length] = buffer;
							buffer = '';
						} else {
							if (text == false) {
								if (buffer.length > 0) {
									result[result.length] = parseInt(buffer);
									buffer = '';
								}
								text = true;
							}
							buffer += chr;
						}
					}

					if (buffer.length > 0) {
						if (text) {
							result[result.length] = buffer;
						} else {
							result[result.length] = parseInt(buffer);
						}
					}

					return result;
				};

				var array1 = __strnatcmp_split(f_string1+'');
				var array2 = __strnatcmp_split(f_string2+'');

				var len = array1.length;
				var text = true;

				var result = -1;
				var r = 0;

				if (len > array2.length) {
					len = array2.length;
					result = 1;
				}

				for (i = 0; i < len; i++) {
					if (isNaN(array1[i])) {
						if (isNaN(array2[i])) {
							text = true;

							if ((r = strcmp(array1[i], array2[i])) != 0) {
								return r;
							}
						} else if (text){
							return 1;
						} else {
							return -1;
						}
					} else if (isNaN(array2[i])) {
						if(text) {
							return -1;
						} else{
							return 1;
						}
					} else {
						if(text || f_version){
							if ((r = (array1[i] - array2[i])) != 0) {
								return r;
							}
						} else {
							if ((r = strcmp(array1[i].toString(), array2[i].toString())) != 0) {
								return r;
							}
						}

						text = false;
					}
				}

				return result;
			}

			
			function opacity(choix){
				if(choix=="add"){
					$j("#header").addClass("opacity");
					$j("#ctl00_menuleftpane").addClass("opacity");
					$j("#content-right").addClass("opacity");
					$j("#ctl00_footerpane").addClass("opacity");
				}
				else{
					$j("#header").removeClass("opacity");
					$j("#ctl00_menuleftpane").removeClass("opacity");
					$j("#content-right").removeClass("opacity");
					$j("#ctl00_footerpane").removeClass("opacity");
				}
			}
			
			function array_unique( array ) {
				var key = '', tmp_arr1 = [], tmp_arr2 = [];
				var val = '';
				tmp_arr1 = array;
				
				var __array_search = function (needle, haystack, argStrict) {
					var fkey = '';
					var strict = !!argStrict;
					for (fkey in haystack) {
						if ((strict && haystack[fkey] === needle) || (!strict && haystack[fkey] == needle) ) {
							return fkey;
						}
					}
					return false;
				}
			  
				for (key in tmp_arr1) {
					val = tmp_arr1[key];
					if (false === __array_search(val, tmp_arr2) && val != "") {
						tmp_arr2[key] = val;
					}
					
					delete tmp_arr1[key];
				}
				
				return tmp_arr2;
			}		
			
			function go(val,pays){
				var host = document.location.host;
				if(val != "")
					document.location.href = "http://"+host+"/"+val+"/desktopdefault.aspx/country-"+pays+"/";
			}
			
			function appl(text){
				var reg =  new RegExp("([ \f\n\r\t]|&)", "g");
				var text = text.toLowerCase();
				text = text.replace(reg,"");
				return text;
			}
			
			function selectcountry(text){
				$j("#ctl00_langpane .countrylist ul li").each(function(){
					$j(this).removeClass("strong");
				});
				text.className = "strong";
				$j("div.languagebox").scrollTo(300 , { duration: 1000 });
			}
			
			function trim (str, charlist) {
				var whitespace, l = 0, i = 0;
				str += '';
				
				if (!charlist) {
					// default list
					whitespace = " \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";
				} else {
					// preg_quote custom list
					charlist += '';
					whitespace = charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\$1');
				}
				
				l = str.length;
				for (i = 0; i < l; i++) {
					if (whitespace.indexOf(str.charAt(i)) === -1) {
						str = str.substring(i);
						break;
					}
				}
				
				l = str.length;
				for (i = l - 1; i >= 0; i--) {
					if (whitespace.indexOf(str.charAt(i)) === -1) {
						str = str.substring(0, i + 1);
						break;
					}
				}
				
				return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
			}		
			
			function localisation2(texte,continent){
				var tab_namesales = new Array();
				var tab_listsales = new Array();
				var i = 0;
				$j("#ctl00_langpane div.salesarea span").each(function(){
					//on recupere tous les sales area que l'on stock dans un tableau
						var reg =  new RegExp("(&| |,)", "g");
						var namesales = $j(this).attr("class").replace(reg,"");
						tab_namesales[i] = namesales;
						tab_listsales[namesales] = new Array($j(this).text().split(";"));
					i++;
				});
				for(j=0;j<tab_namesales.length;j++){
					if(in_array(texte,tab_listsales[tab_namesales[j]][0])){
						var salesarea = tab_namesales[j];
					}					
				}	
				if(cookcont1 == "" || cookcont1 == undefined) cookcont1	= continent;
				cookloc1	= salesarea;
				cooklang1 	= "";
				cookcount1 	= texte;		
			}
		
			function localisation3(texte){
				var tab_namesales = new Array();
				var tab_listsales = new Array();
				var i = 0;
				$j("#ctl00_langpane div.salesarea span").each(function(){
					//on recupere tous les sales area que l'on stock dans un tableau
						var reg =  new RegExp("(&| |,)", "g");
						var namesales = $j(this).attr("class").replace(reg,"");
						tab_namesales[i] = namesales;
						tab_listsales[namesales] = new Array($j(this).text().split(";"));
					i++;
				});
				for(j=0;j<tab_namesales.length;j++){
					if(in_array(texte,tab_listsales[tab_namesales[j]][0])){
						var salesarea = tab_namesales[j];
					}					
				}	
				return salesarea;
			}

			function in_array(needle, haystack, argStrict) {			 
				var found = false, key, strict = !!argStrict;
				for (key in haystack) {
					if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
						found = true;
						break;
					}
				}
				return found;
			}
			
			/* Objet à créer pour chaque tableau */
		    var plasterTable = {};
			var chamotteTable = {};
			var gypsumTable = {};
			var refractoryTable = {};
			var productsTable = {};
			var usehelpTable = {};
			var datasheetTable = {};
			window.addEvent('domready', function(){
				if($$('#plastertable') != "")
					plasterTable = new sortableTable('plastertable', {overCls: 'over'}); 
				if($$('#chamottetable') != "")
					chamotteTable = new sortableTable('chamottetable', {overCls: 'over'});
				if($$('#gypsumtable') != "")
					gypsumTable = new sortableTable('gypsumtable', {overCls: 'over'});
				if($$('#refractorytable') != "")
					refractoryTable = new sortableTable('refractorytable', {overCls: 'over'});
				if($$('#productstable') != "")
					productsTable = new sortableTable('productstable', {overCls: 'over'});
				if($$('#usehelp') != "")
					usehelpTable = new sortableTable('usehelp', {overCls: 'over'});
				if($$('#productstable') != "")
					datasheetTable = new sortableTable('productstable', {overCls: 'over'});
			});
			
			
			
			function language_init(){
				// on selectionne les differents continents*/
					var h2 = "";
					var sep = "";
					$j("#ctl00_langpane div.countrylist h2").each(function(){
						h2 += sep+"<span class=\"continent\">"+$j(this).text()+"</span>";
						$j(this).remove();
						sep = "<span class=\"sep\">|</span>";
					});
					$j("#ctl00_langpane h3.listcontinent").prepend(h2);
					
				/*on genere le menu select dans le choose location*/
					var liste = $j("div.langlist").text().split(";");
					var liste_lang = "<option value=\"\"></option>";
					for(var i=0;i<liste.length;i++){
						var liste2 = liste[i].split(",");
						if(liste2[0] != "" && liste2[0] != " " && liste2[0] != undefined)
							liste_lang  += "<option value=\""+liste2[1]+"\">"+liste2[0]+"</option>";
					}
					$j("div.languagebox select[name='language']").empty();	
					$j("div.languagebox select[name='language']").prepend(liste_lang);	
					$j("div.languagebox select[name='language']").find("option[value='en']").attr({selected:"selected"});
			}
			
			
			
			function cre_cook0(nom,contenu) {
				document.cookie = nom + "=" + escape(contenu)+";domain="+document.location.host+";path=/";
			}
			
			function cre_cook(name, value){
				var aujourdhui = new Date() ;
				var expdate = new Date() ;
				expdate.setTime( aujourdhui.getTime() + ( 365*24*60*60*1000 ) )
				document.cookie = name + "=" + value + ";expires=" + expdate.toGMTString()+";domain="+document.location.host+";path=/";
			}


			function lit_cook(nom) {
				var deb = "";
				var fin = "";
				deb = document.cookie.indexOf(nom + "=");
				if (deb >= 0) {
					deb += nom.length + 1;
					fin = document.cookie.indexOf(";",deb);
					if (fin < 0)
						fin = document.cookie.length;
					return unescape(document.cookie.substring(deb,fin));
				}
				return "";
			}

			function tue_cook(nom) { 
				cre_cook0(nom,"",-1);
			}

			function litCook(nom) {
				c=lit_cook(nom);
				if(c=="")
					return false;
				else 
					return c;
			}