/* ---------------------------------------------------- */
/*                       Setting!                       */
/* ---------------------------------------------------- */
  var form_id = "form#price"; // 対象となるフォーム
  var price_php = "files/price.php"; // メール送信先 -------＞ここが空ならフォームから探すことにしよっかな。
  var input_area = "#input-form"; // 入力項目を内包する要素名
  var list_area = "#price-list"; // メール送信内容確認用フォームのID名（「#」は必要ない）
  var alert_block_tag = "div"; // アラート表示block名
  var alert_class = ".alert"; // アラート表示class名
  var send_error = "#send-error"; // 送信エラー表示ID
  var input_error = "#input-error"; // 入力エラー表示ID
/* ---------------------------------------------------- */
/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */

jQuery(document).ready(function() {
	// HTMLロード後に実行したい初期化コード
	
	if (jQuery.trim(form_id)) {form_id += " ";}
	
	jQuery(form_id + alert_class + " #s").css("display", "none");
	jQuery(form_id + alert_class + " #o").css("display", "none");
	
	jQuery(form_id + alert_class).css("display", "none");
	jQuery(form_id + list_area).css("display", "none");
	
	// 通信エラー表示
	jQuery(form_id + send_error).ajaxError(function(request, settings){
		jQuery(this).slideDown();
		/* エラー文を表示することも出来ますよー。 */
		//.after(settings.responseText);alert(settings.responseText.replace(/[\r\n]/g, '').replace(/.*<p>(.*?)<\/p>.*/i, '$1'));
	});
}); // jQuery(document).ready() End

// 送信処理
function jQuery_post() {
	jQuery.post(
		// 送信先（冒頭で変数「price_php」に代入しておく）
		price_php,
		// 送信パラメータ。
		"is=TRUE&" + jQuery(form_id + input_area).find("input:text,input:checkbox,input:radio:checked,select,textarea,input:password,input:hidden").serialize(),
		// 読み込み後に実行されるコールバック関数
		function(responseText, status, response) {
			if (status == "success") {
				// 完了
				if (responseText) {
					// success
					showList(responseText);
					pageTracker._trackPageview('/price/submit');
					//jQuery(form_id + list_area).after(responseText);
				}else{
					// failure
					// エラー表示
					//checkError("t");
					//jQuery(form_id + send_error).slideDown();
				}
			} else {
				// failure
				// エラー表示
				//checkError("t");
				//jQuery(form_id + send_error).slideDown();
			}
	});
} // jQuery_post() End

// リスト表示
function showList(res) {
	res_array = res.split("|");
	for (var i=0; i<res_array.length; i++){
		ct = res_array[i].split(":");
		jQuery(form_id + list_area + " #" + ct[0] + " .coat").text(ct[1]);
		jQuery(form_id + list_area + " #" + ct[0] + " .option").text("-");
	}
	
	jQuery(form_id + alert_class).slideUp("fast");
	jQuery(form_id + list_area).slideDown("fast",function() {Scroll('submit','polymer');});
} // showList() End

// リスト表示
function ckb() {
	a=check();
	if(a){jQuery_post();}
} // showList() End

// リスト消去
function hideList() {
	jQuery(form_id + list_area).slideUp("slow",function() {Scroll('last','lwh');});
} // hideList() End

// エラーを出力する
function checkError(o) {
	Scroll('submit','price');
	// エラーを出力する
	jQuery(form_id + input_error).slideDown("slow");
	if(o){jQuery(form_id + "#" + o).slideDown("slow")};
} // checkError() End

// 入力チェック処理
function check() {
	al = 1;
	// 可否の初期化
	c = true;
	//error消し
	jQuery(form_id + alert_class).slideUp("fast");
	jQuery(form_id + alert_class + " #s").css("display", "none");
	jQuery(form_id + alert_class + " #o").css("display", "none");
	jQuery(form_id + list_area).slideUp("fast");

	// テキストの入力確認処理
	jQuery(form_id + "input:text").each(function() {
		t = jQuery(this).val();
		v = toHankakuNum(t); // 全角を半角にする
		// 改行や空白のみで送信されることを回避
		v = v.replace(/[^0-9]/g,"");
		//v = t.replace(/[\s\n\r\t　mMｍＭ]/g,"");
		jQuery(this).val(v);
		if (!v) {
			c = false;
			// エラー表示
			checkError("s");
		} else {
			al = al * v;
		}
	});
	if (c) {
		if (al < 1000000000) {
			c = false;
			// エラー表示
			checkError("o");
		} else if (al > 125000000000) {
			c = false;
			// エラー表示
			checkError("o");
		}
	}
	
	r = jQuery(form_id + ":radio").val();
	if (!r) {jQuery(form_id + "#n1").attr("checked","checked")}
	return c;
} // check() End

// 全角文字を半角に置き換える
function toHankakuNum(motoText) {
	han = "0123456789.,-+";
	zen = "０１２３４５６７８９．，－＋";
	str = "";
	for (i=0; i<motoText.length; i++) {
		cha = motoText.charAt(i);
		no = zen.indexOf(cha,0);
		if (no >= 0) cha = han.charAt(no);
		str += cha;
	}
	return jQuery.trim(str);
} // toHankakuNum() End







var eventTimer;	//タイマー変数
var restScroll=0;	//スクロール残量

function Scroll(base,move){
	//移動元(base)要素＆オブジェクトを取得
	var elem_base = document.getElementById(base);
	var obj_base  = getElemPosition(elem_base);

	//移動先(move)要素＆オブジェクトを取得
	var elem_move = document.getElementById(move);
	var obj_move  = getElemPosition(elem_move);

	restScroll = obj_move.y-obj_base.y;
	eventTimer = setInterval(setScrollPosition,10);
}
//スクロール処理をする
function setScrollPosition() {

	var moveValue=0;

	//スクロール残量が80以上の場合、スクロール量を変える
	//Math.abs()では値の絶対値を取得
	if(Math.abs(restScroll)>60){
		moveValue = (restScroll>0)?40:-40;
	}else{
		moveValue = Math.round(restScroll/3);
	}
	//スクロールを処理
	parent.scrollBy(0,moveValue);

	//スクロール残量を計算して、残りが無ければタイマー解除
	restScroll = (restScroll>0)?restScroll-moveValue:restScroll-moveValue;

	if(moveValue==0){
		clearInterval(eventTimer);
		restScroll=0;
	}
}

//要素の位置を取得し、オブジェクトとして返す
function getElemPosition(elem) {
	var obj = new Object();
	obj.x = elem.offsetLeft;
	obj.y = elem.offsetTop;

	//親要素を取得して位置情報を修正する
	while(elem.offsetParent) {
		elem = elem.offsetParent;
		obj.x += elem.offsetLeft;
		obj.y += elem.offsetTop;
	}
	return obj;
}
