// Определяем время летнее
var date = new Date();

function banner_change($nTime) {
	var checkdate = new Date();
	if (checkdate.getMinutes() == date.getMinutes()) {
		window.setTimeout('banner_change()',1);
		return;
	}
	date = checkdate;
	var $aMonth = [
		'january','february','march',
		'april','may','june',
		'july','august','september',
		'october','november','dec.'
		];
	// 
	// getHour
	var $nMinute = date.getMinutes();
	$nTime -=  2*3600;
	document.getElementById('curDate').innerHTML = to2digits(date.getDate()) + ' ' + $aMonth[date.getMonth()];
	document.getElementById('curYear').innerHTML =  '\'' + to2digits(date.getFullYear() - 2000);
	document.getElementById('moscowDate').innerHTML =  to2digits(correctDate(new Date(),3,1).getHours()) + ':' + to2digits($nMinute);
	document.getElementById('londonDate').innerHTML =  to2digits(correctDate(new Date(),0,1).getHours()) + ':' + to2digits($nMinute);
	document.getElementById('jakartaDate').innerHTML = to2digits(correctDate(new Date(),7,0).getHours()) + ':' + to2digits($nMinute);
	document.getElementById('havanaDate').innerHTML =  to2digits(correctDate(new Date(),-5,1).getHours()) + ':' + to2digits($nMinute);

	window.setTimeout('banner_change()',1);
}

function correctDate(date,timeZone,bHaveSummerChange) {
	// Получаем время по UTC
	nCurrentTimeZone = date.getTimezoneOffset();
	// Устанавливаем часы
	var hours = date.getUTCHours() + timeZone + ((bHaveSummerChange && checkSummer(date))?1:0)
	date.setHours(hours	);
	return date;
}
/**
* Проверяет находится ли данная дата в летнем исчислении
*/
function checkSummer(date) {
	// Месяц больше 
	var checkdate = new Date();
	checkdate.setMonth(2);
	checkdate.setDate(30);
	checkdate.setHours(3);

	var checkdate2 = new Date();
	checkdate2.setMonth(9);
	checkdate2.setDate(28);
	checkdate2.setHours(3);

	if ((date.getTime() >= checkdate.getTime())
	   && (date.getTime() <= checkdate2.getTime())
	   ){
		return true;
	} else {
		return false;
	}
}
function to2digits($value) {
	return ($value < 10)?'0' + $value:$value;
}

