function isValidForm() {
	var err = 0;
	var errTxt = '';
	if (!isValidMail($("#mailaddress").val())) {
		$('#mailaddress').addClass('err');
		err++;
		errTxt += '※メールアドレスに誤りがあるようです。\n';
	}
	if (!isCheckMail($("#mailaddress").val(), $("#mailcheck").val())) {
		$('#mailcheck').addClass('err');
		err++;
		errTxt += "※メールアドレスをお確かめください。\n";
	}
	if (!isCheckArg($('#message').val())) {
		$('#message').addClass('err');
		err++;
		errTxt += '※お問い合わせ内容をご記入ください。\n';
	}
	if (err == 0) {
		return true;
	} else {
		var errMsg = 'エラーがあります。入力内容をご確認ください。\n\n\n'
		errMsg += errTxt;
		alert(errMsg);
		return false;
	}
}

var postData = {
    name : ['#username', ''],
    kana : ['#furigana', ''],
    corp : ['#corporate', ''],
    mail : ['#mailaddress', 'mail'],
    chk  : ['#mailcheck', 'chk'],
    msg  : ['#message',  'text']
};

function formInit() {
    for (prop in postData) {
    	setEvent(postData[prop][0], postData[prop][1]);
    }
	$('#submit').click(function() {
    	if (isValidForm()) {
    	    return true;
    	} else {
    	    return false;
    	}
	});
}

function setBg(type) {
	switch (type) {
		case 'focus' :
			return "#f5f5f5";
			break;
		case 'blur' :
			return "#ffffff";
			break;
		case 'err' :
			return "#ffff99";
			break;
		default :
			return "#ffffff";
			break;
	}
}

function setEvent(id, type) {
	var node = $(id);
	switch (type) {
		case 'text' :
			node.focus(function() {
       			node.removeClass('err');
				node.addClass('focus');
			});
			node.blur(function() {
				if (isCheckArg($(this).val())) {
	    			node.removeClass('focus');
    				node.addClass('normal');
				} else {
	    			node.removeClass('focus');
    				node.addClass('err');
				}
			});
			break;
		case 'mail' :
			node.focus(function() {
       			node.removeClass('err');
				node.addClass('focus');
			});
			node.blur(function() {
				if (isValidMail($(this).val())) {
	    			node.removeClass('focus');
    				node.addClass('normal');
				} else {
	    			node.removeClass('focus');
    				node.addClass('err');
				}
			});
			break;
		case "chk" :
			node.focus(function() {
       			node.removeClass('err');
				node.addClass('focus');
			});
			node.blur(function() {
				if (isCheckMail($("#mailcheck").val(), $(this).val())) {
	    			node.removeClass('focus');
    				node.addClass('normal');
				} else {
	    			node.removeClass('focus');
    				node.addClass('err');
				}
			});
			break;
		case 'kana' :
			node.focus(function() {
       			node.removeClass('err');
				node.addClass('focus');
			});
			node.blur(function() {
				if (isCheckKana($(this).val())) {
	    			node.removeClass('focus');
    				node.addClass('normal');
				} else {
	    			node.removeClass('focus');
    				node.addClass('err');
				}
			});
			break;
		default :
			node.focus(function() {
       			node.removeClass('err');
				node.addClass('focus');
			});
			node.blur(function() {
	    			node.removeClass('focus');
    				node.addClass('normal');
			});
			break;
	}
}

function isCheckArg(arg) {
	if (arg != '') {
		return true;
	} else {
		return false;
	}
}

function isCheckMail(mail, chk) {
	if (mail == chk) {
		if (isValidMail(mail)) {
			return true;
		}
	}
	return false;
}

function isValidMail(mail) {
	var regexp = new RegExp("^[a-zA-Z0-9!$&*.=^`|~#%'+\/?_{}-]+@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$");
	var result = regexp.test(mail);
	if (result) {
		return true;
	} else {
		return false;
	}
}

function isCheckKana(kana) {
	var regexp = new RegExp("^[ｱ-ﾝア-ン]+$");
	var result = regexp.test(kana);
	if (result) {
		return true;
	} else {
		return false;
	}
}

function carousel(that) {
    var self = {};
    self.showNo   = 3;
    self.display  = 3;
    self.interval = 1200;
    self.carousel = $('ul', that);

    self.items    = $('li', that);
    self.length   = self.items.length;

    self.item     = $(self.items[0]);
    self.width    = parseInt(self.item.css('width')) + 
                    parseInt(self.item.css('margin-left')) + 
                    parseInt(self.item.css('margin-right')) + 
                    parseInt(self.item.css('padding-left')) + 
                    parseInt(self.item.css('padding-right'));

    self.prev = $('.prev', that);
    self.prev.mouseover(function() {
            $(this).addClass('onMouse');
    });
    self.prev.mouseout(function() {
            $(this).removeClass('onMouse');
    });
    self.prev.click(function() {
        if (self.display <= self.showNo) {
            var move = self.display;
            while ((self.showNo - move) < self.display) {
                move -= 1;
            }
            self.showNo -= move;
            self.carousel.animate({left:'+=' + (self.width * move) + 'px'}, self.interval);
        }
    });

    self.next = $('.next', that);
    self.next.click(function() {
        if (self.length > self.showNo) {
            var move = self.display;
            while ((self.showNo + move) > self.length) {
                move -= 1;
            }
            self.showNo += move;
            self.carousel.animate({left:'-=' + (self.width * move) + 'px'}, self.interval);
        }
    });
    self.next.mouseover(function() {
            $(this).addClass('onMouse');
    });
    self.next.mouseout(function() {
            $(this).removeClass('onMouse');
    });

    return self;
}

$(document).ready(function() {
    if ($('#Carousel').html()) {
        $('#PhotoInnerBlock').each(function() {
            $(this).append($('<div class="prev">Prev</div>'));
            $(this).append($('<div class="next">Next</div>'));
            carousel(this);
        });
    }
/*
    $('#Menu .menu li').each(function() {
        $(this).mouseover(function() {
            $(this).addClass('onMouse');
        });
        $(this).mouseout(function() {
            $(this).removeClass('onMouse');
        });
    });
*/
    formInit();
});
