WSO.Onload(function()
{
	WSO.SimpleTagForm.setButton('Amazon 広告を挿入'			,'asin'			,'\nasin:<<ASIN>>\n');
	WSO.SimpleTagForm.setForm('ALPSLAB 地図を挿入'	,'AlpsClipForm'		,'alpsclip'		,'[alpsclip:("<<42/34/16.310,142/49/30.129>>","<<地図名>>",W)]'					,[['座標または住所',30],['地図名',30]]	,'挿入');
	WSO.SimpleTagForm.setForm('ALPSLAB 経路を挿入'	,'AlpsRouteForm'	,'alpsroute'	,'[alpsroute:(<<6f5ff09821f66a7f320f62f14959db74>>,"<<トラックログ>>")]'		,[['ルート ID',25],['ルート名',30]]		,'挿入');
	WSO.SimpleTagForm.setForm('YouTube 動画を挿入'	,'YouTubeForm'		,'video'		,'[video:(<<QR7Rrgij8dU>>,"<<YouTube動画>>")]'									,[['ビデオ ID',15],['タイトル',30]]		,'挿入');
	WSO.SimpleTagForm.setForm('Picasa アルバム地図を挿入','AlbumMapForm'	,'AlbumMap'		,'[AlbumMap:("<<whochan.001>>","<<5278542532824908193>>","<<アルバム地図>>")]'	,[['ユーザ',30],['アルバム ID',30],['アルバム名',30]],'挿入');
//	WSO.SimpleTagForm.setForm('添付書類を挿入'		,'FileclipForm'		,'fileclip'		,'[clip:(<< ?AutoClipNO? >>,"<<添付ファイル>>","<<代替文字列>>")]'				,[['ファイル番号',30],['キャプション',30],['代替文字列',30]],'挿入');

	//定義語の登録
	var Define	= new WSO.TagForm('定義語の登録','DfnForm','optionform','define');
	Define.setFormFunction
	(
		function(e)
		{
			var dfn		= this.myForm.form.DfnDfn.value;
			var ruby	= this.myForm.form.DfnRuby.value;
			var mean	= this.myForm.form.DfnMean.value;
			var part	= this.myForm.form.DfnPart.value;
			var tag = "[dfn:(\""+dfn+"\",\""+ruby+"\","+part+",\""+mean+"\")]";

			//フォームの内容を空にする
			this.myForm.form.DfnDfn.value='';
			this.myForm.form.DfnRuby.value='';
			this.myForm.form.DfnMean.value='';
			WSO.EditPoint.insertTag(this.myForm,tag);
		}
	);
	Define.appendChild(WSO.CreateTagForm.inputText('定義語','DfnDfn','',30));
	Define.appendChild(WSO.CreateTagForm.inputText('かな','DfnRuby','',50));
	Define.appendChild(WSO.CreateTagForm.selectNumberText('品詞','DfnPart','',0,['名詞','性','名','人名','地名','組織','商品','固有名詞','サ変名詞','ザ変名詞','形動名詞','サ変形動名詞','感動詞','独立語','カ行五段','ガ行五段','サ行五段','タ行五段','ナ行五段','バ行五段','マ行五段','ラ行五段','ワ行五段','ハ行四段','動詞','形容詞','形容動詞','タリ形容動詞']));
	Define.appendChild(WSO.CreateTagForm.inputText('定義','DfnMean','',150));
	Define.setToAll('挿入');

	//ウェブサイトの登録
	var Website = new WSO.TagForm('ウェブサイトの登録','WebsiteForm','optionform','website');
	Website.setFormFunction
	(
		function(e)
		{
			var sitename	= this.myForm.form.WebsiteSitename.value;
			var url			= this.myForm.form.WebsiteURL.value;
			var pattern		= this.myForm.form.WebsitePattern.value;
			var encode		= this.myForm.form.WebsiteEncode.value;
			var text		= this.myForm.form.WebsiteText.value;
			var tag = "[website:(\""+sitename+"\",\""+url+"\",\""+pattern+"\",\""+encode+"\"){"+text+"}]";
			WSO.EditPoint.insertTag(this.myForm,tag);
		}
	);
	Website.appendChild(WSO.CreateTagForm.inputText('サイト名','WebsiteSitename','',30));
	Website.appendChild(WSO.CreateTagForm.inputText('URL','WebsiteURL','',50,'url'));
	Website.appendChild(WSO.CreateTagForm.inputText('クエリ','WebsitePattern','',10));
	Website.appendChild(WSO.CreateTagForm.selectText('文字コード','WebsiteEncode','',['utf8','sjis','euc']));
	Website.appendChild(WSO.CreateTagForm.inputText('リンク文字','WebsiteText','',15));
	Website.setToAll('挿入');

//	var WebsiteForm		= makeWSO.TagForm.elementBaseFieldset('ウェブサイトの登録','WebsiteForm','optionform');
//	var WebsiteSitename	= makeWSO.TagForm.elementInputText('サイト名','WebsiteSitename','',15);
//	WebsiteForm.appendChild(WebsiteSitename);
//	var WebsiteURL		= makeWSO.TagForm.elementInputText('URL','WebsiteURL','',30);
//	WebsiteForm.appendChild(WebsiteURL);
//	var WebsitePattern	= makeWSO.TagForm.elementInputText('クエリ','WebsitePattern','',10);
//	WebsiteForm.appendChild(WebsitePattern);
//	var WebsiteEncode	= makeWSO.TagForm.elementSelectText('文字コード','WebsiteEncode','',['utf8','sjis','euc']);
//	WebsiteForm.appendChild(WebsiteEncode);
//	var WebsiteText		= makeWSO.TagForm.elementInputText('リンク文字','WebsiteText','',15);
//	WebsiteForm.appendChild(WebsiteText);
//
//	var WebsiteButton	= makeWSO.TagForm.elementInput('button','WebsiteButton','挿入');
//	WebsiteButton.addEventListener('click',function(){Website(event.target);},false);
//	WebsiteForm.appendChild(WebsiteButton);
//
//	makeWSO.TagForm.addForm(WebsiteForm);
//	makeWSO.TagForm.addButton('website','ウェブサイトの挿入',function(){WebsiteForm.style.display="block";});

	//添付ファイル

	var fileForm = new WSO.TagForm("添付書類を挿入","FileclipForm",'optionform',"fileclip");
	fileForm.setButtonFunction(function(e)
	{
		this.myForm = document.getElementById(this.myButton.parentNode.parentNode.parentNode.parentNode.parentNode.getAttribute('id') + "-fileframe");
//		if(this.myForm.style.display == 'block') return;
		if(this.myForm.style.visibility == 'visible') return;

		//ベースフォームを表示する
		var myWin = frames[this.myButton.parentNode.parentNode.parentNode.parentNode.parentNode.getAttribute('id') + "-fileframe"];
//		this.myForm.style.display="block";
		this.myForm.style.visibility="visible";
		myWin.document.documentElement.style.background = "transparent";
		myWin.document.body.style.background = "transparent";
		myWin.document.getElementById("PageBody").style.background = "white";

		//他のボタンを押した時の処理
		var buttons = document.getElementsByName('OpenFormButton');
		//フォームを閉じて、別のボタンを押した時のイベントを削除する
		var closeFunc = (function(myForm){return function()
		{
//			myForm.myForm.style.display='none';
			myForm.myForm.style.visibility='hidden';
			for(var i = 0,button;button = buttons[i];i++)
			{
				button.removeEventListener('click',arguments.callee,false);
			}
			myForm.myForm.parentNode.parentNode.text.focus();
		}})(this);
		//別のボタンをクリックした時
		for(var i = 0,button;button = buttons[i];i++)
		{
			button.addEventListener('click',closeFunc,false);
		}

		this.myForm.style.top = e.pageY;

	});
	fileForm.addButton();

	function fileFrameHide(files)
	{
		for(var i = 0,file;file = files[i];i++)
		{
			if(file.getAttribute('class') == 'file')
			{
//				file.style.display = "none";
				file.style.visibility = "hidden";
				file.style.position = "absolute";
				file.style.zIndex = "20";
				file.style.background = "transparent";
				file.style.width = "500px";
			}
		}
	}
	var files = document.getElementsByTagName('iframe');
	fileFrameHide(files);
	var files = document.getElementsByTagName('object');
	fileFrameHide(files);

	//ファイル変更時タグを挿入
	var forms = document.getElementsByTagName('form');
	for(var i = 0,form;form = forms[i];i++)
	{
		var inputs = form.getElementsByTagName('input');
		for(var j = 0,input;input = inputs[j];j++)
		{
			if(input.getAttribute('type') == 'file' && input.getAttribute('name') == 'file')
			{
				setChangeEvent(input);
			}
		}
	}

	function setChangeEvent(element)
	{
		var title = element.parentNode.previousSibling.previousSibling.cloneNode(true);
		var space = element.parentNode.previousSibling.cloneNode(true);
		var file  = element.parentNode.cloneNode(true);
		element.addEventListener('change',
		function(event)
		{
			var value = WSO.EditPoint.getSelectText(event.target);
			var tag = '[clip:( ?AutoClipNO? ,"'+(value ? value : 'キャプション')+'")]';
			WSO.EditPoint.insertTag(event.target,tag);
			var newTitle        = title;
			var newTitleLabel   = newTitle.getElementsByTagName('label')[0];
			var newTitleInput   = newTitle.getElementsByTagName('input')[0];
			var newTitleId      = newTitleInput.getAttribute('id') + '_';
			newTitleInput.setAttribute('id',newTitleId);
			newTitleLabel.setAttribute('for',newTitleId);
			newTitleInput.value = '';
			var newSpace        = space;
			var newFile         = file;
			var newFileLabel    = newFile.getElementsByTagName('label')[0];
			var newFileInput    = newFile.getElementsByTagName('input')[0];
			var newFileId       = newFileInput.getAttribute('id') + '_';
			newFileInput.setAttribute('id',newFileId);
			newFileLabel.setAttribute('for',newFileId);
			newFileInput.value  = "";
			this.parentNode.parentNode.insertAfter(newFile,this.parentNode);
			this.parentNode.parentNode.insertAfter(newSpace,this.parentNode);
			this.parentNode.parentNode.insertAfter(newTitle,this.parentNode);
			setChangeEvent(newFileInput);
		},false);
	}
});
