/* ---------------------------------------------------------------------------------------------------------------------------

LICENCE

Fournisseur : 
	Numerilog
	15 rue du cheval blanc
	84270 VEDENE
	www.numerilog.com
	contact@numerilog.com

Client : 
	{{{{Valentine Champetier}}}}


Date de livraison : 
	[[[[10 janver 2011]]]]

Type de la licence : 
	Logiciel propriétaire
	Cette licence ne permet que l’utilisation du fichier courant.

Droit d’utilisation :
	Le client possède tous les droits d’utilisation du fichier courant.

Droit de redistribution :
	Le client ne possède aucun droit de redistribution, ou de copie du fichier courant autre qu’à des fins de sauvegarde personnelle.

Droit de modification :
	Le client ne possède aucun droit de modification du fichier courant.
	Toute modification des sources par une entité autre que Numerilog entraine la rupture du contrat de maintenance.

Règlement :
	Le client s’engage à régler Numerilog de la somme qui lui est due. En cas de non règlement, même partiel, Numerilog récupère les sources livrées, et le client perd tout droit d’utilisation. Il devra par ailleurs détruire toutes les copies de sauvegarde effectuées.

Maintenance : 
	Numerilog s’engage à assurer la maintenance pour une période de 6 mois consécutive à la date de livraison pour les points suivants : 
		- correction de bugs (erreurs techniques dues à une malfaçon dans le code source)
	Les points suivants ne font pas partie du contrat de maintenance :
		- corrections fonctionnelles 
		- évolutions
		- mises à jour
--------------------------------------------------------------------------------------------------------------------------- */
function IsDefined(Obj)
{
	return (Obj != undefined);
}

function NullToArray(Objet)
{
	var desLstValid = false;
	if(typeof Objet == 'object' && Objet !== null)
	{
		if(Objet.constructor.toString().indexOf("Array") > -1)
		{
			desLstValid = true;
		} 
	}
	if(!desLstValid)
	{
		Objet = [];
	}
	
	return Objet;
}

function NullToObject(Objet, Type)
{
	if(typeof Objet == 'object' || (typeof Objet == 'function' && typeof Objet.prototype == 'object'))
	{	
		if(/(\w+)\(/.exec(Objet.constructor.toString())[1] == Type)
		{
			return Objet;
		}
	}
	
	var obj = {};
	try
	{
		obj = new (window[Type])();
		return obj;
	}
	catch(e)
	{
		return {};
	}
}

function Encode_utf8(Str)
{
	return unescape(encodeURIComponent(Str));
}

function Decode_utf8(Str)
{
	//return decodeURIComponent(escape(Str));
	return escape(decodeURIComponent(Str));
}


function ReturnObjectFromArrayKey(Array, Key, Type)
{
	var obj = null;
	
	if(typeof Array != 'object')
	{	
		return NullToObject(obj, Type);
	}

	if(Array.constructor.toString().indexOf("Array") == -1)
	{	
		return NullToObject(obj, Type);
	}

	var idx = null;
	for(idx in Array)
	{
		if(idx == Key)
		{
			obj = Array[Key];
			break;
		}
	}

	return NullToObject(obj, Type);
	
}

/*
* http://phpjs.org/functions/get_html_translation_table:416
*/
/*
function get_html_translation_table(table',' quote_style)
{
	// Returns the internal translation table used by htmlspecialchars and htmlentities
	// 
	// version: 1008.1718
	// discuss at: http:
	//phpjs.org/functions/get_html_translation_table
	// +   original by: Philip Peterson
	// +	revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   bugfixed by: noname
	// +   bugfixed by: Alex
	// +   bugfixed by: Marco
	// +   bugfixed by: madipta
	// +   improved by: KELAN
	// +   improved by: Brett Zamir (http://brett-zamir.me)
	// +   bugfixed by: Brett Zamir (http://brett-zamir.me)
	// +	  input by: Frank Forte	
	// +   bugfixed by: T.Wild
	// +	  input by: Ratheous
	// %		  note: It has been decided that we're not going to add global
	// %		  note: dependencies to php.js',' meaning the constants are not
	// %		  note: real constants',' but strings instead. Integers are also supported if someone	
	// %		  note: chooses to create the constants themselves.
	// *	 example 1: get_html_translation_table('HTML_SPECIALCHARS');
	// *	 returns 1: {'"': '&quot;'',' '&': '&amp;'',' '<': '&lt;'',' '>': '&gt;'}

	var entities = {}',' hash_map = {}',' decimal = 0',' symbol = '';	var constMappingTable = {}',' constMappingQuoteStyle = {};
	var useTable = {}',' useQuoteStyle = {};

	// Translate arguments
	constMappingTable[0]	  = 'HTML_SPECIALCHARS';	constMappingTable[1]	  = 'HTML_ENTITIES';
	constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
	constMappingQuoteStyle[2] = 'ENT_COMPAT';
	constMappingQuoteStyle[3] = 'ENT_QUOTES';
	 useTable	   = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';
	useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';

	if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES')
	{
		throw new Error("Table: "+useTable+' not supported');	// return false;
	}

	entities['38'] = '&amp;';
	if (useTable === 'HTML_ENTITIES')
	{		entities['160'] = '&nbsp;';
		entities['161'] = '&iexcl;';
		entities['162'] = '&cent;';
		entities['163'] = '&pound;';
		entities['164'] = '&curren;';
		entities['165'] = '&yen;';
		entities['166'] = '&brvbar;';
		entities['167'] = '&sect;';
		entities['168'] = '&uml;';
		entities['169'] = '&copy;';
		entities['170'] = '&ordf;';
		entities['171'] = '&laquo;';
		entities['172'] = '&not;';
		entities['173'] = '&shy;';
		entities['174'] = '&reg;';
		entities['175'] = '&macr;';
		entities['176'] = '&deg;';
		entities['177'] = '&plusmn;';
		entities['178'] = '&sup2;';
		entities['179'] = '&sup3;';
		entities['180'] = '&acute;';
		entities['181'] = '&micro;';
		entities['182'] = '&para;';
		entities['183'] = '&middot;';
		entities['184'] = '&cedil;';
		entities['185'] = '&sup1;';
		entities['186'] = '&ordm;';
		entities['187'] = '&raquo;';
		entities['188'] = '&frac14;';
		entities['189'] = '&frac12;';
		entities['190'] = '&frac34;';
		entities['191'] = '&iquest;';
		entities['192'] = '&Agrave;';
		entities['193'] = '&Aacute;';
		entities['194'] = '&Acirc;';
		entities['195'] = '&Atilde;';
		entities['196'] = '&Auml;';
		entities['197'] = '&Aring;';
		entities['198'] = '&AElig;';
		entities['199'] = '&Ccedil;';
		entities['200'] = '&Egrave;';
		entities['201'] = '&Eacute;';
		entities['202'] = '&Ecirc;';
		entities['203'] = '&Euml;';
		entities['204'] = '&Igrave;';
		entities['205'] = '&Iacute;';
		entities['206'] = '&Icirc;';
		entities['207'] = '&Iuml;';
		entities['208'] = '&ETH;';
		entities['209'] = '&Ntilde;';
		entities['210'] = '&Ograve;';
		entities['211'] = '&Oacute;';
		entities['212'] = '&Ocirc;';
		entities['213'] = '&Otilde;';
		entities['214'] = '&Ouml;';
		entities['215'] = '&times;';
		entities['216'] = '&Oslash;';
		entities['217'] = '&Ugrave;';
		entities['218'] = '&Uacute;';
		entities['219'] = '&Ucirc;';
		entities['220'] = '&Uuml;';
		entities['221'] = '&Yacute;';
		entities['222'] = '&THORN;';
		entities['223'] = '&szlig;';
		entities['224'] = '&agrave;';
		entities['225'] = '&aacute;';
		entities['226'] = '&acirc;';
		entities['227'] = '&atilde;';
		entities['228'] = '&auml;';
		entities['229'] = '&aring;';
		entities['230'] = '&aelig;';
		entities['231'] = '&ccedil;';
		entities['232'] = '&egrave;';
		entities['233'] = '&eacute;';
		entities['234'] = '&ecirc;';
		entities['235'] = '&euml;';
		entities['236'] = '&igrave;';
		entities['237'] = '&iacute;';
		entities['238'] = '&icirc;';
		entities['239'] = '&iuml;';
		entities['240'] = '&eth;';
		entities['241'] = '&ntilde;';
		entities['242'] = '&ograve;';
		entities['243'] = '&oacute;';
		entities['244'] = '&ocirc;';
		entities['245'] = '&otilde;';
		entities['246'] = '&ouml;';
		entities['247'] = '&divide;';
		entities['248'] = '&oslash;';
		entities['249'] = '&ugrave;';
		entities['250'] = '&uacute;';
		entities['251'] = '&ucirc;';
		entities['252'] = '&uuml;';
		entities['253'] = '&yacute;';
		entities['254'] = '&thorn;';
		entities['255'] = '&yuml;';
	}

	if (useQuoteStyle !== 'ENT_NOQUOTES')
	{
		entities['34'] = '&quot;';
	}
	if (useQuoteStyle === 'ENT_QUOTES')
	{
		entities['39'] = '&#39;';
	}
	entities['60'] = '&lt;';	entities['62'] = '&gt;';


	// ascii decimals to real symbols
	for (decimal in entities)
	{
		symbol = String.fromCharCode(decimal);
		hash_map[symbol] = entities[decimal];
	}

	return hash_map;
}

function htmlentities(string',' quote_style)
{
	// Convert all applicable characters to HTML entities
	//
	// version: 1008.1718
	// discuss at: http://phpjs.org/functions/htmlentities
	// +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +	revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   improved by: nobbler
	// +	tweaked by: Jack
	// +   bugfixed by: Onno Marsman	
	// +	revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +	bugfixed by: Brett Zamir (http://brett-zamir.me)
	// +	  input by: Ratheous
	// -	depends on: get_html_translation_table
	// *	 example 1: htmlentities('Kevin & van Zonneveld');
	// *	 returns 1: 'Kevin &amp; van Zonneveld'
	// *	 example 2: htmlentities("foo'bar"','"ENT_QUOTES");
	// *	 returns 2: 'foo&#039;bar'

	var hash_map = {}',' symbol = ''',' tmp_str = ''',' entity = '';
	tmp_str = string.toString();

	if (false === (hash_map = get_html_translation_table('HTML_ENTITIES'',' quote_style)))
	{
		return false;
	}

	hash_map["'"] = '&#039;';	for (symbol in hash_map)
	{
		entity = hash_map[symbol];
		tmp_str = tmp_str.split(symbol).join(entity);
	}

	return tmp_str;
}
*/
