// HTMLに出力した際の最初の部分と最後の部分。
var HTMLHeader               = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\n<html lang="ja">\n<head>\n\t<meta http-equiv="Content-Type" content="text/html">\n\t<meta http-equiv="Content-Style-Type" content="text/css">\n\t<title>Forms</title>\n';
var HTMLHeadToBody           = '</head>\n<body>\n';
var HTMLFooter               = '\n</body>\n</html>';
var HTMLUsage                = '<p>以下の HTML ソースをテキストエディタにコピペして保存すると、できあがり。</p>';

// 各フォームのモジュール。このソースをつなぎ合わせる。
var Form_GoogleWebSearch     = '<form method="get" action="http://www.google.com/search">\n<!-- Google ウェブ検索 -->\n <fieldset>\n  <legend>\n   <a href="http://www.google.com/intl/ja/">Google</a>\n  </legend>\n  <p class="settings">\n   <select name="lr" title="言語の選択">\n    <option value="" selected>世界中</option>\n    <option value="lang_ja">日本語</option>\n   </select>\n   <select name="num">\n    <option value="10">10件\n    <option value="20" selected>20件\n    <option value="30">30件\n    <option value="50">50件\n    <option value="100">100件\n   </select>\n   <select name="restrict" class="extraoption">\n    <option value="" selected> -  </option>\n    <option value="mac">Mac検索 </option>\n    <option value="linux">Linux検索 </option>\n    <option value="bsd">BSD検索 </option>\n   </select>\n   <select name="q" class="extraoption">\n    <option value="" selected> -  </option>\n    <option value="site:2ch.net">2ch内検索 </option>\n    <option value="-site:2ch.net">2ch排除 </option>\n   </select>\n  </p>\n  <p>\n   <input type="text" name="q" maxlength="255" class="text">\n   <input type="submit" name="btnG" value="検索" class="submit">\n   <input type ="hidden" name="hl" value="ja">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_GoogleImageSearch   = '<form method="get" action="http://images.google.com/images" name="f">\n<!-- Google イメージ検索 -->\n <fieldset>\n  <legend>\n   <a href="http://images.google.com/">Google Images</a>\n  </legend>\n  <p class="settings">\n   <select name="imgsz">\n    <option value="">サイズ </option>\n    <option value="small">小</option>\n    <option value="medium">中</option>\n    <option value="large">大</option>\n    <option value="xlarge">特大</option>\n    <option value="xxlarge">壁紙用</option>\n   </select>\n   <select name="as_filetype" class="extraoption">\n    <option value="">-</option>\n    <option value="jpg">JPEG</option>\n    <option value="gif">GIF</option>\n   </select>\n  </p>\n  <p>\n   <input type="text" value="" name="as_q" id="as_q" class="text">\n   <input type="submit" name="btnG" value="画像" class="submit">\n   <input type="hidden" name="svnum" value="10">\n   <input type="hidden" name="hl" value="ja">\n   <input type="hidden" name="ie" value="Shift_JIS">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_YahooDirectory      = '<form method="get" action="http://search.yahoo.co.jp/bin/search">\n<!-- Yahoo! 検索 -->\n <fieldset>\n  <legend>\n   <a href="http://www.yahoo.co.jp/" lang="ja">Yahoo! Japan</a>\n  </legend>\n  <p>\n   <input name="p" type="text" class="text">\n   <input type="submit" value="検索" class="submit">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_YahooAuction        = '<form method="get" action="http://search.auctions.yahoo.co.jp/search/auc">\n<!-- Yahoo! オークション -->\n <fieldset>\n  <legend>\n   <a href="http://auctions.yahoo.co.jp/">Yahoo! Auctions</a>\n  </legend>\n  <p class="settings"><small><a href="http://user.auctions.yahoo.co.jp/jp/show/mystatus">マイオークション</a></small></p>\n  <p>\n   <input type="text" name="p" class="text">\n   <input type="submit" value="検索" class="submit">\n   <input type="hidden" name="alocale" value="0jp">\n   <input type="hidden" name="acc" value="jp">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_GooDictionary       = '<form method="get" action="http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi" name="search">\n<!-- goo 辞書 -->\n <fieldset>\n  <legend>\n   <a href="http://dictionary.goo.ne.jp/">goo Dictionary</a>\n  </legend>\n  <p class="settings">\n   <select NAME="sw">\n    <option value="0" selected>英和辞典 </option>\n    <option value="1">和英辞典 </option>\n    <option value="2">国語辞典 </option>\n    <option value="3">新語辞典 </option>\n   </select>\n  </p>\n  <p>\n   <input type="text" name="MT" value="" class="text">\n   <input type="submit" value="字引" name="search" class="submit">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_WDic                = '<form method="get" action="http://www.wdic.org/">\n<!-- 通信用語の基礎知識 -->\n <fieldset>\n  <legend>\n   <a href="http://www.wdic.org/">通信用語の基礎知識</a>\n  </legend>\n  <p>\n   <input name="word" value="" class="text">\n   <input type="submit" value="検索" class="submit">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_ShoutCastStreaming  = '<form method="post" action="http://www.shoutcast.com/directory/index.phtml">\n<!-- SHOUTCast ストリーミングラジオ -->\n <fieldset>\n  <legend>\n   <a href="http://www.shoutcast.com/">SHOUTcast</a>\n  </legend>\n  <p class="settings">\n   <select name="sgenre">\n    <option value="" selected>Quick Genre\n    <option value="TopTen">Top 25 Streams\n    <option value="Alternative">Alternative\n    <option value="Classical">Classical\n    <option value="Comedy">Comedy\n    <option value="Country">Country\n    <option value="Dance">Dance/House\n    <option value="Funk">Funk\n    <option value="Jazz">Jazz\n    <option value="Metal">Metal\n    <option value="Mixed">Mixed\n    <option value="Pop">Pop\n    <option value="Rap">Rap\n    <option value="RnB">RnB\n    <option value="Rock">Rock\n    <option value="Talk">Talk\n    <option value="Techno">Techno\n    <option value="80s">The \'80s\n    <option value="70s">The \'70s\n    <option value="World">World\n   </select>\n  </p>\n  <p>\n   <input type="text" name="s" value="" class="text">\n   <input type=submit value="音楽" class="submit">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_WayBackMachine      = '<form method="post" action="http://web.archive.org/archive_request_ng">\n<!-- WayBackMachine ウェブ図書館 -->\n <fieldset>\n  <legend>\n   <a href="http://web.archive.org/">WayBackMachine</a>\n  </legend>\n  <p class="settings">\n   <select name="datespec">\n    <option selected>All </option>\n    <option>2001 </option>\n    <option>2000 </option>\n    <option>1999 </option>\n    <option>1998 </option>\n    <option>1997 </option>\n    <option>1996 </option>\n   </select>\n  </p>\n  <p>\n   <input type="hidden" name="collection" value="web">\n   <input type="text" name="url" value="http://" maxlength="256" class="text">\n   <input type="submit" value="過去" name="Submit" class="submit">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_AmikaiTranslation   = '<form method="get" action="http://standard.amikai.com/amiweb/browser.jsp" name="browse">\n<!-- AmiWeb 翻訳 -->\n <fieldset>\n  <legend>\n   <a href="http://www.amikai.com/">AmiWeb</a>\n  </legend>\n  <p class="settings">\n   <select name="langpair">\n    <option value="EN,JA" selected>英語 → 日本語 </option>\n    <option value="JA,EN"> 日本語 → 英語 </option>\n    <option value="EN,FR">英語 → 仏語 </option>\n    <option value="FR,EN">仏語 → 英語 </option>\n    <option value="KO,JA">韓国語 → 日本語 </option>\n   </select>\n  </p>\n  <p>\n   <input type="text" name="url" value="http://" class="text">\n   <input type="submit" name="brsgo" value="翻訳" class="submit">\n   <input type="hidden" name="display" value="2">\n   <input type="hidden" name="f_color" value="009933">\n   <input type="hidden" name="c_id" value="standard">\n   <input type="hidden" name="toolbar" value="no">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_Mapion              = '<form method="post" action="http://www.mapion.co.jp/c/f">\n<!-- Mapion 日本地図 -->\n <fieldset>\n  <legend>\n   <a href="http://www.mapion.co.jp/">Mapion</a>\n  </legend>\n  <p class="settings">\n   <select name="admi2" size="1">\n    <option value="">都道府県</option>\n    <option value="13">東京都</option>\n    <option value="14">神奈川県</option>\n    <optgroup label="北海道・東北">\n     <option value="01">北海道</option>\n     <option value="02">青森県</option>\n     <option value="03">岩手県</option>\n     <option value="04">宮城県</option>\n     <option value="05">秋田県</option>\n     <option value="06">山形県</option>\n     <option value="07">福島県</option>\n    </optgroup>\n    <optgroup label="関東">\n     <option value="08">茨城県</option>\n     <option value="09">栃木県</option>\n     <option value="10">群馬県</option>\n     <option value="11">埼玉県</option>\n     <option value="12">千葉県</option>\n    </optgroup>\n    <optgroup label="北陸">\n     <option value="15">新潟県</option>\n     <option value="16">富山県</option>\n     <option value="17">石川県</option>\n     <option value="18">福井県</option>\n    </optgroup>\n    <optgroup label="中部・東海">\n     <option value="19">山梨県</option>\n     <option value="20">長野県</option>\n     <option value="21">岐阜県</option>\n     <option value="22">静岡県</option>\n     <option value="23">愛知県</option>\n     <option value="24">三重県</option>\n    </optgroup>\n    <optgroup label="近畿">\n     <option value="25">滋賀県</option>\n     <option value="26">京都府</option>\n     <option value="27">大阪府</option>\n     <option value="28">兵庫県</option>\n     <option value="29">奈良県</option>\n     <option value="30">和歌山県</option>\n    </optgroup>\n    <optgroup label="中国・四国">\n     <option value="31">鳥取県</option>\n     <option value="32">島根県</option>\n     <option value="33">岡山県</option>\n     <option value="34">広島県</option>\n     <option value="35">山口県</option>\n     <option value="36">徳島県</option>\n     <option value="37">香川県</option>\n     <option value="38">愛媛県</option>\n     <option value="39">高知県</option>\n    </optgroup>\n    <optgroup label="九州・沖縄">\n     <option value="40">福岡県</option>\n     <option value="41">佐賀県</option>\n     <option value="42">長崎県</option>\n     <option value="43">熊本県</option>\n     <option value="44">大分県</option>\n     <option value="45">宮崎県</option>\n     <option value="46">鹿児島県</option>\n     <option value="47">沖縄県</option>\n    </optgroup>\n   </select>\n  </p>\n  <p>\n   <input type="text" name="find" value="" class="text">\n   <input type="submit" value="地図" class="submit">\n   <input type="hidden" name="p" value="1">\n   <input type="hidden" name="uc" value="7">\n   <input type="hidden" name="mx" value="999">\n   <input type="hidden" name="vp" value="20">\n   <input type="hidden"  name="grp" value="all">\n   <input type="hidden" name="oi" value="admi3code">\n   <input type="hidden" name="ob" value="1">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_AnotherHTMLLint     = '<form method="post" action="http://openlab.ring.gr.jp/k16/htmllint/htmllint.cgi" enctype="multipart/form-data">\n<!-- Another HTML-Lint HTML 文法チェッカー -->\n <fieldset>\n  <legend>\n   <a href="http://openlab.ring.gr.jp/k16/htmllint/htmllint.html">Another HTML-lint</a>\n  </legend>\n  <p class="settings"><small>\n   <label><input type="checkbox" name="ViewSource" value="on">ソース表示</label>\n  </small></p>\n  <p>\n   <textarea name="Data" class="text" cols="40" rows="1">&lt;!-- ソースを直接入力 --&gt;</textarea>\n   <input type="submit" value="検証" class="submit">\n   <input type="hidden" name="Method" value="Data">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_2chKensaku          = '<form method="get" action="http://2ch.dyn.to/cgi-bin/namazu.cgi" name="BASE1">\n<!-- 2ちゃんねる検索 -->\n <fieldset>\n  <legend>\n   <a href="http://2ch.dyn.to/">2ちゃんねる検索</a>\n  </legend>\n  <p class="settings">\n   <select name="dbname">\n    <option value="mac">カテゴリ選択</option>\n    <option value="linux,unix,hack,perl,esite,tech,jisaku,hp,yuusen,prog,pc,network,net,mac,php,sec,pcqa,isp,hard,bsoft,yahoo,nifty,win,game">ネット・PC系</option>\n    <option value="football,fashion,musice,geino,female,soccer,tvd,musicj,base,shop,train,music,joke,ymag,car,pachi,tv,keiba,bike,diet,arc,leaf,famicom,wres,comic">趣味・遊び系</option>\n    <option value="company,shihou,uwasa,recruit,tax,youth,hoken,job,news,shikaku,drama,hosp,ghard,part,estate,lic,haken,mass,stock,kankon">情報系</option>\n    <option value="jan,doujin,anime,ihou,smap,cosp,ascii,hikky,jr,gay,morning,visual,entrance,pure,mor2,lobby,kageki,ana,accuse,police">雑談・その他系</option>\n   </select>\n   <select name="max">\n    <option value="10">10件</option>\n    <option value="mac">20件</option>\n    <option value="mac" selected>30件表示</option>\n    <option value="mac">50件</option>\n    <option value="mac">100件</option>\n   </select>\n  </p>\n  <p>\n   <input type="text" name="key" class="text">\n   <input type="submit" name="submit" value="検索" class="submit">\n   <input type="hidden" name="whence" value="0">\n  </p>\n </fieldset>\n</form>\n\n';
var Form_IPDomainSearch      = '<form method="post" action="http://search.mse.co.jp/cgi-bin/ip_dom-2/ipsearch.cgi">\n<!-- IPドメインサーチ -->\n <fieldset>\n  <legend>\n   <a href="http://www.mse.co.jp/ip_domain/">IP Domain Search</a>\n  </legend>\n  <p>\n   <input type="text" name="key" class="text">\n   <input type="submit" value="IP" class="submit">\n   <input type="hidden" name="ver" value="5.41">\n  </p>\n </fieldset>\n</form>\n\n';

// スタイル
var Style_Header             = ' <style type="text/css"><!--\n';
var Style_Footer             = '\n --></style>\n';
var Style_CommonStyle        = ' body { font-size:12px; margin:0; }\n form, fieldset, legend { border:0; padding:0;  margin:0; }\n legend { float:left; padding-right:1em; line-height:1.6; }\n p { clear:left;  margin:0 0 0 0.2em; text-align:center; }\n p.settings { float:left;  clear:none;  white-space:nowrap; text-align:left; }\n select, small { font-size:90%; }\n select { height:1.4em; margin:0.2em 0; }\n select.extraoption { width:1.8em; }\n .text { width:78% !important; }\n .submit { width:12%; }\n label { margin-top:0.2em; }\n';
var Style_ColdColor          = '\n body { color:#111; background-color:#ABD;}\n form { border:2px solid #BCE; border-bottom-width:0; padding:1px; margin:2px;}\n fieldset {margin:0;}\n select { border:0; color:#000; background-color:#BCE;}\n .submit { color:#333; background-color:#FFF;}\n .submit:active { color:#333; background-color:#CCC;}\n label input { color:#111; background-color:#ABD;}\n\n a:link { color:#039; background-color:transparent; text-decoration:none;}\n a:hover,a:active { text-decoration:underline;}\n a:visited { color:#346; background-color:transparent; text-decoration:none;}\n';
var Style_FlatGray           = '\n body { color:#111; background-color:#CCC; }\n form { border:1px solid #666;margin:4px; }\n fieldset { margin:3px 2px;}\n select { border:1px inset #999; color:#333; background-color:#DDD; }\n .text { border:1px inset #BBB; }\n .submit { color:#000; background-color:#CCC; }\n .submit:active { color:#333; background-color:#999; }\n label input { color:#111; background-color:#CCC; }\n ';
var Style_Output             = ' body { color:#111; background-color:#FFF; margin:0;}\n pre { color:#111; background-color:#DED; padding:1em; margin:0; }\n p { padding:0.3em; margin:0.3em; }\n';

function favoriteForms(jsAction) {
	// スタイルを組み立てる
	var MyStyle = Style_Header + Style_CommonStyle ;
	if (document.forms[0].formsStyle[0].checked == true) {
		var MyStyle = MyStyle + Style_ColdColor ;
	} else if (document.forms[0].formsStyle[1].checked == true) {
		var MyStyle = MyStyle + Style_FlatGray ;
	} else if (document.forms[0].formsStyle[2].checked == true) {
		var MyStyle = MyStyle ;
	}
	var MyStyle = MyStyle + Style_Footer ;
	// ソースを組み立てる
	var createdSource = HTMLHeader + MyStyle + HTMLHeadToBody ;
	if (document.forms[0].GoogleWeb.checked == true) {
		var createdSource = createdSource + Form_GoogleWebSearch ;
	} if (document.forms[0].GoogleImage.checked == true) {
		var createdSource = createdSource + Form_GoogleImageSearch ;
	} if (document.forms[0].YahooDirectory.checked == true) {
		var createdSource = createdSource + Form_YahooDirectory ;
	} if (document.forms[0].YahooAuction.checked == true) {
		var createdSource = createdSource + Form_YahooAuction ;
	} if (document.forms[0].GooDic.checked == true) {
		var createdSource = createdSource + Form_GooDictionary ;
	} if (document.forms[0].WDic.checked == true) {
		var createdSource = createdSource + Form_WDic ;
	} if (document.forms[0].ShoutCast.checked == true) {
		var createdSource = createdSource + Form_ShoutCastStreaming ;
	} if (document.forms[0].WaybackMachine.checked == true) {
		var createdSource = createdSource + Form_WayBackMachine ;
	} if (document.forms[0].AmiWeb.checked == true) {
		var createdSource = createdSource + Form_AmikaiTranslation ;
	} if (document.forms[0].Mapion.checked == true) {
		var createdSource = createdSource + Form_Mapion ;
	} if (document.forms[0].NichanKensaku.checked == true) {
		var createdSource = createdSource + Form_2chKensaku ;
	} if (document.forms[0].AnotherHTMLLint.checked == true) {
		var createdSource = createdSource + Form_AnotherHTMLLint ;
	} if (document.forms[0].IPDomainSearch.checked == true) {
		var createdSource = createdSource + Form_IPDomainSearch ;
	}
	var createdSource = createdSource + HTMLFooter;
	
	// プレビューボタンとソース出力ボタン、どっち押されたかによって実行を分岐
	if (jsAction == 'preview') {
		var PreviewWindow = window.open('about:blank','FormsPreview','height=400,width=220');
		PreviewWindow.document.write(createdSource);
		PreviewWindow.document.title = 'Forms のプレビュー';
	} else {
		var SourceOutputWindow = window.open('about:blank','FormsSource','height=400,width=500');
		SourceOutputWindow.document.write( HTMLHeader + Style_Header + Style_Output + Style_Footer + HTMLHeadToBody + HTMLUsage + '<pre>' + HTMLToEntity(createdSource) + '</pre>' + HTMLFooter );
		SourceOutputWindow.document.title = 'Forms のソース';
	}
}

// HTMLをソースとして表示するために、特殊な文字を実体参照に変換。
function HTMLToEntity(HTMLCode) {
	var HTMLCode = HTMLCode.split('<');
	var HTMLCode = HTMLCode.join('&lt;');
	var HTMLCode = HTMLCode.split('>');
	var HTMLCode = HTMLCode.join('&gt;');
	var HTMLCode = HTMLCode.split('\t');
	var HTMLCode = HTMLCode.join(' ')
	var HTMLCode = HTMLCode.split('!-- ');
	var HTMLCode = HTMLCode.join('!-- <strong>')
	var HTMLCode = HTMLCode.split(' --');
	var HTMLCode = HTMLCode.join('</strong> --')
	return(HTMLCode);
	}
