
var $j = jQuery.noConflict();

// Replace prototype '$' by jQuery function
window.$ = function (object_id) {
	return $j('#' + object_id).get(0);
}


function ucfirst (str) {
    str += '';
    var f = str.charAt(0).toUpperCase();
    return f + str.substr(1);
}


function formatDigit(number, nb_digit_min) {
	if (nb_digit_min === undefined) nb_digit_min = 2;
	
	while ( (number + "").length < nb_digit_min ) {
		number = new String("0" + number);
	}
	
	return number;	
}




// LOAD DATA

function loadDataCountries(selector) {
	// Load countries
	selector = selector || 'select.country';
	$j(selector).empty();
	
	if (window.ajax_countries !== undefined && ajax_countries.length > 0) {
		j_option = $j('<option value=""></option>');
		$j(selector).append(j_option);
			
		for (var i=0; i<ajax_countries.length; i++) {
			ajax_country = ajax_countries[i];
			
			$j(selector).each(function () {
				var selected = ($j(this).attr("defaultValue") == ajax_country["COUNTRY_ID"]) ? "selected" : "";
				var j_option = $j('<option value="' + ajax_country["COUNTRY_ID"] + '" ' + selected + ' >' + ajax_country["COUNTRY_NAME_LOCALE"] + '</option>');
				$j(this).append(j_option);
			});
		}
	}
	$j(selector).change(function () {
		//  After year change -> Load region list
		var child_name = $j(this).attr("child");
		var j_child = $j('#' + child_name);
		loadDataRegions(j_child, $j(this).val());
	});
	
	// Onload -> Load region list
	$j(selector).each(function () {
		//  Onload -> Load region list
		var child_name = $j(this).attr("child");
		var j_child = $j('#' + child_name);
		if ($j(this).val() != "") {
			loadDataRegions(j_child, $j(this).val());
		}
	});
	
}

function loadDataRegions(j_target, country_id, selected_region_id) {
	var ajax_url = "/ajax/selection_form.js?a=get_regions&COUNTRY_ID=" + country_id;
	$j.get(ajax_url, function (json_content) {
		eval(json_content);
		
		if (selected_region_id === undefined) {
			selected_region_id = j_target.attr("defaultValue");
		}
		
		j_target.empty().append("<option />");
		
		for (var i=0; i<ajax_regions.length; i++) {
			ajax_region = ajax_regions[i];
			selected = (selected_region_id == ajax_region["REGION_ID"]) ? "selected" : "";
			j_option = $j('<option value="' + ajax_region["REGION_ID"] + '" ' + selected + ' >' + ajax_region["REGION_NAME_LOCALE"] + '</option>');
			j_target.append(j_option);
		}
		
	});
	
}

function loadDataDays(selector) {
	// Load days
	selector = selector || 'select.day';
	$j(selector).empty();
	
	if (window.ajax_days !== undefined && ajax_days.length > 0) {
		j_option = $j('<option value=""></option>');
		$j(selector).append(j_option);
			
		for (var i=0; i<ajax_days.length; i++) {
			ajax_day = ajax_days[i];
			
			$j(selector).each(function () {
				var selected = ($j(this).attr("defaultValue") != "" && $j(this).attr("defaultValue") == ajax_day) ? "selected" : "";
				var j_option = $j('<option value="' + ajax_day + '" ' + selected + ' >' + ajax_day + '</option>');
				$j(this).append(j_option);
			});
			
		}
	}
}

function loadDataMonths(selector) {
	// Load months
	selector = selector || 'select.month';
	$j(selector).empty();
	
	if (window.ajax_months !== undefined ) {
		j_option = $j('<option value=""></option>');
		$j(selector).append(j_option);
		
		for (i in ajax_months) {
			ajax_month = ajax_months[i];
			
			$j(selector).each(function () {
				var selected = ($j(this).attr("defaultValue") != "" && $j(this).attr("defaultValue")*1 == ajax_month["MONTH_INDEX"]*1) ? "selected" : "";
				var j_option = $j('<option value="' + ajax_month["MONTH_INDEX"] + '" ' + selected + ' >' + ajax_month["MONTH_NAME_LOCALE"] + '</option>');
				$j(this).append(j_option);
			});
		}
	}
}

function loadDataYears(selector, filter_start, filter_end) {	
	// Load years
	selector = selector || 'select.year';
	$j(selector).empty();
	
	if (window.ajax_years !== undefined && ajax_years.length > 0) {
		j_option = $j('<option value=""></option>');
		$j(selector).append(j_option);
			
		//for (var i=0; i<ajax_years.length; i++) {
		for (var i=ajax_years.length-1; i>=0; i--) {
			ajax_year = ajax_years[i];
			
			if (filter_start !== undefined && filter_start > ajax_year) continue;
			if (filter_end   !== undefined && filter_end < ajax_year)   continue;
			
			$j(selector).each(function () {
				var selected = ($j(this).attr("defaultValue") != "" && $j(this).attr("defaultValue") == ajax_year) ? "selected" : "";
				var j_option = $j('<option value="' + ajax_year + '" ' + selected + ' >' + ajax_year + '</option>');
				$j(this).append(j_option);
			});
		}
	}
}

function loadDataLanguages(selector) {
	// Load languages
	selector = selector || 'select.language';
	$j(selector).empty();
	
	if (window.ajax_languages !== undefined && ajax_languages.length > 0) {
		j_option = $j('<option value=""></option>');
		$j(selector).append(j_option);
			
		for (var i=0; i<ajax_languages.length; i++) {
			ajax_language = ajax_languages[i];
			
			$j(selector).each(function () {
				var selected = ($j(this).attr("defaultValue") != "" && $j(this).attr("defaultValue") == ajax_language["LANGUAGE_ID"]) ? "selected" : "";
				var j_option = $j('<option value="' + ajax_language["LANGUAGE_ID"] + '" ' + selected + ' >' + ajax_language["LANGUAGE_NAME_LOCALE"] + '</option>');
				$j(this).append(j_option);
			});
		}
	}
}

function loadDataCategories(selector) {
	// Load categories
	selector = selector || 'select.category';
	$j(selector).empty();
	
	if (window.ajax_categories !== undefined && ajax_categories.length > 0) {
		j_option = $j('<option value=""></option>');
		$j(selector).append(j_option);
			
		for (var i=0; i<ajax_categories.length; i++) {
			ajax_category = ajax_categories[i];
			
			$j(selector).each(function () {
				var selected = ($j(this).attr("defaultValue") != "" && $j(this).attr("defaultValue") == ajax_category["CATEGORY_ID"]) ? "selected" : "";
				var j_option = $j('<option value="' + ajax_category["CATEGORY_ID"] + '" ' + selected + ' >' + ajax_category["CATEGORY_NAME_LOCALE"] + '</option>');
				$j(this).append(j_option);
			});
		}
	}
}

function loadDataEventPlaces(selector) {
	// Load event places
	selector = selector || 'select.event_place';
	$j(selector).empty();
	
	if (window.ajax_event_places !== undefined && ajax_event_places.length > 0) {
		j_option = $j('<option value=""></option>');
		$j(selector).append(j_option);
			
		for (var i=0; i<ajax_event_places.length; i++) {
			ajax_event_place = ajax_event_places[i];
			
			$j(selector).each(function () {
				var selected = ($j(this).attr("defaultValue") != "" && $j(this).attr("defaultValue") == ajax_event_place["PLACE_TYPE_ID"]) ? "selected" : "";
				var j_option = $j('<option value="' + ajax_event_place["PLACE_TYPE_ID"] + '" ' + selected + ' >' + ajax_event_place["PLACE_TYPE_NAME_LOCALE"] + '</option>');
				$j(this).append(j_option);
			});
		}
	}
}

function loadDataActivities(selector) {
	// Load activities
	selector = selector || 'select.activity';
	$j(selector).empty();
	
	if (window.ajax_activities !== undefined && ajax_activities.length > 0) {
		j_option = $j('<option value=""></option>');
		$j(selector).append(j_option);
			
		for (var i=0; i<ajax_activities.length; i++) {
			ajax_activity = ajax_activities[i];
			
			try {
				ajax_activity["ACTIVITY_NAME_LOCALE"] = decodeURIComponent( escape( ajax_activity["ACTIVITY_NAME_LOCALE"] ) );
			}catch (e) {}
			
			$j(selector).each(function () {
				var selected = ($j(this).attr("defaultValue") != "" && $j(this).attr("defaultValue") == ajax_activity["ACTIVITY_ID"]) ? "selected" : "";
				var j_option = $j('<option value="' + ajax_activity["ACTIVITY_ID"] + '" ' + selected + ' >' + ajax_activity["ACTIVITY_NAME_LOCALE"] + '</option>');
				$j(this).append(j_option);
			});
		}
	}
}

function loadDataRelations(selector, only_family) {
	// Load relations
	selector = selector || 'select.relation';
	$j(selector).empty();
	
	if (window.ajax_relations !== undefined && ajax_relations.length > 0) {
		j_option = $j('<option value=""></option>');
		$j(selector).append(j_option);
			
		for (var i=0; i<ajax_relations.length; i++) {
			ajax_relation = ajax_relations[i];
			j_selector = $j(selector);
			
			if (only_family !== undefined && only_family) {
				j_selector = j_selector.filter('.family');
				
				if (ajax_relation["IS_FAMILY"] != 1) {
					continue;
				}
			}
			
			try {
				ajax_relation["RELATION_TYPE_LABEL_LOCALE"] = decodeURIComponent( escape( ajax_relation["RELATION_TYPE_LABEL_LOCALE"] ) );
			}catch (e) {}
			
			j_selector.each(function () {
				var selected = ($j(this).attr("defaultValue") != "" && $j(this).attr("defaultValue") == ajax_relation["RELATION_TYPE_ID"]) ? "selected" : "";
				var j_option = $j('<option value="' + ajax_relation["RELATION_TYPE_ID"] + '" ' + selected + ' >' + ajax_relation["RELATION_TYPE_LABEL_LOCALE"] + '</option>');
				//var j_option = $j('<option value="' + ajax_relation["RELATION_TYPE_ID"] + '" ' + selected + ' >' + ajax_relation["RELATION_TYPE_LABEL"] + '</option>');
				$j(this).append(j_option);
			});
			
		}
	}
}


function loadDataSex(selector) {
	// Load sexes
	selector = selector || 'select.sex';
	$j(selector).empty();
	
	$j(selector).each(function () {
		j_option = $j('<option value=""></option>');
		$j(selector).append(j_option);
		
		var options = [{id:"male", name:"Homme"}, {id:"female", name:"Femme"}];
		for (var i=0; i<options.length; i++) {
			sex_id = options[i].id;
			sex_name = options[i].name;
			selected = ($j(this).attr("defaultValue") != "" && sex_id == $j(this).attr("defaultValue")) ? "selected" : "";
			j_option = $j('<option value="' + sex_id + '" ' + selected + ' >' + sex_name + '</option>');
			$j(this).append(j_option);
		}
	});
	
}
function loadDataContactAuthor(selector) {
	// Load sexes
	selector = selector || 'select.contact_equals_author';
	$j(selector).empty();
	
	$j(selector).each(function () {
		var options = [{id:"1", name:"Pour moi"}, {id:"0", name:"Pour une autre personne"}];
		for (var i=0; i<options.length; i++) {
			option_id = options[i].id;
			option_name = options[i].name;
			selected = ($j(this).attr("defaultValue") != "" && option_id == $j(this).attr("defaultValue")) ? "selected" : "";
			j_option = $j('<option value="' + option_id + '" ' + selected + ' >' + option_name + '</option>');
			$j(this).append(j_option);
		}
	});
	
}


function loadDataEvents(selector) {
	// Load activities
	selector = selector || 'select.event_event';
	$j(selector).empty();
	
	if (window.ajax_event_events !== undefined && ajax_event_events.length > 0) {
		j_option = $j('<option value=""></option>');
		$j(selector).append(j_option);
			
		for (var i=0; i<ajax_event_events.length; i++) {
			ajax_event = ajax_event_events[i];
			
			try {
				ajax_event["EVENT_EVENT_NAME_LOCALE"] = decodeURIComponent( escape( ajax_event["EVENT_EVENT_NAME_LOCALE"] ) );
			}catch (e) {}
			
			$j(selector).each(function () {
				var selected = ($j(this).attr("defaultValue") != "" && $j(this).attr("defaultValue") == ajax_event["EVENT_EVENT_ID"]) ? "selected" : "";
				var j_option = $j('<option value="' + ajax_event["EVENT_EVENT_ID"] + '" ' + selected + ' >' + ajax_event["EVENT_EVENT_NAME_LOCALE"] + '</option>');
				$j(this).append(j_option);
			});
		}
	}
}




/* ============================== */

$j(function () {
	
	/*
	$j('div.help').tooltip({ 
		delay:0,
	    bodyHandler: function() {
	    	var help_content = ($j(this).attr('content') !== undefined) ? $j(this).attr('content') : "";
	    	if (help_content.indexOf('#') === 0) return $j(help_content).html();
	        return help_content;
	    }, 
	    showURL: false 
	});
	*/
	
	$j('div.help').click(function () {
		var $this = $j(this);
		
		var help_content = ($j(this).attr('content') !== undefined) ? $j(this).attr('content') : "";
		if (help_content != "" && help_content.indexOf('#') === 0) {
			help_content = $j(help_content).html();
		}
		if ($j.trim(help_content) == "") {
			help_content = "Pas d'aide disponible. Désolé";
		}
		
		if ($this.hasClass('bighelp')) {
			$j('#dialog').html(help_content).jqm().jqmShow();
			return;
		}
		
		
		var html_help_content = '<div style="margin-left:30px; padding:5px; background-color:#F5F5B5; min-width:200px; min-height:40px; border:solid 2px #DECA7E;">' + help_content + '</div>';
		
		if ($this.data('tooltip') !== undefined) {
			//$this.update(html_help_content);
			//$this.data('tooltip').update(html_help_content);
			//$this.data('tooltip').show();
			return;
		}
		
		$this.data('tooltip', $j(this).simpletip({
				persistent: true, 
				offset: [30, 0],
				hidden: false,
				content: html_help_content,
				onShow: function () {
						$j('.tooltip').css("left", "");
						$j('.tooltip').css("top", ""); 
					},
				onHide: function () {
						//$this.select();
					}
			}));
	});


	
});

