var smartSearchBox = {

	createIdDiv: "searchBoxDiv-2fed3cb16273d2040641f67fd56e77af", 
	createIdInput: "searchBoxInput-2fed3cb16273d2040641f67fd56e77af", 
	targetDoc: null, 

	initialize: function()
	{;
		Event.observe(document, "click", smartSearchBox.onClick, false);
		Event.stopObserving(document, "load", smartSearchBox.initialize, false);
	}, 
	
	onClick: function(e)
	{
		var targetDoc = smartSearchBox.targetDoc = document;
		var selectionText = "";
		var x = Event.pointerX(e);
		var y = Event.pointerY(e) + 15;
		var createIdDiv = smartSearchBox.createIdDiv;
		var createIdInput = smartSearchBox.createIdInput;
		
		if(Prototype.Browser.IE)
		{
			selectionText = document.selection.createRange().text;
		}
		else
		{
			selectionText = smartSearchBox.getSelectionText();
		}
		
		if(selectionText != "" && selectionText != null)
		{
			if(!targetDoc.getElementById(createIdDiv))
			{
				targetDoc.body.innerHTML += smartSearchBox.getSearchForm(selectionText);
				smartSearchBox.displaySearchFrom(true);
			}
			else
			{
				targetDoc.getElementById(createIdInput).value = selectionText;
				targetDoc.getElementById("smartSearchBoxKeyword").value = encodeURIComponent(selectionText);
				var createIdInput = smartSearchBox.createIdInput;
				smartSearchBox.displaySearchFrom(true);
			}
			
			targetDoc.getElementById(createIdDiv).style.top = y +"px";
			targetDoc.getElementById(createIdDiv).style.left = x +"px";
			targetDoc.getElementById(createIdInput).focus();
		}
	}, 
	
	getOwnerDocument: function(e)
	{
		return e.originalTarget.ownerDocument;
	}, 
	
	getTargetWindow: function()
	{
		return document;
	}, 
	
	getSelectionText: function()
	{
		return smartSearchBox.getTargetWindow().getSelection().toString();
	}, 
	
	getSearchForm: function(selectionText)
	{
		var createIdDiv = smartSearchBox.createIdDiv;
		var createIdInput = smartSearchBox.createIdInput;
		var returnValue = "";
		returnValue += '<div id="'+ createIdDiv +'" style="position:absolute; background:#F6F6CB; border:2px solid #745F57; z-index:1000;">';
		returnValue += '<form action="http://search-plugin.com/sample_search.php" method="post" target="_blank" style="margin:0px; padding:0px; background:#F6F6CB;">';
		returnValue += '<input type="hidden" id="smartSearchBoxKeyword" name="sample_keyword" value="'+ encodeURIComponent(selectionText) +'">';
		returnValue += '<input type="hidden" name="mode" value="extend">';
		returnValue += '<table style="font-size:12px; border-collapse:collapse; margin:2px; background:#F6F6CB;">';
		returnValue += '<tr>';
		returnValue += '<td style="color:#745F57; font-weight:bold; text-align:left; padding:3px;">';
		returnValue += 'Smart SearchBox!!';
		returnValue += '</td>';
		returnValue += '<td style="text-align:right; padding:3px;">';
		returnValue += '<a href="#" onMouseDown="document.getElementById(\''+ createIdDiv +'\').style.display=\'none\';return false;" style="color:#3333FF; text-decoration:none; font-weight:bold;">close</a>';
		returnValue += '</td>';
		returnValue += '</tr>';
		returnValue += '<tr>';
		returnValue += '<td colspan="2" style="padding:3px;"><input id="'+ createIdInput +'" type="text" value="'+ selectionText +'" style="width:100%; border:1px solid #777777; font-size:13px;"></td>';
		returnValue += '</tr>';
		returnValue += '<tr>';
		returnValue += '</tr>';
		returnValue += '<tr>';
		returnValue += '<td colspan="2" style="padding:3px;"><select name="plugin_id" style="font-size:12px; background:#FFFFFF; border:1px solid #777777;"><option value="1">1： 検索プラグイン・ナビ</option><option value="2">2： Google 検索</option><option value="3">3： Yahoo!検索</option><option value="4">4： Yahoo!辞書</option><option value="5">5： goo 辞書</option><option value="6">6： ASCII.jp - デジタル用語辞典</option><option value="7">7： Ask.jp： ブログ検索</option><option value="8">8： Yahoo!ブログ検索</option><option value="9">9： Google ブログ検索</option><option value="10">10： gooブログ検索</option><option value="11">11： 教えて！goo</option><option value="12">12： Yahoo!知恵袋</option><option value="13">13： クックパッド</option><option value="14">14： CGI検索 夢幻</option><option value="15">15： ブログパーツ.com</option><option value="16">16： codeなにがし</option><option value="17">17： CEEK.JP</option><option value="18">18： IT用語辞典</option><option value="19">19： テクノラティ</option><option value="20">20： Wikipedia</option><option value="21">21： Ask.jp</option><option value="22">22： OKWave</option><option value="24">24： YOMIURI ONLINE（読売新聞）</option><option value="25">25： asahi.com</option><option value="26">26： FOOOOO</option><option value="27">27： GyaO 動画</option><option value="28">28： PEAR :: Package</option><option value="29">29： はてな検索</option><option value="30">30： @search</option><option value="31">31： NIKKEI NET：検索</option><option value="32">32： 人気ブログランキング</option><option value="33">33： にほんブログ村</option><option value="34">34： AmebaVision[アメーバビジョン]</option><option value="35">35： Askビデオ</option><option value="36">36： 日本郵便・住所検索</option><option value="37">37： Infoseek ハイブリッド検索</option><option value="38">38： vector</option><option value="39">39： livedoor ウェブ検索</option><option value="40">40： Live Search</option><option value="41">41： All About</option><option value="42">42： BIGLOBEサーチ Attayo</option><option value="43">43： うたまっぷ歌詞検索</option><option value="44">44： goo</option><option value="45">45： 2ch検索</option><option value="46">46： Dailymotion - Share Your  Videos</option><option value="47">47： YouTube - Broadcast Yourself</option><option value="48">48： amazon</option><option value="49">49： STMX</option><option value="50">50： Google マップ</option><option value="51">51： Gungle</option><option value="52">52： まぐまぐ！メルマガ検索</option><option value="53">53： ぐるなびSearch</option><option value="54">54： CodeZine</option><option value="55">55： ITpro</option><option value="56">56： ＠IT</option><option value="57">57： Japan.internet.com</option><option value="58">58： builder</option><option value="59">59： CNET Japan</option><option value="60">60： ITmedia</option><option value="61">61： ビッダーズ</option><option value="62">62： coneco.net</option><option value="63">63： 価格.com</option><option value="64">64： Yahoo!オークション</option><option value="65">65： goo ゲーム</option><option value="66">66： Caspeee(キャスピィ)</option><option value="67">67： 字幕.in</option><option value="68">68： NIKKEI NET マネー＆マーケット</option><option value="69">69： フォト蔵</option><option value="70">70： コトノハ</option><option value="71">71： TAGGY</option><option value="72">72： kizasi.jp</option><option value="73">73： searchmash</option><option value="74">74： weblio</option><option value="75">75： Slashdot Japan</option><option value="76">76： Kooss.com</option><option value="77">77： SAGOOL</option><option value="78">78： IT PLUS</option><option value="79">79： イザ！</option><option value="80">80： ビジネス：@nifty</option><option value="81">81： 日刊スポーツ</option><option value="82">82： ケンコーコム</option><option value="83">83： チケットぴあ</option><option value="84">84： イマージュ</option><option value="85">85： 百度検索</option><option value="86">86： livedoor 画像検索</option><option value="87">87： Ask.jp ： 画像検索</option><option value="88">88： Yahoo!検索 (画像検索)</option><option value="89">89： Ritlweb</option><option value="90">90： 百度画像検索</option><option value="91">91： Google イメージ検索</option><option value="92">92： goo 画像検索</option><option value="93">93： 野村證券： 株価検索</option><option value="94">94： Yahoo!ファイナンス・株価検索</option><option value="95">95： ボブとアンジー</option><option value="96">96： テレビ王国</option><option value="97">97： 歌ネット</option><option value="98">98： dmoz</option><option value="99">99： 歌詞ＧＥＴ</option><option value="100">100： Google ブック検索</option><option value="101">101： Google Code Search</option><option value="102">102： livedoor BOOKS</option><option value="103">103： livedoor デパート</option><option value="104">104： Google Trends</option><option value="105">105： 買う市ショッピングモール  - mall.cau1.com</option><option value="106">106： インサイド</option><option value="107">107： ファミ通.com</option><option value="108">108： ガンダムパーフェクトウェブ</option><option value="109">109： PHOTO ST（フォトストリート）</option><option value="110">110： はてなフォトライフ</option><option value="111">111： Seesaa ダウンロード</option><option value="112">112： SourceForge.jp: Search</option><option value="113">113： フレッシュアイ</option><option value="114">114： Mapion（マピオン）</option><option value="115">115： Yahoo!天気情報</option><option value="116">116： weblio - 類語辞典(シソーラス)</option><option value="117">117： PHPプロ！マニュアル</option><option value="118">118： PHPプロ！</option><option value="119">119： Infoseek テレビ番組表</option><option value="120">120： 検索エンジン Mooter</option><option value="121">121： アクセラナビ</option><option value="122">122： Flex User Group</option><option value="123">123： ORICON STYLE</option><option value="124">124： 歌詞ナビ</option><option value="125">125： UtaTen</option><option value="126">126： ECナビ</option><option value="127">127： 脳内メーカー</option><option value="128">128： じゃらんnet</option><option value="129">129： Shockwave</option><option value="130">130： BIGLOBEストリーム</option><option value="131">131： Yahoo! 動画検索</option><option value="132">132： 日テレ 検索サービス</option><option value="133">133： テレビ朝日・サイト内検索</option><option value="134">134： テレビ東京</option><option value="135">135： You Torrent.com</option><option value="136">136： YourFileHost</option><option value="137">137： SAGURI</option><option value="138">138： MEGAVIDEO</option><option value="139">139： Truveo</option><option value="140">140： HMV 商品検索</option><option value="141">141： 写真素材 [フォトライブラリー] </option><option value="142">142： docune</option><option value="143">143： マッシュペディア</option><option value="144">144： SQUi</option><option value="145">145： MOCO　Video</option><option value="146">146： 楽天市場・商品検索</option><option value="147">147： TSUTAYA online</option><option value="148">148： 搜狗Sogou--音?搜索</option><option value="149">149： wuzam.com</option><option value="150">150： ありえない画像検索</option><option value="151">151： 雅虎音?搜索</option><option value="152">152： ありえない動画検索</option><option value="153">153： Vid-DL</option><option value="154">154： 完璧画像検索</option><option value="155">155： Yahoo!掲示板</option><option value="156">156： オークファン</option><option value="157">157： Photofile.name</option><option value="158">158： zoome</option><option value="159">159： パソコンFAQ</option><option value="160">160： Vladstudio.com Wallpapers Gallery</option><option value="161">161： フェレット</option><option value="162">162： 懸賞のつぼ</option><option value="163">163： goo 映画</option><option value="164">164： Yahoo!映画</option><option value="165">165： アルテック</option><option value="166">166： ベストゲート</option><option value="167">167： gungi（グンギ）</option><option value="168">168： キーワードアドバイスツールプラス</option><option value="169">169： 今日すべきこと</option><option value="170">170： SkreemR Mp3 Search</option><option value="171">171： Woonz.com</option><option value="172">172： Howcast</option><option value="173">173： Mozilla Japan - Firefox 用アドオン - </option><option value="174">174： PicFindr</option><option value="175">175： Google 顔画像検索</option><option value="176">176： Grope in the Dark ブログ内検索</option><option value="177">177： eyeVio： アイビオ</option><option value="178">178： Yahoo!ブックマーク</option><option value="179">179： 字幕つき動画 [Jimax]</option><option value="180">180： 性格メーカー</option><option value="181">181： oredas（オレダス）</option><option value="182">182： BBS7.comウェブ検索</option><option value="183">183： アメーバ　口コミ・クチコミ評判検索</option><option value="184">184： Buzzurl [バザール]</option></select></td>';
		returnValue += '</tr>';
		returnValue += '<tr>';
		returnValue += '<td colspan="2" style="text-align:center; padding-top:5px;"><input type="submit" value="search" style="background:#004A80; color:#FFFFFF; font-weight:bold;"></td>';
		returnValue += '</tr>';
		returnValue += '</table>';
		returnValue += '<div style="text-align:right; padding:5px 3px 0px 0px; background:#745F57;"><a href="http://search-plugin.com/" style="text-decoration:none; font-size:12px; color:#FFFFFF;" target="_parent">S-Plugin.com</a></div>';
		returnValue += '</form>';
		returnValue += '</div>';
		return returnValue;
	}, 
	
	displaySearchFrom: function(boolean)
	{
		if(boolean)
		{
			smartSearchBox.targetDoc.getElementById(smartSearchBox.createIdDiv).style.display = "";
		}
		else
		{
			smartSearchBox.targetDoc.getElementById(smartSearchBox.createIdDiv).style.display = "none";
		}
	}

}

Event.observe(window, 'load', smartSearchBox.initialize, false);

