var clockTimerID = null;

var clockSec = 0;
var clockTime = 0;
var mercuryPos = 0;
var blinkFlag = false;
var MTscaleWidth = 0;
var MTscaleLeft = 0;

var hideInputs = true;
var hideInputsTimerId = null;
var inputsEnterPressed = false;

var cityStackVisIndex = 1;


var count = 0;
var mercuryFix = false;

function stopClock() {
	if (clockTimerID != null)
		clearInterval(clockTimerID);
	clockTimerID = null;
}

function startClock() {
	if (clockTimerID == null) { 
		var clockD = new Date (clockYear, clockMonth - 1, clockDate, clockHour, clockMin, clockSec);
		clockTime = clockD.getTime();
		stopClock();
		clockTimerID = setInterval(showClockTime, 1000);
	}
}

function showClockTime() {
	clockTime += 1000;
	if (clockSec < 59) {
		clockSec++;
		if (blinkFlag) {
			if (typeof(MedTerm) != 'undefined')
				$('#blink').css('visibility','visible');
			if (typeof(SmallTerm) != 'undefined')
				$('#stblink').css('visibility','visible');
			blinkFlag = false;
		} else {
			if (typeof(MedTerm) != 'undefined')
				$('#blink').css('visibility','hidden');
			if (typeof(SmallTerm) != 'undefined')
				$('#stblink').css('visibility','hidden');
			blinkFlag = true;
		}
	} else if (clockMin < 59) {
		clockSec = 0;
		clockMin++;
		if (typeof(MedTerm) != 'undefined') {
			MedTerm.term_minute++;
			MedTerm.moveMercury();
		}
		
		if (typeof(SmallTerm) != 'undefined') {
			SmallTerm.term_minute++;
			SmallTerm.moveMercury();
		}
		
		if (typeof(MedTerm) != 'undefined')
			$('#clocks_m').text(format_2digits(clockMin));
		if (typeof(SmallTerm) != 'undefined')
			$('#stclocks_m').text(format_2digits(clockMin));
		
	} else if (clockHour < 23) {
		clockSec = 0;
		clockMin = 0;
		clockHour++;
		
		if (typeof(MedTerm) != 'undefined') {
			MedTerm.term_hour++;
			MedTerm.term_minute = 0;
		}
		
		if (typeof(SmallTerm) != 'undefined') {
			SmallTerm.term_hour++;
			SmallTerm.term_minute = 0;
		}
		if (typeof(MedTerm) != 'undefined')
			$('#clocks_h').text(format_2digits(clockHour));
		if (typeof(SmallTerm) != 'undefined')
			$('#stclocks_h').text(format_2digits(clockHour));
		
		if (typeof(MedTerm) != 'undefined')
			$('#clocks_m').text(format_2digits(clockMin));
		if (typeof(SmallTerm) != 'undefined')
			$('#stclocks_m').text(format_2digits(clockMin));
	} else {
		clockSec = 0;
		clockMin = 0;
		clockHour = 0;
		var clockDateTmp = new Date (clockYear, clockMonth - 1, clockDate, 1,1,1);
		var clockDateNew = new Date (clockDateTmp.getTime() + 24*60*60*1000);
		clockDate = clockDateNew.getDate();
		clockMonth = clockDateNew.getMonth() + 1;
		clockYear = clockDateNew.getFullYear();
		
		adjust_dclocks (clockDate, clockMonth, clockYear);
		
		if (typeof(MedTerm) != 'undefined') {
			MedTerm.term_hour++;
			MedTerm.term_minute = 0;
			$('#clocks_d').text(format_2digits(clockDate));
			$('#clocks_mon').text(format_2digits(clockMonth));
			$('#clocks_y').text(clockYear.toString().substr(2,2));
			$('#clocks_h').text(format_2digits(0));
			$('#clocks_m').text(format_2digits(0));
		}
		
		if (typeof(SmallTerm) != 'undefined') {
			SmallTerm.term_hour++;
			SmallTerm.term_minute = 0;
			$('#stclocks_d').text(format_2digits(clockDate));
			$('#stclocks_mon').text(format_2digits(clockMonth));
			$('#stclocks_y').text(clockYear.toString().substr(2,2));
			$('#stclocks_h').text(format_2digits(0));
			$('#stclocks_m').text(format_2digits(0));
		}
		
		if (typeof(CLuach) != 'undefined' && typeof(MedTerm) != 'undefined') {
			luach_change_date (MedTerm.term_date, MedTerm.term_month, MedTerm.term_year, clockDate, clockMonth, clockYear, MedTerm.city, env, moadim);
		} else if (typeof(CLuach) != 'undefined' && typeof(SmallTerm) != 'undefined') {
			luach_change_date (SmallTerm.term_date, SmallTerm.term_month, SmallTerm.term_year, clockDate, clockMonth, clockYear, SmallTerm.city, env, moadim);
		} else {
			luach_change_date (clockDate, clockMonth, clockYear, clockDate, clockMonth, clockYear, currentCity, env, moadim);
		}
	}
}

function init_MT_Resize() {
	MTscaleWidth = $('div.med_term div.scale').innerWidth();
	MTscaleLeft = $('div.med_term div.scale').offset().left;
	MedTerm.setup_zmanim_offsets ();
	MedTerm.show_zmanim();
	MedTerm.moveMercury ();
}

function init_MT_Ready () {
	startClock();
	MTscaleWidth = $('div.med_term div.scale').innerWidth();
	MTscaleLeft = $('div.med_term div.scale').offset().left;
	MedTerm.setup_zmanim_offsets ();
	MedTerm.show_zmanim();
	MedTerm.moveMercury ();
	
	$('#term_today').click(function () {
		MedTerm.term_hour += 24*count;
		count = 0;
		mercuryFix = false;
		RenewTerm(MedTerm.city, clockDate, clockMonth, clockYear);
	});
	
	$('#term_rew').click(function () {
		count--;
		MedTerm.term_hour += 24;
		var TermDate = new Date (MedTerm.term_year, MedTerm.term_month - 1, MedTerm.term_date, 1, 1, 1);
		var NewDate = new Date (TermDate.getTime() - 24*60*60*1000);
		if (count == 0)
			mercuryFix = false;
		else
			mercuryFix = true;
		RenewTerm(MedTerm.city, NewDate.getDate(), NewDate.getMonth() + 1, NewDate.getFullYear());
	});
	
	$('#term_ff').click(function () {
		count++;
		MedTerm.term_hour -=24;
		var TermDate = new Date (MedTerm.term_year, MedTerm.term_month - 1, MedTerm.term_date, 1, 1, 1);
		var NewDate = new Date (TermDate.getTime() + 24*60*60*1000);
		if (count == 0)
			mercuryFix = false;
		else
			mercuryFix = true;
		RenewTerm(MedTerm.city, NewDate.getDate(), NewDate.getMonth() + 1, NewDate.getFullYear());
	});
	
	$('#termdate_a').click (function() {
		$('#term_date_i').val(format_2digits(MedTerm.term_date)); 
		$('#term_month_i').val(format_2digits(MedTerm.term_month));
		$('#term_year_i').val(MedTerm.term_year);
		$('#termdate_line').hide();
		$('#termdate_inputs').show();
		return false;
	});
	
	
	$('#term_date_i').keydown(function(event) {
		if (event.which != 35 && event.which != 36 && event.which != 45 && event.which != 9 && event.which != 13 && event.which != 37 && event.which != 39 && event.which != 8 && event.which != 46) {
			if (event.which < 96 || event.which > 105) {
				if (event.which < 48 || event.which > 57) {
					event.preventDefault();
					return;
				}
			} 				
		}
		
		if (event.which == 13) {
			inputsEnterPressed = true;
			event.preventDefault();
			change_term_date(1);
			$('#term_date_i').blur();
			$('#termdate_inputs').hide();
			$('#termdate_line').show();
		}
		return;
	});						
						
	$('#term_date_i').focusout (function () {
		if (inputsEnterPressed == false)
			change_term_date(2);
		hideInputsTimerId = window.setTimeout ('hideTermdateInpunts()', 100);
	});
						
	$('#term_date_i').focusin (function () {
		hideInputs = false;
	});
						
	$('#term_month_i').keydown(function(event) {
		if (event.which != 35 && event.which != 36 && event.which != 45 && event.which != 9 && event.which != 13 && event.which != 37 && event.which != 39 && event.which != 8 && event.which != 46) {
			if (event.which < 96 || event.which > 105) {
				if (event.which < 48 || event.which > 57) {
					event.preventDefault();
					return;
				}
			} 				
		}
		
		if (event.which == 13) {
			inputsEnterPressed = true;
			event.preventDefault();
			change_term_date(3);
			$('#term_month_i').blur();
			$('#termdate_inputs').hide();
			$('#termdate_line').show();
		}
		return;
	});
						
	$('#term_month_i').focusout (function () {
		if (inputsEnterPressed == false)
			change_term_date(4);
		hideInputsTimerId = window.setTimeout ('hideTermdateInpunts()', 100);
	});
						
	$('#term_month_i').focusin (function () {
		hideInputs = false;
	});
						
	$('#term_year_i').keydown(function(event) {
		if (event.which != 35 && event.which != 36 && event.which != 45 && event.which != 9 && event.which != 13 && event.which != 37 && event.which != 39 && event.which != 8 && event.which != 46) {
			if (event.which < 96 || event.which > 105) {
				if (event.which < 48 || event.which > 57) {
					event.preventDefault();
					return;
				}
			} 				
		}
	
		if (event.which == 13) {
			inputsEnterPressed = true;
			event.preventDefault();
			change_term_date(5);
			$('#term_year_i').blur();
			$('#termdate_inputs').hide();
			$('#termdate_line').show();
		}
		
		return;
	});
						
	$('#term_year_i').focusout (function () {
		if (inputsEnterPressed == false)
			change_term_date(6);
		hideInputsTimerId = window.setTimeout ('hideTermdateInpunts()', 100);
	});
						
	$('#term_year_i').focusin (function () {
		hideInputs = false;
	});
	
	$('#mt_city_history_rew').click (function () {
		if (cityStackVisIndex > 1) {
			if (cityStackVisIndex + 2 == currentCity_stack.length) {
				$('#mt_city_history_ff').attr('src','/img/arr_term_ff.gif');
			}

			$('#medterm_custom_city' + (cityStackVisIndex - 1) + '_a').toggle();
			$('#medterm_custom_city' + (cityStackVisIndex - 1) + '_spacer').toggle();
			$('#medterm_custom_city' + cityStackVisIndex + '_spacer').toggle();
			$('#medterm_custom_city' + (cityStackVisIndex + 1) + '_a').toggle();
			
			cityStackVisIndex--;
			
			if (cityStackVisIndex == 1) {
				$(this).attr('src','/img/arr_term_rew_gr.gif');
			}
		} 
	});
	
	$('#mt_city_history_ff').click (function () {
		if (cityStackVisIndex + 2 < currentCity_stack.length) {
			if (cityStackVisIndex == 1) {
				$('#mt_city_history_rew').attr('src','/img/arr_term_rew.gif');
			}
			
			$('#medterm_custom_city' + cityStackVisIndex + '_a').toggle();
			$('#medterm_custom_city' + cityStackVisIndex + '_spacer').toggle();
			$('#medterm_custom_city' + (cityStackVisIndex + 1) + '_spacer').toggle();
			$('#medterm_custom_city' + (cityStackVisIndex + 2) + '_a').toggle();
			
			cityStackVisIndex++;
			
			if (cityStackVisIndex + 2 == currentCity_stack.length) {
				$(this).attr('src','/img/arr_term_ff_gr.gif');
			}
		} 
	});
}

function mt_city_history_add_blank () {
	$('.medterm_custom_city_name_history_div > b').append("<span style='display: none;' id='medterm_custom_city" + (currentCity_stack.length - 2) + "_spacer'>&nbsp;&nbsp;|&nbsp;&nbsp;</span>");
	$('.medterm_custom_city_name_history_div > b').append("<a href='#' onclick='custom_city_history_click (\"medterm\", " + (currentCity_stack.length - 1) +");' style='display: none;' id='medterm_custom_city" + (currentCity_stack.length - 1) + "_a' class='mycity'><span class='custom_city" + (currentCity_stack.length - 1) + "_name' id='medterm_custom_city" + (currentCity_stack.length - 1) + "_name'></span></a>");
	$('#mt_city_history_ff').attr('src','/img/arr_term_ff.gif');
}

function mt_city_history_rewind () {
	while (cityStackVisIndex != 1) {
		$('#mt_city_history_rew').click();	
	}
}

function init_ST_Resize () {
	STscaleWidth = $('div.small_ter div.scale').innerWidth();
	STscaleLeft = $('div.small_ter div.scale').offset().left;
	SmallTerm.setup_zmanim ();
	SmallTerm.moveMercury ();	
}

function init_ST_Ready () {
	startClock();
	STscaleWidth = $('div.small_ter div.scale').innerWidth();
	STscaleLeft = $('div.small_ter div.scale').offset().left;
	SmallTerm.setup_zmanim ();
	SmallTerm.moveMercury ();	
}

function RenewSmTerm(nCity, date, month, year) {
	SmallTerm.afterMercuryZman = null;
	
	if (nCity.id != currentCity.id) {
		stzmanim.latitude = nCity.latitude;
		stzmanim.longitude = nCity.longitude;
		stzmanim.timezone = nCity.gmt + nCity.swtime;
		stzmanim.set_knissat(nCity.shabatAdj);
		SmallTerm.city = nCity;
	}
	
	var TermDate = new Date (SmallTerm.term_year, SmallTerm.term_month - 1, SmallTerm.term_date, 1, 1, 1);
	var NewDate = new Date (year, month - 1, date, 1, 1, 1);
	if (Math.round((TermDate.getTime() - NewDate.getTime())/(3600*1000*24)) != 0) {
		SmallTerm.term_date = date;
		SmallTerm.term_month = month;
		SmallTerm.term_year = year;
		SmallTerm.term_dow = NewDate.getDay();
		var doys = getDoys (SmallTerm.term_date, SmallTerm.term_month, SmallTerm.term_year);
		stzmanim.day_of_year = doys[0];
		stzmanim.day_of_year_prev = doys[1];
		stzmanim.day_of_year_next = doys[2];
	}
	
	stzmanim.set_zmanim();
	init_ST_Resize ();
	if (typeof(CLuach) != 'undefined' && typeof(MedTerm) == 'undefined') {
		luach_change_date (date, month, year, clockDate, clockMonth, clockYear, SmallTerm.city, env, moadim);
	}
}

function RenewTerm(nCity, date, month, year) {
	if (nCity.id != currentCity.id) {
		zmanim.latitude = nCity.latitude;
		zmanim.longitude = nCity.longitude;
		zmanim.timezone = nCity.gmt + nCity.swtime;
		zmanim.set_knissat(nCity.shabatAdj);
		MedTerm.city = nCity;
	}
	
	var TermDate = new Date (MedTerm.term_year, MedTerm.term_month - 1, MedTerm.term_date, 1, 1, 1);
	var NewDate = new Date (year, month - 1, date, 1, 1, 1);
	if (Math.round((TermDate.getTime() - NewDate.getTime())/(3600*1000*24)) != 0) {
		MedTerm.term_date = date;
		MedTerm.term_month = month;
		MedTerm.term_year = year;
		$('#term_date').text(format_2digits(date));
		$('#term_month').text(format_2digits(month));
		$('#term_year').text(year.toString().substr(2,2));
		MedTerm.term_dow = NewDate.getDay();
		var doys = getDoys (MedTerm.term_date, MedTerm.term_month, MedTerm.term_year);
		zmanim.day_of_year = doys[0];
		zmanim.day_of_year_prev = doys[1];
		zmanim.day_of_year_next = doys[2];
	}
	
	zmanim.set_zmanim();
	MedTerm.changeHebTitles ();
	MedTerm.setup_zmanim ();
	MedTerm.setup_zmanim_offsets ();
	MedTerm.show_zmanim();
	MedTerm.moveMercury ();
	$('#term_date_i').val(format_2digits(MedTerm.term_date)); 
	$('#term_month_i').val(format_2digits(MedTerm.term_month));
	$('#term_year_i').val(MedTerm.term_year);
	if (typeof(CLuach) != 'undefined') {
		luach_change_date (date, month, year, clockDate, clockMonth, clockYear, MedTerm.city, env, moadim);
	}
}

function change_term_date_by_date(date, month, year) {
	if (typeof(MedTerm) != 'undefined') {
		var TDate = new Date (MedTerm.term_year, MedTerm.term_month - 1, MedTerm.term_date, 0, 0, 0);
		var NDate = new Date (year, month - 1, date, 0, 0, 0);
		var days_range =  Math.round((NDate.getTime() - TDate.getTime())/(3600*1000*24));
		count += days_range;
		MedTerm.term_hour -= days_range*24;
		if (count == 0)
			mercuryFix = false;
		else
			mercuryFix = true;
		RenewTerm(MedTerm.city, NDate.getDate(), NDate.getMonth() + 1, NDate.getFullYear());
	} else {
		luach_change_date (date, month, year, clockDate, clockMonth, clockYear, currentCity, env, moadim);
	}
}

function change_term_date(code) {
	var TDate = new Date (MedTerm.term_year, MedTerm.term_month - 1, MedTerm.term_date, 0, 0, 0);
	var new_term_date = parseInt($('#term_date_i').val(), 10); 
	var new_term_month = parseInt($('#term_month_i').val(), 10);
	var new_term_year = parseInt($('#term_year_i').val(), 10);
	var NDate = new Date (new_term_year, new_term_month - 1, new_term_date, 0, 0, 0);
	var days_range =  Math.round((NDate.getTime() - TDate.getTime())/(3600*1000*24));
	count += days_range;
	MedTerm.term_hour -= days_range*24;
	if (count == 0)
		mercuryFix = false;
	else
		mercuryFix = true;
	RenewTerm(MedTerm.city, NDate.getDate(), NDate.getMonth() + 1, NDate.getFullYear());
}


function hideTermdateInpunts (ignore) {
	if (hideInputs == true || ignore == true) {
		inputsEnterPressed = false;
		$('#term_month_i').blur();
		$('#term_date_i').blur();
		$('#term_year_i').blur();
		$('#termdate_inputs').hide();
		$('#termdate_line').show();
	}
						
	if (hideInputsTimerId)
		clearInterval(hideInputsTimerId);
	hideInputsTimerId = null;
	hideInputs = true;
}
