<!--

var yearStart = 1998;
var monthStart = 1;
var dayStart = 1;

///var yearEnd,monthEnd,dayEnd
var re_year, re_month, re_day



fnl = ymd_time(yearEnd_final, monthEnd_final, dayEnd_final)
nrt = ymd_time(yearEnd_nrt, monthEnd_nrt, dayEnd_nrt)

if (nrt > fnl) {
	var yearEnd = yearEnd_nrt;
	var monthEnd = monthEnd_nrt;
	var dayEnd = dayEnd_nrt;
} else {
	var yearEnd = yearEnd_final;
	var monthEnd = monthEnd_final;
	var dayEnd = dayEnd_final;
}

var year = yearEnd;
var month = monthEnd;
var day = dayEnd;


switch (time_frame) {
	case "day1": track_days = 1; break;
}


scan_refresh_timeframe();

var image_ext = ".png";

var root_dir = "../pub/fusion/sst/";
var data_folder = "data/binary/";
var graphics_dir = "graphics_v01/";
var firstY, firstM, firstD, lastY, lastM, lastD

var qStr

var keep_rgn = 1; keep_size = 1; keep_date = 0;

var region_key = "global";
var image_size = "small";


sats = new createArray(4)
sats[0] = new sat("tmi_amsre", "TMI + AMSR-E")
sats[1] = new sat("amsre", "AMSR-E")
sats[2] = new sat("tmi", "TMI")
sats[3] = new sat("mw_ir", "MW + IR")

var sat_num = 0;


url_params = window.location.search.substring(1);
params = url_params.split("&");

for (i=0; i<params.length; ++i) {
	param = params[i];
	param = param.split("=");
	name = param[0];
	val = param[1];

	switch (name) {
		case "rgn": region_key = val; break;
		case "size": image_size = val; break;
		case "year": year = val - 0; break;
		case "month": month = val - 0; break;
		case "day": day = val - 0; break;
		case "pass": pass = val; break;
		case "sat": sat_num = sat_key_to_num(val); break;

		case "keep":
			keep_rgn = val.charAt(0) - 0;
			keep_size = val.charAt(1) - 0;
			keep_date = val.charAt(2) - 0;
			break;
	}
}

if (keep_date) {
	if (time_frame == "week") { date_to_week(); }
}

var form

var anomaly = 0;
var climate = 0;



set_image_folder();


function msg(p) { alert(p) }


function init() {
	form = document.forms["nav"];
///	set_refresh_time();
}


function createArray(n) {
	this.length = n;
	return this;
}


function key_pressed() {

	//msg(window.event.keyCode);

	switch (window.event.keyCode) {

	case 49: set_sat(0); sync_sat(); break;
	case 50: set_sat(1); sync_sat(); break;
	case 51: set_sat(2); sync_sat(); break;
	case 52: set_sat(3); sync_sat(); break;

	// case 49: set_version(1); break;
	// case 50: set_version(2); break;

	case 44:
	case 49:
		step_day(-1); break;

	case 51:
	case 46:
		step_day(1); break;

	case 52:
	case 60:
		step_month(-1); break;

	case 54:
	case 62:
		step_month(1); break;

	case 55:
	case 109:
	case 77:
		step_year(-1); break;

	case 57:
	case 47:
	case 63:
		step_year(1); break;

	case 97:
	case 65:
	case 53:
//		toggle_anomaly(); break;

	case 56:
	case 61:
	case 43:
//		step_channel(1); break;

	case 50:
	case 45:
	case 95:
//		step_channel(-1); break;

	case 99:
	case 67:
//		toggle_climate(); break;
	}
}


function set_version(p) {
	version = p
	graphics_dir = "graphics_v0" + version + "/";
	set_image_folder();
	display_image();
}


function get_version_name() {
	return("v01");
}


function sat(key, title) {
	this.key = key
	this.title = title
}



function sync_all() {
	sync_day(); sync_month(); sync_year(); sync_buttons();
}

function sync_buttons() {
	sync_year_buttons()
	sync_month_buttons()
	sync_day_buttons()
}




function year_options() {
	str = "<option>Year&nbsp;&nbsp;"
	for (var i=yearStart; i<=yearEnd; ++i) {
		str += "<option value=" + i;
		if (year == i) str += " selected";
		str += ">"
		str += i
	}
	//temp str += "<OPTION VALUE='climate'>Clim."
	return str
}


function year_selected() {
	si = form.year.selectedIndex;
	if (si == 0) { sync_year(); return; }
	sv = form.year.options[si].value
	if (sv == 'climate') { set_climate(1); return; }
	set_climate(0);
	year = parseInt(sv);
	sync_buttons();
	display_image();
}


function sync_year() {
	if (climate) { si = yearEnd - yearStart + 2; }
	else { si = year - yearStart + 1; }
	form.year.options[si].selected = true;
}

function sync_year_buttons() {

	str = "on";
	
	switch(year) {
	case (yearStart): str = "off"; break;
	case (yearStart + 1):
		if (month < monthStart) { str = "off"; }
		if (track_days) { if (month == monthStart && day < dayStart) { str = "off"; } }
		break;
	}
	
	if (climate) { str = "off"; }
	
	document.images["prev_year"].src = "../img/btns/prev_" + str + ".gif";

	str = "on";
	switch(year) {
	case (yearEnd): str = "off"; break;
	case (yearEnd - 1):
		if (month > monthEnd) { str = "off"; }
		if (track_days) { if (month == monthEnd && day > dayEnd) { str = "off"; } }
		break;
	}
	if (climate) { str = "off"; }
	document.images["next_year"].src = "../img/btns/next_" + str + ".gif";
}





function month_options() {
	options = "<option>Month"
	for (var i=1; i<=12; ++i) {
		options += "<option"
		if (month == i) { options += " selected" }
		options += ">"
		options += month_names[i].substring(0, 3);
	}
	return options
}


function month_selected() {
	si = form.month.selectedIndex;
	if (si == 0) { sync_month(); return; }
	set_month(si);
}

function set_month(p) {
	month = p;
	sync_buttons();
	display_image();
}

function sync_month() {
	form.month.options[month].selected = true;
}


function sync_month_buttons() {

	str = "on";
	if (year == yearStart) {
		switch (month) {
			case (monthStart): str = "off"; break;
			case (monthStart + 1):
				if (track_days) { if (day < dayStart) { str = "off"; } } break;
		}
	}
	if (climate) { str = "on"; }
	document.images["prev_month"].src = "../img/btns/prev_" + str + ".gif";

	str = "on";
	if (year == yearEnd) {
		switch (month) {
			case (monthEnd): str = "off"; break;
			case (monthEnd - 1):
				if (track_days) { if (day > dayEnd) { str = "off"; } } break;
		}
	}
	if (climate) { str = "on"; }
	document.images["next_month"].src = "../img/btns/next_" + str + ".gif";
}





function day_options() {
	str = "<option>Day"
	for (var i=1; i<=31; ++i) {
		str += "<option"; if (day == i) { str += " selected"; } str += ">" + pad(i);
	}
	return str
}


function day_selected() {
	si = form.day.selectedIndex;
	if (si == 0) { form.day.options[day].selected = true; return; }
	set_day(si);
}


function set_day(p) {
	day = p;
	check_day();
	sync_buttons();
	display_image();
}


function check_day() {
	max_day = days_in_month(month);
	if (day > max_day) { day = max_day; sync_day(); }
}


function sync_day() {
	form.day.options[day].selected = true;
}


function sync_day_buttons() {

	str = "on";
	if (year == yearStart && month == monthStart && day == dayStart) { str = "off"; }
	if (climate) { str = "on"; }
	document.images["prev_day"].src = "../img/btns/prev_" + str + ".gif";

	str = "on";
	if (year == yearEnd && month == monthEnd && day == dayEnd) { str = "off"; }
	if (climate) { str = "on"; }
	document.images["next_day"].src = "../img/btns/next_" + str + ".gif";
}




function previous_day() { step_day(-1); }
function next_day() { step_day(1); }

function step_day(d) {

	day = day + d;

	if (day == 0) { step_month(-1); day = days_in_month(month); }
	if (day > days_in_month(month)) { day = 1; step_month(1); }

	out_o_range = out_of_range();

	if ( out_o_range > 0 ) { set_last_day(); }
	if ( out_o_range < 0 ) { set_first_day(); }

	update_display();
}


function set_first_day() { year = yearStart; month = monthStart; day = dayStart; }

function set_last_day() { year = yearEnd; month = monthEnd; day = dayEnd; }





function previous_month() { step_month(-1); }
function next_month() { step_month(1); }

function step_month(d) {

	month = month + d;

	if (month == 0) { month = 12; if (! climate) year--; }
	if (month == 13) { month = 1; if (! climate) year++; }

	out_o_range = out_of_range();

	if ( out_o_range > 0 ) { set_last_month(); }
	if ( out_o_range < 0 ) { set_first_month(); }

	check_day();
	update_display();
}


function out_of_range() {
	if (climate) return(0);

	if (year < yearStart) return(-1);
	if (year > yearEnd) return(1);

	if ((year == yearStart) && (month < monthStart)) return(-1);
	if ((year == yearEnd) && (month > monthEnd)) return(1);

	if (track_days) {
		if ((year == yearStart) && (month == monthStart) && (day < dayStart)) return(-1);
		if ((year == yearEnd) && (month == monthEnd) && (day > dayEnd)) return(1);
	}
	return(0);
}

function set_first_month() {
	year = yearStart; month = monthStart;
	if (day < dayStart) { month++; }
}

function set_last_month() {
	year = yearEnd; month = monthEnd;
	if (day > dayEnd) { month--; }
}



function previous_year() { step_year(-1); }
function next_year() { step_year(1); }

function step_year(d) {
	set_climate(0);

	new_year = year + d;

	switch(new_year) {
	case (yearStart - 1): return;
	case (yearStart):
		if (month < monthStart) { return; }
		if (track_days) { if ((month == monthStart) && (day < dayStart)) { return; } }
		break;
	case (yearEnd):
		if (month > monthEnd) { return; }
		if (track_days) { if ((month == monthEnd) && (day > dayEnd)) { return; } }
		break;
	case (yearEnd + 1): return;
	}

	year = new_year;

	update_display();
}





function sat_options() {
	str = ""
	for (var i=0; i<sats.length; ++i) {
		str += "<option value=" + sats[i].key
		if (sat_num == i) { str += " selected" }
		str += ">"
		str += sats[i].title
	}
	return str
}


function sat_selected() {
	set_sat(form.sat.selectedIndex);
}


function sync_sat() { form.sat.options[sat_num].selected = true; }


function set_sat(p) {
	sat_num = p;
	set_image_folder();
	display_image();
}


function sat_dir() {
	return sat_key() + "/"
}

function sat_key() {
	return sats[sat_num].key
}

function sat_key_to_num(p) {
	for (var i=0; i<sats.length; ++i) { if (sats[i].key == p) return(i); }
	return(0);
}


function step_sat(p) {
	new_channel = channel_num + p;

	switch (p) {
	case 0: new_channel = channel_num + 1;
 	if (new_channel > num_channels) new_channel = first_channel_num;
	break;

	case 1:  if (new_channel > num_channels) return;
	case -1: if (new_channel < first_channel_num) return;
	}

	set_channel(new_channel);
	sync_channel();
}


function anomaly_options() {
	str = ""
	str += "<option value=absolute selected>Absolute"
	str += "<option value=anomaly>Anomaly"
	return str
}


function toggle_anomaly() { set_anomaly((anomaly + 1) % 2); }

function set_anomaly(p) {
	if (anomaly == p) return;
	anomaly = p;
	switch (anomaly) {
	case 1: set_climate(0); str = "on"; break;
	case 0: str = "off"; break;
	}
	document.images["anomaly"].src = "../images/btns/bg/ice/anomaly_" + str + ".gif";

	display_image();
}


function toggle_climate() { set_climate((climate + 1) % 2); }

function set_climate(p) {
	if (climate == p) return;
	climate = p;
	switch (p) {
	case 1: set_anomaly(0); str = "on"; break;
	case 0: str = "off"; break;
	}
	document.images["climate"].src = "../images/btns/bg/ice/climatology_" + str + ".gif";
	sync_year(); sync_buttons();
	display_image();
}


function region_options() {
	
	//str = "<option value=region_map>Region Map"
	str = "";
	
	for (i=0; i<rgn_keys.length; i++) {
		rgn = rgn_keys[i];
		str += "<option value=" + rgn;
		if (rgn == region_key) str += " selected";
		str += ">" + rgn_names[i];
	}
	return str
}


function region_selected() {
	si = form.region.selectedIndex;
	region_key = form.region.options[si].value;
	
	//temp set_image_map();
	
	set_image_folder();
	display_image();
}


function region(p) { // called by image map

	region_key = p;
	
	idx = get_po(rgn_keys, p) + 1;
	form.region.options[idx].selected = 1;
	
	display_image();
	set_image_map();
}


function set_image_map() {
return; //temp
	switch (region_key) {
	case "global":
	case "region_map": str_map = "#region_image_map_" + image_size; break;
	default: str_map = "#region_image_map_not_global";
	}
	document.images["sst"].useMap = str_map;
}


function image_size_options() {
	syzs = ["small", "medium", "large"]
	lbls = ["Image Size: Small", "Image Size: Medium", "Image Size: Large"]
	str = "";

	for (i=0; i<syzs.length; i++) {
		syz = syzs[i];
		str += "<option value=" + syz;
		if (syz == image_size) {str += " selected";}
		str += ">" + lbls[i];
	}

	return(str);
}


function image_size_selected() {
	si = form.image_size.selectedIndex;
	image_size = form.image_size.options[si].value;

	set_image_map();

	set_image_folder();
	display_image();
}


function set_image_folder() {
	root_dir = "../graphics/fusion/sst/";
	image_folder = root_dir + graphics_dir + sat_dir() + image_size + "/" + region_key + "/";
}



function valid_day(inDay) {
	if (month == 2) { if (inDay > get_Feb_length()) return false; }
	else if (inDay > month_lengths[month]) return false;
	return true;
}


function download_binary_data() {

	fyl = root_dir + data_folder;
	
	fyl += "msu_channel_" + channel_num + "_Tb_";
	if (anomaly) { fyl += "anom_"; }
	fyl += get_version_name() + ".dat";

	window.location = fyl;
}


function pad(p) {
	if (p < 10) { return("0" + p); }
	return("" + p);
}


function get_image_path() {

	yyyy = "" + year; mm = pad(month); dd = pad(day);
	if (climate) { yyyy = "clim"; }

	img_name = sat_key() + "_";

	switch (time_frame) {
	case "day1":
		img_name += yyyy + "_" + mm + "_" + dd + "_" + "sst";
		if (anomaly) { img_name += "anom_"; }
		break;
	}
	str =  image_folder + get_path_mid() + img_name + image_ext
	return str
}


function get_path_mid() { return "y" + year + "/m" + pad(month) + "/" }


function update_display() {
	sync_all();
	display_image();
}


function display_image() {
	if ( data_may_need_refreshing() ) { reloadImages() }
	else { form.sst.src = get_image_path(); }
}




function open_tips() {
	spawn_window("sst_tips.html", "help");
}



function reloadImages() {
	form.sst.src = get_image_path() + "?" + qStr;
}


function set_refresh_time() {
	now = new Date();
	qStr = now.getTime();
	setTimeout('set_refresh_time()', 30 * 60 * 1000);
}

function scan_refresh_timeframe() {
	re_year = year; re_month = month; re_day = day;
}


function data_may_need_refreshing() {
	if (time_frame != "day") return(0);

	if (year > re_year) return(1);
	if (year < re_year) return(0);

	// year must be same

	if (month > re_month) return(1);
	if (month < re_month) return(0);

	// month must be same

	if (day >= re_day) return(1);
	return(0);

}



function small_img(p) {

	str = "<img src='" + get_image_path() + "' name=" + p
 
	str += " border=0"
	
	str += ">"
	
	return str
}


function img_table(p_time) {

str = "<table border='4' align='center' cellpadding='6'>"

str += "<tr>"

str += "<td align='center'>"

str += small_img("sst")

str += "</td>"

str += "</tr>"

str += "</table>"

return(str)

}


function keep_options() {
	str = "";
	
	str += "<input type='checkbox' name='keep_rgn'";
	if (keep_rgn) {str += " checked"; }
	str += ">Region ";
	
	str += "<input type='checkbox' name='keep_size'";
	if (keep_size) {str += " checked"; }
	str += ">Size ";
	
	str += "<input type='checkbox' name='keep_date'";
	if (keep_date) {str += " checked"; }
	str += ">Date ";
	
	return(str);
}

function view_daily() { switch_time_frame("daily"); }
function view_weekly() { switch_time_frame("weekly"); }
function view_monthly() { switch_time_frame("monthly"); }


function switch_time_frame(tym) {
	url = "scatterometer_data_" + tym + ".html?"

	if (form.keep_rgn.checked)  { rgn = 1; } else { rgn = 0; }
	if (form.keep_size.checked) { syz = 1; } else { syz = 0; }
	if (form.keep_date.checked) { dayt = 1; } else { dayt = 0; }

	if (rgn) { url += "&rgn=" + region_key; }
	if (syz) { url += "&size=" + image_size; }

	if (dayt) {
		if (time_frame == "week") { week_to_date(); }
		url += "&year=" + year;
		url += "&month=" + month;
		if (day > 0) url += "&day=" + day;
		url += "&pass=" + pass;
	}

	url += "&keep=" + rgn + syz + dayt;

	window.location = url;
}


function week_to_date() {
	ymd = weekArray[wIdx];
	year =	ymd.substr(0,4) - 0;
	month =	ymd.substr(4,2) - 0;
	day = 	ymd.substr(6,2) - 0;
}


function date_to_week() {
	ymd = (year * 10000) + (month * 100) + day;
	
	for (i=1; i<=numwks; i++) {
		if (weekArray[i] >= ymd) { wIdx = i; return; }
	}
}


function ymd_time(y,m,d) {
	dt = new Date(y,m,d);
	return (dt.getTime());
}


// -->
