/******************************************************************************************
* @author		Tony Huynh
* @name			incrementDate
* @description	Takes month, day, year, hour, minutes and seconds and increments day by one
*				second and returns an updated date
* @param		int month		:: 1-12
* @param		int day			:: 1-31
* @param		int year		:: Any year
* @param		int hour 		:: 1-24
* @param		int minutes 	:: 0-60
* @param		int seconds		:: 0-60
* @return		int[] Date		Associative array that contain keys: month, day, year,
*								hour, minutes & seconds
******************************************************************************************/
function incrementDate(month, day, year, hour, minutes, seconds){
	seconds = (seconds + 1) % 60;
	
	if (seconds == 0)  {
		minutes = (minutes + 1) % 60;
		
		if (minutes == 0) {
			hour = (hour + 1) % 24;

			days = new Array(31, (isLeapYear(year)) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
			//CHECK FOR LEAP YEAR
			day = (day + 1) % days[month];
			
			if (day == days[month]) {
				month = (month + 1) % 12;
				
				if (month == 1)
					year++;
			}
			
		}
	}

	var d = new Array();
	d["month"] = month;
	d["day"] = day;
	d["year"] = year;
	d["hour"] = hour;
	d["minutes"] = minutes;
	d["seconds"] = seconds;
	
	return d;
}

/******************************************************************************************
* @author		Tony Huynh
* @name			parseDate
* @description	Takes a date string, parses it and returns an associative array
* @param		String date		:: date and time in the following format :
*									01-01-2007 23:22:24
* @return		int[] Date		Associative array that contain keys: month, day, year,
*								hour, minutes & seconds
******************************************************************************************/
function parseDate(date) {
	var d = new Array();
	
	d["month"] = date.substr(0, 2);
	d["day"] = date.substr(3, 2);
	d["year"] = date.substr(6, 4);
	d["hour"] = date.substr(11, 2);
	d["minutes"] = date.substr(14, 2);
	d["seconds"] = date.substr(17, 2); 
	
	return d;
}

function changeDate(date, id) {
	var d = new Date(date["year"], date["month"]-1, date["day"],date["hour"], date["minutes"], date["seconds"]);
	document.getElementById(id).innerHTML = d.toLocaleString();
}

function synchronizeDate(id) {
	http = getXMLHTTPObject();
	http.open("POST", "<?=SITE_URL?>ajaxFunctions.php?function=getDate", true);
	http.send(null);
	
	http.onreadystatechange = function() {
		if (http.readyState == 4) {
			if (http.responseText != "") {
				date = parseDate(http.responseText);
				//alert(date["month"] + "-" + date["day"] + "-" + date["year"] + " " + date["hour"] + ":" + date["minutes"] + ":" + date["seconds"]);
				//changeDate(date, id);
			}
		}
	}
}

/******************************************************************************************
* @author		Tony Huynh
* @name			isLeapYear
* @description	Determines if the year given is a leap year or not
* @param		int year		:: Any year
* @return		boolean			True if it is a leap year, false otherwise
******************************************************************************************/
function isLeapYear(year) {
	if (year%4 != 0) return false;
	if (year%100 != 0) return true;
	if (year%400 != 0) return false;
	
	return true;
}