var obj = null;
var curY;
var curM;
//------------------Common----------------------------------
function sendPage(frmName, action, flag, id){
	var obj = document.getElementById("edit_id");
	if(obj) if(id) obj.value = id;
	obj = document.getElementById("flag");
	if(obj) if(flag) obj.value = flag;
	obj = document.getElementById(frmName);
	
	var actionSplit = action.split("user/reserve/");
	if(actionSplit.length > 1)
		obj.action = document.getElementById("httpsUrl").value + action;	
	else
		obj.action = document.getElementById("httpUrl").value  + action;
	obj.submit();
}
function setObjection(objName)
{
	obj = document.getElementById(objName);
}
//////////////////////////// Course Select ///////////////////////////////////////
function changeTimeList(objName, objName1, flag)
{
	if(flag == 'edit')
		makeCalendar(null, null, null, flag);
	else
		makeCalendar();
}
function changeSchedule(objName, objName1, flag)
{
	if(flag == 'edit')
		makeCalendar(null, null, null, 'editSchange');
	else
		makeCalendar(null, null, null, 'schange');
}
function visibleTimeList(objName, flag, objName1, flag1)
{
 	if(objName1)
		 setApproximateTime(objName1);

	setObjection(objName);
	if(flag == '1')
	{
		obj.style.visibility="visible";
	}
	else if(flag == '2')
	{
		obj.style.visibility="hidden";
		if(flag1 == 'edit')
			makeCalendar(null, null, null, flag1);
		else
			makeCalendar();
	}
}
function setApproximateTime(objName)
{
	setObjection(objName);
	strTime = obj.value;

	if(!strTime) return false;
	
	var timeSplit = strTime.split(":");
	//Hour
	if(!timeSplit)                                    return false;
	if(isNaN(timeSplit[0]))                           return false;
	else if(timeSplit[0] < 0  || timeSplit[0] > 24)  return false;

	hour = timeSplit[0].split(".");
	hour = hour[0];
	//Minute
	if(timeSplit.length > 2) return false; // Multi ":"
	if(timeSplit.length < 2) minute = "00";  // One ":"
	else{
		if(isNaN(timeSplit[1]))                          return false;
		else if(timeSplit[1] < 0  || timeSplit[1] > 60) return false;
		
		minute = timeSplit[1].split(".");
		
		if(minute[0] < 30 )                          minute = "00";
		else if(minute[0] >= 30 && minute[0] < 60)  minute = "30";
		else if(minute[0] == 60)                    minute = "30";  
	}
	
	if(hour == 24) hour = 0;
	/*
	obj.value = hour + ":" + minute;
	*/
	setObjection("startTimeList");

	for(i=0;i<obj.length;i++)
	{
		Val=obj.options[i].value;
		if(Val==(hour + ":" + minute))
		{
			obj.options[i].selected;
			break;
		}
	}
	return true;
}
function makeCalendar(params, curY, curM, flag)
{
	setObjection("curY");
	
	if(params == null || params.split("startTime").length < 2)
	{
		if(obj != null) 
		{
			if(curY != null) obj.value = curY;
			if(params) params += "&curY=" + obj.value;
			else       params  = "curY="  + obj.value;
		}
		setObjection("curM");
		if(obj != null) 
		{
			if(curM != null) obj.value = curM;
			if(params) params += "&curM=" + obj.value;
			else       params = "curM=" + obj.value;
		}
		
		setObjection("courseId");
		params += "&courseId=" + obj.value;
		
		if(flag != 'editSchange' && flag != 'schange')
		{
			setObjection("startTime");
			params += "&startTime=" + obj.value;				
		}
		
		setObjection("rdl");
		if(obj)
			params += "&rdl=" + obj.value;
		
		setObjection("startSchedule");
		if(obj)
			params += "&startSchedule=" + obj.value;

		setObjection("p");
		if(obj)	
			params += "&p=" + obj.value;
	}

	paramList = params;
	setObject("calendar", "scheduleInfoPart");
	
	if(flag == "edit" || flag == "editSchange")
		url = "/user/calendar/programEditCalendar";	
	else
		url = "/user/calendar/programCalendar";

	sendPost(url, paramList);
}
function reserveStart(day, remainderSitCounts, specialItem, scheduleId)
{
	act = "/user/reserve/courseDetail";

	setObjection("curY");
	act += "?curY=" + obj.value;
	
	setObjection("curM");
	act += "&curM=" + obj.value;
	act += "&curD=" + day;
	act += "&rsc="  + remainderSitCounts;
	
	setObjection("courseId");
	if(obj.value == 0){
		alert(MS_COURSE_EMPTY);
		return false;
	}else
		act += "&courseId=" + obj.value;

	setObjection("startTime");
	act += "&startTime=" + obj.value;
	act += "&specialItem=" + specialItem;
	act += "&scheduleStart=" + scheduleId;
	
	sendPage("param", act);
}
function reserveEdit(day, remainderSitCounts, flag, specialItem, scheduleId)
{
	if(flag == '2')
	{
		alert(MS_PRE_RESERVED);
		return false;
	}

	act = "/user/reserve/courseDetailEdit";
	
	setObjection("curY");
	act += "?curY=" + obj.value;
	
	setObjection("curM");
	act += "&curM=" + obj.value;
	act += "&curD=" + day;
	act += "&rsc="  + remainderSitCounts;
	
	setObjection("courseId");
	act += "&courseId=" + obj.value;
	
	setObjection("startTime");
	act += "&startTime=" + obj.value;
	act += "&specialItem=" + specialItem;
	act += "&scheduleStart=" + scheduleId;
	if(flag == '3')
		act += "&changer=me";

	sendPage("param", act);	
}
function checkRequestLogin(action)
{
	if( requireCheck("prog_phonenumber|" + MS_ENTER_PHONENUMBER) &&
		 requireCheck("prog_email|"  + MS_ENTER_EMAIL))
	{
		sendPage("param", action);
	}
}
function chkRemainderCounts()
{
	act = "/user/reserve/requestEditConfirm";

	if(posNumSizeCheck("companionMan|"   + MS_FORMAT_MANCOUNTS)   &&
	   posNumSizeCheck("companionChild|"  + MS_FORMAT_CHILDCOUNTS) &&
	   posNumSizeCheck("companionInfant|" + MS_FORMAT_INFANTCOUNTS))
	{
		setObjection("companionMan");
		companionMan   = Number(obj.value);
		if(companionMan == null || companionMan == "") companionMan = 0;

		setObjection("companionChild");
		companionChild = Number(obj.value);
		if(companionChild == null || companionChild == "") companionChild = 0;
	
		setObjection("companionInfant");
		companionInfant = Number(obj.value);
		if(companionInfant == null || companionInfant == "") companionInfant = 0;		

		if(companionMan == 0 && companionChild == 0 && companionInfant == 0 )
		{
			alert(MS_ENTER_ENTRANTCOUNT);
			setObjection("companionMan");
			obj.select();
			
			return false;
		}
		setObjection("rsc");
		remainderSitCounts = Number(obj.value);
		
		if((companionMan + companionChild + companionInfant) > remainderSitCounts)
		{
			alert(MS_FULL_SIT);
			return false;
		}
		sendPage("param", act);	
	}
}
/////////////////////////////////// User Reserve ////////////////////////////////////
function chkUserInfo(param, url)
{
	if(requireCheck("delegateName|"      + MS_ENTER_NAME)          &&
	   requireCheck("phoneNumber|"       + MS_ENTER_PHONENUMBER)   &&
	   posNumSizeCheck("phoneNumber|"    + MS_FORMAT_PHONENUMBER1)  &&
	   posNumSizeCheck("phoneNumber2|"    + MS_FORMAT_PHONENUMBER2)  &&
	   requireCheck("email|"             + MS_ENTER_EMAIL)         &&
	   emailCheck("email|"               + MS_FORMAT_EMAIL)        &&
	   requireCheck("emailConfirm|"      + MS_ENTER_EMAILCONFIRM)  &&
	   emailCheck("emailConfirm|"        + MS_FORMAT_EMAILCONFIRM) &&
	   checkStrComp("email|emailConfirm|"+ MS_CHK_EMAILCONFRIM)    &&
	   posNumSizeCheck("companionMan|"   + MS_FORMAT_MANCOUNTS)    &&
	   posNumSizeCheck("companionChild|" + MS_FORMAT_CHILDCOUNTS))
	{
		setObjection("rsc");
		remainderCount = obj.value;
		
		setObjection("companionMan");
		manCount = obj.value;
		if(manCount == null || manCount == "") manCount = 0;
		
		setObjection("companionChild");
		childCount = obj.value;
		if(childCount == null || childCount == "") childCount = 0;
		
		setObjection("companionInfant");
		infantCount = obj.value;
		if(infantCount == null || infantCount == "") infantCount = 0;
		
		if(manCount == 0 && childCount == 0)
		{
			alert(MS_ENTER_ENTRANTCOUNT);
			setObjection("companionMan");
			obj.select();
			
			return false;
		}
		
		diffCount = Number(remainderCount) - (Number(manCount) + Number(childCount) + Number(infantCount));
		
		if(diffCount < 0)
		{
			alert(MS_FULL_SIT);	
			return false;
		}
		sendPage(param, url);	
	}
}

function searchRemainderSits(frmName, action)
{
	setObjection("curYear");
	action = action + "&curY=" + obj.value;

	setObjection("curMonth");
	action = action + "&curM=" + obj.value;
	
	sendPage(frmName, action);	
}
//////////////////////////////////XML//////////////////////////////
/*
var xmlObject;
var bStatus      = false;
var bCurrentDate = false;
var currentDate = null;
*/
var xmlObject    = false;
var bStatus      = false;
var bCurrentDate = false;
var xmlDoc       = false;
var currentDate  = null;
/*
function loadXML() 
{ 
	currentDate = getCurrentDate();
	var xmldoc;
	// code for IE 
	if (document.implementation && document.implementation.createDocument) 
	{ 
		xmldoc=document.implementation.createDocument("","",null);
		xmldoc.load("/weatherInfo/28.xml");
		xmlObject=xmldoc;
	} 
	else 
	{ 
		xmldoc=new ActiveXObject("Microsoft.XMLDOM"); 
		xmldoc.async=false; 
		xmldoc.load("/weatherInfo/28.xml"); 
		xmlObject=xmldoc.documentElement;
	}
}
*/
function loadXML()
{
	 currentDate = getCurrentDate();

	 weatherInitialize();
	 
	 if (window.ActiveXObject)
	 {
		 xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		 xmlDoc.async = false;
		 xmlDoc.load("/weatherInfo/28.xml");
	 }
	 else if (document.implementation && document.implementation.createDocument)
	 {
		 
		 xmlDoc=document.implementation.createDocument("","",null);
		 xmlDoc.async = false;
		 xmlDoc.load("/weatherInfo/28.xml");
	 }else{
		return false;
	 }
	 
	 xmlObject = xmlDoc.documentElement;
}
function findChildNodes(parentNodes)
{
	if(parentNodes == null) parentNodes = xmlObject;
	
	var nodeNum=parentNodes.childNodes.length;

	for(var i=0; i<nodeNum; i++)
	{
		if (parentNodes.childNodes[i].hasChildNodes())
		{
			if(parentNodes.tagName == "area" && 
			    parentNodes.getAttribute("id") == "南部")
			{
				bStatus = true;
			}
			else if(parentNodes.tagName == "area" && 
					 parentNodes.getAttribute("id") != "南部")
			{
				bStatus = false;
			}

			if(bStatus && 
			   parentNodes.tagName == "info" && 
			   parentNodes.getAttribute("date") == currentDate)
			{
				bCurrentDate = true;
			}
			else if(bStatus && 
			  		 parentNodes.tagName == "info" && 
			   		 parentNodes.getAttribute("date") != currentDate)
			{
				bCurrentDate = false;
			}
			findChildNodes(parentNodes.childNodes[i])
		}	
		else
		{
			if(bCurrentDate == true)
			{
				tagName = parentNodes.tagName;

				if(tagName == "range" && parentNodes.getAttribute("centigrade") =="max")
					var objXml = document.getElementById("tempMax");
				else if(tagName == "range" && parentNodes.getAttribute("centigrade") =="min")
					var objXml = document.getElementById("tempMin");
				else if(tagName == "period")
					var objXml = document.getElementById("periodHour1");
				else
					var objXml = document.getElementById(tagName);	
					
				if(objXml)
				{
					if(tagName == "range" && parentNodes.getAttribute("centigrade") =="max")
						document.getElementById("tempMax").innerHTML = parentNodes.childNodes[i].nodeValue;
					else if(tagName == 'img')
						document.getElementById("weatherImg").src = parentNodes.childNodes[i].nodeValue;
					else if(tagName == "range" && parentNodes.getAttribute("centigrade") =="min")
						document.getElementById("tempMin").innerHTML = parentNodes.childNodes[i].nodeValue;
					else if(tagName == "period")
					{
						if(parentNodes.getAttribute("hour") =="00-06") objName = "periodHour1";
						if(parentNodes.getAttribute("hour") =="06-12") objName = "periodHour2";
						if(parentNodes.getAttribute("hour") =="12-18") objName = "periodHour3";
						if(parentNodes.getAttribute("hour") =="18-24") objName = "periodHour4";
						
						document.getElementById(objName).innerHTML = parentNodes.childNodes[i].nodeValue;	
					}
					else
						document.getElementById(tagName).innerHTML = parentNodes.childNodes[i].nodeValue;
				}
			}
		}	
	}	
}
function weatherInitialize()
{
	document.getElementById("tempMax").innerHTML = "--";
	document.getElementById("tempMin").innerHTML = "--";
	document.getElementById("periodHour1").innerHTML = "--";
	document.getElementById("periodHour2").innerHTML = "--";
	document.getElementById("periodHour3").innerHTML = "--";
	document.getElementById("periodHour4").innerHTML = "--";
}
function getCurrentDate()
{
	var objDate = new Date();
 	
	year  = objDate.getFullYear();
    month = Number(objDate.getMonth()) + 1;
    date  = objDate.getDate();
	date = date.toString();
	if(date.length == 1) date = "0" + date;

	strMonth = month.toString();
	if(strMonth.length == 1) month = "0" + month;
	var curDate = year + "/" + month + "/" + date;

	return curDate;
}
function chkContactMailInfo(param, url)
{
	if( requireCheck("contactName|"        + MS_ENTER_NAME)         &&
	    requireCheck("contactMailAddress|"  + MS_ENTER_EMAIL)      　&&
	    emailCheck("contactMailAddress|"    + MS_FORMAT_EMAIL)     　&&
	    requireCheck("contactSubject|"     + MS_ENTER_SUBJECT)    　&&
	    requireCheck("contactContents|"    + MS_ENTER_EMAILCONTENTS))
	{
		sendPage(param, url);	
	}
}




