function isNavigatorIE () {
	var name = navigator.appName;
	if (name.indexOf("Microsoft",0) > -1)
		return true;
	else
		return false;
}


function IncludeJavaScript(jsFile) {
	document.write('<script type="text/javascript" src="'+jsFile  +'"></scr' + 'ipt>'); 
}


function in_array(needle, haystack) {
	for (var i=0; i<haystack.length; i++) {
		if (haystack[i]==needle) return i;
	}
	return -1;
}


function ouvre_popup(page) {
	 window.open(page,"","menubar=yes, status=no, scrollbars=yes, width=800, height=600");
}

   
function openPopup(url, titre, wid, hei) {
   window.open(url,titre,"menubar=yes, status=no, scrollbars=yes, width="+wid+", height="+hei);
}
   
   
function loadPage(url) {
   document.location.href=url;
}
   
   
function addToFavorites(titre) {
	if ( navigator.appName != 'Microsoft Internet Explorer' ) { 
		window.sidebar.addPanel(titre,"http://www.tonsite.com",""); 
	} else { 
		window.external.AddFavorite("http://www.tonsite.com",titre); 
	} 
}


function testerNavigateur() {   
	objetXHR = creationXHR();
	if(objetXHR==null) {
		var erreurNavigateur="Erreur Navigateur : Création d'objet XHR impossible";
		remplacerContenu("search_results_nb", erreurNavigateur);
	}
}


function anticache () {
	var temps = new Date().getTime();//création d'une variable temps pour l'anti-cache
	return "anticache="+temps;
}
   

function galerieHideAll (imgstohide_name,imgstohide_idstart) {
	var visuels =  document.getElementsByName(imgstohide_name);
	for (i=0; i<visuels.length; i++) {
		$("#"+imgstohide_idstart+"_"+i).fadeOut("slow");
	}
}


function encode64(input) {
	var output = "";
	var chr1, chr2, chr3 = "";
	var enc1, enc2, enc3, enc4 = "";
	var i = 0;

	do {
		 chr1 = input.charCodeAt(i++);
		 chr2 = input.charCodeAt(i++);
		 chr3 = input.charCodeAt(i++);

		 enc1 = chr1 >> 2;
		 enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
		 enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
		 enc4 = chr3 & 63;

		 if (isNaN(chr2)) {
				enc3 = enc4 = 64;
		 } else if (isNaN(chr3)) {
				enc4 = 64;
		 }

		 output = output +
				keyStr.charAt(enc1) +
				keyStr.charAt(enc2) +
				keyStr.charAt(enc3) +
				keyStr.charAt(enc4);
		 chr1 = chr2 = chr3 = "";
		 enc1 = enc2 = enc3 = enc4 = "";
	} while (i < input.length);

	return output;
}

function decode64(input) {
	var output = "";
	var chr1, chr2, chr3 = "";
	var enc1, enc2, enc3, enc4 = "";
	var i = 0;

	// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
	var base64test = /[^A-Za-z0-9\+\/\=]/g;
	if (base64test.exec(input)) {
		 alert("There were invalid base64 characters in the input text.\n" +
					 "Valid base64 characters are A-Z, a-z, 0-9, �+�, �/�, and �=�\n" +
					 "Expect errors in decoding.");
	}
	input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

	do {
		 enc1 = keyStr.indexOf(input.charAt(i++));
		 enc2 = keyStr.indexOf(input.charAt(i++));
		 enc3 = keyStr.indexOf(input.charAt(i++));
		 enc4 = keyStr.indexOf(input.charAt(i++));

		 chr1 = (enc1 << 2) | (enc2 >> 4);
		 chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
		 chr3 = ((enc3 & 3) << 6) | enc4;

		 output = output + String.fromCharCode(chr1);

		 if (enc3 != 64) {
				output = output + String.fromCharCode(chr2);
		 }
		 if (enc4 != 64) {
				output = output + String.fromCharCode(chr3);
		 }

		 chr1 = chr2 = chr3 = "";
		 enc1 = enc2 = enc3 = enc4 = "";

	} while (i < input.length);

	return output;
}

function encodeUtf8 (string) {
	string = string.replace(/\r\n/g,"\n");
	var utftext = "";

	for (var n = 0; n < string.length; n++) {

		var c = string.charCodeAt(n);

		if (c < 128) {
			utftext += String.fromCharCode(c);
		}
		else if((c > 127) && (c < 2048)) {
			utftext += String.fromCharCode((c >> 6) | 192);
			utftext += String.fromCharCode((c & 63) | 128);
		}
		else {
			utftext += String.fromCharCode((c >> 12) | 224);
			utftext += String.fromCharCode(((c >> 6) & 63) | 128);
			utftext += String.fromCharCode((c & 63) | 128);
		}

	}
	return utftext;
}
 
function decodeUtf8 (utftext) {
	var string = "";
	var i = 0;
	var c = c1 = c2 = 0;

	while ( i < utftext.length ) {

		c = utftext.charCodeAt(i);

		if (c < 128) {
			string += String.fromCharCode(c);
			i++;
		}
		else if((c > 191) && (c < 224)) {
			c2 = utftext.charCodeAt(i+1);
			string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
			i += 2;
		}
		else {
			c2 = utftext.charCodeAt(i+1);
			c3 = utftext.charCodeAt(i+2);
			string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
			i += 3;
		}

	}
	return string;
}

