// JavaScript Document

document.write('<script type="text/javascript" src="http://cgi.cbiz.co.jp/functions.js"></script>');

var mainurl = "http://cgi.cbiz.co.jp/sendUrl/form/sendform.htm?";

$(document).ready(function() {
	$("a").each(function() {

		if($(this).attr("href") != undefined) {

			if($(this).attr("href").match(/mailto/) && $(this).attr("rel") != undefined) {
				params = getParametersFromURL($(this).attr("rel"));
				hrefParams = getParametersFromURL($(this).attr("href").replace(/(.*\?)/, ""));
				(function(param, hrefParam, obj) {
					obj.bind("click", function() {
						url = mainurl + "name=" + param.name + "&fromadd=" + param.user + "@" + param.server + "&subject=" + hrefParam.subject + "&body=" + hrefParam.body;
						viewFunc(url);
						return false;
					});
				})(params, hrefParams, $(this));
			}
		}
	});
});

// URLからパラメータ部をハッシュマップで返す
function getParametersFromURL(query) {
	var params = {};
	// & で分割
	var arr = query.split('&')
	for (var n in arr) {
		// AAA=BBB の形式か
		if (arr[n].match(/(.*)\=(.*)/)) {
			// params オブジェクトに値を格納
			params[RegExp.$1] = RegExp.$2
		}
	}
	return params;
}

/**********************************************************************************************************************/

var objList = new Array();

$(document).ready(function() {
	$("body").append(makeObj("overlay", "div", "&nbsp;")); // 背景インスタンス設置
	$("body").append(makeObj("setBox", "div", "&nbsp;")); // 画像格納インスタンス設置
	
	// CSSセット
	defHtmlHeight = $("html").css("height");
	defBodyHeight = $("body").css("height");
	$("html").css("height", "100%").css("width", "100%");
	$("body").css("height", "100%").css("width", "100%");
	if($("html").css("height") < defHtmlHeight) {
		$("html").css("height", defHtmlHeight);
	}
	if(Number($("body").css("height").replace(/px/, "")) < Number(defBodyHeight.replace(/px/, ""))) {
		$("body").css("height", defBodyHeight);
	}
	
	setCSS($("#overlay"), "100%", $("body").height() + "px", "#000", 70, 0, 0);
	setCSS($("#setBox"), "540px", "auto", "#FFF", 100, 0, 0);

	objList.push($("#overlay"));
	objList.push($("#setBox"));

	$("#overlay").hide();
	$("#setBox").hide();
	$("#overlay").click(function() {closeFunc();});
});

// 表示
function viewFunc(url) {
	$("#setBox").empty(); // $("#setBox")の中身を空に
	$("#overlay").fadeIn(800); // 背景を表示
	
	$("#setBox").css("padding", "20px 0");
	$("#setBox").append('<span style="display:block;width:60px;text-align:center;font-size:12px;background-color:#555;color:#FFF;padding:5px;cursor:pointer;margin: 0 20px 0 auto;" onClick="closeFunc();">×閉じる</span>' + "\n");
	$("#setBox").append('<iframe src="' + url + '" width="540" height="500" frameborder="0" scrolling="auto"></iframe>' + "\n");
	setTimeout(function() {
		positionset( $("#setBox"), 1000, "swing" )
		$("#setBox").slideDown();
	}, 500);
	scrollFunc( $("#setBox"), 'positionset', 'setObj, 500, "swing"', 300 );
}

// 非表示
function closeFunc() {
	for(var i = 0; i < objList.length; i++) {
		if(objList[i].css("display") != "none") {
			objList[i].fadeOut("fast");
		}
	}
	$(window).unbind('scroll');
}

// 画像中央移動
function positionset( obj, _time, _easing ) {
	var centerPoint = centerObj( obj )
	var overPointTop = centerObj.top * 1.1;
	obj.animate({
		top: centerPoint.top + "px",
		left: centerPoint.left + "px"
	}, _time, _easing);
}

// 画像中央位置取得
function centerObj(obj) {
	var setLeft;
	var setTop;
	// IE
	if(jQuery.browser.msie){
		setLeft = (document.documentElement.clientWidth - obj.width()) / 2;
		setTop = (document.documentElement.clientHeight - obj.height()) / 2 + document.documentElement.scrollTop;
	}
	// IE以外
	else {
		setLeft = (window.innerWidth - obj.width()) / 2;
		setTop = (window.innerHeight - obj.height()) / 2 + $($($.browser.safari ? 'body' : 'html')).scrollTop();
	}
	var position = {top: setTop, left: setLeft};
	return position;
}

// スクロール関数[対象オブジェクト, 実行する関数（文字列）, 引数, 実行までの時間]
function scrollFunc( setObj, funcStr, argument, _time ) {
	var timer;
	$(window).bind('scroll', function() {
		clearTimeout( timer );
		timer = setTimeout( function() {
			eval( funcStr + '(' + argument + ')' );
		}, _time );
	}).bind("resize", function() {
		clearTimeout( timer );
		timer = setTimeout( function() {
			eval( funcStr + '(' + argument + ')' );
		}, _time );
	});
}

// オブジェクト作成
function makeObj(idStr, type, inner) {
	var setStr = "<" + type + " id='" + idStr + "'" + ">" + inner + "</" + type + ">";
	return setStr;
}

// スタイルセット
function setCSS(obj, _width, _height, _bg, _alpha, _top, _left) {
	obj.css("width", _width);
	obj.css("height", _height);
	obj.css("background", _bg);
	obj.css("filter", "alpha(opacity=" + _alpha + ")");
	obj.css("-moz-opacity", _alpha / 100);
	obj.css("opacity", _alpha / 100);
	obj.css("position", "absolute");
	obj.css("top", _top + "px");
	obj.css("left", _left + "px");
}

