/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function checkForm(sType) {

	var isValid = true;
	var sSelect;
	var sInput;

	var dateValue 	= document.getElementById('dateInput').value;

	switch(sType) {
		case 'tournois' :
			isValid = (dateValue == '') ? false : true;
		break;
		case 'simultanes' :
			var momentValue = document.getElementById('momentSelect').value;
			isValid = (dateValue == '' || momentValue == '') ? false : true;
		break;
	}

	if (isValid) {

		switch(sType) {
			case 'simultanes' :
				sSelect = 'typeSelect';
				sInput	= 'typeInput';
			break;
			case 'tournois' :
				sSelect = 'codeSelect';
				sInput	= 'codeInput';
			break;
		}


		var a = document.getElementById(sSelect);
		var b = document.getElementById(sInput);

		if (a.value == '' && b.value == '') {
			alert("Un des champs n'a pas été rempli.\nVeuillez vérifier.");
			return false;
		} else {
			if (isValidDate(dateValue)) {
				return true;
			} else {
				alert("La date saisie n'est pas valide.\nVeuillez vérifier.");
				return false;
			}
		}

	} else {
		alert("Un des champs n'a pas été rempli.\nVeuillez vérifier.");
		return false;
	}
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function showCalendar(handlerElement, targetElement, fn) {

	var cal = new Calendar();

	cal.setTargetInput(targetElement);

	if (fn) {
		cal.addFunction(fn)
	}

	cal.showWeekNumbers 	= false;
	cal.showTime 		= false;
	cal.showsOtherMonths 	= true;

	cal.setRange(1900, 2070);
	cal.createPopup();

	cal.showAtElement(handlerElement);

	return true;
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function setSelect(ele) {

	ele.value = ele.value.toUpperCase();

	var s 	= document.getElementById('typeSelect');

	if (s) {
		l = ele.value.length;
		var cnt = 0;
		var pos = 0;
		for (var i = 1; i < s.length; i++) {
			var t = s[i].value.substr(0, l);
			if (t == ele.value) {
				if (pos == 0) {
					pos = i;
				}
				cnt++
			}
		}

		if (cnt > 0) {
			if (cnt == 1) {
				s[pos].selected = true;
				ele.value = s[pos].value;
			} else {
				s[pos].selected = true;
			}
		} else {
			alert("Code invalide");
			ele.value = ele.value.substr(0, ele.value.length -1);
		}
	}
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function setInput(ele) {
	setTypeInputValue(ele.value);
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function setValue(id, ele, key, name) {

	ele.value = ele.value.toUpperCase();
	var s = document.getElementById(id);

	if (s) {
		var is_found = false;
		for (var i = 0; i < s.options.length; i++) {
			if (s.options[i].value.toLowerCase() == ele.value.toLowerCase()) {
				s.options[i].selected = true;
				is_found = true;
				break;
			}
		}

		if (is_found == false) {
			s.options[0].selected = true;
		}
	}
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function setTypeInputValue(id, value) {

	var input = document.getElementById(id);

	if (input) {
		input.value = value;
	}

}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
function isValidDate(date) {

	isDate = true;

	arr = date.split(' ');

	if (arr[0] == null) {
		return false;
	}

	arrDate = arr[0].split('/');

	for (i = 0; i < arrDate.length; i++) {
		if (isNaN(arrDate[i])) {
			return false;
		}
	}

	var day 	= parseInt(arrDate[0], 10);
	var month 	= parseInt(arrDate[1], 10);
	var year 	= (arrDate[2]);

	var myDate = new Date(year, (month - 1), day);

	if (myDate.getFullYear() != year || myDate.getMonth() != (month - 1)  || myDate.getDate() != day) {
		return false;
	} else {
		return true;
	}
}
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/