Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 216 | Rev 225 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
207 aurelien 1
function getUrlBaseJrest() {
2
 
3
	url_page_courante = document.URL;
4
 
5
	if(url_page_courante.indexOf('http://www.') != -1) {
6
		return urlBaseJrest;
7
	} else {
8
		return urlBaseJrest.replace('http://www.','http://');
9
	}
10
}
11
 
54 aurelien 12
/**
13
	************************************************************************************************
14
	************************************************************************************************
15
 
16
	   Fonction permettant de transformer les élements de la classe pliage en accordéon
17
 
18
	************************************************************************************************
19
	************************************************************************************************
20
**/
21
function initialiserElementsPliables() {
22
 
23
	$('.pliage h4').addClass('lien_pliage');
24
 
25
	$('.pliage ul').hide();
26
	$('.pliage > ul:first-child').hide();
207 aurelien 27
 
188 aurelien 28
	$('.1er_element_date ul').show();
29
	$('.1er_element_date > ul:first-child').show();
54 aurelien 30
 
31
	$('.lien_pliage').bind('click', function() {
32
 
33
		$(this).nextAll('ul').slideToggle();
34
		return false;
35
	});
36
}
37
 
38
$('.pliage').ready(function() {
39
	initialiserElementsPliables();
40
});
41
 
42
 
43
/**
44
	************************************************************************************************
45
	************************************************************************************************
46
 
47
	   Fonctions de gestion des onglets du formulaire de saisie d'espèce
48
 
49
	************************************************************************************************
50
	************************************************************************************************
51
**/
52
function initialiserOnglets() {
53
	$(".contenu_onglet").hide();
54
	$("ul.liste_onglets li:first").addClass("active").show();
55
	$(".contenu_onglet:first").show();
56
 
57
	$("ul.liste_onglets li").click(function() {
58
 
59
		$("ul.liste_onglets li").removeClass("active");
60
		$(this).addClass("active");
61
		$(".contenu_onglet").hide();
62
 
63
		var activeTab = $(this).find("a").attr("href");
64
		$(activeTab).fadeIn();
65
		return false;
66
	});
67
}
68
 
69
$('.contenu_onglet').ready(function() {
70
	initialiserOnglets();
71
});
72
 
73
function agrandirZoneCLicBoutonsRadios() {
74
 
75
	$('.formulaire_informations_espece_mini').addClass("element_cliquable");
76
 
77
	$('#form_saisie_espece').children('input[type="submit"]').hide();
78
	$('.formulaire_informations_espece_mini').children('input[type="radio"]').hide();
79
	$('.titre_type').hide();
80
 
81
	$('.formulaire_informations_espece_mini').bind('click',function() {
82
		$(this).children('input[type="radio"]').attr('checked','checked');
83
		$('.formulaire_informations_espece_mini').removeClass('element_clique');
84
		$(this).addClass('element_clique');
85
 
86
		$('#form_saisie_espece').submit();
87
	});
88
}
89
 
90
$('#form_saisie_espece').ready(function() {
91
	agrandirZoneCLicBoutonsRadios();
92
});
93
 
94
 
207 aurelien 95
 
96
 
54 aurelien 97
/**
98
	************************************************************************************************
99
	************************************************************************************************
100
 
101
	   Fonctions permettant de transformer les cases du tableau d'évenements en mini formulaire
102
 
103
	************************************************************************************************
104
	************************************************************************************************
105
**/
106
 
107
htmlEnCours = '';
108
elementEnCours = null;
216 aurelien 109
ancienneValeurEnCours = null;
54 aurelien 110
 
111
function initialiserLignesCliquables() {
112
 
113
	$('.conteneur_element_modifier').hide();
114
 
115
	$(".date_observation_individu").each(function() {
116
 
117
		$(this).bind('click', function() {
118
 
119
			if($(this).hasClass('element_clique')) {
120
				return false;
121
			} else {
122
 
123
				conteneur_obs = $(this).children('span');
124
				id_formulaire = conteneur_obs.attr('id');
125
 
126
				remplacerElementDateParFormulaireAjax(id_formulaire, $(this));
127
 
128
				return false;
129
			}
130
		});
131
	});
132
}
133
 
134
function initialiserCalendrierFormulaire() {
135
 
224 aurelien 136
	dateMin = getDateMinCalendrier();
137
	dateMax = getDateMaxCalendrier();
54 aurelien 138
 
139
	$(".calendrier").each(function() {
140
		$(this).find("input").datepicker({
141
			disabled: true,
142
			altFormat: 'dd/mm/yyyy',
224 aurelien 143
			minDate: dateMin,
144
			maxDate: dateMax
54 aurelien 145
 
146
		});
147
	});
148
}
149
 
150
$(document).ready(function() {
151
	initialiserCalendrierFormulaire();
152
 
153
});
154
 
90 aurelien 155
function estUneDateValide(peutEtreUneDate) {
156
	var reg= new RegExp("^[0-3][0-9][/]{1}[0-1][0-2][/]{1}[0-9]{4}$","g");
157
	return reg.test(peutEtreUneDate);
158
}
159
 
216 aurelien 160
function getAnneeEnCoursDeConsultation() {
54 aurelien 161
 
162
	anneeEnCours = jQuery.trim($("#annee_en_cours").html());
163
 
164
	if(typeof(anneeEnCours)=='undefined'){
165
		dateCourante = new Date();
166
		anneeEnCours = dateCourante.getFullYear();
167
	}
168
 
216 aurelien 169
	return anneeEnCours;
170
}
171
 
224 aurelien 172
function getDateMinCalendrier() {
173
	anneeEnCours = getAnneeEnCoursDeConsultation();
174
	dateMin = '01/01/'+anneeEnCours;
175
 
176
	return dateMin;
177
}
178
 
179
function getDateMaxCalendrier() {
180
 
181
	anneeEnCours = getAnneeEnCoursDeConsultation();
182
 
183
	dateMax = '31/12/'+anneeEnCours;
184
 
185
	dateCourante = new Date();
186
	if(anneeEnCours == dateCourante.getFullYear()) {
187
		dateMax = dateCourante.getDate()+'/'+dateCourante.getMonth()+'/'+anneeEnCours;
188
	}
189
 
190
	return dateMax;
191
}
192
 
216 aurelien 193
/** Fonctions de manipulation des éléments du tableau pour les transformer en élements cliquables et calendriers **/
194
function initialiserMiniCalendrierFormulaire(id_element) {
195
 
224 aurelien 196
	dateMin = getDateMinCalendrier();
197
	dateMax = getDateMaxCalendrier();
216 aurelien 198
 
90 aurelien 199
	$('#'+id_element)
200
	.datepicker({
54 aurelien 201
		disabled: true,
90 aurelien 202
		constrainInput: true,
54 aurelien 203
		altFormat: 'dd/mm/yyyy',
224 aurelien 204
		minDate: dateMin,
205
		maxDate: dateMax,
90 aurelien 206
		onSelect: function(dateText, inst) {
207
			$('#'+id_element).val(dateText);
208
			donnees_obs = collecterDonneesMiniFormulaire(id_formulaire);
209
			envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire);
210 aurelien 210
		},
211
		onClose: function(dateText, inst) {
212
			gererFermetureMiniCalendrier(dateText,id_formulaire);
90 aurelien 213
		}
54 aurelien 214
	});
90 aurelien 215
 
216
	$('#'+id_element).datepicker( "show" );
54 aurelien 217
}
218
 
210 aurelien 219
function gererFermetureMiniCalendrier(dateText, id_formulaire) {
220
 
216 aurelien 221
	ancienne_valeur_date = jQuery.trim(ancienneValeurEnCours);
222
	nouvelle_valeur_date = jQuery.trim(dateText);
210 aurelien 223
 
216 aurelien 224
	if(nouvelle_valeur_date == '' && ancienne_valeur_date != '-' && ancienne_valeur_date != nouvelle_valeur_date) {
210 aurelien 225
		if(window.confirm("Voulez vous supprimer cette observation ?")) {
216 aurelien 226
			$('#'+id_formulaire).val(nouvelle_valeur_date);
227
			donnees_obs = collecterDonneesMiniFormulaire(id_formulaire);
228
			envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire);
229
		} else {
230
			$('#'+id_formulaire).val(ancienne_valeur_date);
231
			remplacerMiniFormulaireParElementDate(id_formulaire);
210 aurelien 232
		}
233
	}
234
}
235
 
54 aurelien 236
function remplacerElementDateParFormulaireAjax(id_element, conteneur_selectionne) {
237
 
238
	if(elementEnCours != null) {
239
		elementEnCours.removeClass('element_clique');
240
		elementEnCours.html(htmlEnCours);
216 aurelien 241
		ancienneValeurEnCours = null;
54 aurelien 242
	}
243
 
216 aurelien 244
	ancienneValeurEnCours = conteneur_selectionne.children('span').html()
54 aurelien 245
	elementEnCours = conteneur_selectionne;
246
	htmlEnCours = conteneur_selectionne.html();
247
 
248
	conteneur_obs = $('#'+id_element);
249
	valeur_date = conteneur_obs.html();
250
	valeur_date = valeur_date.replace('-','');
90 aurelien 251
 
54 aurelien 252
	conteneur_selectionne.addClass('element_clique');
90 aurelien 253
	conteneur_selectionne.html('<span class="calendrier"><input type="text" value="'+jQuery.trim(valeur_date)+'" class="calendrier" id="'+id_formulaire+'" size="7" maxlenght="10" /></div>');
54 aurelien 254
	initialiserMiniCalendrierFormulaire(id_formulaire);
255
 
256
}
257
 
258
function remplacerMiniFormulaireParElementDate(id_element) {
259
 
90 aurelien 260
	valeur_date_pour_stade = $('#'+id_element).val();
261
 
216 aurelien 262
	if(jQuery.trim(valeur_date_pour_stade) == '') {
263
		valeur_date_pour_stade = '-';
264
	}
265
 
54 aurelien 266
	elementEnCours.html('<span id="'+id_element+'">'+valeur_date_pour_stade+' </span>');
267
	elementEnCours.removeClass('element_clique');
268
	elementEnCours = null;
216 aurelien 269
	ancienneValeurEnCours = null;
100 aurelien 270
 
54 aurelien 271
}
272
 
273
 
274
/** Fonctions d'envoi et de récupération des élements du formulaire ajax **/
275
function envoyerRequeteAjaxValidationMiniFormulaire(donnees_obs, id_formulaire) {
276
 
100 aurelien 277
	url_page_courante = document.URL;
278
	url_page_courante = url_page_courante.replace('module=Individu','module=Observation');
279
	url_page_courante = url_page_courante.replace('action=afficherListeIndividu','action=validerFormulaireModificationObservationAjax');
280
	url_ajax = url_page_courante.replace('action=validerFormulaireSaisieIndividu','action=validerFormulaireModificationObservationAjax');
281
 
282
	$.post(url_ajax, donnees_obs, function(obj_retour) {
283
 
54 aurelien 284
		if(obj_retour.reponse === 'OK') {
285
			remplacerMiniFormulaireParElementDate(id_formulaire);
286
		}
287
	});
288
}
289
 
290
function collecterDonneesMiniFormulaire(id_formulaire) {
291
 
292
	valeur_date_pour_stade = $('#'+id_formulaire).val();
293
 
216 aurelien 294
	if(valeur_date_pour_stade == null ) {
54 aurelien 295
		return false ;
296
	}
297
 
216 aurelien 298
	if(jQuery.trim(valeur_date_pour_stade) == '') {
299
		valeur_date_pour_stade = '00/00/'+anneeEnCours;
300
	}
301
 
54 aurelien 302
	id_individu_stade_obs = id_formulaire.split('_');
303
 
304
	stade_obs = 'observation_'+id_individu_stade_obs[3];
305
	date_annee_en_cours = jQuery.trim($("#annee_en_cours").html());
306
 
307
	donnees_obs = { "id_individu": id_individu_stade_obs[1],
90 aurelien 308
					"annee_en_cours": date_annee_en_cours
54 aurelien 309
					};
310
 
90 aurelien 311
	identifiant_observation = 'observation_'+id_individu_stade_obs[3];
54 aurelien 312
 
90 aurelien 313
	donnees_obs[identifiant_observation] = valeur_date_pour_stade;
314
 
54 aurelien 315
	return donnees_obs;
316
}
317
 
318
 
319
$('#saisie_liste_evenements').ready(function() {
320
	initialiserLignesCliquables();
321
});
322
 
323
 
324
 
325
 
326
/**
327
	************************************************************************************************
328
	************************************************************************************************
329
 
330
	    Fonctions concernant la carte permettant de pointer d'afficher l'emplacement des stations
331
 
332
	************************************************************************************************
333
	************************************************************************************************
334
**/
335
var map;
336
var marker;
100 aurelien 337
var liste_localite_en_cours;
338
var indice_commune_en_cours;
339
var liste_auto_completion_a_le_focus;
340
var timerRequeteAutocompletion;
341
var timerAffichageAutocompletion;
54 aurelien 342
 
100 aurelien 343
 
344
function cacherElementsRafraichissables() {
345
	$('.rafraichissable input').attr('disabled', 'disabled');
346
	$('.rafraichissable input[type="text"]').addClass("chargement");
347
}
348
 
349
function montrerElementsRafraichissables() {
350
	$('.rafraichissable input').removeAttr('disabled');
351
	$('.chargement').removeClass("chargement");
352
}
353
 
354
function ajouterAutoCompletionCommune() {
355
 
356
	$('input#station_commune').after('<div class="conteneur_suggestions"></div>');
357
	$('input#station_commune').parent().addClass('autocompletion');
358
	$('input#station_commune').attr('autocomplete','off');
359
	$('.conteneur_suggestions').hide();
360
	rendreListeAutoCompletionInteractive('input#station_commune');
361
}
362
 
54 aurelien 363
function ajouterListenerFormulaireSaisieLatLon() {
100 aurelien 364
 
54 aurelien 365
	$('input#localiser_lat_lon').click(function() {
366
		verifierEtLocaliserCoordonnees();
367
	});
368
}
369
 
370
function carteEstEnSaisie() {
371
	return ($('#conteneur_form_liens_lat_lon').length > 0);
372
}
373
 
374
function verifierEtLocaliserCoordonnees() {
375
 
376
	lat ;
377
	lon;
378
 
379
	if(carteEstEnSaisie()) {
380
		lat = $('#station_lat').val();
381
		lon = $('#station_lon').val();
100 aurelien 382
 
383
		obtenirInformationsPourCoordonnees(lat, lon);
54 aurelien 384
	} else {
385
		var lat = jQuery.trim($('#station_lat').html());
386
		var lon = jQuery.trim($('#station_lon').html());
387
	}
388
 
389
	if(jQuery.trim(lat) == '' || jQuery.trim(lon) == '') {
390
		return;
391
	}
392
 
393
	if(!isNaN(lat) && lat.length > 0 && !isNaN(lon) && lon.length > 0) {
394
 
395
	} else {
396
		window.alert("coordonnées invalides");
397
	}
398
 
399
	var positionMarker = new google.maps.LatLng(lat, lon);
400
 
401
	marker.setPosition(positionMarker);
402
	map.setCenter(positionMarker);
100 aurelien 403
	map.setZoom(12);
54 aurelien 404
}
405
 
100 aurelien 406
function obtenirInformationsPourCoordonnees(lat, lon) {
407
 
408
	lat = jQuery.trim(lat);
409
	lon = jQuery.trim(lon);
410
 
411
	if(isNaN(lat) || lat.length <= 0 || isNaN(lon) || lon.length <= 0) {
412
		return;
413
	}
414
 
415
	cacherElementsRafraichissables();
207 aurelien 416
 
168 aurelien 417
	$.get(urlBaseJrest+'OdsCommune/informationsPourCoordonnees/?lat='+lat+'&lon='+lon, function(data) {
100 aurelien 418
 
419
		infos_localites = jQuery.parseJSON(data);
420
		$('#station_alt').val(infos_localites.alt);
421
 
196 aurelien 422
		if(infos_localites.commune != null && infos_localites.commune != '') {
423
		  $('#station_commune').val(infos_localites.commune);
424
		  $('#station_code_insee').val(infos_localites.code_insee);
100 aurelien 425
		}
426
 
427
		montrerElementsRafraichissables();
428
 
429
	});
430
 
431
}
432
 
433
function obtenirInformationsPourCommune(nom_commune) {
434
 
435
	if(jQuery.trim(nom_commune) == '') {
436
		$('.conteneur_suggestions').hide();
437
		return;
438
	}
439
 
168 aurelien 440
	$.get(urlBaseJrest+'OdsCommune/informationsPourCommune/?commune='+nom_commune, function(data) {
100 aurelien 441
 
442
		infos_localites = jQuery.parseJSON(data);
443
		afficherListeAutoCompletion(infos_localites);
444
	});
445
}
446
 
447
function afficherListeAutoCompletion(tableau_localites) {
448
 
449
	liste_localite_en_cours = tableau_localites;
450
 
451
	html_liste_localite = '<ul class="liste_suggestions">';
452
 
453
	for(i = 0; i< tableau_localites.length; i++) {
454
		html_liste_localite += '<li id="commune_'+i+'" class="element_auto_completion_commune">'+tableau_localites[i]['commune']+'  ('+tableau_localites[i]['dpt']+')</li>';
455
	}
456
 
457
	html_liste_localite += '</ul>';
458
 
459
	$('.conteneur_suggestions').html(html_liste_localite);
460
 
461
	$('.element_auto_completion_commune').hover(function() {
462
		indice = $(this).attr('id').split('_')[1];
463
		mettreEnSurbrillanceCommune(indice);
464
	});
465
 
466
	$('.element_auto_completion_commune').click(function() {
467
		indice = $(this).attr('id').split('_')[1];
468
		selectionnerCommune(indice);
469
	});
470
 
471
	if(tableau_localites.length > 0) {
472
		$('.conteneur_suggestions').show();
473
 
474
		mettreEnSurbrillanceCommune(0);
475
	}
476
}
477
 
478
function mettreEnSurbrillanceCommune(indice) {
479
 
480
	if(indice_commune_en_cours != null) {
481
		$('#commune_'+indice_commune_en_cours).removeClass('element_selectionne');
482
	}
483
	$('#commune_'+indice).addClass('element_selectionne');
484
	indice_commune_en_cours = indice;
485
 
486
	reprogrammerTimerPourCacherListeAutoCompletion();
487
}
488
 
489
function rendreListeAutoCompletionInteractive(selecteur) {
490
 
491
	$(selecteur).keyup(function(event) {
492
		if(event.which == 8 || (event.which >= 48 && event.which <= 90)) {
493
 
494
			reprogrammerTimerPourCacherListeAutoCompletion();
495
			reprogrammerTimerPourLancerRequeteCommune();
496
		}
497
	});
498
 
499
	$(selecteur).keydown(function(event) {
500
 
501
		reprogrammerTimerPourCacherListeAutoCompletion();
502
 
503
		// entree
504
		if(event.which==13){
505
			selectionnerCommune(indice_commune_en_cours);
506
			event.preventDefault();
507
		}
508
 
509
		// haut
510
		if(event.which == 38){
511
			if(indice_commune_en_cours > 0) {
512
				mettreEnSurbrillanceCommune(indice_commune_en_cours - 1);
513
			}
514
		}
515
 
516
		// bas
517
		if(event.which == 40){
518
			if(indice_commune_en_cours < liste_localite_en_cours.length - 1) {
519
				mettreEnSurbrillanceCommune(indice_commune_en_cours + 1);
520
			}
521
		}
522
	});
523
 
524
	$('.conteneur_suggestions').blur(function() {
525
		$('.conteneur_suggestions').hide();
526
	});
527
}
528
 
529
function reprogrammerTimerPourCacherListeAutoCompletion() {
530
 
531
	if(timerAffichageAutocompletion != null) {
532
		window.clearTimeout(timerAffichageAutocompletion);
533
	}
534
 
535
	timerAffichageAutocompletion = window.setTimeout(function() {
536
		$('.conteneur_suggestions').hide();
537
	}, 2000);
538
}
539
 
540
function reprogrammerTimerPourLancerRequeteCommune() {
541
 
542
	if(timerRequeteAutocompletion != null) {
543
		window.clearTimeout(timerRequeteAutocompletion);
544
	}
545
 
546
	timerRequeteAutocompletion = window.setTimeout(function() {
547
		obtenirInformationsPourCommune($('input#station_commune').val());
548
	}, 350);
549
}
550
 
551
function selectionnerCommune(indice) {
552
 
553
	infos_commune = liste_localite_en_cours[indice];
554
 
555
	$('input#station_commune').val(infos_commune['commune']);
556
	$('input#station_lat').val(infos_commune['lat']);
557
	$('input#station_lon').val(infos_commune['lon']);
168 aurelien 558
	$('input#station_code_insee').val(infos_commune['code_insee']);
100 aurelien 559
 
560
	verifierEtLocaliserCoordonnees();
561
 
562
	$('.conteneur_suggestions').hide();
563
}
564
 
54 aurelien 565
function mettreAJourValeursFormulaire(latlon) {
566
 
567
	latlon = latlon.toString().split(',');
568
 
100 aurelien 569
	lat = latlon[0].replace('(', '');
570
	lon = latlon[1].replace(')', '');
571
 
54 aurelien 572
	$('#station_lat').val(latlon[0].replace('(', ''));
573
	$('#station_lon').val(latlon[1].replace(')', ''));
100 aurelien 574
 
575
	obtenirInformationsPourCoordonnees(lat, lon);
54 aurelien 576
}
577
 
578
function initialiserCarte() {
579
 
580
	if($('#map_canvas').length == 0) {
581
		return;
582
	}
583
 
584
	var latlng = new google.maps.LatLng(47.0504, 2.2347);
585
	var myOptions = {
586
		zoom: 6,
587
		center: latlng,
588
		mapTypeId: google.maps.MapTypeId.HYBRID
589
	};
590
 
591
	map = new google.maps.Map(document.getElementById("map_canvas"),
592
    	myOptions);
593
 
594
	marker = new google.maps.Marker({
595
	      position: latlng,
596
	      title:""
597
	});
598
 
599
	if (carteEstEnSaisie()) {
600
 
601
			marker.setDraggable(true);
602
 
100 aurelien 603
			google.maps.event.addListener(marker, 'dragend', function(event) {
54 aurelien 604
				mettreAJourValeursFormulaire(marker.getPosition());
605
			});
606
			$('#conteneur_form_liens_lat_lon').ready(function() {
607
				verifierEtLocaliserCoordonnees();
608
				ajouterListenerFormulaireSaisieLatLon();
100 aurelien 609
				ajouterAutoCompletionCommune();
54 aurelien 610
			});
611
	} else {
612
		marker.setDraggable(false);
613
		$('#conteneur_liens_lat_lon').ready(function() {
614
			verifierEtLocaliserCoordonnees();
615
		});
616
	}
617
 
618
	marker.setClickable(true);
619
 
620
	// To add the marker to the map, call setMap();
621
	marker.setMap(map);
622
}
623
 
624
$('#map_canvas').ready(function() {
625
	initialiserCarte();
100 aurelien 626
});
627
 
210 aurelien 628
/**
629
************************************************************************************************
630
************************************************************************************************
100 aurelien 631
 
210 aurelien 632
    Fonctions généralistes s'appliquant automatiquement à certaines classes css
633
 
634
************************************************************************************************
635
************************************************************************************************
636
**/
637
 
638
function initialiserLiensSuppression() {
639
	$('.lien_suppression').click(function() {
640
		return window.confirm('Êtes vous sur de vouloir supprimer ?');
641
	});
642
}
643
 
644
$(document).ready(function() {
645
	initialiserLiensSuppression();
646
});
647
 
648
 
649
 
100 aurelien 650
/**
651
************************************************************************************************
652
************************************************************************************************
653
 
654
    Fonctions de debug permattant d'afficher les objets javascript à la manière de print_r
655
 
656
************************************************************************************************
657
************************************************************************************************
658
**/
659
 
660
function dump(arr,level) {
661
	var dumped_text = "";
662
	if(!level) level = 0;
663
 
664
	//The padding given at the beginning of the line.
665
	var level_padding = "";
666
	for(var j=0;j<level+1;j++) level_padding += "    ";
667
 
668
	if(typeof(arr) == 'object') { //Array/Hashes/Objects
669
	 for(var item in arr) {
670
	  var value = arr[item];
671
 
672
	  if(typeof(value) == 'object') { //If it is an array,
673
	   dumped_text += level_padding + "'" + item + "' ...\n";
674
	   dumped_text += dump(value,level+1);
675
	  } else {
676
	   dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
677
	  }
678
	 }
679
	} else { //Stings/Chars/Numbers etc.
680
	 dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
681
	}
682
	return dumped_text;
683
}