function adsBySeesaa () {
	this.onload_prehandler = window.onload;
	this.ad_links  = new Array();
	this.ad_data   = new Array();
	this.k_id_list = new Array();
	this.ad_layers = new Array();
	this.script_path = 'http://blog.seesaa.jp/contents/js/';
}


adsBySeesaa.prototype.getAdLinks = function () {
	var i;
	var links = document.links;
	var links_len = links.length;
	var k_id_hash = new Array();
	for ( i = 0 ; i < links_len ; i++ ) {
		var link = links[i];
				if ( link.href.match(/^http:\/\/www\.seesaa\.jp\/afr\.pl\?affiliate_id=(\d+)&keyword=(.+)$/) ) {
			this.ad_links.push(link);
			this.ad_a_id = RegExp.$1;
			link.ad_k_id = RegExp.$2;
			link.ad_l_id = this.ad_links.length;
			if ( ! k_id_hash[link.ad_k_id] ) {
				k_id_hash[link.ad_k_id] = 1;
				this.k_id_list.push(link.ad_k_id);
			}
		}
	}
	return this.ad_links.length;
}


adsBySeesaa.prototype.setEventOfAdLinks = function () {
	var i, count_links = this.ad_links.length;

	var mouse_over = function (e) {
		if ( ! this.layer ) {
			var ad_data = ads_by_seesaa.ad_data[this.ad_k_id];
			if ( ! ad_data || ad_data.length == 0 ) return false;

			var layer_name = 'ads_by_seesaa_layer_' + this.ad_l_id;
			ad_data = ad_data[Math.floor(Math.random() * ad_data.length)];
			this.redirector_url = ad_data[1];
			// this.redirector_url = this.href + '&ad_id=' + ad_data[0];
			this.href = ad_data[1];

			var link_click = function (e) {
				document.location.href = this.redirector_url;
				return false;
			}

			if ( this.addEventListener ) {
				this.addEventListener('click', link_click, true);
			} else {
				this.onclick = link_click;
			}

			this.layer = createPopupAd( layer_name, this.redirector_url, ad_data);
			ads_by_seesaa.ad_layers.push(this.layer);
		}
		this.layer.showByEvent(e);
	}

	for ( i = 0 ; i < count_links ; i++ ) {
		var link = this.ad_links[i];
		if ( link.addEventListener && ! window.opera ) {
			link.addEventListener('mouseover', mouse_over, true);
		}
		else {
			link.onmouseover = mouse_over;
		}
	}
}


adsBySeesaa.prototype.scriptDynamicLoad = function () {
	var i, load_script = new Array('client_info.js', 'event.js', 'layer.js');

	for ( i = 0 ; i < load_script.length; i++ )
		load_script[i] = this.script_path + load_script[i];


	var seesaa_hostsite_id = 1;
	var ad_data_url = '';
	var u_len = 0;
	for ( i = 0 ; i < this.k_id_list.length ; i++ ) {
	  if ( u_len > 1024 ) {
	    load_script.push(ad_data_url);
	    ad_data_url = 'http://match.seesaa.jp/addata.pl?sid=' + this.ad_a_id + '&hid=' + seesaa_hostsite_id;
	  }
	  else if ( i == 0 ) {
	    ad_data_url = 'http://match.seesaa.jp/addata.pl?sid=' + this.ad_a_id + '&hid=' + seesaa_hostsite_id;
	  }
	  ad_data_url += '&k=' + this.k_id_list[i];
	  u_len = ad_data_url.length;
	}
	load_script.push(ad_data_url);


	for ( i = 0 ; i < load_script.length ; i++ ) {
		var dynamic_load_script = document.createElement('SCRIPT');
		dynamic_load_script.src = load_script[i];
		document.body.appendChild(dynamic_load_script);
	}

}


adsBySeesaa.prototype.onLoad = function () {
	if ( this.onload_prehandler )
		this.onload_prehandler();

	if (this.getAdLinks() <= 0 ) return false;
	this.scriptDynamicLoad();
	this.setEventOfAdLinks();
}


ads_by_seesaa = new adsBySeesaa();
window.onload = function () { ads_by_seesaa.onLoad(); }

