/*
 * mplfunc.js
 * Copyright (c) 2007 Media Promotion Link
 *
 * Since:  2006-01-24
 * Modify: 2007-05-01
*/


/*----------------------------------------------------------------------------
GoogleMaps
----------------------------------------------------------------------------*/

function GLoad() {
  if(GBrowserIsCompatible())  {
    var icon = new GIcon();
    icon.image = "/img/icon-marker.png";
    icon.iconSize = new GSize(55, 55);
    icon.iconAnchor = new GLatLng(52, 13);
    icon.infoWindowAnchor = new GLatLng(0, 0);

		var point = new GLatLng(34.991029, 135.692434);
    var marker = new GMarker(point, icon);
    var map = new GMap2(document.getElementById("map"),{mapTypes:[G_NORMAL_MAP]});
    map.addControl(new GSmallMapControl());
    map.setCenter(new GLatLng(34.991029, 135.6951020), 15);
    map.addOverlay(marker);

    mapDiv = document.getElementById("map");
    GEvent.addDomListener(mapDiv, "mouseover", showCtrl);
    GEvent.addDomListener(mapDiv, "mouseout", hideCtrl);
    hideCtrl();
  }
  else {
    $("#map").css("background", "#5D788F url(/img/bg-gmaperr.png) center center no-repeat");
  }
}

function showCtrl() {
  var ctrl = mapDiv.childNodes[3];
  ctrl.style.visibility = "visible";
}

function hideCtrl() {
  var ctrl = mapDiv.childNodes[3];
  ctrl.style.visibility = "hidden";
}


/*----------------------------------------------------------------------------
 西暦（4桁）を書き出し
  
 Create  : 2007-02-06
 Modify  : 2007-02-06
----------------------------------------------------------------------------*/
function printYear()  {
  var year = new Date().getYear();
  if(year < 2000)year += 1900;
  document.write(year);
}

/*----------------------------------------------------------------------------
 西暦（4桁）を取得
  
 Create  : 2007-05-07
 Modify  : 2007-05-07
----------------------------------------------------------------------------*/
function getYear()  {
  var year = new Date().getYear();
  if(year < 2000)year += 1900;
  return year;
}

/*----------------------------------------------------------------------------
YUI Calendar 初期化
----------------------------------------------------------------------------*/

function initCalendar()  {

	var date = new Date();
  var year = (date.getYear() < 2000) ? (date.getYear() + 1900) : date.getYear();
  var month = date.getMonth() + 1;
  var day = date.getDate();

	var options = {
		mindate: month + "/" + day + "/" + year,
		maxdate: "12/31/" + year,
		title: "予約希望日"
	}

	YAHOO.namespace("yui.calendar"); 
  YAHOO.yui.calendar = new YAHOO.widget.Calendar("cal", "calendar", options); 
  YAHOO.yui.calendar.selectEvent.subscribe(selectHandler, YAHOO.yui.calendar, true);
  YAHOO.yui.calendar.render(); 
  YAHOO.yui.calendar.hide(); 
}

var selectHandler = function(type, args, obj) {
	s = "" + args;
  s = s.split(",");
	var c_year = s.slice(0, 1);
	var c_month = s.slice(1, 2);
	var c_day = s.slice(2, 3);
	var sat_err = false;

	var c_week = new Date(c_month + "/" + c_day + "/" + c_year).getDay();
	if(c_week == 0){ alert("日曜日は休診日です。ご了承下さいませ。"); return; }
  if(c_week == 4){ alert("木曜日は休診日です。ご了承下さいませ。"); return; }

	$('form#formInquiry select#time').each(function() { if(c_week == 6 && this.selectedIndex > 1)sat_err = true; });
	if(sat_err){ alert("土曜日は午前のみ診療しております。ご了承下さいませ。"); return; }

	$("#year").val(c_year);
  $("#month").val(c_month);
  $("#day").val(c_day);
	printWeekOfDay(c_week);
	YAHOO.yui.calendar.hide(); 
};

function showCalendar(){
  YAHOO.yui.calendar.show(); 
}

/*----------------------------------------------------------------------------
曜日取得と出力(jQuery)
----------------------------------------------------------------------------*/
function printWeekOfDay() {

	var aweek = ["日", "月", "火", "水", "木", "金", "土"];
	var w = new Date($("input#month").val() + "/" + $("input#day").val() + "/" + getYear()).getDay();
	if(!w)return;

	$("#year").val(getYear());
	$("#labelWeek").html("（" + aweek[w] + "）");
	$("#week").val("（" + aweek[w] + "）");
}

/*----------------------------------------------------------------------------
入力フォームの内容確認(jQuery)
----------------------------------------------------------------------------*/
function checkForm() {

  var must_input = ["input#name", "input#tel1", "input#tel2", "input#tel3", "input#year", "input#month", "input#day", "textarea#inquiry_text"];
  var must_select = ["select#time"];
  var must_number_input = ["input#tel1", "input#tel2", "input#tel3", "input#month", "input#day"];
  var email_input = ["input#email"];
  var count_textarea = ["textarea#inquiry_text", "textarea#address"];
  var cell_bgcolor = "#FFEAEA";
  var error = false;

  $("form#formInquiry td").css("backgroundColor", "#FFFFFF");
  $(".message").css("visibility", "hidden");

  //文字数超過チェック
  for(var i=0; i<=count_textarea.length-1; i++)  {
    if($(count_textarea[i]).val().length >= 700)  {
      $(count_textarea[i]).parent().css("backgroundColor", cell_bgcolor);
      error = true;
    }
  }

  //必須項目の空欄チェック
  for(var i=0; i<=must_input.length-1; i++)  {
    if(!$(must_input[i]).val())  {
      $(must_input[i]).parent().css("backgroundColor", cell_bgcolor);
      error = true;
    }
  }

  //セレクトボックスの未選択チェック
  for(var i=0; i<=must_select.length-1; i++)  {
    if(!$(must_select[i]).val())  {
      $(must_select[i]).parent().css("backgroundColor", cell_bgcolor);
      error = true;
    }
  }

  //半角英数字のチェック
  for(var i=0; i<=must_number_input.length-1; i++)  {
    if(!$(must_number_input[i]).val().match(/^[0-9]+$/g))  {
      $(must_number_input[i]).parent().css("backgroundColor", cell_bgcolor);
      error = true;
    }
  }
  
  //Eメールアドレスのチェック
  for(var i=0; i<=email_input.length-1; i++)  {
    if($(email_input[i]).val() && !$(email_input[i]).val().match(/[!#-9A-~-]+@[a-z0-9-]+\.+[a-z0-9]+/i))  {
      $(email_input[i]).parent().css("backgroundColor", cell_bgcolor);
      error = true;
    }
  }

  //日付のチェック1(有効な値か)
	var w = new Date($("input#month").val() + "/" + $("input#day").val() + "/" + getYear()).getDay();
  if($("input#month").val() < 1 || $("input#month").val() > 12 ||
		$("input#day").val() < 1 || $("input#day").val() > 31 ||
		!w)  {
    $("input#month").parent().css("backgroundColor", cell_bgcolor);
    error = true;
  }

	//日付のチェック2(休診日ではないか)
	var c_week = new Date($("input#month").val() + "/" + $("input#day").val() + "/" + $("input#year").val()).getDay();
	sat_err = false;
	$('form#formInquiry select#time').each(function() { if(c_week == 6 && this.selectedIndex > 1)sat_err = true; });
	if(c_week == 0 || c_week == 4 || sat_err)  {
  	$("input#month").parent().css("backgroundColor", cell_bgcolor);
    error = true;
  }

  if(error)  {
    $(".message").html("ご入力内容に不備があります。内容をご確認下さい。");
    $(".message").css("visibility", "visible");
    return false;
  }

  $("form#formInquiry").submit();

}

/*----------------------------------------------------------------------------
スタートアップ
----------------------------------------------------------------------------*/
$(function(){

  //別ウィンドウ自動設定(jQuery)
  $('a[@href^="http://www.mms"]').click(function(){ window.open(this.href, '_blank');	return false; });

  //別ウィンドウ自動設定(jQuery)
  $('a[@href^="/kamikatsura/"]').click(function(){ window.open(this.href, '_blank');	return false; });

  //スムーズスクロール(jQuery)
  $('a[@href^="#"]').click(function(){$('#'+($(this).attr("href").split('#')[1])).ScrollTo(900,'easeout'); return false;});
  
  //戻る(jQuery)
  $('input#btnBack').click(function() { history.back(); });

  //title属性オートコンプリート(jQuery)
  for(var i=0; i<$('img').length; i++)  {  $('img')[i].title = ($('img')[i].alt) ? $('img')[i].alt : "";  }

  //カレンダー初期化(YUI)
  if($("body").attr("id") == "contact") {
    $("#buttonCalendar").click(showCalendar);
    YAHOO.util.Event.addListener(window, 'load', initCalendar);
  }


});
