addEvent(window, 'load', windowLoaded);
function addEvent(obj, evType, fn){ 
	if (obj.addEventListener){ 
		obj.addEventListener(evType, fn, false); 
		return true; 
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn); 
		return r; 
	} else { 
		return false; 
	}
}

function windowLoaded(){
	addFormBubbles();
	document.getElementById("input_button").type = "button";
	document.getElementById("input_button").onclick = submitform;
}


// ::: Add Bubbles ::: //
function addFormBubbles(){
	addInputEvents("eman","お名前を入力してください。",1);
	addInputEvents("ynapmoc","",2);	
	addInputEvents("egapemoh","",3);
	addInputEvents("tcejbus","",4);
	addInputEvents("liame","メールアドレスを確認してください。",5);
	addInputEvents("liame2","メールアドレスを確認してください。",6);
	addInputEvents("egassem","お問合せ内容を入力してください。",7);
	
	function addInputEvents(inputName,bubbleMessage,errorID){
		addBubble(inputName,bubbleMessage);
		this["Error"+errorID] = 0;				
		SetStyle(inputName);
		if(document.getElementById(inputName).value==""){
			document.getElementById(inputName).style.background = "#FFFFEC";
		}
		// : Focus : //
		document.getElementById(inputName).onfocus = function(){
			document.getElementById(inputName).style.background = "#FFFFAA";
			if(this["Error"+errorID] == 1){				
				hideAllBubbles();
				document.getElementById(inputName+"_ng").style.display = "block";
			}
		}			
		// : Blur : //
		document.getElementById(inputName).onblur = function(){
			document.getElementById(inputName).value = trim(document.getElementById(inputName).value);
			if(document.getElementById(inputName).value=="" && bubbleMessage!=""){
				document.getElementById(inputName).style.background = "#FEE4E4";
				if(!checkIfOtherBublesVisible()){
					document.getElementById(inputName+"_ng").style.display = "block";
				}
				this["Error"+errorID] = 1;
			}else if(inputName=="liame" && !validEmail(document.getElementById("liame").value)){
				document.getElementById(inputName).style.background = "#FEE4E4";
				if(!checkIfOtherBublesVisible()){
					document.getElementById(inputName+"_ng").style.display = "block";
				}
				this["Error"+errorID] = 1;
			}else if(inputName=="liame2" && !validEmail(document.getElementById("liame2").value)){
				document.getElementById(inputName).style.background = "#FEE4E4";
				if(!checkIfOtherBublesVisible()){
					document.getElementById(inputName+"_ng").style.display = "block";
				}
				this["Error"+errorID] = 1;
			}else if(inputName=="liame2" && document.getElementById("liame2").value != document.getElementById("liame").value){
				document.getElementById(inputName).style.background = "#FEE4E4";
				if(!checkIfOtherBublesVisible()){
					document.getElementById(inputName+"_ng").style.display = "block";
				}
				this["Error"+errorID] = 1;
			}else{
				document.getElementById(inputName).style.background = "#FFFFFF";
				document.getElementById(inputName+"_ng").style.display = "none";
				this["Error"+errorID] = 0;
			}
		}
	}
}
// ::: Valid e-mail ::: //
function validEmail(str) {
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$/; // valid
	if (!reg1.test(str) && reg2.test(str)) { // if syntax is valid
		return true;
	}
	return false;
}

// ::: Add Bubble Module ::: //
var Bubbles=new Array();
function addBubble(ObjId,BubbleMessage){
	// :: Item Box :: //
	var insertCode = document.createElement("div");
	insertCode.setAttribute("id", ObjId+"_box");
	
	// :: Bubble DIV :: //
	var appendCode = document.createElement("div");
	
	var divBubble = document.createElement("div");
	divBubble.setAttribute("id", ObjId+"_ng");
	divBubble.className = "inquiry_bubble";
	
	var imgBubble = document.createElement("img");
	imgBubble.setAttribute("src", "bubble_point.gif");
	imgBubble.setAttribute("width", "15");
	imgBubble.setAttribute("height", "17");
	imgBubble.setAttribute("id", "bubble_point");
	
	var spanBubble = document.createElement("span");
	
	var messageBubble = document.createTextNode(BubbleMessage);
	
	spanBubble.appendChild(messageBubble);
	//spanBubble.appendChild(imgClose);
	divBubble.appendChild(imgBubble);
	divBubble.appendChild(spanBubble);
	appendCode.appendChild(divBubble);
	
	// :: Add Nodes :: //
	var targetNode = document.getElementById(ObjId);
	var parentDiv = targetNode.parentNode;
	
	parentDiv.insertBefore(insertCode, targetNode);
	//parentDiv.insertAfter(appendCode, targetNode);
	if(targetNode.nextSibling) {
		parentDiv.insertBefore(appendCode, targetNode.nextSibling);
	} else {
		parentDiv.appendChild(appendCode);
	}
		
	// :: Put Item in the Box :: //
	elementToMove = document.getElementById(ObjId);
	elementToMove.parentNode.removeChild(elementToMove);
	document.getElementById(ObjId+"_box").appendChild(elementToMove);
	
	// :: Events :: //
	document.getElementById(ObjId+"_ng").onclick = onClickBubble;
	function onClickBubble(){
		document.getElementById(ObjId+"_ng").style.display = "none";
	}
	Bubbles[Bubbles.length] = ObjId+"_ng";
	
	// :: Hide Bubles :: //
	document.getElementById(ObjId+"_ng").style.display = "none";
}
function hideAllBubbles(){
	for(var i=0; i<Bubbles.length;i++){
		document.getElementById(Bubbles[i]).style.display = "none";
	}
}
function checkIfOtherBublesVisible(){
	OtherBublesVisible = false;
	for(var i=0; i<Bubbles.length;i++){
		if(document.getElementById(Bubbles[i]).style.display == "block"){
		OtherBublesVisible = true;
		};
	}
	return OtherBublesVisible;
}
// :: Trim :: //
function trim(str) {
	var whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
	for (var i = 0; i < str.length; i++) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(i);
			break;
		}
	}
	for (i = str.length - 1; i >= 0; i--) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
}


// :: set style :: //
function SetStyle(objid){
	document.getElementById(objid).style.borderTop = "1px solid #ABADB3";
	document.getElementById(objid).style.borderRight = "1px solid #E2E3EA";
	document.getElementById(objid).style.borderBottom = "1px solid #E3E9EF";
	document.getElementById(objid).style.borderLeft = "1px solid #E2E3EA";
}
// :: Submit :: //
function submitform(){
	if(
	(document.getElementById("eman").value == "")||
	(document.getElementById("liame").value == "")||
	(document.getElementById("liame2").value == "")||
	(document.getElementById("egassem").value == "")
	){	
		alert("未入力のアイテムがありました。確認をしてください。");
	}else if((document.getElementById("liame2").value != document.getElementById("liame").value)||(!validEmail(document.getElementById("liame").value))||(!validEmail(document.getElementById("liame2").value))){
		alert("E-mailに誤りがありました。確認をしてください。");
	}else{
		document.getElementById("contact_form").submit();
	}
}
