function getMonthArray() {
	return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
}

function getMonthDays(year) {
	var monthDays = ['31', '28', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31'];
	if (year % 4 === 0) { monthDays[1] = '29'; }
	if (year % 100 === 0 && year % 400 !== 0) { monthDays[1] = '28'; }
	return monthDays;
}

function getGMTTime() {
	var time = new Date();
	var gmtMS = time.getTime() + (time.getTimezoneOffset() * 60 * 1000);
	return new Date(gmtMS);
}

function getMinutes() {
	var min = getGMTTime().getMinutes();
	return ((min < 10) ? '0' : '') + min;
}

function getSeconds() {
	var sec = getGMTTime().getSeconds();
	return ((sec < 10) ? '0' : '') + sec;
}

function getDateHour(zone, dst) {
	var gmtTime = getGMTTime();
	var dateHour = [];
	dateHour.day = gmtTime.getDate();
	dateHour.month = gmtTime.getMonth();
	dateHour.year = gmtTime.getYear();
	dateHour.hour = gmtTime.getHours() + parseInt(zone, 10);
	dateHour.min = parseInt(getMinutes(), 10) + parseInt((zone - parseInt(zone, 10)) * 60, 10);
	dateHour.sec = getSeconds();
	
	if (dst) {
		dateHour.hour += 1;
	}
	
	if (dateHour.min >= 60) {
		dateHour.min -= 60;
		dateHour.hour += 1;
	}
	
	if (dateHour.min < 0) {
		dateHour.min += 60;
		dateHour.hour -= 1;
	}
	
	var monthDays = getMonthDays(dateHour.year);
	
	if (dateHour.year < 1000) {
		dateHour.year += 1900;
	}
	
	if (dateHour.hour >= 24) {
		dateHour.hour = dateHour.hour - 24;
		dateHour.day += 1;
	}
	
	if (dateHour.hour < 0) {
		dateHour.hour -= -24;
		dateHour.day -= 1;
	}
	
	if (dateHour.hour < 10) {
		dateHour.hour = ' ' + dateHour.hour;
	}
	
	if (dateHour.min < 10) {
		dateHour.min = '0' + dateHour.min;
	}
	
	if (dateHour.day <= 0) {
		if (dateHour.month === 0) {
			dateHour.month = 11;
			dateHour.year -= 1;
		} else {
			dateHour.month -= 1;
		}
		dateHour.day = monthDays[dateHour.month];
	}
	
	if (dateHour.day > monthDays[dateHour.month]) {
		dateHour.day = 1;
		if (dateHour.month === 11) {
			dateHour.month = 0;
			dateHour.year += 1;
		} else {
			dateHour.month += 1;
		}
	}
	return dateHour;
}

function createNewDate(month, hours, date) {
	var newDate = new Date();
	newDate.setMonth(month);
	newDate.setHours(hours);
	newDate.setDate(date);
	return newDate;
}

function dateTimeNonDST(day, month, year, hr, min, sec, dst) {
	var datetime = [];
	datetime.dst = dst ? 1 : 0;
	datetime.day = day;
	datetime.month = month;
	datetime.year = year;
	datetime.hour = hr;
	datetime.min = min;
	datetime.sec = sec;
	return datetime;
}

function defaultTemplate(datetime) {
	/*var monthArray = getMonthArray();
	return monthArray[datetime.month] + ' ' +
		datetime.day + ', ' + datetime.year + '<br/>' +
		datetime.hour + ':' + datetime.min + ':' +
		datetime.sec + ((datetime.dst === 1) ? ' DST' : '');*/
	/*FB:CHANGE*/
	return (datetime.day < 10 ? '0' : '') + datetime.day + '.' +
		((datetime.month+1) < 10 ? '0' : '') + (datetime.month+1) + '.' + datetime.year + ' ' +
		datetime.hour + ':' + datetime.min + ':' + datetime.sec;
}

function worldClock(zone, dst) {
	var dh = getDateHour(zone, dst);
	var datetime = dateTimeNonDST(dh.day, dh.month, dh.year, dh.hour, dh.min, dh.sec, dst);
	return defaultTemplate(datetime);
}

