// This module on hiqoo.net.
// Created by Orikasa,Tomohiro.

isHTTPreq = false;

function ckreq() {
	try {
		ob = new ActiveXObject("Msxml2.XMLHTTP");
		isHTTPreq = true;
		isIE = true;
	} catch(ex) {
		try {
			ob = new ActiveXObject("Microsoft.XMLHTTP");
			isHTTPreq = true;
			isIE = true;
		}catch(ex){
			try {
				ob = new XMLHttpRequest();
				isHTTPreq = true;
				isIE = false;
			}catch(ob){
//					isHTTPreq = false;
			}
		}
	}
}

ckreq();

isMac = (navigator.appVersion.indexOf('Mac') != -1);

if (!isHTTPreq) {
	alert("このサイトは現在ご利用のブラウザではご利用いただけません");
}

function dynld(filename){
	var now = new Date();
	var getData = filename+'?nc='+now.getTime();
	if(document.all){ 
		if( navigator.userAgent.indexOf("Win")!=-1 ){
			//--for document.all && Win
			eval(document.all('dynld')).src = getData;
/*
			var e = document.createElement("script");
			e.src = getData;
			e.type="text/javascript";
*/
		} else if( navigator.userAgent.indexOf("Mac")!=-1 ){
			//--for document.all && Mac
			document.body.insertAdjacentHTML('BeforeEnd'
			,'<scr'+'ipt src="'+getData+'"><scr'+'ipt/>');
		}
	} else if(document.getElementById){
		//--for w3c-dom  widthout document.all 
		var cnode = document.getElementById('dynld');
		var nnode = document.createElement('script');
		nnode.src = getData;
		nnode.id  = 'dynld';
		cnode.parentNode.replaceChild(nnode,cnode);
	} else {
		//--for nondhtml(n4...)
		if(document.images){
			var datasrc = new Image();
			datasrc.src = getData;
			location.href = datasrc.src;
		}
	}
}
document.write('<scr'+'ipt id="dynld"></scr'+'ipt>');

/*
var e = document.createElement("script");
e.src = fullUrl;
e.type="text/javascript";
document.getElementsByTagName("head")[0].appendChild(e);
*/

Date.W3CDTF = function ( dtf ) {
	var dd = new Date();
	dd.setW3CDTF = Date.W3CDTF.prototype.setW3CDTF;
	dd.getW3CDTF = Date.W3CDTF.prototype.getW3CDTF;
	if ( dtf ) this.setW3CDTF( dtf );
	return dd;
};

Date.W3CDTF.prototype.setW3CDTF = function( dtf ) {
	var sp = dtf.split( /[^0-9]/ );
	if ( sp.length < 6 || sp.length > 8 ) return;
	if ( sp.length == 7 ) {
		if ( dtf.charAt( dtf.length-1 ) != "Z" ) return;
	}
	for( var i=0; i<sp.length; i++ ) sp[i] = sp[i]-0;

	var year = sp[0];
	var mon = sp[1];
	var day = sp[2];
	var hour = sp[3];
	var min = sp[4];
	var sec = sp[5];
	
	if ( year<1970 || (mon<1 || mon>12) || (day<1 || day>31) || (hour<0 || hour>23) || (min<0 || min>59) || (sec<0 || sec>60) ) {
		return;
	}

	var msec = Date.UTC( year, mon-1, day, hour, min, sec );


	if ( sp.length == 8 ) {
		if ( dtf.indexOf("+") < 0 ) sp[6] *= -1;
		if ( sp[6] < -12 || sp[6] > 13 ) return;
		if ( sp[7] < 0 || sp[7] > 59 ) return;
		msec -= (sp[6]*60+sp[7]) * 60000;
	}

	return this.setTime( msec );
};

Date.W3CDTF.prototype.getW3CDTF = function() {
	var year = this.getFullYear();
	var mon  = this.getMonth()+1;
	var day  = this.getDate();
	var hour = this.getHours();
	var min  = this.getMinutes();
	var sec  = this.getSeconds();

	var tzos = this.getTimezoneOffset();
	var tzpm = ( tzos > 0 ) ? "-" : "+";
	if ( tzos < 0 ) tzos *= -1;
	var tzhour = tzos / 60;
	var tzmin  = tzos % 60;

	if ( mon  < 10 ) mon  = "0"+mon;
	if ( day  < 10 ) day  = "0"+day;
	if ( hour < 10 ) hour = "0"+hour;
	if ( min  < 10 ) min  = "0"+min;
	if ( sec  < 10 ) sec  = "0"+sec;
	if ( tzhour < 10 ) tzhour = "0"+tzhour;
	if ( tzmin  < 10 ) tzmin  = "0"+tzmin;
	var dtf = year+"-"+mon+"-"+day+"T"+hour+":"+min+":"+sec+tzpm+tzhour+":"+tzmin;
	return dtf;
};

function encodeURL(s) {
	if (s==undefined || s==null) { return "";}
	var chr = '';
	var uni = '';
	var res = '';

	s = s.replace(/\:/g,'|');
	s = s.replace(/\//g,'\\');

	for (var i=0;i<s.length;i++) {
		cha = s.charAt(i); uni = s.charCodeAt(i);

		if (cha == ' ') {
			res += '+';
		} else {
			if (uni == 0x2a || uni == 0x2d || uni == 0x2e || uni == 0x5f || ((uni >= 0x30) && (uni <= 0x39)) || ((uni >= 0x41) && (uni <= 0x5a)) || ((uni >= 0x61) && (uni <= 0x7a))) {
				res = res + cha;
			} else {
				if ((uni >= 0x0) && (uni <= 0x7f)) {
					cha = '0' + uni.toString(16);
					res += '%' + cha.substr(cha.length - 2);
				} else if (uni > 0x1fffff) {
					res += '%' + (oxf0 + ((uni & 0x1c0000) >> 18)).toString(16);
					res += '%' + (0x80 + ((uni & 0x3f000) >> 12)).toString(16);
					res += '%' + (0x80 + ((uni & 0xfc0) >> 6)).toString(16);
					res += '%' + (0x80 + (uni & 0x3f)).toString(16);
				} else if (uni > 0x7ff) {
					res += '%' + (0xe0 + ((uni & 0xf000) >> 12)).toString(16);
					res += '%' + (0x80 + ((uni & 0xfc0) >> 6)).toString(16);
					res += '%' + (0x80 + (uni & 0x3f)).toString(16);
				} else {
					res += '%' + (0xc0 + ((uni & 0x7c0) >> 6)).toString(16);
					res += '%' + (0x80 + (uni & 0x3f)).toString(16);
				}
			}
		}
	}
	return res;
}

function decodeURL(s) {
	if (s==undefined || s==null) { return "";}
	var r = "";
	for (var i=0;i<s.length;i++){
		var ss = s.charAt(i);
		if (ss=="+"){ r += " "; } else {
			if (ss!="%"){ r += ss; } else {
				var u = 0;
				var f = 1;
				while (true) {
					var sss = "";
					for (var j=0;j<2;j++) {
						var ssss = s.charAt(++i);
						if (((ssss >= "0") && (ssss <= "9")) || ((ssss >= "a") && (ssss <= "f"))  || ((ssss >= "A") && (ssss <= "F"))) {
							sss += ssss;
						} else {
							--i;
							break;
						}
					}
					var n = parseInt(sss, 16);
					if (n<= 0x7f) {
						u = n;
						f = 1;
					} else if ((n>=0xc0) && (n<=0xdf)) {
						u = n & 0x1f;
						f = 2;
					} else if ((n>=0xe0) && (n<=0xef)) {
						u = n & 0x0f;
						f = 3;
					} else if ((n>=0xf0) && (n<=0xf7)) {
						u = n & 0x07;
						f = 4;
					} else if ((n>=0x80) && (n<=0xbf)) {
						u = (u << 6) + (n & 0x3f);
						--f;
					}
					if (f<=1) { break; }
					if (s.charAt(i + 1) == "%") { i++; } else { break; }
				}
				r += String.fromCharCode(u);           // add the escaped character
			}
		}
	}

	r = r.replace(/\|/g,':');
	r = r.replace(/\\/g,'/');

	return r;
}

pb_popup = new Object();
function popupWindow(id,w,h,title,url) {
	if (pb_popup[id]==undefined) { pb_popup[id] = false; }
	if(pb_popup[id]==false) {
//		var top = pb_posts.y + 10;
//		var left = pb_posts.x + 10;
		var top = 10;
		var left = 10;

		// outer
		var popWhd = new Window({id:id, className:"alphacube", title:title, top:top, left:left, width:w, height:h, url:url, resizable:true, minimizable:true, maximizable:true, destroyOnClose:true});

		// inner
/*
		var popWhd = new Window({id:id, className:"alphacube", title:title, top:top, left:left, width:w, height:h, resizable:true, minimizable:true, maximizable:true, destroyOnClose:true});
		var http = new JKL.ParseXML.Text(url);
		var html = http.parse();
		popWhd.getContent().update(html);
*/

		popWhd.showCenter();

		WindowCloseKey.init();
		pb_popup[id] = true;
		closeEvent = {
			onClose: function(eventName) {
				pb_popup[id] = false;
			}
		}
		Windows.addObserver(closeEvent);
		pb_popup[id] = popWhd;
	}
	return pb_popup[id];
}

// These modules are necessary.
//dynld('/js/prototype.js');
//dynld('/js/jkl-parsexml.js');

function pb_replace(s) {
	rep = function() {
		reg = new RegExp(s1,"g");
//		dl = s.split(reg);
//		r = dl.join(s2);
		r = s.replace(reg,s2);
		return(r);
	}

	// test domain
//	if (isDebug) {
//		s1="dv\.wablog\.com"; s2="wablog.com"; s=rep();
//	}

	// old emoji
	s1="<emoji name=\"J\:([0-9a-f]+?)\" \/>"; s2="<img class=\"emoji\" src=\"/emoji/j_$1.gif\" align=\"absmiddle\" alt=\"\emoji\" />"; s=rep();

	// json->text
	s1="&amp;"; s2="&"; s=rep();

	return s;
}

// onLoad
//Event.observe(window, 'load', pb_init, false);
function pb_init() {
//	document.body.innerHTML = pb_replace(document.body.innerHTML);
}

function test() {
	alert('test');
}