/*******************************************************
* supprimer une ligne d'un tableau
* function from http://www.wikistuce.info/doku.php/javascript/supprimer_une_ligne_dans_un_tableau
********************************************************/
function unsetInArray(array, index){
	var output=[];
	for(var i in array){
		if (i!=index)
			output[i]=array[i];
	}
	return output;
}

function insertInArray(array, index, value){
	var output=[];
	var length = array.length;
	for(var i=0; i<length; i++){
		if (i<index) {
			output[i]=array[i];
		} else if (i==index) {
			output[i]=value;
			output[i+1]=array[i];
		} else if (i>index) {
			output[i+1]=array[i];
		}
	}
	return output;
}

function removeInArray(array, index){
	var output=[];
	var length = array.length;
	for(var i=0; i<length; i++){
		if (i<index) {
			output[i]=array[i];
		} else if (i>index) {
			output[i-1]=array[i];
		}
	}
	return output;
}

/*******************************************************
* Ajoute des virgules
* Basic Javascript number formatting function from http://www.mredkj.com/javascript/nfbasic.html
********************************************************/
function addCommas(nStr){
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}

/*******************************************************
* Message
********************************************************/
function displayMsg(el,msg){
    el.body.update(msg);
}

/*******************************************************
* Fonction d'activation du contrle spcifi
********************************************************/
function activateControl(control) {
    for (thisControl in tbar_items) {
        if (thisControl == control) {
            tbar_items[thisControl].activate();
        } else {
            tbar_items[thisControl].deactivate();
        }
    }
}

/*******************************************************
* Fonction de dsactivation du contrle spcifi
********************************************************/
function deactivateControl(control) {
    if (control == 'all') {
        for (thisControl in tbar_items) {
            tbar_items[thisControl].deactivate();
        }
    } else {
        tbar_items[control].deactivate();
    }
}

/*******************************************************
* Opens a window with the measurement_output html div as its content
  the measure toll will display totals in the window
********************************************************/
function openMeasure(){
   measureWin = MeasureWin.getInstance();
   measureWin.show();
   tbar_items.measure.events.on({
      "measure": MeasureWin.getInstance().handleEndMeasurements
      ,"measurepartial": MeasureWin.getInstance().handleMeasurements
   });
}

/*******************************************************
* Trouve la couhe dont l'ID est ident
********************************************************/
function getLayerByIdentFromMap(ident){
    foundLayer = null;
    for (var i=0; i<map.layers.length; i++) {
        var layer = map.layers[i];
        if (layer.name == ident){
            foundLayer = layer;
        }
    }
    return foundLayer;
}

/*******************************************************
* Dtermine si la couche (ident) est visible
********************************************************/
function getLayerVisibilityFromArray(ident){
    foundLayer = null;
    for (var i=0; i<layers.length; i++) {
        var aLayer = layers[i];
        if (aLayer.name == ident){
            foundLayer = aLayer;
        }
    }
    return foundLayer.visibility;
}

/*******************************************************
* encodage decodage
http://www.wikistuce.info/doku.php/javascript/htmlentites_et_html_entity_decode_comme_en_php
********************************************************/
function decode(texte) {
	texte = texte.replace(/Ã©/g,''); // 34 22
	texte = texte.replace(/Ã¨/g,''); // 34 22
	return texte;
}

/*******************************************************
* encodage decodage html-texte
http://www.wikistuce.info/doku.php/javascript/htmlentites_et_html_entity_decode_comme_en_php
********************************************************/
//Encode une chane
function htmlentities(texte) {
	texte = texte.replace(/"/g,'&quot;'); // 34 22
	texte = texte.replace(/&/g,'&amp;'); // 38 26
	texte = texte.replace(/\'/g,'&#39;'); // 39 27
	texte = texte.replace(/</g,'&lt;'); // 60 3C
	texte = texte.replace(/>/g,'&gt;'); // 62 3E
	texte = texte.replace(/\^/g,'&circ;'); // 94 5E
	texte = texte.replace(//g,'&lsquo;'); // 145 91
	texte = texte.replace(//g,'&rsquo;'); // 146 92
	texte = texte.replace(//g,'&ldquo;'); // 147 93
	texte = texte.replace(//g,'&rdquo;'); // 148 94
	texte = texte.replace(//g,'&bull;'); // 149 95
	texte = texte.replace(//g,'&ndash;'); // 150 96
	texte = texte.replace(//g,'&mdash;'); // 151 97
	texte = texte.replace(//g,'&tilde;'); // 152 98
	texte = texte.replace(//g,'&trade;'); // 153 99
	texte = texte.replace(//g,'&scaron;'); // 154 9A
	texte = texte.replace(//g,'&rsaquo;'); // 155 9B
	texte = texte.replace(//g,'&oelig;'); // 156 9C
	texte = texte.replace(//g,'&#357;'); // 157 9D
	texte = texte.replace(//g,'&#382;'); // 158 9E
	texte = texte.replace(//g,'&Yuml;'); // 159 9F
	texte = texte.replace(/ /g,'&nbsp;'); // 160 A0
	texte = texte.replace(//g,'&iexcl;'); // 161 A1
	texte = texte.replace(//g,'&cent;'); // 162 A2
	texte = texte.replace(//g,'&pound;'); // 163 A3
	texte = texte.replace(/ /g,'&curren;'); // 164 A4
	texte = texte.replace(//g,'&yen;'); // 165 A5
	texte = texte.replace(//g,'&brvbar;'); // 166 A6
	texte = texte.replace(//g,'&sect;'); // 167 A7
	texte = texte.replace(//g,'&uml;'); // 168 A8
	texte = texte.replace(//g,'&copy;'); // 169 A9
	texte = texte.replace(//g,'&ordf;'); // 170 AA
	texte = texte.replace(//g,'&laquo;'); // 171 AB
	texte = texte.replace(//g,'&not;'); // 172 AC
	texte = texte.replace(//g,'&shy;'); // 173 AD
	texte = texte.replace(//g,'&reg;'); // 174 AE
	texte = texte.replace(//g,'&macr;'); // 175 AF
	texte = texte.replace(//g,'&deg;'); // 176 B0
	texte = texte.replace(//g,'&plusmn;'); // 177 B1
	texte = texte.replace(//g,'&sup2;'); // 178 B2
	texte = texte.replace(//g,'&sup3;'); // 179 B3
	texte = texte.replace(//g,'&acute;'); // 180 B4
	texte = texte.replace(//g,'&micro;'); // 181 B5
	texte = texte.replace(//g,'&para'); // 182 B6
	texte = texte.replace(//g,'&middot;'); // 183 B7
	texte = texte.replace(//g,'&cedil;'); // 184 B8
	texte = texte.replace(//g,'&sup1;'); // 185 B9
	texte = texte.replace(//g,'&ordm;'); // 186 BA
	texte = texte.replace(//g,'&raquo;'); // 187 BB
	texte = texte.replace(//g,'&frac14;'); // 188 BC
	texte = texte.replace(//g,'&frac12;'); // 189 BD
	texte = texte.replace(//g,'&frac34;'); // 190 BE
	texte = texte.replace(//g,'&iquest;'); // 191 BF
	texte = texte.replace(//g,'&Agrave;'); // 192 C0
	texte = texte.replace(//g,'&Aacute;'); // 193 C1
	texte = texte.replace(//g,'&Acirc;'); // 194 C2
	texte = texte.replace(//g,'&Atilde;'); // 195 C3
	texte = texte.replace(//g,'&Auml;'); // 196 C4
	texte = texte.replace(//g,'&Aring;'); // 197 C5
	texte = texte.replace(//g,'&AElig;'); // 198 C6
	texte = texte.replace(//g,'&Ccedil;'); // 199 C7
	texte = texte.replace(//g,'&Egrave;'); // 200 C8
	texte = texte.replace(//g,'&Eacute;'); // 201 C9
	texte = texte.replace(//g,'&Ecirc;'); // 202 CA
	texte = texte.replace(//g,'&Euml;'); // 203 CB
	texte = texte.replace(//g,'&Igrave;'); // 204 CC
	texte = texte.replace(//g,'&Iacute;'); // 205 CD
	texte = texte.replace(//g,'&Icirc;'); // 206 CE
	texte = texte.replace(//g,'&Iuml;'); // 207 CF
	texte = texte.replace(//g,'&ETH;'); // 208 D0
	texte = texte.replace(//g,'&Ntilde;'); // 209 D1
	texte = texte.replace(//g,'&Ograve;'); // 210 D2
	texte = texte.replace(//g,'&Oacute;'); // 211 D3
	texte = texte.replace(//g,'&Ocirc;'); // 212 D4
	texte = texte.replace(//g,'&Otilde;'); // 213 D5
	texte = texte.replace(//g,'&Ouml;'); // 214 D6
	texte = texte.replace(//g,'&times;'); // 215 D7
	texte = texte.replace(//g,'&Oslash;'); // 216 D8
	texte = texte.replace(//g,'&Ugrave;'); // 217 D9
	texte = texte.replace(//g,'&Uacute;'); // 218 DA
	texte = texte.replace(//g,'&Ucirc;'); // 219 DB
	texte = texte.replace(//g,'&Uuml;'); // 220 DC
	texte = texte.replace(//g,'&Yacute;'); // 221 DD
	texte = texte.replace(//g,'&THORN;'); // 222 DE
	texte = texte.replace(//g,'&szlig;'); // 223 DF
	texte = texte.replace(//g,'&agrave;'); // 224 E0
	texte = texte.replace(//g,'&aacute;'); // 225 E1
	texte = texte.replace(//g,'&acirc;'); // 226 E2
	texte = texte.replace(//g,'&atilde;'); // 227 E3
	texte = texte.replace(//g,'&auml;'); // 228 E4
	texte = texte.replace(//g,'&aring;'); // 229 E5
	texte = texte.replace(//g,'&aelig;'); // 230 E6
	texte = texte.replace(//g,'&ccedil;'); // 231 E7
	texte = texte.replace(//g,'&egrave;'); // 232 E8
	texte = texte.replace(//g,'&eacute;'); // 233 E9
	texte = texte.replace(//g,'&ecirc;'); // 234 EA
	texte = texte.replace(//g,'&euml;'); // 235 EB
	texte = texte.replace(//g,'&igrave;'); // 236 EC
	texte = texte.replace(//g,'&iacute;'); // 237 ED
	texte = texte.replace(//g,'&icirc;'); // 238 EE
	texte = texte.replace(//g,'&iuml;'); // 239 EF
	texte = texte.replace(//g,'&eth;'); // 240 F0
	texte = texte.replace(//g,'&ntilde;'); // 241 F1
	texte = texte.replace(//g,'&ograve;'); // 242 F2
	texte = texte.replace(//g,'&oacute;'); // 243 F3
	texte = texte.replace(//g,'&ocirc;'); // 244 F4
	texte = texte.replace(//g,'&otilde;'); // 245 F5
	texte = texte.replace(//g,'&ouml;'); // 246 F6
	texte = texte.replace(//g,'&divide;'); // 247 F7
	texte = texte.replace(//g,'&oslash;'); // 248 F8
	texte = texte.replace(//g,'&ugrave;'); // 249 F9
	texte = texte.replace(//g,'&uacute;'); // 250 FA
	texte = texte.replace(//g,'&ucirc;'); // 251 FB
	texte = texte.replace(//g,'&uuml;'); // 252 FC
	texte = texte.replace(//g,'&yacute;'); // 253 FD
	texte = texte.replace(//g,'&thorn;'); // 254 FE
	texte = texte.replace(//g,'&yuml;'); // 255 FF
	return texte;
}
//Dcode une chane
function html_entity_decode(texte) {
	texte = texte.replace(/&quot;/g,'"'); // 34 22
	texte = texte.replace(/&amp;/g,'&'); // 38 26	
	texte = texte.replace(/&#39;/g,"'"); // 39 27
	texte = texte.replace(/&lt;/g,'<'); // 60 3C
	texte = texte.replace(/&gt;/g,'>'); // 62 3E
	texte = texte.replace(/&circ;/g,'^'); // 94 5E
	texte = texte.replace(/&lsquo;/g,''); // 145 91
	texte = texte.replace(/&rsquo;/g,''); // 146 92
	texte = texte.replace(/&ldquo;/g,''); // 147 93
	texte = texte.replace(/&rdquo;/g,''); // 148 94
	texte = texte.replace(/&bull;/g,''); // 149 95
	texte = texte.replace(/&ndash;/g,''); // 150 96
	texte = texte.replace(/&mdash;/g,''); // 151 97
	texte = texte.replace(/&tilde;/g,''); // 152 98
	texte = texte.replace(/&trade;/g,''); // 153 99
	texte = texte.replace(/&scaron;/g,''); // 154 9A
	texte = texte.replace(/&rsaquo;/g,''); // 155 9B
	texte = texte.replace(/&oelig;/g,''); // 156 9C
	texte = texte.replace(/&#357;/g,''); // 157 9D
	texte = texte.replace(/&#382;/g,''); // 158 9E
	texte = texte.replace(/&Yuml;/g,''); // 159 9F
	texte = texte.replace(/&nbsp;/g,' '); // 160 A0
	texte = texte.replace(/&iexcl;/g,''); // 161 A1
	texte = texte.replace(/&cent;/g,''); // 162 A2
	texte = texte.replace(/&pound;/g,''); // 163 A3
	texte = texte.replace(/&curren;/g,' '); // 164 A4
	texte = texte.replace(/&yen;/g,''); // 165 A5
	texte = texte.replace(/&brvbar;/g,''); // 166 A6
	texte = texte.replace(/&sect;/g,''); // 167 A7
	texte = texte.replace(/&uml;/g,''); // 168 A8
	texte = texte.replace(/&copy;/g,''); // 169 A9
	texte = texte.replace(/&ordf;/g,''); // 170 AA
	texte = texte.replace(/&laquo;/g,''); // 171 AB
	texte = texte.replace(/&not;/g,''); // 172 AC
	texte = texte.replace(/&shy;/g,''); // 173 AD
	texte = texte.replace(/&reg;/g,''); // 174 AE
	texte = texte.replace(/&macr;/g,''); // 175 AF
	texte = texte.replace(/&deg;/g,''); // 176 B0
	texte = texte.replace(/&plusmn;/g,''); // 177 B1
	texte = texte.replace(/&sup2;/g,''); // 178 B2
	texte = texte.replace(/&sup3;/g,''); // 179 B3
	texte = texte.replace(/&acute;/g,''); // 180 B4
	texte = texte.replace(/&micro;/g,''); // 181 B5
	texte = texte.replace(/&para/g,''); // 182 B6
	texte = texte.replace(/&middot;/g,''); // 183 B7
	texte = texte.replace(/&cedil;/g,''); // 184 B8
	texte = texte.replace(/&sup1;/g,''); // 185 B9
	texte = texte.replace(/&ordm;/g,''); // 186 BA
	texte = texte.replace(/&raquo;/g,''); // 187 BB
	texte = texte.replace(/&frac14;/g,''); // 188 BC
	texte = texte.replace(/&frac12;/g,''); // 189 BD
	texte = texte.replace(/&frac34;/g,''); // 190 BE
	texte = texte.replace(/&iquest;/g,''); // 191 BF
	texte = texte.replace(/&Agrave;/g,''); // 192 C0
	texte = texte.replace(/&Aacute;/g,''); // 193 C1
	texte = texte.replace(/&Acirc;/g,''); // 194 C2
	texte = texte.replace(/&Atilde;/g,''); // 195 C3
	texte = texte.replace(/&Auml;/g,''); // 196 C4
	texte = texte.replace(/&Aring;/g,''); // 197 C5
	texte = texte.replace(/&AElig;/g,''); // 198 C6
	texte = texte.replace(/&Ccedil;/g,''); // 199 C7
	texte = texte.replace(/&Egrave;/g,''); // 200 C8
	texte = texte.replace(/&Eacute;/g,''); // 201 C9
	texte = texte.replace(/&Ecirc;/g,''); // 202 CA
	texte = texte.replace(/&Euml;/g,''); // 203 CB
	texte = texte.replace(/&Igrave;/g,''); // 204 CC
	texte = texte.replace(/&Iacute;/g,''); // 205 CD
	texte = texte.replace(/&Icirc;/g,''); // 206 CE
	texte = texte.replace(/&Iuml;/g,''); // 207 CF
	texte = texte.replace(/&ETH;/g,''); // 208 D0
	texte = texte.replace(/&Ntilde;/g,''); // 209 D1
	texte = texte.replace(/&Ograve;/g,''); // 210 D2
	texte = texte.replace(/&Oacute;/g,''); // 211 D3
	texte = texte.replace(/&Ocirc;/g,''); // 212 D4
	texte = texte.replace(/&Otilde;/g,''); // 213 D5
	texte = texte.replace(/&Ouml;/g,''); // 214 D6
	texte = texte.replace(/&times;/g,''); // 215 D7
	texte = texte.replace(/&Oslash;/g,''); // 216 D8
	texte = texte.replace(/&Ugrave;/g,''); // 217 D9
	texte = texte.replace(/&Uacute;/g,''); // 218 DA
	texte = texte.replace(/&Ucirc;/g,''); // 219 DB
	texte = texte.replace(/&Uuml;/g,''); // 220 DC
	texte = texte.replace(/&Yacute;/g,''); // 221 DD
	texte = texte.replace(/&THORN;/g,''); // 222 DE
	texte = texte.replace(/&szlig;/g,''); // 223 DF
	texte = texte.replace(/&agrave;/g,''); // 224 E0
	texte = texte.replace(/&aacute;/g,''); // 225 E1
	texte = texte.replace(/&acirc;/g,''); // 226 E2
	texte = texte.replace(/&atilde;/g,''); // 227 E3
	texte = texte.replace(/&auml;/g,''); // 228 E4
	texte = texte.replace(/&aring;/g,''); // 229 E5
	texte = texte.replace(/&aelig;/g,''); // 230 E6
	texte = texte.replace(/&ccedil;/g,''); // 231 E7
	texte = texte.replace(/&egrave;/g,''); // 232 E8
	texte = texte.replace(/&eacute;/g,''); // 233 E9
	texte = texte.replace(/&ecirc;/g,''); // 234 EA
	texte = texte.replace(/&euml;/g,''); // 235 EB
	texte = texte.replace(/&igrave;/g,''); // 236 EC
	texte = texte.replace(/&iacute;/g,''); // 237 ED
	texte = texte.replace(/&icirc;/g,''); // 238 EE
	texte = texte.replace(/&iuml;/g,''); // 239 EF
	texte = texte.replace(/&eth;/g,''); // 240 F0
	texte = texte.replace(/&ntilde;/g,''); // 241 F1
	texte = texte.replace(/&ograve;/g,''); // 242 F2
	texte = texte.replace(/&oacute;/g,''); // 243 F3
	texte = texte.replace(/&ocirc;/g,''); // 244 F4
	texte = texte.replace(/&otilde;/g,''); // 245 F5
	texte = texte.replace(/&ouml;/g,''); // 246 F6
	texte = texte.replace(/&divide;/g,''); // 247 F7
	texte = texte.replace(/&oslash;/g,''); // 248 F8
	texte = texte.replace(/&ugrave;/g,''); // 249 F9
	texte = texte.replace(/&uacute;/g,''); // 250 FA
	texte = texte.replace(/&ucirc;/g,''); // 251 FB
	texte = texte.replace(/&uuml;/g,''); // 252 FC
	texte = texte.replace(/&yacute;/g,''); // 253 FD
	texte = texte.replace(/&thorn;/g,''); // 254 FE
	texte = texte.replace(/&yuml;/g,''); // 255 FF
	return texte;
}


