/**
 * オンロードイベント設定
 */
window.onload = init;


/**
 * 共通メソッド
 */
function $(id) {
	return document.getElementById(id);
}
//function addEventListener(target, type, func) {
//	if (target.attachEvent) {
//		target.attachEvent("on" + type, func);
//	} else if(target.addEventListener) {
//		target.addEventListener(type, func, true);
//	} else {
//		//イベントリスナが使えない場合は on○○ 属性を上書きで妥協（今時あんまし無いと思うが
//		target["on" + type] = func;
//	}
//}

/**
 * www.sozai83.info独自拡張
 * 背景パターン素材の置き換え
 * 対象：「id=bgimg@」配下にあるimg要素のsrc属性をbackground-imageに置き換える。
 * 注意：「document.setAttribute("style", "");」ではなく「document.style.cssText = "";」でなければならない。
 */
function funcRepeat() {
	// IE5対応
	if (navigator.appVersion.indexOf("MSIE 5") >= 0) {
		var eleBody = document.getElementsByTagName("body")[0];
		eleBody.innerHTML = '<div class="divFrame">' + eleBody.innerHTML + "</div>";
		//alert($("wwwSozai83Info").innerHTML);
	}

	// 背景パターン表示
	var idNum = 1;
	while ($("bgimg" + idNum)) {
		var transparentImg = "/img/transparent.gif";
		// img要素Loop
		var imgs = $("bgimg" + idNum).getElementsByTagName("img");
		var imgsLength = imgs.length;
		for (var i = 0; i < imgsLength; i++) {
			var eleImg = imgs[i];
			// img要素取得
			var bgImgs = eleImg.getAttribute("src");
			var bgParm = bgImgs.replace(/^.+\/(.+)\.gif$/, "$1");
			// img作成
			var createPhp = "";
			if (funcIsLocal()) {
				createPhp = "http://local.sozai83.info/mkbg/?parm=" + bgParm;
				if (location.search == "?debug") bgImgs = createPhp;
			} else {
				createPhp = "http://www.sozai83.info/mkbg/?parm=" + bgParm;
				//if (location.search == "?debug") bgImgs = createPhp;
			}
			// img要素変更
			eleImg.setAttribute("src", transparentImg);
			eleImg.setAttribute("style", "background-image:url(" + bgImgs + ");");
			eleImg.style.cssText = "background-image:url(" + bgImgs + ");";
			// a要素作成
			if (eleImg.getAttribute("class") || eleImg.getAttribute("className")) {
				var parent = eleImg.parentNode;
				var downloadPhp;
				if (funcIsLocal()) {
					downloadPhp = "http://local.sozai83.info/mkbg/?parm=" + bgParm + "&g=dl";
				} else {
					downloadPhp = "http://www.sozai83.info/mkbg/index.php?parm=" + bgParm + "&g=dl";
				}
				// setAttributeはクロスブラウザ対応で使えない：
				// parent.setAttribute("onclick", new Function("location.href='" + downloadPhp + "';void(0);"));
				parent.setAttribute("href", "javascript:void(0)");
				parent.onclick = new Function("location.href='" + downloadPhp + "';return false;");
			}
		}
		idNum++;
	}
}
/**
 * www.sozai83.info独自拡張
 * 背景パターン素材の置き換え
 * 対象：「id=bgimg@」配下にあるimg要素のsrc属性をbackground-imageに置き換える。
 * 注意：「document.setAttribute("style", "");」ではなく「document.style.cssText = "";」でなければならない。
 */
function funcMakeMaterial(form, downloadFlag) {
	var script = "/mkbg/?parm=";
	var select = form.select.value;
	switch (select) {
		case "yoko":
		case "tate":
			var width = form.width.value;
			var bg_clr = form.bg_clr.value.toLowerCase();
			var main_clr = form.main_clr.value.toLowerCase();
			if (!funcRegexCheck(width, /^\d$/, "0-9")) return false;
			if (!funcRegexCheck(bg_clr, /^[\da-f]{6}$/)) return false;
			if (!funcRegexCheck(main_clr, /^[\da-f]{6}$/)) return false;
			script += "@" + select + "_" + width + "_" + bg_clr + "_" + width + "_" + main_clr;
			break;
		case "check":
		case "cross":
			var width = form.width.value;
			var bg_clr = form.bg_clr.value.toLowerCase();
			var main_clr = form.main_clr.value.toLowerCase();
			if (!funcRegexCheck(width, /^\d$/, "0-9")) return false;
			if (!funcRegexCheck(bg_clr, /^[\da-f]{6}$/)) return false;
			if (!funcRegexCheck(main_clr, /^[\da-f]{6}$/)) return false;
			script += "@" + select + "_" + width + "_" + bg_clr + "_" + main_clr;
			break;
		case "circle":
			var width = form.width.value;
			var bg_clr = form.bg_clr.value.toLowerCase();
			var main_clr = form.main_clr.value.toLowerCase();
			if (!funcRegexCheck(width, /^\d$/, "0-9")) return false;
			if (!funcRegexCheck(bg_clr, /^[\da-f]{6}$/)) return false;
			if (!funcRegexCheck(main_clr, /^[\da-f]{6}$/)) return false;
			script += "@" + select + "_" + width + "_" + bg_clr + "_" + main_clr;
			break;
		case "dot":
			var width = form.width.value;
			var bg_clr = form.bg_clr.value.toLowerCase();
			var main_clr = form.main_clr.value.toLowerCase();
			if (!funcRegexCheck(width, /^\d$/, "0-9")) return false;
			if (!funcRegexCheck(bg_clr, /^[\da-f]{6}$/)) return false;
			if (!funcRegexCheck(main_clr, /^[\da-f]{6}$/)) return false;
			script += "@" + select + "_" + width + "_" + bg_clr + "_" + main_clr;
			break;
		default:
			alert("不正");
			return false;
			break;
	}
	if (downloadFlag) {
		script += "&g=dl";
		location.href = script;
	} else {
		var url = "/dummy.html";
		var name = "child";
		var style = "width=400,height=300,top=0,left=0,screenX=0,screenY=0,scrollbars=yes,resizable=yes";
		var wnd;
		if (!wnd) {
			wnd = window.open(url, name, style);
		}
		wnd.document.open();
		
		wnd.document.writeln('<?xml version="1.0" encoding="UTF-8"?>');
		wnd.document.writeln('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">');
		wnd.document.writeln('<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">');
		wnd.document.writeln('<head>');
		wnd.document.writeln('<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />');
		wnd.document.writeln('<title>素材サンプル</title>');
		wnd.document.writeln('<meta http-equiv="Content-Style-Type" content="text/css" />');
		wnd.document.writeln('<link rev="made" href="http://www.sozai83.info/" />');
		wnd.document.writeln('<link rel="start" href="http://www.sozai83.info/" />');
		wnd.document.writeln('</head>');
		wnd.document.writeln('<body style="background-image:url(' + script + ')">');
		wnd.document.writeln('<h1>素材サンプル</h1>');
		wnd.document.writeln('<p><a href="javascript:close();">閉じる</a></p>');
		wnd.document.writeln('</body>');
		wnd.document.writeln('</html>');
		wnd.document.close();
		wnd.focus();
	}
}
function funcRegexCheck(value, regex, follow) {
	if (value.match(regex)) {
		return true;
	} else {
		if (follow) {
			alert(value + "は不正な値です。\r\n" + follow + "で入力してください。");
		} else if (regex = '/^[[da-f]{6}$/') {
			alert(value + "は不正な値です。\r\n" + "RRGGBB形式で入力してください。");
		} else {
			alert(value + "は不正な値です。\r\n" + regex + "で入力してください。");
		}
		return false;
	}
}




/**
 * ローカルホストチェック
 * @return boolean 結果(true:ローカル, false:ウェブ)
 */
function funcIsLocal() {
	if (!location.hostname || location.hostname.match(/^(127~|local)/)) {
		window.defaultStatus = "Admin:Local-Test";
		return true;
	} else {
		return false;
	}
}

/**
 * 初期処理
 */
function init() {

	// **** www.sozai83.info独自拡張 ****
	funcRepeat();

	// **** Check-Admin-Cookie ****
	var siteAdmin = false;
	var checkCookieArray = document.cookie.split("; ");
	for (var i = 0; i < checkCookieArray.length; i++) {
		if (checkCookieArray[i].match(/^site_admin/)) {
			siteAdmin = true;
		}
	}
	// **** Set-Admin-Cookie ****
	if (location.search == "?admin") {
		if (siteAdmin) {
			document.cookie = "site_admin=1; path=/; expires=Sat, 1-Jan-2000 00:00:00 GMT;"
			siteAdmin = false;
			alert("管理人属性削除");
		} else {
			document.cookie = "site_admin=1; path=/; expires=Tue, 1-Jan-2030 00:00:00 GMT;"
			siteAdmin = true;
			alert("管理人属性設定");
		}
	}

	// **** Check-Analyzer ****
	if (siteAdmin == true) {
		window.defaultStatus = "Admin:Online-Test:";
	} else {
		funcSiteAnalyzer();
	}

	// **** 正常終了判定 ****
	if (funcIsLocal()) window.defaultStatus = "Admin:Local-Last:";
}


/**
 * アクセス解析処理
 * [Google Analytics]
 */
function funcSiteAnalyzer() {
	if (funcIsLocal()) return false;
	if (!document.createElement) return false;

	// script要素作成
	var eleScript = document.createElement("script");
	eleScript.setAttribute("type", "text/javascript");
	eleScript.setAttribute("src", "http://www.google-analytics.com/urchin.js");
	document.body.appendChild(eleScript);

	// ID設定
	if (location.hostname.match(/^www.animegif.net/)) _uacct = "UA-655713-1";
	if (location.hostname.match(/^www.1000i.info/))   _uacct = "UA-655713-2";
	if (location.hostname.match(/^www.ecoup.info/))   _uacct = "UA-655713-3";
	if (location.hostname.match(/^www.rebbs.info/))   _uacct = "UA-655713-4";
	if (location.hostname.match(/^www.sozai83.info/)) _uacct = "UA-655713-5";

	// script要素作成
	funcSiteAnalyzerTag();
}
/**
 * アクセス解析処理ID
 */
function funcSiteAnalyzerTag() {
	var timerId;

	try {
		urchinTracker();
		clearInterval(this.timerId);
	} catch(e) {
		this.timerId = setInterval("funcSiteAnalyzerTag()", 200)
	}
}

/**
 * Anchor Target [rel="_blank"]
 */
function funcSetAnchorTarget() {
	if (!document.createElement) return false;

	if (document.getElementsByName) {
		var eleA = document.getElementsByTagName("a");
		for (var i = 0; i < eleA.length; i++) {
			if (eleA[i].getAttribute("rel") == "_blank") {
				eleA[i].setAttribute("target", "_blank");
			}
		}
	}
}

