function formatAmountComptaKeyUp(elt,b_negatif) {
	if (!b_negatif) b_negatif=false;
	if (b_negatif==false)
		elt.value=(((elt.value.replace('','')).replace('-','')).replace(' ',''));
	else
		elt.value=((elt.value.replace('','')).replace(' ',''));
}

function formatAmountComptaClick(elt) {
	elt.value=((elt.value.replace(' ','')).replace('',''));
}

function formatAmountComptaChange(elt) {
	if (elt.value!=0)
		elt.value=number_format((elt.value.replace(',','.')).replace(' ',''),2,","," ");
}

function printDiscount(id_discount) {
	// We save the information that the discount is download
	file('generique-discount_download.html?fk_generique_discount='+id_discount);
	window.print();
}

function getFlexApp(appName) {
  if (navigator.appName.indexOf ("Microsoft") !=-1) {
    return window[appName];
  } else {
    return document[appName];
  }
}

function sleep(millis)
{
	var date = new Date();
	var curDate = null;
	
	do { curDate = new Date(); }
	while(curDate-date < millis);
} 

function hideId(menu_id) {
	document.getElementById(menu_id).style.display = 'none';
	document.getElementById(menu_id).style.visible = '';
	document.getElementById(menu_id).style.visibility = 'hidden';
}

function showId(menu_id) {
	document.getElementById(menu_id).style.display = '';
	document.getElementById(menu_id).style.visible = 'true';
	document.getElementById(menu_id).style.visibility = '';
}

function addFavoris(link,title) {
	if ( navigator.appName != 'Microsoft Internet Explorer' ) { 
		window.sidebar.addPanel(title,link,""); 
	}
	else { 
		window.external.AddFavorite(link,title); 
	} 
}

function popup(page,titre,largeur,hauteur,options) {
	var top=(screen.height-hauteur)/2;
	var left=(screen.width-largeur)/2;
	window.open(page,titre,'top='+top+',left='+left+',width='+largeur+',height='+hauteur+','+options);
}

var contenu;
function showBulle(bulle,contenu)
{
	document.getElementById(bulle).innerHTML = "<table cellpadding='6' cellspacing='0' class='info_bulle'><tr><td>"+contenu+"</td></tr></table>";
}
function removeBulle(bulle)
{
	document.getElementById(bulle).innerHTML = '';
}

function pleinEcran(nURL) {
  	var ie4 = ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4 ))
	var ns4 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 4 ))
	if (ie4) {
		fenetre=window.open(nURL,"","resizable,scrollbars")
		fenetre.moveTo(0,0)
		fenetre.resizeTo(screen.width,(screen.height-25))
	}
	else
		plecran=window.open(nURL, "plecran", "height="+window.screen.availHeight+", width="+(window.screen.availWidth-10)+", top=0, left=0, toolbar=no, status=no, scrollbars=no, location=no, menubar=no, directories=no, resizable=yes");
}

function getNavigatorLang() {
	var ie4 = ((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4 ))
	var ns4 = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 4 ))
	if (ie4)
		lang = navigator.userLanguage;
	else
		lang = navigator.language;
	var t_lang = lang.split('-');
	return t_lang[0];
}

function FancyUp(path_in, go_to, form_name) {
		if (!form_name) form_name='form-demo';
		params='{fk_membre:'+$(form_name).getElementById('fk_membre').value+', latitude:'+$(form_name).getElementById('latitude').value+', longitude:'+$(form_name).getElementById('longitude').value+', name_table:"'+$(form_name).getElementById('name_table').value+'", module_name:"'+$(form_name).getElementById('module_name').value+'", fk_table_name:'+$(form_name).getElementById('fk_table_name').value+', fk_category:'+$(form_name).getElementById('fk_category').value+'}';
		if (!go_to) go_to='';
		var up = new FancyUpload2($('demo-status'), $('demo-list'), { // options object
 
		
		// url is read from the form, so you just have to change one place
		url: $(form_name).action,
 
		// path to the SWF file
		path: path_in,

		target:'demo-browse-all',
 
 		queued:1,
		// remove that line to select all files, or edit it, add more items
		typeFilter: {
			'Images (*.jpg, *.jpeg, *.gif, *.png)': '*.jpg; *.jpeg; *.gif; *.png'
		},
		data:eval('(' + params + ')'),
		mergeData:true,
 
		// graceful degradation, onLoad is only called if all went well with Flash
		onLoad: function() {
			$('demo-status').removeClass('hide'); // we show the actual UI
			$('demo-fallback').destroy(); // ... and hide the plain form
 
			// We relay the interactions with the overlayed flash to the link
			this.target.addEvents({
				click: function() {
					return false;
				},
				mouseenter: function() {
					this.addClass('hover');
				},
				mouseleave: function() {
					this.removeClass('hover');
					this.blur();
				},
				mousedown: function() {
					this.focus();
				}
			});
 
			// Interactions for the 2 other buttons
 
			$('demo-clear').addEvent('click', function() {
				up.remove(); // remove all files
				return false;
			});
 
			$('demo-upload').addEvent('click', function() {
				up.start(); // start upload
				return false;
			});
		},
 
		// Edit the following lines, it is your custom event handling
 
		/**
		 * Is called when files were not added, files is an array of invalid File classes.
		 * 
		 * This example creates a list of error elements directly in the file list, which
		 * hide on click.
		 */ 
		onSelectFail: function(files) {
			files.each(function(file) {
				new Element('li', {
					'class': 'validation-error',
					html: file.validationErrorMessage || file.validationError,
					title: MooTools.lang.get('FancyUpload', 'removeTitle'),
					events: {
						click: function() {
							this.destroy();
						}
					}
				}).inject(this.list, 'top');
			}, this);
		},
 
		/**
		 * This one was directly in FancyUpload2 before, the event makes it
		 * easier for you, to add your own response handling (you probably want
		 * to send something else than JSON or different items).
		 */
		onFileSuccess: function(file, response) {
			var json = new Hash(JSON.decode(response, true) || {});
 
			if (json.get('status') == '1') {
				file.element.addClass('file-success');
				file.info.set('html', 'Image successfully uploaded: ' + json.get('width') + ' x ' + json.get('height') + 'px, <em>' + json.get('mime') + '</em>)');
			} else {
				file.element.addClass('file-failed');
				file.info.set('html', 'An error occured: ' + (json.get('error') ? (json.get('error') + ' #' + json.get('code')) : response));
			}
		},
 
		/**
		 * onFail is called when the Flash movie got bashed by some browser plugin
		 * like Adblock or Flashblock.
		 */
		onFail: function(error) {
			switch (error) {
				case 'hidden': // works after enabling the movie and clicking refresh
					alert('To enable the embedded uploader, unblock it in your browser and refresh (see Adblock).');
					break;
				case 'blocked': // This no *full* fail, it works after the user clicks the button
					alert('To enable the embedded uploader, enable the blocked Flash movie (see Flashblock).');
					break;
				case 'empty': // Oh oh, wrong path
					//alert('A required file was not found, please be patient and we fix this.');
					break;
				case 'flash': // no flash 9+ :(
					alert('To enable the embedded uploader, install the latest Adobe Flash plugin.')
			}
		},
		
		onComplete: function() {
			//alert('Upload complete');
			if (go_to)
				document.location.href=go_to;
		}
 
	});
};

function addSiteConnexion() {
	new Request({
		type: "post",
		url: "site-ajax_add_site_connexion.html",
		
		data : { 
			
		},
				
		onSuccess: function(responseText, responseXML) {			
			//alert('yes'+responseText);
		}
	}).send();
}

function loadStats(name_table,fk_table_name,fk_lang,tag,counter) {
	new Request({
		type: "post",
		url: "generique-include_stats.html",
		
		data : { 
			name_table :  name_table,
			fk_table_name : fk_table_name,		    
			fk_lang : fk_lang,
			tag : tag,
			counter : counter
		},
				
		onSuccess: function(responseText, responseXML) {			
			//alert('yes'+responseText);
		}
	}).send();
}

//�chappe les caract�res sp�ciaux
function escapeURI(La){
  if(encodeURIComponent) {
    return encodeURIComponent(La);
  }
  if(escape) {
    return escape(La)
  }
}

function sha1(msg) {

	function rotate_left(n,s) {
		var t4 = ( n<<s ) | (n>>>(32-s));
		return t4;
	};

	function lsb_hex(val) {
		var str="";
		var i;
		var vh;
		var vl;

		for( i=0; i<=6; i+=2 ) {
			vh = (val>>>(i*4+4))&0x0f;
			vl = (val>>>(i*4))&0x0f;
			str += vh.toString(16) + vl.toString(16);
		}
		return str;
	};

	function cvt_hex(val) {
		var str="";
		var i;
		var v;

		for( i=7; i>=0; i-- ) {
			v = (val>>>(i*4))&0x0f;
			str += v.toString(16);
		}
		return str;
	};


	function Utf8Encode(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;
	};

	var blockstart;
	var i, j;
	var W = new Array(80);
	var H0 = 0x67452301;
	var H1 = 0xEFCDAB89;
	var H2 = 0x98BADCFE;
	var H3 = 0x10325476;
	var H4 = 0xC3D2E1F0;
	var A, B, C, D, E;
	var temp;

	msg = Utf8Encode(msg);

	var msg_len = msg.length;

	var word_array = new Array();
	for( i=0; i<msg_len-3; i+=4 ) {
		j = msg.charCodeAt(i)<<24 | msg.charCodeAt(i+1)<<16 |
		msg.charCodeAt(i+2)<<8 | msg.charCodeAt(i+3);
		word_array.push( j );
	}

	switch( msg_len % 4 ) {
		case 0:
			i = 0x080000000;
		break;
		case 1:
			i = msg.charCodeAt(msg_len-1)<<24 | 0x0800000;
		break;

		case 2:
			i = msg.charCodeAt(msg_len-2)<<24 | msg.charCodeAt(msg_len-1)<<16 | 0x08000;
		break;

		case 3:
			i = msg.charCodeAt(msg_len-3)<<24 | msg.charCodeAt(msg_len-2)<<16 | msg.charCodeAt(msg_len-1)<<8	| 0x80;
		break;
	}

	word_array.push( i );

	while( (word_array.length % 16) != 14 ) word_array.push( 0 );

	word_array.push( msg_len>>>29 );
	word_array.push( (msg_len<<3)&0x0ffffffff );


	for ( blockstart=0; blockstart<word_array.length; blockstart+=16 ) {

		for( i=0; i<16; i++ ) W[i] = word_array[blockstart+i];
		for( i=16; i<=79; i++ ) W[i] = rotate_left(W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16], 1);

		A = H0;
		B = H1;
		C = H2;
		D = H3;
		E = H4;

		for( i= 0; i<=19; i++ ) {
			temp = (rotate_left(A,5) + ((B&C) | (~B&D)) + E + W[i] + 0x5A827999) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}

		for( i=20; i<=39; i++ ) {
			temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}

		for( i=40; i<=59; i++ ) {
			temp = (rotate_left(A,5) + ((B&C) | (B&D) | (C&D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}

		for( i=60; i<=79; i++ ) {
			temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff;
			E = D;
			D = C;
			C = rotate_left(B,30);
			B = A;
			A = temp;
		}

		H0 = (H0 + A) & 0x0ffffffff;
		H1 = (H1 + B) & 0x0ffffffff;
		H2 = (H2 + C) & 0x0ffffffff;
		H3 = (H3 + D) & 0x0ffffffff;
		H4 = (H4 + E) & 0x0ffffffff;

	}

	var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4);

	return temp.toLowerCase();

}