var _relativePath = "";

function checkInputList(object, title)
{
	if (object.length != null)
	{
		for (var n = 0; n < object.length; n++)
		{
			if (object[n].checked)
			{
				return true;
			}
		}
		mustMsg(title);
		object[0].focus();
		return false;
	}
	else
	{
		if (!object.checked)
		{
			mustMsg(title)
			object.focus();
			return false;
		}
	}
	return true;
}

function checkInputValue(object, title)
{
	if (object.value == "")
	{
		mustMsg(title);
		object.focus();
		return false;
	}
	return true;
}

function mustMsg(title)
{
	alert(title + "を入力してください。");
}

function restoreForm()
{
	if (document.getElementsByName("load_datafile").item(0).value == null)
	{
		return;
	}
	
	if (document.getElementsByName("domain").item(0).value == null)
	{
		return;
	}
	
	if (!navigator.cookieEnabled)
	{
		return;
	}

	var ajaxPath = _relativePath + _ajaxFilePath;	
	var dataFileId = document.getElementsByName("load_datafile").item(0).value;
	var domainName = document.getElementsByName("domain").item(0).value;
	var sendData = 'datafileid=' + encodeURIComponent(dataFileId) + '&domainname=' + encodeURIComponent(domainName);
	doAjax(ajaxPath, sendData, restoreFormProc);
}

function restoreFormProc(responseText, errFlg)
{
	if (!errFlg)
	{
		var jsonData = getJsonData(responseText);
		if (jsonData.restoreFlg == 1)
		{
			// easy input
			restoreFormValue("name", jsonData.name, "text");
			restoreFormValue("kana", jsonData.kana, "text");
			restoreFormValue("org_name", jsonData.org_name, "text");
			restoreFormValue("dept_name", jsonData.dept_name, "text");
			restoreFormValue("zip_code", jsonData.zip_code, "text");
			restoreFormValue("address", jsonData.address, "textarea");
			restoreFormValue("phone", jsonData.phone, "text");
			restoreFormValue("fax", jsonData.fax, "text");
			restoreFormValue("e_mail", jsonData.e_mail, "text");
			
			// user input
			for (var n = 1; (($("inp" + n) != null) || ($("inp" + n + "_1")) != null); n++)
			{
				var elemName = "inp" + n;
				restoreFormValue(elemName, jsonData[elemName], null);
			}
		}
	}
}

function restoreFormValue(elemName, setValue, formType)
{
	if ((setValue == null) || (typeof(setValue) == "undefined"))
	{
		return;
	}
	
	if (formType == null)
	{
		formType = getFormType(elemName);
	}
	
	switch (formType)
	{
		case "text" :
			restoreTextBox(elemName, setValue);
			break;
		case "textarea" :
			restoreTextArea(elemName, setValue)
			break;
		case "radio" : 
			restoreRadioBox(elemName, setValue);
			break;
		case "check" :
			restoreCheckBox(elemName, setValue);
			break;
		case "select" :
			restoreSelectBox(elemName, setValue);
			break;
	}
}

function restoreTextBox(elemName, setValue)
{
	if (($(elemName) == null) || ($(elemName) == "undefined"))
	{
		return;
	}
	
	$(elemName).value = setValue;
}

function restoreTextArea(elemName, setValue)
{
	if (($(elemName) == null) || ($(elemName) == "undefined"))
	{
		return;
	}
	
	$(elemName).value = lineToStr(setValue);
}

function restoreRadioBox(elemName, setValue)
{
	var radioNameObj = document.getElementsByName(elemName);
	
	if (radioNameObj.length == 0)
	{
		return;
	}
	
	for(var n = 1; n <= radioNameObj.length; n++)
	{
		var radioObj = $(elemName + "_" + n);
		
		if (radioObj != null)
		{
			if (radioObj.value == setValue)
			{
				radioObj.checked = true;
				return;
			}
		}
	}
}

function restoreCheckBox(elemName, setValue)
{
	if (setValue == "")
	{
		return;
	}
	
	var checkList = setValue.split("_|n");
	
	var checkNameObj = document.getElementsByName(elemName + "[]");

	if (checkNameObj.length == 0)
	{
		return;
	}

	var listIndex = 0;
	
	var checkNameBase = elemName;

	for (var n = 1; n <= checkNameObj.length; n++)
	{
		var checkObj = $(checkNameBase + '_' + n);
		
		if (checkObj != null)
		{
			if (checkObj.value == checkList[listIndex])
			{
				checkObj.checked = true;
				listIndex++;
			}
			else
			{
				checkObj.checked = false;
			}
			
			if (checkList[listIndex] == null)
			{
				return;
			}
		}
	}
}

function restoreSelectBox(elemName, setValue)
{
	var selectObj = $(elemName);
	
	if ((selectObj == null) || (typeof(selectObj) == "undefined"))
	{
		return;
	}
	
	for (var n = 0; n < selectObj.options.length; n++)
	{
		var optionObj = selectObj.options[n];
		
		if ((optionObj == null) || (typeof(optionObj) == "undefined"))
		{
			break;
		}
		
		if (optionObj.value == setValue)
		{
			optionObj.selected = true;
			return;
		} 
	}
}

function getFormType(elemName)
{
	var typeStr = "";

	var nameObj = document.getElementsByName(elemName);
	
	if (nameObj.length == 0)
	{
		nameObj = document.getElementsByName(elemName + "[]");
		
		if (nameObj.length == 0)
		{
			return typeStr;
		}
	}

	if ((nameObj[0] == null) || (typeof(nameObj[0]) == "undefined"))
	{
	    return typeStr;
	}
	
	switch (nameObj[0].type)
	{
	    case "radio" : 
	        typeStr = "radio";
	        break;
	    case "checkbox" :
	        typeStr = "check";
	        break;
	    case "select-one" :
	        typeStr = "select";
	        break;
	    case "text" :
	        typeStr = "text";
	        break;
	    case "textarea" :
	        typeStr = "textarea";
	        break;
	    case "password" :
	        typeStr = "";
	        break;
	    default : 
	    	typeStr ="";
	}
	
	return typeStr;
}

function lineToStr(line)
{
	line = "" + line;
 	var ret = line.replace(/_\|n/g, "\r\n");
   	return ret.replace(/\|\|/g, "|");
}
