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();
}


// ::: Add Bubbles ::: //
function addFormBubbles(){
	addInputEvents("eltit","件名を入力してください",1);	
	addInputEvents("ynapmoc","会社名を入力してください",2);	
	addInputEvents("eman1","お名前を入力してください",3);
	addInputEvents("eman2","お名前を入力してください",4);
	addInputEvents("anak1","フリガナを入力してください",5);
	addInputEvents("anak2","フリガナを入力してください",6);
	addInputEvents("liame","メールアドレスを入力してください",7);
	addInputEvents("liame2","メールアドレス確認を入力してください",8);
	addInputEvents("tnemmoc","お問い合わせ内容を入力してください",9);
	
	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 = fixData(document.getElementById(inputName).value,inputName);	
			if(document.getElementById(inputName).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;
			}
		}
	}
}
	


	
	
	function fixData(data,inputName){
		
		if(inputName == "eltit"){
			return data;
		}else if(inputName == "ynapmoc"){
			return data;
		}else if(inputName == "eman1"){
			return data;
		}else if(inputName == "eman2"){
			return data;
		}else if(inputName == "anak1"){
			data=convert_h2k(data);
			return data;
		}else if(inputName == "anak2"){
			data=convert_h2k(data);
			return data;
		}else if(inputName == "liame"){
			data=convert_zl2hl(data);
			return data;
		}else if(inputName == "liame2"){
			data=convert_zl2hl(data);
			return data;
		}else if(inputName == "tnemmoc"){
			return data;
		}else{
			return data;
		}
	
	// ::: Hiragana to Katakana ::: //
	function convert_h2k(input){
		var output='';
		var c;
		var n;
		for(var i=0; i<input.length;i++){
			c = input.charAt(i);
			n = c.charCodeAt(0);
			if((n>=0x3041) && (n<=0x3096)){
				c = String.fromCharCode(n+0x60);
			}
			output += c;
		}
		return output;
	}
	
	// ::: ZenNum2HanNum ::: //	
	function convert_zn2hn(input){
		var output='';
		var c;
		var n;
		for(var i=0; i<input.length;i++){
			c = input.charAt(i);
			n = c.charCodeAt(0);
			if((n>=0xFF10) && (n<=0xFF19)){
				c = String.fromCharCode(n-0xFEE0);
			}
			output += c;
		}
		return output;
	}
	
	// ::: HanNum2ZenNum ::: //
	function convert_hn2zn(input){
		var output='';
		var c;
		var n;
		for(var i=0; i<input.length;i++){
			c = input.charAt(i);
			n = c.charCodeAt(0);
			if((n>=0x30) && (n<=0x39)){
				c = String.fromCharCode(n+0xFEE0);
			}
			output += c;
		}
		return output;
	}
	
	// ::: ZenLeters2HanLeters ::: //
	function convert_zl2hl(input){
		var output='';
		var c;
		var n;
		for(var i=0; i<input.length;i++){
			c = input.charAt(i);
			n = c.charCodeAt(0);
			if((n>=0xFF01) && (n<=0xFF5A)){
				c = String.fromCharCode(n-0xFEE0);
			}
			output += c;
		}
		return output;
	}
	
	// ::: HanLeters2ZenLeters ::: //
	function convert_hl2zl(input){
		var output='';
		var c;
		var n;
		for(var i=0; i<input.length;i++){
			c = input.charAt(i);
			n = c.charCodeAt(0);
			//0x21 for all, 0x41 for just letters
			//0x7D for all, 0x7A for just to z
			if((n>=0x21) && (n<=0x7D)){
				c = String.fromCharCode(n+0xFEE0);
			}
			if(c == " ")c = "　";
			output += c;
		}
		return output;
	}
	
	// ::: Remove Bars "-" ::: //
	function removeBars(input){
		var output='';
		var c;
		for(var i=0; i<input.length;i++){
			c = input.charAt(i);
			if(c == "-")	c = "";
			if(c == "_")	c = "";
			if(c == "ー")	c = "";
			if(c == "－")	c = "";
			if(c == "-")	c = "";
			if(c == "―")	c = "";
			if(c == "‐")	c = "";
			output += c;
		}
		return output;
	}
}
// ::: 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";
				document.getElementById("prefectureCd").style.visibility="visible";
				document.getElementById("homePrefectureCd").style.visibility="visible";
	}
	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;
}

// :: 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";
}


function submitform(){
	if(
	(document.getElementById("eltit").value == "")||
	(document.getElementById("ynapmoc").value == "")||
	(document.getElementById("eman1").value == "")||
	(document.getElementById("eman2").value == "")||
	(document.getElementById("anak1").value == "")||
	(document.getElementById("anak2").value == "")||
	(document.getElementById("liame").value == "")||
	(document.getElementById("liame2").value == "")||
	(document.getElementById("tnemmoc").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();
	}
}