var ckDays = 5000;                     // クッキーの有効期限（日）（ダブルクオートやクオートで括らない）
var ckPath = "/"                    // クッキーのパス（必ずダブルクオートかクオートで括る。指定がいらない場合は"/"にする）


function SetCookieTop(ckName , ckval){
	// cookie削減のための対応
	// MenuColor,loginmode,Zsmile,BeansMyPage,beans_syokiGamenの場合はmnxsetに設定する

	if ( ckName == "MenuColor" || ckName == "loginmode" || ckName == "Zsmile" || ckName == "BeansMyPage" || ckName == "beans_syokiGamen" || ckName ==  "BeansDaikoAccountNo" || ckName == "syokigamen_set") {
		RemoveCookieTop(ckName);
		SetSubCookieTop("mnxset",ckName,ckval);
		return;
	}
	var dobj = new Date();
	dobj.setTime( dobj.getTime() + 24 * 60 * 60 * ckDays * 1000);
	var expiryDate = dobj.toGMTString();
	var dm = "";
	if ( document.domain.indexOf(".monex.co.jp") != -1){
		dm = ";domain=.monex.co.jp";
	}
	document.cookie = ckName + '=' + ckval + ';expires=' + expiryDate + ';path=' + ckPath + dm;
}


function GetSubCookieTop(ckName,subName) {
	var CookieVal = GetCookieTop(ckName);
	if ( CookieVal == null ){
		return null;
	} else {
		var cookieArray    = new Array();
		var cookieSubArray = new Array();

		cookieArray=decodeURIComponent(CookieVal).split("&");
		for (var x=0; x < cookieArray.length; x++){
			cookieSubArray = cookieArray[x].split("=");
			if ( cookieSubArray[0] == subName) {
				return cookieSubArray[1];
			}
		}
		return null;
	}
}

function SetSubCookieTop(ckName,subName,ckval) {
	var CookieVal;
	var cookieArray     = new Array();
	var cookieSubArray  = new Array();
	var cookieSubArray1  = new Array();
	var cookieSubArray2 = new Array();

	CookieVal = GetCookieTop(ckName);
	if ( CookieVal == null ) {
		SetCookieTop(ckName ,encodeURIComponent(subName + "=" + ckval));
		return;
	}
	cookieArray=decodeURIComponent(CookieVal).split("&");
	for (var x=0; x < cookieArray.length; x++){
		cookieSubArray = cookieArray[x].split("=");
		cookieSubArray1[x] = cookieSubArray[0];
		cookieSubArray2[x] = cookieSubArray[1];
	}
	var StoreCookieVal = "";
	for (var x=0; x < cookieArray.length; x++){
		if(  cookieSubArray1[x] != subName ) { // subNameに一致しないものは連結し、subNameは最後に連結
			StoreCookieVal = StoreCookieVal + cookieSubArray1[x] + "=" + cookieSubArray2[x] + "&" ;
		}
	}
	if ( StoreCookieVal != "") {
		StoreCookieVal = StoreCookieVal + subName + "=" + ckval;
	} else {
		StoreCookieVal = subName + "=" + ckval;
	}
	var dobj = new Date();
	dobj.setTime( dobj.getTime() + 24 * 60 * 60 * ckDays * 1000);
	var expiryDate = dobj.toGMTString();
	var dm = "";
	if ( document.domain.indexOf(".monex.co.jp") != -1){
		dm = ";domain=.monex.co.jp";
	}
	document.cookie = ckName + '=' + encodeURIComponent(StoreCookieVal) + ';expires=' + expiryDate + ';path=' + ckPath + dm;
}

function SetSubCookieTopNoExpires(ckName,subName,ckval) {
	var CookieVal;
	var cookieArray     = new Array();
	var cookieSubArray  = new Array();
	var cookieSubArray1  = new Array();
	var cookieSubArray2 = new Array();

	CookieVal = GetCookieTop(ckName);
	if ( CookieVal == null ) {
		SetCookieTop(ckName ,encodeURIComponent(subName + "=" + ckval));
		return;
	}
	cookieArray=decodeURIComponent(CookieVal).split("&");
	for (var x=0; x < cookieArray.length; x++){
		cookieSubArray = cookieArray[x].split("=");
		cookieSubArray1[x] = cookieSubArray[0];
		cookieSubArray2[x] = cookieSubArray[1];
	}
	var StoreCookieVal = "";
	for (var x=0; x < cookieArray.length; x++){
		if(  cookieSubArray1[x] != subName ) { // subNameに一致しないものは連結し、subNameは最後に連結
			StoreCookieVal = StoreCookieVal + cookieSubArray1[x] + "=" + cookieSubArray2[x] + "&" ;
		}
	}
	if ( StoreCookieVal != "") {
		StoreCookieVal = StoreCookieVal + subName + "=" + ckval;
	} else {
		StoreCookieVal = subName + "=" + ckval;
	}
	var dm = "";
	if ( document.domain.indexOf(".monex.co.jp") != -1){
		dm = ";domain=.monex.co.jp";
	}
	document.cookie = ckName + '=' + encodeURIComponent(StoreCookieVal) + ';path=' + ckPath + dm;
}

function GetCookieTop(ckName){
	// MenuColor,loginmode,Zsmile,BeansMyPage,beans_syokiGamenの場合は
	// まず、mnxsetから検索して、無い場合は、その名前で検索し、書き込んだ後に削除する

	var CookieVal;

	if ( ckName == "MenuColor" || ckName == "loginmode" || ckName == "Zsmile" || ckName == "BeansMyPage" || ckName == "beans_syokiGamen" || ckName ==  "BeansDaikoAccountNo" || ckName == "syokigamen_set") {
		CookieVal = GetSubCookieTop("mnxset",ckName);
		if ( CookieVal != null ) {
			// 複数個ある場合があるので、再度チェックして、無理矢理削除
			RemoveCookieTop(ckName);
			return CookieVal;
		}
	}
	var arg  = ckName + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;

	while (i < clen){
		var j = i + alen;
		if (document.cookie.substring(i, j) == arg) {
			CookieVal = getCookieValTop(j,ckName);
			if ( ckName == "MenuColor" || ckName == "loginmode" || ckName == "Zsmile" || ckName == "BeansMyPage" || ckName == "beans_syokiGamen" || ckName ==  "BeansDaikoAccountNo" || ckName == "syokigamen_set") {
				SetSubCookieTop("mnxset", ckName , CookieVal);
				RemoveCookieTop(ckName);
			}
			return CookieVal;
		}
		i = document.cookie.indexOf(" ", i) + 1;
		if (i == 0) break;
	}
	return null;
}

function getCookieValTop (offset,ckName){
	var endstr = document.cookie.indexOf (";", offset);
	if (endstr == -1)
	endstr = document.cookie.length;
	return document.cookie.substring(offset,endstr);
}

function RemoveCookieTop(ckName) {
	dTime = new Date();
	dTime.setYear(dTime.getYear() - 1);
	document.cookie = ckName + "="  + ";expires=" + dTime.toGMTString() + ";path=" + ckPath;
}
