/*        クッキーに登録する汎用関数              */
/* 書式 : mySetCookie(クッキー名,値,有効期限日数) */
/* 戻り値 : なし(void)                            */
function mySetCookie(myCookie,myValue,myDay){
   myExp = new Date();
   myExp.setTime(myExp.getTime()+(myDay*24*60*60*1000));
   myItem = "@" + myCookie + "=" + escape(myValue) + ";";
   myExpires = "expires="+myExp.toGMTString() +";";
   myDomain="";
//   myDomain = "domain="+location.hostname.replace(/^[^\.]*/, "");
//   alert(myDomain);//for Debug
   document.cookie =  myItem + myDomain + myExpires;
}

/*        クッキーを取り込む汎用関数              */
/* 書式 : myGetCookie(クッキー名)                 */
/* 戻り値 : 値(string)  null:該当なし             */
function myGetCookie(myCookie){
   myCookie = "@" + myCookie + "=";
   myValue = null;
   myStr = document.cookie + ";" ;
   myOfst = myStr.indexOf(myCookie);
   if (myOfst != -1){
      myStart = myOfst + myCookie.length;
      myEnd   = myStr.indexOf(";" , myStart);
      myValue = unescape(myStr.substring(myStart,myEnd));
   }
   return myValue;
}

//--------------------------------------
//kl_encrypt/decrypt(s)
//返り値：暗号化/複合化した文字列
//s：文字列(日本語入力時はescape()実行)
//KL_CRYPT_KEY：キーとして用いる文字列
//KL_COOKIE_CHARS：クッキーで利用可能な文字
//--------------------------------------
KL_CRYPT_KEY="Rori Kei Bisyouzyo No Hamedori Nakadasi";
KL_COOKIE_CHARS="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%./_";
function kl_crypt(s,enc){
	var chars=KL_COOKIE_CHARS;
	var key=escape(KL_CRYPT_KEY);
	var t=""; var c,n,m;
	for(var i=0;i<s.length;i++){
		c=s.charAt(i);
		n=chars.indexOf(c);
		if(n>=0){
			m=chars.indexOf(key.charAt(i%key.length));
			if(enc) n=n+m; else n=n-m;
			if(n<0) n=n+chars.length;
			if(n>=chars.length) n=n-chars.length;
			c=chars.charAt(n);
		}
		t+=c;
	}
	return t;
}
function kl_encrypt(s){ return kl_crypt(s,1); }
function kl_decrypt(s){ return kl_crypt(s,0); }

//入力文字列が日本語の場合は以下を利用//
function kl_encryptj(s){ return kl_crypt(escape(s),1); }
function kl_decryptj(s){ return unescape(kl_crypt(s,0)); }

var myReferer;//REFERERの値を保持する変数

function checkreferer(){
	var REFKEY="@RF";
	myReferer = myGetCookie(REFKEY);      // 名前読込
	if (myReferer == null)
	{                    // 初めての訪問
		if (document.referrer.length !=0 ){
			myReferer = document.referrer;
		}else{
			url=location.href;
			var p=url.indexOf(REFKEY+"=");
			if(p!=-1){
				queryRef=url.substring(p+REFKEY.length+1);
				p=queryRef.indexOf("&");
				if(p!=-1){
					queryRef=url.substring(0,p);
				}
				queryRef=kl_decryptj(queryRef);
//				alert(queryRef);//for Debug
				myReferer=queryRef;
			}else{
				myReferer="none";
			}
		}
		mySetCookie(REFKEY,myReferer,30); // 名前保存
		myReferer = myGetCookie(REFKEY);  // 名前読込
	}
//	document.write(myReferer);//for Debug
}

function refererjump(link){
	var REFKEY="@RF";
	url=link.href;
	if(url.indexOf("?")==-1){
		url=url+"?";
	}else{
		url=url+"&";
	}
	myReferer = myGetCookie(REFKEY);  // 名前読込
	url = url + REFKEY + "=" + kl_encryptj(myReferer);
//	alert(url);//for Debug
	location.href=url;
	return false;
}

function getReferer(){
	return myReferer;
}

checkreferer();
