var adFiltersD = new Array();
var adFiltersU = new Array();
var adFiltersK = new Array();
var isAdSense;
var adsList;
var spareType;

/******************************************************************************
* 関数名       ： SetAdFilters
* 機能         ： フィルターを設定する
* 機能説明     ： 
* 引数-1       ： なし
* 戻り値       ： なし
******************************************************************************/
function SetAdFilters()
{
	//ドメインを設定する
	adFiltersD = new Array();
	
	//URLを設定する
	adFiltersU = new Array();
	
	//キーワードを設定する
	adFiltersK = new Array();
}

/******************************************************************************
* 関数名       ： GetListingHtml
* 機能         ： リスティング広告のHTMLを取得する
* 機能説明     ： 
* 引数-1       ： 広告の表示件数
* 引数-2       ： 表示する広告の開始位置
* 戻り値       ： なし
******************************************************************************/
function GetListingHtml(adCount, startIdx)
{
	//AdSend取得フラグを初期化する
	isAdSense = true;
	
	//広告が取得できなかった場合は
	if(adsList == undefined)
	{
		//予備広告を設定する
		adsList = GetAdSpare();
		
		//AdSend取得フラグを倒す
		isAdSense = false;
	}
	else
	{
		//広告は正常に取得できたか？
		if (adsList.length == 0)
		{
			//できない場合は・・・
			
			//予備広告を設定する
			adsList = GetAdSpare();
			
			//AdSend取得フラグを倒す
			isAdSense = false;
		}
		else
		{
			//フィルターチェックした広告を設定する
			adsList = CheckAd(adsList);
		}
	}
	
	//広告配列でループする
	for (var i = 0; i < adsList.length; i++)
	{
		//内容がundefinedの場合、空文字を設定する
		if (adsList[i].line3 == undefined)
		{
			adsList[i].line3 = '';
		}
	}
	
	//HTMLを返却する
	return CreateListingHtml(adCount, startIdx);
}

/******************************************************************************
* 関数名       ： CheckAd
* 機能         ： googleから取得した広告をチェックする
* 機能説明     ： 
* 引数-1       ： 広告情報
* 戻り値       ： なし
******************************************************************************/
function CheckAd(prmad)
{
	var retAd = new Array();
	var isDeny;
	var counter = 0;
	
	//ドメインフィルターを取得する
	SetAdFilters();
	
	//広告の件数が0、またはフィルターの件数が0か？
	if (prmad.length == 0 || adFiltersD.length == 0)
	{
		//広告をそのまま返却する
		return prmad; 
	}
	
	//広告配列でループする
	for (var i = 0; i < prmad.length; i++)
	{
		//ドメインフィルターチェック
		isDeny = false;
		
		//チェックするURLを設定する
		var url = prmad[i].visible_url.toLowerCase();
		
		//ドメインフィルターの配列でループする
		for (var j = 0; j < adFiltersD.length; j++)
		{
			//拒否するドメインが含まれているか？
			if (url.indexOf(adFiltersD[j], 0) >= 0) {
				//拒否フラグを立てて、処理を抜ける
				isDeny = true;
				break;
			}
		}
		
		//チェックにかかってないか？
		if (!isDeny)
		{
			//チェックするURLを設定する
			var url = prmad[i].url.toLowerCase();
			
			//URLフィルターの配列でループする
			for (var j = 0; j < adFiltersU.length; j++)
			{
				//拒否するURLが含まれているか？
				if (url.indexOf(adFiltersU[j], 0) >= 0) {
					//拒否フラグを立てて、処理を抜ける
					isDeny = true;
					break;
				}
			}
		}
		
		//チェックにかかってないか？
		if (!isDeny)
		{
			//チェックするタイトル、詳細を設定する
			var contents = prmad[i].line1 + ' ' + prmad[i].line2 + ' ' + prmad[i].line3;
			contents = contents.toLowerCase();
			
			//キーワードフィルターの配列でループする
			for (var j = 0; j < adFiltersK.length; j++)
			{
				//拒否するURLが含まれているか？
				if (contents.indexOf(adFiltersK[j], 0) >= 0) {
					//拒否フラグを立てて、処理を抜ける
					isDeny = true;
					break;
				}
			}
		}
		
		//表示対象の広告か？
		if (!isDeny) {
			//返却する配列に広告を設定する
			retAd[counter] =
				{
					'type': prmad[i].type,
					'line1': prmad[i].line1,
					'url': prmad[i].url,
					'visible_url': prmad[i].visible_url,
					'line2': prmad[i].line2,
					'line3': prmad[i].line3
				};
			
			//カウンターをインクリメントする
			counter++;
		}
	}
	
	//広告が取得できなかったか？
	if (retAd.length == 0)
	{
		//AdSend取得フラグを倒す
		isAdSense = false;
		
		//予備広告を取得して設定する。
		retAd = GetAdSpare();
	}
	
	//広告を返却する
	return retAd;
}

/******************************************************************************
* 関数名       ： GetLabelId
* 機能         ： 空いているラベルIDを取得する
* 機能説明     ： 
* 引数-1       ： IDの基本となるラベル名
* 戻り値       ： ラベルID
******************************************************************************/
function GetLabelId(lblName)
{
	//ラベルが指定されていない場合は、デフォルトを設定する
	if (lblName == undefined)
	{
		lblName = 'lb';
	}
	
	//ループする
	for (var i = 1; i < 50; i++)
	{
		//IDが存在していないければ、その番号を返却する
		if (document.getElementById(lblName + i) == null)
		{
			return i
			break;
		}
	}
	
	//規定値内に空がない場合は「0」を返却する
	return 0;
}
/******************************************************************************
* 関数名       ： GetAdSpare
* 機能         ： 予備広告を取得する
* 機能説明     ： 
* 引数-1       ： 広告情報
* 戻り値       ： なし
******************************************************************************/
function GetAdSpare()
{
	switch(spareType)
	{
		case 0:
			return GetAdSpare_MakerAd();
			break;
		case 1:
			return GetAdSpare_MoneyAd();
			break;
		case 2:
			return GetAdSpare_PhotohitoAd();
			break;
		case 3:
			return GetAdSpare_AkibaAd();
			break;
	}
}

/******************************************************************************
* 関数名       ： GetAdSpare_MakerAd
* 機能         ： 予備広告を取得する
* 機能説明     ： 
* 引数-1       ： 広告情報
* 戻り値       ： なし
******************************************************************************/
function GetAdSpare_MakerAd()
{
	var adSpare = new Array();
	
	adSpare[0] =
		{
			'type': 'text',
			'line1': '価格comでADSLの料金比較',
			'url': 'http://kakaku.com/bb/ranking_ADSL123_110000999913000000000012/?lpid=ranking_adsl&lid=bb_kkc_itemsrc_txtlist&waad=NaS8vGIj',
			'visible_url': 'kakaku.com',
			'line2': 'ADSL最安プラン比較！住居・回線タイプ別最安プラン検索も',
			'line3': ''
		};
	
	adSpare[1] =
		{
			'type': 'text',
			'line1': '価格.comで自動車保険の一括見積もり',
			'url': 'http://kakaku.com/kuruma/hoken/?lid=kurumahoken_kkk501',
			'visible_url': 'kakaku.com',
			'line2': '無料一括見積であなたにとって一番安い会社を見つけよう！',
			'line3': ''
		};
	
	adSpare[2] =
		{
			'type': 'text',
			'line1': '価格.comで太陽光発電の導入費用を無料一括見積もり！',
			'url': 'http://kakaku.com/taiyoukou/?lid=taiyoukou_search',
			'visible_url': 'kakaku.com',
			'line2': '無料一括見積もりで複数の施工販売会社の見積もりを比較しましょう！',
			'line3': ''
		};
	
	adSpare[3] =
		{
			'type': 'text',
			'line1': '通信費見直しませんか？',
			'url': 'http://kakaku.com/bb/faq/guide.html?lid=bb_guide_tokusetsu',
			'visible_url': 'kakaku.com',
			'line2': '初心者のあなたでも、価格.comなら最適プロバイダが見つかる！',
			'line3': ''
		};
	
	adSpare[4] =
		{
			'type': 'text',
			'line1': '賃貸なら【スマイティ】価格.com姉妹サイト',
			'url': 'http://sumaity.com/',
			'visible_url': 'sumaity.com',
			'line2': '日本最大級の掲載物件数。間取り図・外観100％掲載。',
			'line3': ''
		};
	
	adSpare[5] =
		{
			'type': 'text',
			'line1': '投資信託を徹底比較！',
			'url': 'http://kakaku.com/fund/',
			'visible_url': 'kakaku.com',
			'line2': '全国内投資信託（約3000本）を比較するなら、価格.comで！',
			'line3': ''
		};
	
	adSpare[6] =
		{
			'type': 'text',
			'line1': '価格comでADSLの料金比較',
			'url': 'http://kakaku.com/bb/ranking_ADSL123_110000999913000000000012/?lpid=ranking_adsl&lid=bb_kkc_itemsrc_txtlist&waad=NaS8vGIj',
			'visible_url': 'kakaku.com',
			'line2': 'ADSL最安プラン比較！住居・回線タイプ別最安プラン検索も',
			'line3': ''
		};
	
	adSpare[7] =
		{
			'type': 'text',
			'line1': '価格.comで自動車保険の一括見積もり',
			'url': 'http://kakaku.com/kuruma/hoken/?lid=kurumahoken_kkk501',
			'visible_url': 'kakaku.com',
			'line2': '無料一括見積であなたにとって一番安い会社を見つけよう！',
			'line3': ''
		};
	
	adSpare[8] =
		{
			'type': 'text',
			'line1': '価格.comで太陽光発電の導入費用を無料一括見積もり！',
			'url': 'http://kakaku.com/taiyoukou/?lid=taiyoukou_search',
			'visible_url': 'kakaku.com',
			'line2': '無料一括見積もりで複数の施工販売会社の見積もりを比較しましょう！',
			'line3': ''
		};
	
	adSpare[9] =
		{
			'type': 'text',
			'line1': '通信費見直しませんか？',
			'url': 'http://kakaku.com/bb/faq/guide.html?lid=bb_guide_tokusetsu',
			'visible_url': 'kakaku.com',
			'line2': '初心者のあなたでも、価格.comなら最適プロバイダが見つかる！',
			'line3': ''
		};
	
	adSpare[10] =
		{
			'type': 'text',
			'line1': '賃貸なら【スマイティ】価格.com姉妹サイト',
			'url': 'http://sumaity.com/',
			'visible_url': 'sumaity.com',
			'line2': '日本最大級の掲載物件数。間取り図・外観100％掲載。',
			'line3': ''
		};
	
	adSpare[11] =
		{
			'type': 'text',
			'line1': '投資信託を徹底比較！',
			'url': 'http://kakaku.com/fund/',
			'visible_url': 'kakaku.com',
			'line2': '全国内投資信託（約3000本）を比較するなら、価格.comで！',
			'line3': ''
		};
	
	adSpare[12] =
		{
			'type': 'text',
			'line1': '価格comでADSLの料金比較',
			'url': 'http://kakaku.com/bb/ranking_ADSL123_110000999913000000000012/?lpid=ranking_adsl&lid=bb_kkc_itemsrc_txtlist&waad=NaS8vGIj',
			'visible_url': 'kakaku.com',
			'line2': 'ADSL最安プラン比較！住居・回線タイプ別最安プラン検索も',
			'line3': ''
		};
	
	adSpare[13] =
		{
			'type': 'text',
			'line1': '価格.comで自動車保険の一括見積もり',
			'url': 'http://kakaku.com/kuruma/hoken/?lid=kurumahoken_kkk501',
			'visible_url': 'kakaku.com',
			'line2': '無料一括見積であなたにとって一番安い会社を見つけよう！',
			'line3': ''
		};
	
	adSpare[14] =
		{
			'type': 'text',
			'line1': '価格.comで太陽光発電の導入費用を無料一括見積もり！',
			'url': 'http://kakaku.com/taiyoukou/?lid=taiyoukou_search',
			'visible_url': 'kakaku.com',
			'line2': '無料一括見積もりで複数の施工販売会社の見積もりを比較しましょう！',
			'line3': ''
		};
	
	adSpare[15] =
		{
			'type': 'text',
			'line1': '通信費見直しませんか？',
			'url': 'http://kakaku.com/bb/faq/guide.html?lid=bb_guide_tokusetsu',
			'visible_url': 'kakaku.com',
			'line2': '初心者のあなたでも、価格.comなら最適プロバイダが見つかる！',
			'line3': ''
		};
	
	adSpare[16] =
		{
			'type': 'text',
			'line1': '賃貸なら【スマイティ】価格.com姉妹サイト',
			'url': 'http://sumaity.com/',
			'visible_url': 'sumaity.com',
			'line2': '日本最大級の掲載物件数。間取り図・外観100％掲載。',
			'line3': ''
		};
	
	adSpare[17] =
		{
			'type': 'text',
			'line1': '投資信託を徹底比較！',
			'url': 'http://kakaku.com/fund/',
			'visible_url': 'kakaku.com',
			'line2': '全国内投資信託（約3000本）を比較するなら、価格.comで！',
			'line3': ''
		};
	
	return adSpare;
}

/******************************************************************************
* 関数名       ： GetAdSpare_MoneyAd
* 機能         ： 予備広告を取得する
* 機能説明     ： 
* 引数-1       ： 広告情報
* 戻り値       ： なし
******************************************************************************/
function GetAdSpare_MoneyAd()
{
	var adSpare = new Array();
	
	adSpare[0] =
		{
			'type': 'text',
			'line1': '価格.comで自動車保険の一括見積もり',
			'url': 'http://kakaku.com/kuruma/hoken/',
			'visible_url': 'kakaku.com',
			'line2': '無料一括見積であなたにとって一番安い会社を見つけよう！',
			'line3': ''
		};
	
	adSpare[1] =
		{
			'type': 'text',
			'line1': '自動車ローンを比較',
			'url': 'http://kakaku.com/loan/auto-loan/',
			'visible_url': 'kakaku.com',
			'line2': '低金利の自動車ローンを探すなら、まずは価格.comで',
			'line3': ''
		};
	
	adSpare[2] =
		{
			'type': 'text',
			'line1': '価格.comで太陽光発電の導入費用を無料一括見積もり！',
			'url': 'http://kakaku.com/taiyoukou/?lid=taiyoukou_search',
			'visible_url': 'kakaku.com',
			'line2': '無料一括見積もりで複数の施工販売会社の見積もりを比較しましょう！',
			'line3': ''
		};
	
	adSpare[3] =
		{
			'type': 'text',
			'line1': '投資信託を徹底比較！',
			'url': 'http://kakaku.com/fund/',
			'visible_url': 'kakaku.com',
			'line2': '全国内投資信託（約3000本）を比較するなら、価格.comで！',
			'line3': ''
		};
	
	return adSpare;
}

/******************************************************************************
* 関数名       ： GetAdSpare_PhotohitoAd
* 機能         ： 予備広告を取得する
* 機能説明     ： 
* 引数-1       ： 広告情報
* 戻り値       ： なし
******************************************************************************/
function GetAdSpare_PhotohitoAd()
{
	var adSpare = new Array();
	
	adSpare[0] =
		{
			'type': 'text',
			'line1': 'MyBook写真総合サービス',
			'url': 'http://www.mybook.co.jp/cgi-bin/af.cgi?siteid=ASKV300142',
			'visible_url': '',
			'line2': '無料ソフトで編集は簡単。デジカメからオリジナル写真集を作成',
			'line3': ''
		};
	
	adSpare[1] =
		{
			'type': 'text',
			'line1': 'アンケートに答えて豪華商品',
			'url': 'https://ssl.kakaku.com/bb/question/?lid=enq_tokusetsu',
			'visible_url': 'kakaku.com',
			'line2': 'プロバイダに関するアンケートに答えて抽選でWii、iPhodをゲット！',
			'line3': ''
		};
	
	return adSpare;
}

/******************************************************************************
* 関数名       ： GetAdSpare_AkibaAd
* 機能         ： 予備広告を取得する
* 機能説明     ： 
* 引数-1       ： 広告情報
* 戻り値       ： なし
******************************************************************************/
function GetAdSpare_AkibaAd()
{
	var adSpare = new Array();
	
	adSpare[0] =
		{
			'type': 'text',
			'line1': '価格.comで自動車保険の一括見積もり',
			'url': 'http://kakaku.com/kuruma/hoken/?lid=kurumahoken_kkk501',
			'visible_url': 'kakaku.com',
			'line2': '無料一括見積であなたにとって一番安い会社を見つけよう！',
			'line3': ''
		};
	
	adSpare[1] =
		{
			'type': 'text',
			'line1': '価格.comで太陽光発電の導入費用を無料一括見積もり！',
			'url': 'http://kakaku.com/taiyoukou/?lid=taiyoukou_search',
			'visible_url': 'kakaku.com',
			'line2': '無料一括見積もりで複数の施工販売会社の見積もりを比較しましょう！',
			'line3': ''
		};
	
	adSpare[2] =
		{
			'type': 'text',
			'line1': '通信費見直しませんか？',
			'url': 'http://kakaku.com/bb/faq/guide.html?lid=bb_guide_tokusetsu',
			'visible_url': 'kakaku.com',
			'line2': '初心者のあなたでも、価格.comなら最適プロバイダが見つかる！',
			'line3': ''
		};
	
	return adSpare;
}


