/*
 * ヘッダー部分ログインネーム取得
 */
 function getNickName() {
	var COOKIE_KEY	= "nickname"

	var nickname	= getCookieValue(COOKIE_KEY);
	if (nickname != null) {
		return decodeURL(nickname);
	}
	return 'ゲスト'
}


/*
 * Cookieから値を取得します。
 */
function getCookieValue(key) {
	var cookie	= document.cookie + ";";
	if (cookie != undefined) {
		var nStart	= cookie.indexOf(key);
		if (nStart != -1) {
			var nEnd	= cookie.indexOf(";", nStart);

			var value	= cookie.substring(nStart + key.length + 1, nEnd);
			if (value != undefined && value != '') {
				return value;
			}
		}
	}
	return null;
}

/*
 * Cookieから値を削除します。
 */
function removeCookie(key) {
	document.cookie = key + '=;path=/;expires=0'
}


/*
 *  Cookie処理系 
 *  のちのち上にあるfunctionと整理希望(makoto)
 */
function GetCookie(str)
{
	var cookie = document.cookie + ";"
	var start1 = cookie.indexOf(str);
	var start2 = cookie.indexOf("=", start1) + 1;
	var end    = cookie.indexOf(";", start1);
	if(start2 < end && start1 > -1) {
		return cookie.substring(start2, end);
	}
	return false;
}

function DeleteCookie(str)
{
	if (GetCookie(str) != '') {
		var ago_time = new Date(2000, 1, 1);
		document.cookie = str + '='+ GetCookie(str) + ';' + 'expires='+ago_time.toGMTString();
	}
}

function SetCookie(name,val,exday,path)
{
	var cookie_str = name+'='+val+';';

	if (exday >= 1)
	{
		var now_time = new Date();
		now_time.setTime(now_time.getTime() + (exday * 24 * 60 * 60 * 1000));
		cookie_str += 'expires='+now_time.toGMTString()+';';
	}

	cookie_str += 'domain=.pointtown.com;';
	if (path != '') {
		cookie_str += 'path=' + path;
	}
	document.cookie = cookie_str;
}


var setKonamiCommand=
	function(handler){
		var addEvent=function(element,eventName,handler){
			if(element.attachEvent){
				element.attachEvent("on"+eventName,handler);
			}else if(element.addEventListener){
				element.addEventListener(eventName,handler,true);
			}else{
				element["on"+eventName]=handler;
			}
		};
		var commandHandler=
			function(handler,command){
				var _handler=handler;
				var _command=command;
				var checkedCommand=0;
				return function(event){
					var e=event||Event;
					if(e.keyCode==_command[checkedCommand]){
						checkedCommand++;
					}else{
						checkedCommand=0;
					}
					if(checkedCommand==_command.length){
						checkedCommand=0;
						_handler();
					}
				};
			};
		var konamiCommand=[38,38,40,40,37,39,37,39,66,65];
		var konamiHandler=commandHandler(handler,konamiCommand);
		addEvent(window,"keydown",konamiHandler);
		addEvent(document.getElementsByTagName("body")[0],"keydown",konamiHandler);
	};

var succeeded=
	function(){
		alert("power up!");
	};

var addEvent=
	function(element,eventName,handler){
		if(element.attachEvent){
			element.attachEvent("on"+eventName,handler);
		}else if(element.addEventListener){
			element.addEventListener(eventName,handler,true);
		}else{
			element["on"+eventName]=handler;
		}
	};

var konmai=
	function(){
		setKonamiCommand(succeeded);
	};


/*
 * オープンウィンドウ
 */
function OpenWin(url,win,w,h,scroll) {
	OpWin = window.open(url,win,'width='+w+',height='+h+',scrollbars=yes,status=no,menubar=no,resizable=yes,toolbar=no');
}

/*
 * 戻る
 */
function pageBack(){
	history.back();
}

/*
 * GMOIDにログオンさせるためにタグを表示する。
 * → move to doLogin()
 */
//try {
//	var url	= getCookieValue('cookie_key_gmoid_logon_tag_url');
//	if (url != null) {
//		var tag		= document.createElement('IMG');
//		tag.width	= 0;
//		tag.height	= 0;
//		tag.border	= 0;
//		tag.src		= url;
//		// 表示したのでCookieを削除。
//		removeCookie('cookie_key_gmoid_logon_tag_url');
//	}
//}
//catch (e) { /* do nothing. */ }


/* ************************************************************************* */
/*						ここから下はエンコード関係							 */
/* ************************************************************************* */


/* Function Equivalent to java.net.URLEncoder.encode(String, "UTF-8")
 * Copyright (C) 2002, Cresc Corp.
 * Version: 1.0
 */
function encodeURL(str){

    var s0, i, s, u;
    s0 = "";                // encoded str
    for (i = 0; i < str.length; i++){   // scan the source

        s = str.charAt(i);
        u = str.charCodeAt(i);          // get unicode of the char
        if (s == " "){s0 += "+";}       // SP should be converted to "+"
        else {
            if ( u == 0x2a || u == 0x2d || u == 0x2e || u == 0x5f || ((u >= 0x30) && (u <= 0x39)) || ((u >= 0x41) && (u <= 0x5a)) || ((u >= 0x61) && (u <= 0x7a))){       // check for escape
                s0 = s0 + s;            // don't escape
            }
            else {                  // escape
                if ((u >= 0x0) && (u <= 0x7f)){     // single byte format
                    s = "0"+u.toString(16);
                    s0 += "%"+ s.substr(s.length-2);
                }
                else if (u > 0x1fffff){     // quaternary byte format (extended)
                    s0 += "%" + (oxf0 + ((u & 0x1c0000) >> 18)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0x3f000) >> 12)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
                else if (u > 0x7ff){        // triple byte format
                    s0 += "%" + (0xe0 + ((u & 0xf000) >> 12)).toString(16);
                    s0 += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
                else {                      // double byte format
                    s0 += "%" + (0xc0 + ((u & 0x7c0) >> 6)).toString(16);
                    s0 += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
            }
        }
    }
    return s0;
}

 

/* Function Equivalent to java.net.URLDecoder.decode(String, "UTF-8")
 * Copyright (C) 2002, Cresc Corp.
 * Version: 1.0
 */
function decodeURL(str){

    var s0, i, j, s, ss, u, n, f;
    s0 = "";                // decoded str
    for (i = 0; i < str.length; i++){   // scan the source str
        s = str.charAt(i);
        
        if (s == "+"){s0 += " ";}       // "+" should be changed to SP
        else {
            if (s != "%"){s0 += s;}     // add an unescaped char
            else{               // escape sequence decoding
                u = 0;          // unicode of the character
                f = 1;          // escape flag, zero means end of this sequence
                while (true) {
                    ss = "";        // local str to parse as int
                        for (j = 0; j < 2; j++ ) {  // get two maximum hex characters for parse
                            sss = str.charAt(++i);
                            if (((sss >= "0") && (sss <= "9")) || ((sss >= "a") && (sss <= "f"))  || ((sss >= "A") && (sss <= "F"))) {
                                ss += sss;      // if hex, add the hex character
                            } else {--i; break;}    // not a hex char., exit the loop
                        }
                    n = parseInt(ss, 16);           // parse the hex str as byte
                    if (n <= 0x7f){u = n; f = 1;}   // single byte format
                    if ((n >= 0xc0) && (n <= 0xdf)){u = n & 0x1f; f = 2;}   // double byte format
                    if ((n >= 0xe0) && (n <= 0xef)){u = n & 0x0f; f = 3;}   // triple byte format
                    if ((n >= 0xf0) && (n <= 0xf7)){u = n & 0x07; f = 4;}   // quaternary byte format (extended)
                    if ((n >= 0x80) && (n <= 0xbf)){u = (u << 6) + (n & 0x3f); --f;}         // not a first, shift and add 6 lower bits
                    if (f <= 1){break;}         // end of the utf byte sequence
                    if (str.charAt(i + 1) == "%"){ i++ ;}                   // test for the next shift byte
                    else {break;}                   // abnormal, format error
                }
            s0 += String.fromCharCode(u);           // add the escaped character
            }
        }
    }
    return s0;
}


//
// Escape Codec Library: ecl.js (Ver.041208)
//
// Copyright (C) http://nurucom-archives.hp.infoseek.co.jp/digital/
//

EscapeEUCJP=function(str){
	return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){
		var c=s.charCodeAt(0);
		return (c<128?(c<16?"%0":"%")+c.toString(16):65376<c&&c<65440?"%8E%"+(c-65216).toString(16):(c=JCT8836.indexOf(s))<0?"%A1%A6":"%"+((c-(c%=94))/94+161).toString(16)+"%"+(c+161).toString(16)).toUpperCase()
	})
};

/*
 * OS、ブラウザのCSSハック用
 */
var css_browser_selector = function() {
	var ua=navigator.userAgent.toLowerCase(),is=function(t){return ua.indexOf(t) != -1;},h=document.getElementsByTagName('html')[0],b=(!(/opera|webtv/i.test(ua))&&/msie (\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?'gecko ff2':is('firefox/3')?'gecko ff3':is('gecko/')?'gecko':is('opera/9')?'opera opera9':/opera (\d)/.test(ua)?'opera opera'+RegExp.$1:is('konqueror')?'konqueror':is('applewebkit/')?'webkit safari':is('mozilla/')?'gecko':'',os=(is('x11')||is('linux'))?' linux':is('mac')?' mac':is('win')?' win':'';var c=b+os+' js'; h.className += h.className?' '+c:c;}();


/* クリックで開閉 */
	var flg_common = false;
function click_door(){
	flg_common =! flg_common;
	if(flg_common == true){
		document.getElementById('click_door').style.display = "block";
	}else{
		document.getElementById('click_door').style.display = "none";
		}
}


/*
登録完了キーワード(YSTキーワード)
*/
function regist_keyword(keywords_num,outputId) {
		var insert_html = 'キーワードをクリックでもポイントＧＥＴ！&nbsp;：&nbsp;';
		var random_keywords = ['脂肪吸引','痩せる','美容クリニック','多汗症','脱毛','二重まぶた','美容整形','豊胸','医療レーザー','シワ取り','ワキガ','プチ整形','薄毛','育毛','クルマ','ED','マンション','株取引','不動産','クレジット','ゴルフ場','男性用化粧品','カツラ'];
		for (i = 0;i < keywords_num; i++) {
			var rand = Math.floor( Math.random() * random_keywords.length);
			insert_html += '';
			insert_html += '<a href="/ptu/pointpark/dailySearchPoint.do?function=regist&w_utf8=' + encodeURIComponent(random_keywords[rand]) + '" target="_blank">' + random_keywords[rand] + '</a> ';
			random_keywords.splice(rand, 1);
		}
		var insert_area = document.getElementById(outputId);
		insert_area.innerHTML = insert_html;
}

/*
 * GMOIDにログオンさせるためにタグを表示する。
 */
function doLogin() {
	try {
		var url	= getCookieValue('cookie_key_gmoid_logon_tag_url');
		if (url != null) {
			var tag		= document.createElement('IMG');
			tag.width	= 0;
			tag.height	= 0;
			tag.border	= 0;
			tag.src		= url;
			// 表示したのでCookieを削除。
			removeCookie('cookie_key_gmoid_logon_tag_url');
		}
	} catch (e) { /* do nothing. */ }
}

/* ログイン表示 古いデザイン用のログイン(クチコミ掲示板とポイントマップが残ってるので。。。) */
function success_loginfunc(xml){
	var value	= xml.getElementsByTagName('value')[0];
	my_nickname = value.getElementsByTagName('nickname')[0].firstChild.nodeValue;
	var strEnableMailPoint	= '0';	// 現在メールから取得できる合計ポイント数
	if (value.getElementsByTagName('point')[0].firstChild != null){
		my_point = value.getElementsByTagName('point')[0].firstChild.nodeValue;
		strEnableMailPoint	= value.getElementsByTagName('enable_mail_point')[0].firstChild.nodeValue;
	}
	else {
		my_point = 'OUT';
	}

	if (my_point != 'OUT') {
		var my_html = '';
		my_html += '<li class="guest"><table cellpadding="0" cellspacing="0" border="0" width="245">';
		my_html += '	<tr>';
		my_html += '		<td align="left" valign="middle"><a href="/ptu/mypage/pt/">' + my_nickname + 'さん</a></td>';
		my_html += '		<td align="right"><a href="/ptu/logout.do"><img src="/0711img/header/btn_logout.gif" width="60" height="15" alt="" border="0" /></a></td>';
		my_html += '	</tr>';
		my_html += '</table></li>';
		my_html += '<li class="clear">';
		my_html += '	<ul class="bgLogout">';
		my_html += '		<li class="coin"><a href="/ptu/point_history/list.do"><span class="font11">現在のポイント</span><br /><b class="fontRed font12">' + my_point + '</b>pt</a></li>';
		if ('0' == strEnableMailPoint) {
			my_html += '		<li class="mail"><a href="/ptu/mail_box/list.do"><span class="font11">新着メールは<br />ありません</span></a></li>';
		}
		else {
			my_html += '		<li class="mail"><a href="/ptu/mail_box/list.do"><span class="font11">メールクリックで</span><br /><b class="fontRed font12">' + strEnableMailPoint + '</b>pt 獲得可能</a></li>';
		}
		my_html += '	</ul>';
		my_html += '</li>';

		$('login_target').innerHTML = '';
		$('login_target').innerHTML = my_html;

		var my_target2 = document.getElementById('index_regist');
		if (my_target2 != null) {
			my_target2.innerHTML = '';
			my_target2.innerHTML = 'HOME';
		}

		doLogin();
	}
}

/*
 * 非同期リクエスト実行
 */
function ajaxReq(url){
	var msec = (new Date()).getTime();
	new Ajax.Request(url, {
	method: "get",
	parameters: "cache="+msec,
	onSuccess:function(httpObj){
			success_loginfunc(httpObj.responseXML);
		},
		onFailure:function(httpObj){
			window.alert('エラーで読み込めませんでした');
		}
	});
}


/* ログイン表示 - ログインステータス */
function success_loginfunc_renew(xml){
	var value	= xml.getElementsByTagName('value')[0];
	my_nickname = value.getElementsByTagName('nickname')[0].firstChild.nodeValue;
	var strEnableMailPoint	= '0';	// 現在メールから取得できる合計ポイント数
	if (value.getElementsByTagName('point')[0].firstChild != null){
		my_point = value.getElementsByTagName('point')[0].firstChild.nodeValue;
		strEnableMailPoint	= value.getElementsByTagName('enable_mail_point')[0].firstChild.nodeValue;
	}
	else {
		my_point = 'OUT';
	}

	if (my_point != 'OUT') {
		var my_html = '';
		my_html += '		<p class="mystatus">マイステータス</p>';
		my_html += '		<p class="nickname"><a href="/ptu/mypage/pt/">' + my_nickname + '</a>さん</p>';
		my_html += '			<div class="logininfo">';
		my_html += '	<ul>';
		my_html += '		<li class="point"><a href="/ptu/mypage/point_history/list.do">現在のポイント：<b class="red">' + my_point + '</b>pt</a></li>';
		if ('0' == strEnableMailPoint) {
			my_html += '		<li class="mail"><a href="/ptu/mail_box/list.do">新着メールはありません</a></li>';
		}
		else {
			my_html += '		<li class="mail"><a href="/ptu/mail_box/list.do">メールクリックで<b class="red">' + strEnableMailPoint + '</b>pt獲得可能</a></li>';
		}
		my_html += '				</ul>';
		my_html += '	</div>';
		my_html += '<div class="logout"><a href="/ptu/logout.do"><img src="http://img.pointtown.com/image/common/btn_logout.gif" width="100" height="20" alt="ログアウト" /></a></div>';

		$('login_frame').innerHTML = '';
		$('login_frame').innerHTML = my_html;

		doLogin();
	}
}

function getLoginStats(url){
	var msec = (new Date()).getTime();
	new Ajax.Request(url, {
	method: "get",
	parameters: "cache="+msec,
	onSuccess:function(httpObj){
			success_loginfunc_renew(httpObj.responseXML);
		},
		onFailure:function(httpObj){
			window.alert('エラーで読み込めませんでした');
		}
	});
}