/*
  Check User Input befor Submit.
  Author : tak@
  URL    : http://www.plus-5.com
  Version: 1.01
	Update : 2004. 9.14
	Copyright(C) Plus Five, All rights Reserved.
-------------------------------------------------*/
document.onkeydown = PF_checkKeyDown;
// +++++
/*
  SETTING VARIABLES
-------------------------------------------------*/
function PF_checkForm() {
	var i, j;
	var arg = PF_checkForm.arguments;
	var targetForm = arg[0];
	for(i=0; i<checkElements.length; i++){
		var formElement = targetForm[checkElements[i][0]];
		if(PF_MatchData(targetForm, formElement, checkElements[i][1]) == 0){
			alert(checkElements[i][2]);
			if (checkElements[i][1] != "radio") formElement.focus();
			return false;
		}
	}
	return true;
}
// +++++
/*
  SETTING VARIABLES
-------------------------------------------------*/
function PF_MatchData(targetForm,formElement,elementType) {
	var checkPoint = 0, checkValue = formElement.value;
	switch (elementType) {
		case "mail" :
			checkValue = PF_shiftOneByte(checkValue);
			formElement.value = checkValue;
			if(checkValue.match(/.+@.+\..+/)&&
				checkValue.match(/.+\.com$|.+\.net$|.+\.org$|.+\.to$|.+\.jp$/)){
				checkPoint = 1;
			}
			break;
			
		case "number" :
			checkValue = PF_shiftOneByte(checkValue);
			formElement.value = checkValue;
			var numObj = checkValue.match(/[^0-9]/g);
			if(!numObj && checkValue){
				checkPoint = 1;
			}
			break;
			
		case "url" :
			checkValue = PF_shiftOneByte(checkValue);
			formElement.value = checkValue;
			if(checkValue.match(/(http|https):\/\/.+\..+/)){
				checkPoint = 1;
			}
			break;
			
		case "retype" :
			checkValue = PF_shiftOneByte(checkValue);
			formElement.value = checkValue;
			var ret=targetForm[elementType].value;
			var type_retype = 1;
			if(checkValue == ret){
				checkPoint = 1;
			}
			break;
			
		case "upzero" :
			if(checkValue>0){
				checkPoint = 1;
			}
			break;
			
		case "radio" :
			for(var i=0; i<formElement.length; i++){
				if(formElement[i].checked){
					checkPoint = 1;
				}
				formElement[i].style.backgroundColor="#FFFFFF";
				var labelName = formElement[i].name + "_" + (i+1) + "_label";
				if(document.getElementById){
					document.getElementById(labelName).style.backgroundColor="#FFFFFF";
				}else{
					if(document.all){
						document.all[labelName].style.backgroundColor="#FFFFFF";
					}else{
						document.layers[labelName].bgColor="#FFFFFF";
					}
				}
			}
			break;
			
		default :
			if(checkValue != "" && typeof(checkValue) != "undefined"){
				checkPoint = 1;
			}
			// 2004.6.2
			if(elementType.indexOf("int_") != -1){
				var ketasu = elementType.substring(4, elementType.length);
				var regStr = '^[0-9]{' + ketasu + '}$';
				checkValue = PF_shiftOneByte(checkValue);
				formElement.value = checkValue;
				if(!checkValue.match(RegExp(regStr, "gi"))){
					checkPoint = 0;
				}
			}
	}
	// 2004.6.1
	var color16 = (checkPoint == 0) ? "#FFFFCC" : "#FFFFFF";
	switch(elementType){
		case "retype" :
			targetForm[elementType].style.backgroundColor = color16;
			break;
		
		case "radio" :
			for(var i=0;i<formElement.length;i++){
				formElement[i].style.backgroundColor = color16;
				var labelName = formElement[i].name + "_" + (i+1) + "_label";
				if(document.getElementById){
					document.getElementById(labelName).style.backgroundColor  = color16;
				}else{
					if(document.all){
						document.all[labelName].style.backgroundColor = color16;
					}else{
						document.layers[labelName].bgColor = color16;
					}
				}
			}
			break;

		default :
			formElement.style.backgroundColor = color16;
	}
	return checkPoint;
}
// +++++
/*
  SETTING VARIABLES
-------------------------------------------------*/
function PF_checkKeyDown(ev) {
	var keys;
	if(document.all){
		keys = window.event.keyCode;
	}else{
		keys = ev.which;
	}
	if(keys == 13){
		document.enterPush = 1;
		return;
	}
}
// +++++
/*
  SETTING VARIABLES
-------------------------------------------------*/
function PF_shiftOneByte(checkText) {
	var twoByteGroup, oneByteGroup, checkChar, offSetNum, i;
	var tmp = "";
	oneByteGroup  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.,/+-_:@';
	twoByteGroup  = '%uFF21%uFF22%uFF23%uFF24%uFF25%uFF26%uFF27%uFF28%uFF29%uFF2A%uFF2B%uFF2C%uFF2D%uFF2E%uFF2F%uFF30%uFF31%uFF32%uFF33%uFF34%uFF35%uFF36%uFF37%uFF38%uFF39%uFF3A';
	twoByteGroup += '%uFF41%uFF42%uFF43%uFF44%uFF45%uFF46%uFF47%uFF48%uFF49%uFF4A%uFF4B%uFF4C%uFF4D%uFF4E%uFF4F%uFF50%uFF51%uFF52%uFF53%uFF54%uFF55%uFF56%uFF57%uFF58%uFF59%uFF5A';
	twoByteGroup += '%uFF10%uFF11%uFF12%uFF13%uFF14%uFF15%uFF16%uFF17%uFF18%uFF19';
	twoByteGroup += '%uFF0E%uFF0C%uFF0F%uFF0B%uFF0D%uFF3F%uFF1A%uFF20';
	twoByteGroup = unescape(twoByteGroup);
	for(i=0; i<checkText.length; i++){
		checkChar = checkText.charAt(i);
		offSetNum = twoByteGroup.indexOf(checkChar, 0);
		if (offSetNum != -1) { checkChar = oneByteGroup.charAt(offSetNum); }
		tmp += checkChar;
	}
	return tmp;
}
	