/*============================================================================
 *
 * Request form class
 *
 *============================================================================*/

// Postal zip get handler
var getZip;
// Select irai handler
var iraiSelect;
// Select hankyou handler
var hankyouSelect;

(function ($) {
	$.takakuureru={
		/**
		 *
		 */
		load_realtime_kaitori: function () {
			var loader=$("#ccol_realtime .loading");
			loader.fadeIn("slow");
			$.get("/feed/get_realtime", function (data) {
				var $table=$("#ccol_realtime table");
				$table.html(data);

				$("th", $table).each(function () {
					var $this=$(this);
					var text=$this.text();
					text.match(/ (\d+:\d+):\d+$/);
					$this.html("<b>"+RegExp.$1+"</b> ("+$.takakuureru.prettyDate(text)+")");
				});
				loader.fadeOut("slow");
			});
		},
		/**
		 *
		 */
		slide_pickup: function () {
			var $ul=$("#crcol_pickup ul");
			var $li_top=$("li:eq(0)", $ul);

			$li_top.hide("fast");
			setTimeout(function () {
				$ul.append($li_top);
				var $li_3=$("li:eq(2)", $ul);
				$li_3.show("slow")
			}, 200);
		},
		/*
		 * JavaScript Pretty Date
		 * Copyright (c) 2008 John Resig (jquery.com)
		 * Licensed under the MIT license.
		 *
		 * http://ejohn.org/blog/javascript-pretty-date/
		 *
		 */

		// Takes an ISO time and returns a string representing how
		// long ago the date represents.
		prettyDate: function (time){
			var date = new Date((time || "").replace(/-/g,"/").replace(/[TZ]/g," ")),
				diff = (((new Date()).getTime() - date.getTime()) / 1000),
				day_diff = Math.floor(diff / 86400);

			if ( isNaN(day_diff) || day_diff < 0 || day_diff >= 31 ) {
				return;
			}

			return day_diff == 0 && (
				diff < 60 && "1分以内" ||
				diff < 120 && "1分前" ||
				diff < 3600 && Math.floor( diff / 60 ) + "分前" ||
				diff < 7200 && "1時間前" ||
				diff < 86400 && Math.floor( diff / 3600 ) + "時間前") ||
				day_diff == 1 && "1日前" ||
				day_diff < 7 && day_diff + "日前" ||
				day_diff < 31 && Math.ceil( day_diff / 7 ) + "週間前";
		}
	};

	$.takakuureru.request_form={
		/**
		 *
		 * @return void
		 */
		init: function () {
			var i;
			var _this=$.takakuureru.request_form;

			/* Set global variable for html tag event handler */
			getZip=$.takakuureru.request_form.getZip;
			iraiSelect=$.takakuureru.request_form.iraiSelect;
			hankyouSelect=$.takakuureru.request_form.hankyouSelect;

			/* First irai select */
			_this.iraiSelect($("input[name=irai]:checked").val());

			/* Focus*/
			$("input[name^=prodname]").focus(function () {
				var cls=$(this).parents("tr").attr("class")
				$("."+cls).show();
			});

			/* Hide item attributes and create padding to between groups */
			if ($("input[name=prodname]").attr("type")) {
				for (i=1;i<6;i++) {
					if (i>1) {
						$("tr.item"+i+":eq(0)").before('<tr><td colspan="2" style="height: 10px;"></td></tr>');
					}
					$("tr.item"+i+":gt(0)").hide();
				}
			}


			/* Hankyou */
			this.hankyouSelect();
		},
		/**
		 *
		 */
		iraiSelect: function (val)
		{
			var dan=$('.dan');
			var ele=$('.ele');

			(val=='宅配') ? dan.show() : dan.hide();
			(val=='出張') ? ele.show() : ele.hide();
		},
		/**
		 * For search zip address
		 */
		getZip: function (val) {
			val=val.replace(/-/, "");

			if (val.length!=7) return;

			$.post("/assets/service/zip.php", {zip: val}, function (data) {
				if (data.pref)
				{
					$("select[name=ken]").val(data.pref);
					$("input[name=adre]").val(data.addr[0]+data.addr[1]);
				}
				else
				{
					alert("該当する郵便番号はありません。");
				}
			}, "json");
		},
		/**
		 * hankyouSelect
		 */
		hankyouSelect: function(elem)
		{
			$hankyou=elem ? $(elem): $("select[name=hankyou]");
			var hankyouRows=$(".hankyou");
			var textRows=$(".hankyou-text");

			if ($hankyou.val()!="その他")
			{
				hankyouRows.show();
				textRows.hide();
			}
			else
			{
				textRows.show();
			}
		}
	};
})(jQuery);




/*============================================================================
 *
 * Initarizer
 *
 *============================================================================*/


$(function() {
	var pathname=location.pathname;

	/* Form tips */
	$("form input[type='text'].tipped, form textarea.tipped").formtips();

	/* Home page*/
	if (pathname.match(/^\/$/)) {
		/* Including header background flash */
		$fla_container=$('#lead_fla');
		$fla_container.flash({
		    src: '/assets/flash/lead_20100311.swf',
		    width: '980px',
		    height: '134px',
		    loop: false
		});
		$fla_container.show();

		/* Slide pickup items */
		setInterval($.takakuureru.slide_pickup, 5000);

		/* Realtime kaitori status */
		setTimeout($.takakuureru.load_realtime_kaitori, 5000);
		setInterval($.takakuureru.load_realtime_kaitori, 20000);
	}

	/* Request form initrize */
	else if (pathname.match(/^\/request\//)) {
		$.takakuureru.request_form.init();

		/* Go to launch position */
		if (!location.hash) {
			location.hash="#index";
		}
	}

	/* Contents page */
	else {
		/* Go to launch position */
		if (!location.hash) {
			location.hash="#index";
		}
	}
});

