//Caching Variables
var oldHighlightPos = '00';
var GraphFirstLoaded = 0;	//0 : Load ¾ÈÇÔ, 1: Load ÇÔ
var MapHourlyFlag = 0;	//0 : Not hourly model , 1 : Hourly model
var RegionCount = 0;

var QueryScript = '/scripts/graph.php';

function setItemSELECTBOX(form, category) {
	for (i=form.i.length-1;i>=0;i--) {
		form.i.options[i] = null;
	}
	if (category == "disease") {
		arrayValue = diseaseOptionArray;
	} else if (category == "pheromon") {
		arrayValue = pheromonOptionArray;
	} else if (category == "predict") {
		arrayValue = predictOptionArray;
	} else if (category == "period") {
		arrayValue = periodOptionArray;
	} else if (category == "growth") {
		arrayValue = growthOptionArray;
	} else {
		alert('invalid usage!');
	}

	for (i=0;i<arrayValue.length;i++) {
		if (arrayValue[i] != "")
			form.i.options[form.i.length] = arrayValue[i];
	}

	checkItemOptions(form);
}

function checkItemOptions(form) {
	if (form.c.value == "disease") {
		flagArray = diseaseFlagArray;
	} else if (form.c.value == "pheromon") {
		flagArray = pheromonFlagArray;
	} else if (form.c.value == "predict") {
		flagArray = predictFlagArray;
	} else if (form.c.value == "weather") {
		flagArray = weatherFlagArray;
	} else if (form.c.value == "period") {
		flagArray = periodFlagArray;
	} else if (form.c.value == "growth") {
		flagArray = growthFlagArray;
	} else {
		alert('invalid usage!');
	}

	if (flagArray[form.i.selectedIndex] == "Y") {
		MM_showHideLayers('map_option', '', 'show');
	} else {
		MM_showHideLayers('map_option', '', 'hide');
	}

	//¿©±â´Ù°¡ loadingGraph ³Ö±â
	//if (GraphFirstLoaded == 1) loadingGraph();
}

function checkHourNavigation(form) {
	if (form.c.value == "disease") {
		flagArray = diseaseIntvalArray;
	} else if (form.c.value == "pheromon") {
		flagArray = pheromonIntvalArray;
	} else if (form.c.value == "predict") {
		flagArray = predictIntvalArray;
	} else if (form.c.value == "period") {
		flagArray = periodnIntvalArray;
	} else if (form.c.value == "growth") {
		flagArray = growthIntvalArray;
	} else {
		alert('invalid usage!');
	}
	if (flagArray[form.i.selectedIndex] == "Hourly") {
		//active
		MapHourlyFlag = 1;
		document.moveTime1.src='/img/i_12_.gif';
		document.moveTime2.src='/img/i_1_.gif';
		document.moveTime3.src='/img/i_1.gif';
		document.moveTime4.src='/img/i_12.gif';
	} else {
		//inactive
		MapHourlyFlag = 0;
		document.moveTime1.src='/img/in_12_.gif';
		document.moveTime2.src='/img/in_1_.gif';
		document.moveTime3.src='/img/in_1.gif';
		document.moveTime4.src='/img/in_12.gif';
	}
}


function loadingGraph4() {
	//Loading Áß Layer¸¦ Å²´Ù.
	MM_showHideLayers('Loading', '','show');

	//ÀÚ·á ÀåÀü ÀÛ¾÷
	var form = document.graph;
	form.a_y1.value = form.year1.value;
	form.a_y2.value = form.year2.value;
	form.a_m1.value = form.month1.value;
	form.a_m2.value = form.month2.value;
	form.a_d1.value = form.day1.value;
	form.a_d2.value = form.day2.value;

	var url = QueryScript;
	model_id = document.graph.i.value;

	GraphFirstLoaded = 1;

	url = QueryScript+'?model_id='+model_id+'&o=0&o2=1&c='+document.graph.c.value+'&year1='+form.a_y1.value+'&month1='+form.a_m1.value+'&day1='+form.a_d1.value+'&hour1='+form.a_h1.value+'&year2='+form.a_y2.value+'&month2='+form.a_m2.value+'&day2='+form.a_d2.value+'&hour2='+form.a_h2.value+'&rid1='+form.rid_1.value+'&rid2='+form.rid_2.value+'&rid3='+form.rid_3.value+'&rid4='+form.rid_4.value+'&rid5='+form.rid_5.value;
	document.frames['hidden_frame'].location.href=url;
}

function loadingGraph2() {
	//ÀÚ·á È®ÀÎ ÀÛ¾÷
	if (RegionCount == 0) {
		alert('Áö¿ªÀ» ¼³Á¤ÇÏÁö ¾ÊÀ¸¼Ì½À´Ï´Ù');
		return;
	}

	//Loading Áß Layer¸¦ Å²´Ù.
	MM_showHideLayers('Loading', '','show');

	//ÀÚ·á ÀåÀü ÀÛ¾÷
	var form = document.graph;
	form.a_y1.value = form.year1.value;
	form.a_y2.value = form.year2.value;
	form.a_m1.value = form.month1.value;
	form.a_m2.value = form.month2.value;
	form.a_d1.value = form.day1.value;
	form.a_d2.value = form.day2.value;

	if (form.o[1].checked && isSubmenuAvailable(document.graph)) 
		model_id = getMaxModelID(document.graph);
	else 
		model_id = document.graph.i.value;

	GraphFirstLoaded = 1;

	var url = QueryScript+'?o=2&model_id='+model_id+'&year1='+form.a_y1.value+'&month1='+form.a_m1.value+'&day1='+form.a_d1.value+'&hour1='+form.a_h1.value+'&year2='+form.a_y2.value+'&month2='+form.a_m2.value+'&day2='+form.a_d2.value+'&hour2='+form.a_h2.value+'&rid1='+form.rid_1.value+'&rid2='+form.rid_2.value+'&rid3='+form.rid_3.value+'&rid4='+form.rid_4.value+'&rid5='+form.rid_5.value;
	document.frames['hidden_frame'].location.href=url;
}

function loadingGraph() {
	//ÀÚ·á È®ÀÎ ÀÛ¾÷
	if (RegionCount == 0) {
		alert('Áö¿ªÀ» ¼³Á¤ÇÏÁö ¾ÊÀ¸¼Ì½À´Ï´Ù');
		return;
	}

	//Loading Áß Layer¸¦ Å²´Ù.
	MM_showHideLayers('Loading', '','show');

	//ÀÚ·á ÀåÀü ÀÛ¾÷
	var form = document.graph;
	form.a_y1.value = form.year1.value;
	form.a_y2.value = form.year2.value;
	form.a_m1.value = form.month1.value;
	form.a_m2.value = form.month2.value;
	form.a_d1.value = form.day1.value;
	form.a_d2.value = form.day2.value;

	if (form.o[1].checked && isSubmenuAvailable(document.graph)) 
		model_id = getMaxModelID(document.graph);
	else 
		model_id = document.graph.i.value;

	GraphFirstLoaded = 1;

	var url = QueryScript+'?model_id='+model_id+'&year1='+form.a_y1.value+'&month1='+form.a_m1.value+'&day1='+form.a_d1.value+'&hour1='+form.a_h1.value+'&year2='+form.a_y2.value+'&month2='+form.a_m2.value+'&day2='+form.a_d2.value+'&hour2='+form.a_h2.value+'&rid1='+form.rid_1.value+'&rid2='+form.rid_2.value+'&rid3='+form.rid_3.value+'&rid4='+form.rid_4.value+'&rid5='+form.rid_5.value;
	document.frames['hidden_frame'].location.href=url;
}

function calibrateDate(year, month, day, hour) {
	//backward
	if (hour < 0) {
		hour = hour*1 + 24;
		day = day*1 - 1;
	}
	if (day < 1) {
		month = month*1-1;
		if (month < 1) {
			year = year*1 - 1;
			month = 12;
		}
		day = getLastDay(year, month);
	}
	if (month < 1) {
		year = year*1 - 1;
		month = 12;
	}
	if (hour > 23) {
		hour = hour*1 - 24;
		day = day*1 + 1;
	}
	if (day > getLastDay(month, year)) {
		day = 1;
		month = month*1 + 1;
		if (month > 12) {
			month = 1;
			year = year*1 + 1;
		}
	}
	if (month > 12) {
		month = 1;
		year = year*1 + 1;
	}
	return Array(year, month, day, hour);
}

function updateCalculateDate() {
	//backward
	if (document.graph.a_h1.value < 0) {
		document.graph.a_h1.value = document.graph.a_h1.value*1 + 24;
		document.graph.a_d1.value = document.graph.a_d1.value*1 - 1;
		if (document.graph.a_d1.value < 1) {
			document.graph.a_m1.value = document.graph.a_m1.value*1-1;
			if (document.graph.a_m1.value < 1) {
				document.graph.a_y1.value = document.graph.a_y1.value*1 - 1;
				document.graph.a_m1.value = 12;
			}
			document.graph.a_d1.value =
getLastDay(document.graph.a_m1.value, document.graph.a_y1.value);
		}
	} else if (document.graph.a_h1.value > 23) {
		document.graph.a_h1.value = document.graph.a_h1.value*1 - 24;
		document.graph.a_d1.value = document.graph.a_d1.value*1 + 1;
		if (document.graph.a_d1.value >
getLastDay(document.graph.a_m1.value, document.graph.a_y1.value)) {
			document.graph.a_d1.value = 1;
			document.graph.a_m1.value = document.graph.a_m1.value*1 + 1;
			if (document.graph.a_m1.value > 12) {
				document.graph.a_m1.value = 1;
				document.graph.a_y1.value =
document.graph.a_y1.value*1 + 1;
			}
		}
	}
	document.graph.year1.value = document.graph.a_y1.value;
	document.graph.month1.value = document.graph.a_m1.value;
	document.graph.day1.value = document.graph.a_d.value;
}

function getLastDay(month, year) {
	month = month*1;
	year = year*1;
	switch (month) {
		case 1:
			return 31;
		case 2:
			if (year % 4 == 0 && year % 100 != 0 && year % 400 == 0)
				return 29;
			else
				return 28;
		case 3:
			return 31;
		case 4:
			return 30;
		case 5:
			return 31;
		case 6:
			return 30;
		case 7:
			return 31;
		case 8:
			return 31;
		case 9:
			return 30;
		case 10:
			return 31;
		case 11:
			return 30;
		case 12:
			return 31;
	}
}

function updateTitleInfo () {
	document.all["map_title"].innerHTML=document.graph.i[document.graph.i.selectedIndex].text+' '+getStringFromCategory(document.graph.c.value);

	document.all["map_date"].innerHTML = document.graph.a_y1.value+'³â '+document.graph.a_m1.value+'¿ù '+document.graph.a_d1.value+'ÀÏ ';
	if (MapHourlyFlag == 1) { document.all["map_date"].innerHTML += document.graph.a_h1.value+' ½Ã'; }
	document.all["map_date"].innerHTML += ' ~ ' + document.graph.a_y2.value+'³â '+document.graph.a_m2.value+'¿ù '+document.graph.a_d2.value+'ÀÏ ';
	if (MapHourlyFlag == 1) { document.all["map_date"].innerHTML += document.graph.a_h2.value+' ½Ã'; }
}

function updateTitleInfo2 () {
	document.all["map_title"].innerHTML=document.graph.item.value;

	document.all["map_date"].innerHTML = document.graph.a_y1.value+'³â '+document.graph.a_m1.value+'¿ù '+document.graph.a_d1.value+'ÀÏ ';
	document.all["map_date"].innerHTML += ' ~ ' + document.graph.a_y2.value+'³â '+document.graph.a_m2.value+'¿ù '+document.graph.a_d2.value+'ÀÏ ';
}

function updateTitleInfo3 () {
	document.all["graph_title"].innerHTML=document.graph.item.value;

	document.all["graph_date"].innerHTML = document.graph.a_y1.value+'³â '+document.graph.a_m1.value+'¿ù '+document.graph.a_d1.value+'ÀÏ ';
	document.all["graph_date"].innerHTML += ' ~ ' + document.graph.a_y2.value+'³â '+document.graph.a_m2.value+'¿ù '+document.graph.a_d2.value+'ÀÏ ';
}


function getStringFromCategory(id) {
	switch (id) {
		case 'disease':
			return '¹ß»ýÁ¤º¸';
			break;
		case 'pheromon':
			return 'Á¶»çÀÚ·á';
			break;
		case 'predict':
			return '¿¹ÃøÁ¤º¸';
			break;
		case 'period':
			return '';
			break;
		case 'growth':
			return '';
			break;
	}
}

function recalcPeriod() {
	if (document.graph.period.value == "W") {
		calcPeriod(1);
	} else if (document.graph.period.value == "M") {
		calcPeriod(2);
	} else if (document.graph.period.value == "T") {
		calcPeriod(3);
	} else if (document.graph.period.value == "S") {
		calcPeriod(4);
	}
}

function isSubmenuAvailable(form) {
	if (form.c.value == 'disease') {
		arrayFlag = diseaseFlagArray;
	} else if (form.c.value == 'predict') {
		arrayFlag = predictFlagArray;
	} else if (form.c.value == 'weather') {
		arrayFlag = weatherFlagArray;
	} else if (form.c.value == 'pheromon') {
		arrayFlag = pheromonFlagArray;
	} else if (form.c.value == 'growth') {
		arrayFlag = growthFlagArray;
	} else if (form.c.value == 'period') {
		arrayFlag = periodFlagArray;
	}

	if (arrayFlag[form.i.selectedIndex] == 'Y') return true; else return false;
}

function getMaxModelID(form) {
	if (form.c.value == 'disease') {
		arrayFlag = diseaseMaxModelArray;
	} else if (form.c.value == 'predict') {
		arrayFlag = predictMaxModelArray;
	} else if (form.c.value == 'weather') {
		arrayFlag = weatherMaxModelArray;
	} else if (form.c.value == 'pheromon') {
		arrayFlag = pheromonMaxModelArray;
	} else if (form.c.value == 'growth') {
		arrayFlag = growthMaxModelArray;
	} else if (form.c.value == 'period') {
		arrayFlag = periodMaxModelArray;
	}

	return arrayFlag[form.i.selectedIndex];
}

function RefreshGraph() {
	document.graph.c.value = document.graph.a_c.value;
	document.graph.i.value = document.graph.a_i.value;
	document.graph.o.value = document.graph.a_o.value;
	document.graph.year1.value = document.graph.a_y1.value;
	document.graph.month1.value = document.graph.a_m1.value;
	document.graph.day1.value = document.graph.a_d1.value;
	document.graph.hour1.value = document.graph.a_h1.value;
	document.graph.year2.value = document.graph.a_y2.value;
	document.graph.month2.value = document.graph.a_m2.value;
	document.graph.day2.value = document.graph.a_d2.value;
	document.graph.hour2.value = document.graph.a_h2.value;

	document.graph.submit();
}

function printGraph() {
	window.open('/map.php?a=print&c='+document.graph.a_c.value+'&i='+document.graph.a_i.value+'&o='+document.graph.a_o.value+'&y='+document.graph.a_y.value+'&m='+document.graph.a_m.value+'&d='+document.graph.a_d.value+'&h='+document.graph.a_h.value+'&minx='+MapMinX+'&miny='+MapMinY+'&maxx='+MapMaxX+'&maxy='+MapMaxY+'&eubmdboundary='+document.graph.eubmdboundary.value+'&siggboundary='+document.graph.siggboundary.value+'&sidboundary='+document.graph.sidboundary.value+'&eubmdannot='+document.graph.eubmdannot.value+'&siggannot='+document.graph.siggannot.value+'&sidannot='+document.graph.sidannot.value, 'PRINT_MAP', 'status=no,resizable=no, width=600, height=700');
}
