var ads_adsbox = '';
var ads_keyword = '';
var _SCMS_ADS_OUTLIST = '';
var _SCMS_TIME_ZONE = -1;
var _SCMS_ADS_DOMAIN = '';
var _SCMS_ADS_DATA_DIR = '/ads/data';

if (_SCMS_ADS_DOMAIN == '') { _SCMS_ADS_DOMAIN = document.domain; }
_SCMS_ADS_DOMAIN = document.location.protocol + ((_SCMS_ADS_DOMAIN != '') ? '//' + _SCMS_ADS_DOMAIN : '');

/**
 * fncGetAds
 */
function fncGetAds() {
	var strUrl = _SCMS_ADS_DOMAIN + _SCMS_ADS_DATA_DIR + '/' + ads_adsbox + '.txt?t=' + (new Date()).getTime();
	var strUrl = '<scr' + 'ipt type="text/javascript" src="' + strUrl + '"></' + 'scr' + 'ipt>';
	document.write(strUrl);
}


/**
 * SCmsGetAdsData
 */
function SCmsGetAdsData(objAdsData) {
	if (typeof(objAdsData) == 'object') {
		fncOutputAds(objAdsData);
	} else {
		alert("error");
	}
}


/**
 * fncGetNowDatetime
 */
function fncGetNowDatetime() {

	var dteNowDatetime = new Date();
	var intYear    = dteNowDatetime.getYear();
	var intYear    = (intYear < 2000) ? intYear + 1900 : intYear;
	var intMonth   = dteNowDatetime.getMonth() + 1;
	var intDay     = dteNowDatetime.getDate();
	var intHour    = dteNowDatetime.getHours();
	var intMinutes = dteNowDatetime.getMinutes();
	var intSeconds = dteNowDatetime.getSeconds();
	var intNowDatetime = 0;

	if (intMonth < 10) { intMonth = '0' + intMonth; }
	if (intDay < 10) { intDay = '0' + intDay; }
	if (intHour < 10) { intHour = '0' + intHour; }
	if (intMinutes < 10) { intMinutes = '0' + intMinutes; }
	if (intSeconds < 10) { intSeconds = '0' + intSeconds; }
	intNowDatetime = intYear + "" + intMonth + "" + intDay + "" + intHour + "" + intMinutes + "" + intSeconds + "";

	return intNowDatetime;
}


/**
 * fncOutputAds
 */
function fncOutputAds(objAdsData) {

	var strOutput = '';							//出力するHTML
	var intOutAdsId = -1;						//出力する素材
	var dteNowDateTime = new Date();			//時間オブジェクト
	var intHour = dteNowDateTime.getHours();	//現在時間－時
	var intLoopCount = 0;						//ループカウント
	var intLoopCount_Check = 0;					//ループカウント
	var intLoopCount_Ads = 0;					//ループカウント（素材）
	var intLoopCount_TimeZone = 0;				//ループカウント（時間）
	var intLoopCount_Array = 0;					//ループカウント（配列）
	var intLoopCount_Keyword = 0;				//ループカウント（キーワード）
	var varAdsTimeData;							//素材データ（時間）
	var varAdsOut = new Array();				//表示する広告
	var varAdsOut_Work = new Array();			//表示する広告
	var intAdsRatioTotal = 0;					//素材の出現比率の合計
	var intAdsRatio = 0;						//素材の出現比率
	var varKeywords = new Array();				//素材キーワード
	var varAdsKeywords = new Array();			//素材キーワード
	var blnAdsOutFlg;							//素材出力フラグ
	var cstKeywordSplitString = ' ';			//キーワード区切り文字
	var strOutputAdsList = '';					//出力済み広告リスト
	var intNowDatetime = 0;						//現在日時
	var blnAdsOutputFlg = false;				//広告出力フラグ
	var strAdsOutCheckFlg = true;				//広告出力確認
	var strAdsOutCheckList = '';				//広告出力確認

	//現在日時取得
	intNowDatetime = fncGetNowDatetime();

	if (_SCMS_TIME_ZONE != -1) {
		intHour = _SCMS_TIME_ZONE;
	}

	//表示する広告を検索（時間帯）
	for (intLoopCount_Ads = 0; intLoopCount_Ads < objAdsData.Ads.length; intLoopCount_Ads++) {
		if (objAdsData.Ads[intLoopCount_Ads].Ratio > 0) {
			varAdsTimeData = objAdsData.Ads[intLoopCount_Ads].TimeZone.split(',');
			//開始・終了時間確認
			if (objAdsData.Ads[intLoopCount_Ads].BeginTime <= intNowDatetime && intNowDatetime <= objAdsData.Ads[intLoopCount_Ads].EndTime) {
				//表示時間帯確認
				for (intLoopCount_TimeZone = 0; intLoopCount_TimeZone < varAdsTimeData.length; intLoopCount_TimeZone++) {
					if (intHour == varAdsTimeData[intLoopCount_TimeZone]) {
						varAdsOut[intLoopCount_Array] = intLoopCount_Ads;
						intLoopCount_Array++;
					}
				}
			}
		}
	}

	//表示する広告を検索（キーワード）
	if (ads_keyword != '') {
		varAdsOut_Work = varAdsOut;
		varAdsOut = new Array();
		intLoopCount_Array = 0;
		varKeywords = ads_keyword.split(cstKeywordSplitString);
		for (intLoopCount_Keyword = 0; intLoopCount_Keyword < varKeywords.length; intLoopCount_Keyword++) {
			for (intLoopCount_Ads = 0; intLoopCount_Ads < varAdsOut_Work.length; intLoopCount_Ads++) {
				varAdsKeywords = objAdsData.Ads[varAdsOut_Work[intLoopCount_Ads]].Keyword.split(cstKeywordSplitString);
				for (intLoopCount = 0; intLoopCount < varAdsKeywords.length; intLoopCount++) {
					if (varKeywords[intLoopCount_Keyword] == varAdsKeywords[intLoopCount]) {
						//出力済み確認
						blnAdsOutFlg = true;
						for (intLoopCount_Check = 0; intLoopCount_Check < varAdsOut.length; intLoopCount_Check++) {
							if (varAdsOut_Work[intLoopCount_Ads] == varAdsOut[intLoopCount_Check]) {
								blnAdsOutFlg = false;
								break;
							}
						}
						//素材出力設定
						if (blnAdsOutFlg == true) {
							varAdsOut[intLoopCount_Array] = varAdsOut_Work[intLoopCount_Ads];
							intLoopCount_Array++;
						}
					}
				}
			}
		}
		//キーワードが見つからないときは、時間帯を利用
		if (varAdsOut.length == 0) {
			varAdsOut = varAdsOut_Work;
		}
	}

	//表示する広告を設定
	for (intLoopCount = 0; intLoopCount < varAdsOut.length; intLoopCount++) {
		intAdsRatioTotal += eval(objAdsData.Ads[varAdsOut[intLoopCount]].Ratio);
	}

	//素材出力
	if (varAdsOut.length != 0 && intAdsRatioTotal != 0) {
		blnAdsOutputFlg = false;
		while (blnAdsOutputFlg == false) {
			intAdsRatio = Math.floor(Math.random() * intAdsRatioTotal) + 1;	//出現比率設定
			intAdsRatioTotal = 0;
			for (intLoopCount = 0; intLoopCount < varAdsOut.length; intLoopCount++) {
				intAdsRatioTotal += objAdsData.Ads[varAdsOut[intLoopCount]].Ratio;
				if (intAdsRatio <= intAdsRatioTotal) {
					strOutputAdsList = _SCMS_ADS_OUTLIST + ',';
					if (strOutputAdsList.indexOf(',' + objAdsData.Ads[varAdsOut[intLoopCount]].AdsId + ',', 0) == -1) {
						intOutAdsId = varAdsOut[intLoopCount];
						_SCMS_ADS_OUTLIST += "," + objAdsData.Ads[varAdsOut[intLoopCount]].AdsId;
						blnAdsOutputFlg = true;
						break;
					} else {
						//出力済みの場合、全て出力しているか確認
						strAdsOutCheckFlg = true;
						strAdsOutCheckList = _SCMS_ADS_OUTLIST + ',';
						for (intLoopCount_Check = 0; intLoopCount_Check < varAdsOut.length; intLoopCount_Check++) {
							if (strAdsOutCheckList.indexOf(',' + objAdsData.Ads[varAdsOut[intLoopCount_Check]].AdsId + ',', 0) == -1) {
								strAdsOutCheckFlg = false;
								break;
							}
						}
						if (strAdsOutCheckFlg) {
							blnAdsOutputFlg = true;
						}
					}
				}
			}
		}

		//素材出力
		if (intOutAdsId != -1) {
			switch (objAdsData.Ads[intOutAdsId].Type) {
				case 'img':
					strOutput = '<a href="' + _SCMS_ADS_DOMAIN + objAdsData.Ads[intOutAdsId].Url + '" target="_blank">' + '<img src="' + _SCMS_ADS_DOMAIN + objAdsData.Ads[intOutAdsId].Data + '?t=' + (new Date()).getTime() + '" border="0"></a>';
					break;
				case 'swf':
					strOutput  = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" title="ads">\n';
					strOutput += '<param name="movie" value="' + _SCMS_ADS_DOMAIN + objAdsData.Ads[intOutAdsId].Data + '?t=' + (new Date()).getTime() + '" />\n';
					strOutput += '<param name="quality" value="high" />\n';
					strOutput += '<param name="FlashVars" value="clickTAG=' + _SCMS_ADS_DOMAIN + objAdsData.Ads[intOutAdsId].Url + '" />\n';
					strOutput += '<embed src="' + _SCMS_ADS_DOMAIN + objAdsData.Ads[intOutAdsId].Data + '?t=' + (new Date()).getTime() + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" FlashVars="clickTAG=' + _SCMS_ADS_DOMAIN + objAdsData.Ads[intOutAdsId].Url + '"></embed>\n';
					strOutput += '</object>\n';
					break;
				case 'txt':
					strOutput = '<scr' + 'ipt type="text/javascript" src="' + _SCMS_ADS_DOMAIN + objAdsData.Ads[intOutAdsId].Data + '?t=' + (new Date()).getTime() + '"></' + 'scr' + 'ipt>';
					break;
				case 'server':
					strOutput = '<scr' + 'ipt type="text/javascript" src="' + _SCMS_ADS_DOMAIN + objAdsData.Ads[intOutAdsId].Data + '?t=' + (new Date()).getTime() + '"></' + 'scr' + 'ipt>';
					break;
				default:
					break;
			}
			document.write(strOutput);
		}
	}
}


/**
 * SCmsOutputAdsText
 */
function SCmsOutputAdsText(objAdsData) {
	var strOutput = objAdsData.Ads;
	strOutput = strOutput.replace(/{_SCMS_ADS_DOMAIN}/g, _SCMS_ADS_DOMAIN);
	strOutput = strOutput.replace(/&#039;/g, "'");
	strOutput = strOutput.replace(/{SCMSLF}/g, "\n");
	document.write(strOutput);
}


/**
 * SCmsOutputAdsServer
 */
function SCmsOutputAdsServer(objAdsData) {
	var strOutput = objAdsData.Ads;
	strOutput = strOutput.replace(/{_SCMS_ADS_DOMAIN}/g, _SCMS_ADS_DOMAIN);
	strOutput = strOutput.replace(/&#039;/g, "'");
	strOutput = strOutput.replace(/{SCMSLF}/g, "\n");
	document.write(strOutput);
}

