

var environement = {
	dateFormat:'MDY',
	dateSeparator:'/',
	getFullFormat: function(){
		var result = '';
		for(var i=0; i<environement.dateFormat.length; i++){
			if(i!=0){
				result += environement.dateSeparator;
			}
			switch(environement.dateFormat.substr(i,1).toLowerCase()){
				case 'y' :
					result += 'YYYY';
					break;
				case 'm' :
					result += 'MM';
					break;
				case 'd' :
					result += 'DD';
					break;
			}
		}
		return result;
	}
};


if((readCookie('Lang') || readCookie('lang'))=='en'){
	environement.dateFormat = 'MDY';
} else {
	environement.dateFormat = 'DMY';
}


function stringToJSONDate(dateFormated){
	if(dateFormated=='') return {};
	var year, month, day;

	for(var i=0; i<environement.dateFormat.length; i++){
		var value;

		if(dateFormated.indexOf(environement.dateSeparator)==-1){
			value = dateFormated;
			dateFormated = '';
		} else {
			value = dateFormated.substring(0, dateFormated.indexOf(environement.dateSeparator));
			dateFormated = dateFormated.substr(dateFormated.indexOf(environement.dateSeparator)+1);
		}

		switch(environement.dateFormat.substr(i,1).toLowerCase()){
			case 'y' :
				year  = parseFloat(value);
				break;
			case 'm' :
				month = parseFloat(value);
				break;
			case 'd' :
				day   = parseFloat(value);
				break;
		}
	}
	return {"year":year, "month":month, "day":day};
}


function SQLToJSONDate(dateFormated){
	if(dateFormated=='') return {};
	var year, month, day;
	var dateFormat = 'YMD';
	var dateSeparator = '-';

	for(var i=0; i<dateFormat.length; i++){
		var value;

		if(dateFormated.indexOf(dateSeparator)==-1){
			value = dateFormated;
			dateFormated = '';
		} else {
			value = dateFormated.substring(0, dateFormated.indexOf(dateSeparator));
			dateFormated = dateFormated.substr(dateFormated.indexOf(dateSeparator)+1);
		}

		switch(dateFormat.charAt(i).toLowerCase()){
			case 'y' :
				year  = parseFloat(value);
				break;
			case 'm' :
				month = parseFloat(value);
				break;
			case 'd' :
				day   = parseFloat(value);
				break;
		}
	}
	return {"year":year, "month":month, "day":day};
}


function isAValidJSONDate(theJSONDate){
	var theDate = new Date(theJSONDate.year, theJSONDate.month-1, theJSONDate.day);
	return ( theDate.getFullYear()  ==theJSONDate.year
				&& (theDate.getMonth()+1) ==theJSONDate.month
				&& theDate.getDate()      ==theJSONDate.day);
}


function JSONDateToSQL(theJSONDate){
	if(theJSONDate.year && theJSONDate.month && theJSONDate.day){
		return theJSONDate.year
					+'-'
					+formatInTwoDigits(theJSONDate.month)
					+'-'
					+formatInTwoDigits(theJSONDate.day);
	} else {
		return '';
	}
}


function formatJSONDate(JSONDate){
	if(JSONDate.year && JSONDate.month && JSONDate.day) return formatDate(new Date(JSONDate.year, JSONDate.month-1, JSONDate.day));
	else return '';
}

function formatDate(dateToFormat){
	var output = '';
	for(var i=0; i<environement.dateFormat.length; i++){
		if(i!=0){
			output += environement.dateSeparator;
		}
		switch(environement.dateFormat.substr(i,1).toLowerCase()){
			case 'y' :
				output += dateToFormat.getFullYear();
				break;
			case 'm' :
				output += (dateToFormat.getMonth()+1);
				break;
			case 'd' :
				output += dateToFormat.getDate();
				break;
		}
	}
	return output;
}


function formatHour(dateToFormat){
	return dateToFormat.getHours()
				+':'
				+formatInTwoDigits(dateToFormat.getMinutes())
				+':'
				+formatInTwoDigits(dateToFormat.getSeconds());
}