var entryText;//テキストエリアオブジェクト
var previewArea;//プレビューエリアオブジェクト

/** オンロード処理 */
function initialize(){
	entryText = document.getElementById('Message'); // <textarea> の ID
//	previewArea = document.getElementById('messagePreview');
//	//プレビュー機能
//	entryText.onkeyup = showPreview;
//	entryText.onfocus = showPreview;
	//プレビューエリア初期表示
//	switch_picker('messagePreview');//switch_pickerの表示statusを初期化するため
}

// Util /////////////////////////////////////////////////////////////////////////////

/**
  * ブラウザ判別
  */
var ENV = new Object();
ENV.agt = navigator.userAgent.toLowerCase();
ENV.is_ie	   = ((ENV.agt.indexOf("msie") != -1) && (ENV.agt.indexOf("opera") == -1));
ENV.is_opera  = (ENV.agt.indexOf("opera") != -1);
ENV.is_mac	   = (ENV.agt.indexOf("mac") != -1);
ENV.is_mac_ie = (ENV.is_ie && ENV.is_mac);
ENV.is_win_ie = (ENV.is_ie && !ENV.is_mac);
ENV.is_gecko  = (navigator.product == "Gecko");

/**
  * イベントのキャンセル
  */
function stopEvent(ev) {
	if (ENV.is_ie) {
		ev.cancelBubble = true;
		ev.returnValue = false;
	} else {
		ev.preventDefault();
		ev.stopPropagation();
	}
};


// 絵文字・顔文字パレット関連 ////////////////////////////////////////////////////////////////////////

var pallet_names = new Array("emoji", "kaomoji");

/**
  * 表示・非表示切り替え
  */
function switch_picker(strLayer) {
    var status = "";

    // NNの場合
    if (document.layers) {
        status = document.layers[strLayer].visibility;
    }
    // IE・NC6の場合
    if (document.getElementById) {
        status = document.getElementById(strLayer).style.visibility;
    }

    if (status == "" || status == "hidden" || status == "hide") {
        showlayer(strLayer, true);
		return true;
    } else if (status == "visible" || status == "show") {
        showlayer(strLayer, false);
		return false;
    }
}

function showlayer(strLayer, fType) {
    // NNの場合
    if (document.layers) {
        if (fType) {
			// 他のレイヤーが表示されてたら消したい
			for (var i=0; i < pallet_names.length; i++) {
				document.layers[pallet_names[i]].visibility = "hidden";
			}
            // 表示
            document.layers[strLayer].visibility = "show";
            //document.layers[strLayer].style.display = "block";
        } else {
            // 非表示
            document.layers[strLayer].visibility = "hidden";
            //document.layers[strLayer].style.display = "none";
        }
    }
    // IEとNC6の場合
    if (document.getElementById) {
        if (fType) {
			// 他のレイヤーが表示されてたら消したい
			for (var i=0; i < pallet_names.length; i++) {
            	document.getElementById(pallet_names[i]).style.visibility="hidden";
			}
            // 表示
            document.getElementById(strLayer).style.visibility="visible";
            //document.getElementById(strLayer).style.display="block";
        } else {
            // 非表示
            document.getElementById(strLayer).style.visibility="hidden";
            //document.getElementById(strLayer).style.display="none";
        }
    }
}


// 顔文字 ////////////////////////////////////////////////////////////////////////

var kaomojiLoadFlg = true;                                               /*顔文字のロードフラグ.*/
var kaomojiStr = "<li id=\"kaoList\">";                                  /*顔文字本体部分の文字列.*/
var kaomojiGenreStr = "<ul id=\"kaomoji_list\"><li id=\"kaoFirst\">";    /*顔文字DIVのジャンル部分.*/
var genreCount=0;                                                        /*ジャンルのカウント変数.*/
var genreIsLast=false;
var listColor=false;

/**ジャンルの選択表示のために一時保持するフィールド*/
var current_menu_obj;


// 顔文字タグにクリックイベントを設定する
function initializeKaomoji() {

	var ul_el = document.getElementById("kaoList");
	var a_list = ul_el.getElementsByTagName("a");

	for (var i=0; i < a_list.length; i++) {
		// aタグの一覧から1個づつ取り出す
		var a_el = a_list.item(i);
		a_el.onclick=function(ev) {
			setKaomoji(this);
			stopEvent(ENV.is_ie ? window.event : ev);//Aタグreturn false
		}
	}

	// ジャンルメニューの初期値を設定する
	var kaoList = document.getElementById("kaoFirst");
	var a_list = kaoList.getElementsByTagName("a");
	genreClick('face0', a_list.item(0));

}


/**
 * 指定したジャンルの顔文字の背景色を変える
 */
function genreClick(genre_id, new_selected) {

	// UL要素を引っ張ってくる
	var list = document.getElementById("kaoList");
	// liの一覧
	var li_list = list.getElementsByTagName("ul");


	// 選択されたliたぐ以外を隠す？
	for (var i= 0; i < li_list.length; i++) {
		var li_el = li_list.item(i);

		// kaomoji_list

		if (li_el.id == genre_id ) {
			li_el.style.display="block";
		}
		else {
			li_el.style.display="none";
		}
	}

	// 前回のジャンルの背景を元に戻す
	if (current_menu_obj != void(0)) {
		current_menu_obj.className="";
	}

	if (new_selected != void(0)) {
		current_menu_obj = new_selected;
		current_menu_obj.className="currentGenre";
	}

}

function toggleKaomoji() {
	if (kaomojiLoadFlg == true) {
		// 顔文字のロード始まる
		setKaomojiPalette();
	}
	switch_picker('kaomoji');//表示・非表示を切り替える
}


/**
 * 顔文字パレットの中身を作る
 */
function setKaomojiPalette() {
	// ジャンルの名前を記述してください
	genreChange("笑う1",false);
	// ()の中には1列に表示したい数だけ{title:"顔文字の名前", kao:"(^-^)"}という顔文字と名前のセットを入れます
	createKaomoji({title:"やったー",kao:"ヾ(＠°▽°＠)ﾉ"}, {title:"ぶひー",kao:"ヾ(＠＾(∞)＾＠)ノ"}, {title:"わーい",kao:"(^∇^)"}, {title:"えへへ",kao:"(*^▽^*)"});
	createKaomoji({title:"にっこり",kao:"(＝⌒▽⌒＝)"}, {title:"にこー",kao:"(≡^∇^≡)"}, {title:"るんるん",kao:"o(〃＾▽＾〃)o"}, {title:"うれしーな",kao:"≧(´▽｀)≦"});
	createKaomoji({title:"わーい♪",kao:"（‐＾▽＾‐）"}, {title:"キラーン",kao:"(￣▽+￣*)"}, {title:"おほほ",kao:"(*￣Oﾉ￣*)"}, {title:"おほほほー",kao:"(´0ﾉ｀*)"});
	createKaomoji({title:"えへへ♪",kao:"(-^□^-)"}, {title:"ぷぷっ",kao:"( ´艸｀)"}, {title:"わー",kao:"(^O^)"}, {title:"ヤッタ♪ヤッタ♪",kao:"γ(▽´ )ﾂヾ( ｀▽)ゞ"});
	createKaomoji({title:"うわーい",kao:"ヾ(＠^▽^＠)ﾉ"}, {title:"わいわーい",kao:"o(^▽^)o"}, {title:"いいね！",kao:"(°∀°)b "}, {title:"うれしいっ☆",kao:"о(ж＞▽＜)ｙ ☆"});
	createKaomoji({title:"すごーい",kao:"ヽ(ﾟ◇ﾟ )ﾉ"}, {title:"すごーい！！",kao:"ﾍ(ﾟ∀ﾟ*)ﾉ"}, {title:"いい！",kao:"(・∀・)"}, {title:"はい！",kao:"(^-^)/"}, {title:"おーい",kao:"(^O^)/"}, {title:"やぁ！",kao:"('-^*)/"});

	// 笑う2
	genreChange("笑う2",false);
	createKaomoji({title:"にゃー", kao:"(・ω・)/"},{title:"ふふ", kao:"o(^-^)o"},{title:"ぅわーぃ！", kao:"o(^▽^)o"},{title:"よー", kao:"(*＾ー＾)ノ"},{title:"グッド！", kao:"(o^-')b"});
	createKaomoji({title:"ぐー", kao:"p(^-^)q"},{title:"よろしく！", kao:"(^人^)"},{title:"ダンシンッ♪", kao:"(*゜▽゜ノノ゛☆"},{title:"ぶちゅー", kao:"(＾ε＾)"},{title:"んふふ", kao:"(＾～＾)"});
	createKaomoji({title:"イェイ☆", kao:"v(^-^)v"},{title:"ほほっ", kao:"(*^o^*)"},{title:"うきゃ～～", kao:"(≧▽≦)"},{title:"ぴーぴー♪", kao:"(^ε^)♪"},{title:"たれめ", kao:"(´∀｀)"});
	createKaomoji({title:"こんちわ", kao:"(*^ー^)ノ"},{title:"ケケケッ", kao:"(｀∀´)"},{title:"ス・テ・キー", kao:":*:・(￣∀￣)・:*:"},{title:"うひゃひゃひゃ", kao:"ヽ(゜▽、゜)ノ"},{title:"ぴーす", kao:"(^_^)v"});

	//怒る
	genreChange("怒る",false);
	createKaomoji({title:"ぷぅ", kao:"(｡・ε・｡)"},{title:"こら", kao:"＼(*｀∧´)／"},{title:"ぷんぷん", kao:"(｀×´)"},{title:"こらー", kao:"(｀Δ´)"},{title:"こらー！", kao:"ヽ(`Д´)ノ"});
	createKaomoji({title:"しゃきーん", kao:"(｀・ω・´)"},{title:"いらぬっ！", kao:"(｀(エ)´)ﾉ_彡"},{title:"テメェ…", kao:"ヾ(▼ﾍ▼；)"},{title:"ふんっ", kao:"( ￣っ￣)"},{title:"ぷー", kao:"（･ε･)"});
	createKaomoji({title:"ムスーッ", kao:"(｀ε´)"},{title:"ブヒーッ！", kao:"(=｀(∞)´=)"},{title:"プーッ！", kao:"ヽ( )｀ε´( )ノ"},{title:"コラァッ！", kao:"ヾ(｡｀Д´｡)ﾉ"});
	createKaomoji({title:"ケッ！", kao:"(￣へ ￣ 凸"},{title:"ふざけんな", kao:"(￣∩￣#"},{title:"ちぇっ", kao:"川・ε･川"},{title:"むーーー", kao:"゛(｀ヘ´#)"},{title:"ムカツク…", kao:"((o(-゛-；)"});
	createKaomoji({title:"ふんっだ！", kao:"(◎｀ε´◎ )"},{title:"むむむっ", kao:"（-\"\"-；)"},{title:"もういいよ！", kao:"(ﾞ ｀-´)/"},{title:"ちょっとー！", kao:"(#｀ε´#)"},{title:"つーん", kao:"(￣＾￣)"});
	createKaomoji({title:"オラオラ", kao:"(-_-メ"},{title:"食べちゃうぞ、コラ！", kao:"(｀ε´)"},{title:"むにぃーーー", kao:")｀ε´(　"},{title:"ぶーぶー", kao:"(-з-)"});

	// 泣く
	genreChange("泣く",false);
	createKaomoji({title:"シクシク", kao:"(ﾉ_･｡)"},{title:"シクシクシク", kao:"(ﾉ_-｡)"},{title:"泣きたい", kao:"(w＿－；"},{title:"うわーん！", kao:"。・ﾟﾟ･(≧д≦)･ﾟﾟ･｡"},{title:"えーん！", kao:"(ノ◇≦。)"});
	createKaomoji({title:"エーン…", kao:"(ﾉω･､)"},{title:"うわぁぁん", kao:"・°・(ノД｀)・°・"},{title:"ショボッ", kao:"（ ´(ェ)｀）"},{title:"しょぼーん", kao:"(´・ω・`)"},{title:"めぇ・・・", kao:"(´＿｀｡)"});
	createKaomoji({title:"えーっ", kao:"(｡＞0＜｡)"},{title:"えーん", kao:"( p_q)"},{title:"うわぁん", kao:"o(；△；)o"},{title:"シクシク", kao:"(:_;)"},{title:"エーッ！", kao:"(Ｔ▽Ｔ;)"},{title:"マジでー", kao:"（ｉДｉ）"});
	createKaomoji({title:"泣くよ", kao:"（Ｔ＿Ｔ）"},{title:"どわー", kao:"｡ﾟ(T^T)ﾟ｡"},{title:"ちくしょーぅ", kao:"o(TωT )"},{title:"ダメだ", kao:"(x_x；)"},{title:"・・・・", kao:"(_ _。)"},{title:"みゅー", kao:"(TωT)"});
	createKaomoji({title:"バカー", kao:"（/TДT)/"},{title:"ええ話やのぉ", kao:"(ﾟｰÅ)"},{title:"ダー", kao:"(ﾉДT)"},{title:"うばぁ・・・", kao:"(´□｀｡)"},{title:"がーん", kao:"。(´д｀lll) "});
	createKaomoji({title:"ううっ", kao:"(>_<)"},{title:"やめてー", kao:"Y(>_<、)Y"},{title:"さよーならー", kao:"(/_;)/~~"});

	// 汗
	genreChange("汗",false);
	createKaomoji({title:"ふきふき", kao:"(;^_^A"},{title:"う、うん…", kao:"(ﾟｰﾟ;"},{title:"やれやれ", kao:"A=´、｀=)ゞ"},{title:"うーん", kao:"(･Θ･;)"},{title:"ほー", kao:"(-。－；)"},{title:"あ、あはは…", kao:"(^▽^;)"});
	createKaomoji({title:"……。", kao:"(・・；)"},{title:"えっ・・・？", kao:"(゜д゜；)"},{title:"うーん…", kao:"(-\"-;A"},{title:"ふーん", kao:"(￣_￣ i)"},{title:"あせあせ", kao:"（;´▽｀A``"});
	createKaomoji({title:"え？え？", kao:"(＠Д＠；"},{title:"ポリポリ", kao:"σ(^_^;)"},{title:"タラーッ", kao:"(ﾟ＿ﾟi)"},{title:"うーん？", kao:"(￣ー￣；"},{title:"ブルブル", kao:"(((( ;°Д°))))"});
	createKaomoji({title:"ひぃー", kao:"。(;°皿°)"},{title:"えーっとぉ…", kao:"(￣Д￣；；"},{title:"ちょ、ちょっと…", kao:"(;´Д`)ノ"},{title:"何？何！？", kao:"(°Д°；≡°Д°；)"});
		createKaomoji({title:"どうしよう", kao:"ヽ(;´Д｀)ノ"},{title:"こまった", kao:"ヽ(;´ω｀)ノ"},{title:"はっ！", kao:"！(´Д｀；)"},{title:"うそーん…", kao:"(°д°；)"});
	createKaomoji({title:"えーっとぉ・・・", kao:"(^_^;)"},{title:"あ・・・", kao:"(^o^;)"},{title:"・・・", kao:"(^_^;)"},{title:"ポリ…", kao:"f^_^;"},{title:"あいたー！", kao:"(＾＾ゞ"},{title:"（えー…？）", kao:"(・_・;)"},{title:"うわっ", kao:"(＞＜;)"});
	createKaomoji({title:"ぎゅっ", kao:"(→o←)ゞ"});

	// 驚く
	genreChange("驚く",false);
	createKaomoji({title:"おぉー", kao:"(ﾉﾟοﾟ)ﾉ"},{title:"ぽかーん", kao:"(＠￣Д￣＠；)"},{title:"うわーぃ", kao:"(ﾉ´▽｀)ﾉ"},{title:"さ、さよならぁ・・・", kao:"((((((ﾉﾟ⊿ﾟ)ﾉ"});
	createKaomoji({title:"いやんっ", kao:"ヽ(*'0'*)ﾂ"},{title:"えっ", kao:"Σ(ﾟдﾟ;)"},{title:"えぇっ？", kao:"∑ヾ(￣0￣;ﾉ"},{title:"なにぃー！", kao:"Σ(･ω･ﾉ)ﾉ！"});
	createKaomoji({title:"ゴシゴシ…えー?!", kao:"(-_＼)(/_-)三( ﾟДﾟ)"},{title:"目、ポーン！", kao:"( ﾟ-ﾟ)( ﾟﾛﾟ)(( ﾛﾟ)ﾟ(((　ﾛ)~ﾟ ﾟ"},{title:"うぐっ…", kao:"∑(－x－;)"});
	createKaomoji({title:"は・・・・", kao:"(　 ﾟ ▽ ﾟ ;)"},{title:"むむむ", kao:"(ﾟΩﾟ;)"},{title:"え？", kao:"(￣□￣；)"},{title:"がーん", kao:"∑(ﾟДﾟ)"});
	createKaomoji({title:"わーぉ☆", kao:"w川・o・川w"},{title:"あわあわ…", kao:"((ﾟmﾟ;)"},{title:"エェッ！", kao:"Σ(･ω･;|||"},{title:"わけわからん", kao:"ヽ((◎д◎　))ゝ"});
	createKaomoji({title:"へぇ…", kao:"(＝◇＝;)"},{title:"…え?!", kao:"Σ(~∀~||;)"},{title:"うぉー?!", kao:"Σ(=°ω°=;ノ)ノ"},{title:"ブルブル…", kao:"(((゜д゜;)))"});
	createKaomoji({title:"おぉぉぉぉぉ！", kao:"＼(゜□゜)／"},{title:"まさかっ?!", kao:"(￣□￣;)!!"},{title:"まぶしい…", kao:"(+_+)"},{title:"？！", kao:"(*_*)"},{title:"ぐぅ～るぐる", kao:"(@_@)"},{title:"キャァ～", kao:"((＞д＜))"});

	// 照れる
	genreChange("照れる",false);
	createKaomoji({title:"照れます", kao:"(・・。)ゞ"},{title:"ポリポリ", kao:"(*ﾟｰﾟ)ゞ"},{title:"うふふ", kao:"(*^.^*)"},{title:"ふふんっ", kao:"(*ﾟｰﾟ*)"},{title:"はずかしー", kao:"(/ω＼)"});
	createKaomoji({title:"えへへー", kao:"(*⌒∇⌒*)"},{title:"えっへん", kao:"(*´σｰ｀)"},{title:"いやぁ…", kao:"(;^ω^A"},{title:"照れるなー", kao:"(●´ω｀●)ゞ"},{title:"ほっ", kao:"(*ﾟ.ﾟ)ゞ"});
	createKaomoji({title:"いやー…", kao:"(＃⌒∇⌒＃)ゞ"},{title:"カーッ", kao:"(///∇//)"},{title:"ぽっ", kao:"（//･_･//)"},{title:"でへへ", kao:"(〃∇〃)"},{title:"お恥ずかしい…", kao:"(*v.v)｡"});

	// ボーダー
	genreChange("ボーダー",false);
	createKaomoji({title:"メルヘン",kao:"*:..｡o○☆ﾟ･:,｡*:..｡o○☆"}, {title:"星1",kao:"ﾟ･:,｡ﾟ･:,｡★ﾟ･:,｡ﾟ･:,｡☆"});
	createKaomoji({title:"星2",kao:"☆*ﾟ ゜ﾟ*☆*ﾟ ゜ﾟ*"}, {title:"星3",kao:"*☆*:;;;:*☆*:;;;:"});
	createKaomoji({title:"キラキラ",kao:"ﾟ･*:.｡..｡.:*･ﾟﾟ･*:.｡..｡.:*･ﾟ "}, {title:"新幹線",kao:"━─━─━─━─━─"});
	createKaomoji({title:"ひし形",kao:"◆◇◆◇◆◇◆◇◆◇"}, {title:"さんかく",kao:"▽▲▽▲▽▲▽▲▽▲"});
	createKaomoji({title:"しかく",kao:"■□■□■□■□■□"}, {title:"まる",kao:"○●○●○●○●○●"});

	// その他1
	genreChange("その他1",false);
	createKaomoji({title:"がっくり", kao:"orz"},{title:"きたー", kao:"ｷﾀ━━━(ﾟ∀ﾟ)━━━!!!"},{title:"なかよしー♪", kao:"ヽ(*・ω・)人(・ω・*)ノ"});
	createKaomoji({title:"びっくり", kao:"(☆｡☆)"},{title:"キラン", kao:"(-_☆)"},{title:"にやり", kao:"(￣ー☆"},{title:"ぼー", kao:"(゜ρ゜)"},{title:"ふーん", kao:"( ゜∋゜)"});
	createKaomoji({title:"ふーん", kao:"（ ・(ェ)・）"},{title:"ぐぅぐぅ", kao:"Ｏｏ｡｡(￣￢￣*)"},{title:"ほっ", kao:"ε=(｡・д・｡)"},{title:"やれやれ", kao:"┐(￣ヘ￣）┌"});
	createKaomoji({title:"ほろり", kao:"(￣∇￣+)"},{title:"えー", kao:"( °д°)"},{title:"きょろきょろ", kao:"o(･_･= ･_･)o"},{title:"タバコ", kao:"ﾟﾟﾟﾟﾟ-y(^｡^)｡o0○"});
	createKaomoji({title:"すっぱー", kao:"(￣＊￣ )"},{title:"おいしそう", kao:"(⌒￢⌒*)"},{title:"よかったぁ", kao:"（￣▽￣）=３"},{title:"呪いかけるぞー", kao:"(ﾉ´▽｀)ﾉ ⌒(呪)"});
	createKaomoji({title:"チュッ☆", kao:"(^з^)-☆Chu!!"},{title:"しゅりけーん", kao:"(　・д・)/－－＝≡(((卍"},{title:"グッ！", kao:"(･ω･)b"});
	createKaomoji({title:"パーーンチ！", kao:"ﾟ･ﾟ*･(ﾟOﾟ(☆○=(｀◇´*)o"},{title:"はーい！", kao:"(･∀･)/"},{title:"こんにちは", kao:"(｡･ω･)ﾉﾞ"});
	createKaomoji({title:"きた～", kao:"ｷﾀｰ Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒(｡Ａ｡)!!!"},{title:"おやすみぃ～", kao:"（θωθ）/~"});
	createKaomoji({title:"うんうん", kao:"('-'*)(,_,*)('-'*)(,_,*)"},{title:"ばいばーい", kao:"(*^o^*)/~"});
	createKaomoji({title:"了解っ！", kao:"(｀・ω・´)ゞ"},{title:"なんでやねん", kao:"Σ＼(￣ｰ￣;)"},{title:"キョロキョロ", kao:"ﾍ(･o･Ξ･o･)ﾍ"});

	// 最後のジャンルの時は、2つ目のパラメーターをtrueにする
	// その他2
	genreChange("その他2",true);
	createKaomoji({title:"じぃー…", kao:"| 壁 |д･)"},{title:"ねむー", kao:"Zzz…(*´?｀*)｡o○"},{title:"すやすや", kao:"(@￣ρ￣@)ｚｚｚｚ"});
	createKaomoji({title:"ありがとっ", kao:"☆-( ^-ﾟ)v"},{title:"ごめんなさい", kao:"m(_ _ )m"},{title:"おねがーい", kao:"(｡-人-｡)"},{title:"ノンノン…", kao:"(･_･ 三･_･)"});
	createKaomoji({title:"へっくしょいっ！", kao:":ﾞ;｀;:ﾞ;｀;･o(ﾛ≦〃)"},{title:"逃げろー", kao:"ε=ε=ε= ヾ(*~▽~)ノ"});
	createKaomoji({title:"がっくし", kao:"o(_ _*)o"},{title:"ごめんねー…", kao:"m(u_u)m"},{title:"服従っ", kao:"m(．．)m"},{title:"わかんない", kao:"(?_?)"},{title:"流れ星～", kao:"☆彡"});
	createKaomoji({title:"ZZzz..", kao:"ZZzz...."},{title:"ターッチ☆", kao:"(ノ^^)八(^^ )ノ"},{title:"どこ？どこ？", kao:"o(^^o)(o^^)o"},{title:"ねーー！", kao:"(*^o^)乂(^-^*)"});
	createKaomoji({title:"ドッキドキ～", kao:"o(゜∇゜*o)(o*゜∇゜)o～♪"},{title:"ぉぃっ！", kao:"(σ・∀・)σ"},{title:"ぼー…", kao:"(￣ー￣)"});
	createKaomoji({title:"ダッシュ！", kao:"三 (/ ^^)/"},{title:"ばんざーい", kao:"＼(^_^)／"},{title:"またねー", kao:"(^-^)ノ~~"},{title:"えっへん", kao:"(*^-^)b"});
	createKaomoji({title:"チュッ♪", kao:"♪(*^ ・^)ノ⌒☆"},{title:"ねっ！", kao:"(b^-゜)"},{title:"まったりー", kao:"ヾ( ´ー｀)"},{title:"ウィンクッ", kao:"(^_-)☆"});
	createKaomoji({title:"むっはー", kao:"(*´Д｀)=з"},{title:"メモメモ…", kao:"φ(．． ) "});

	// パレットを作成する
	createKaomojiParette();
}

/**
 * 顔文字の一列を作成する.
 * 引数で受け取ったオブジェクトの数だけ追加する.
 */
function createKaomoji() {
	// 顔文字文字列に追加する
	if (listColor) {
		kaomojiStr+="<li class=\"color\">";
	}
	else {
		kaomojiStr+="<li>";
	}

	// 引数で来た顔文字オブジェクトは全部つめこむ
	for (var i = 0; i< arguments.length; i++) {
		kaomojiStr+="<a href=\"javascript:void(0);\" title=\"" + arguments[i].title +"\">"+ arguments[i].kao +"</a>\n";
	}

	kaomojiStr+="</li>";
	listColor = !listColor;

	//alert(kaomojiStr);
}


/**
 * 顔文字のジャンルを切り替える.
 */
function genreChange(genreName, isLast) {
	// 新しいジャンルを作成する
	listColor = false;

	// 1つ目のジャンルでなければulの閉じタグ入れる
	if (genreCount != 0) {
		kaomojiStr+="</ul>";

	}
	if (genreCount%8 == 0 && genreCount != 0 && !isLast) {
		kaomojiGenreStr+="<br />";
	}
	kaomojiStr+="<ul id=\"face"+genreCount+"\">";
	if (isLast) {
		//最後の処理
		kaomojiGenreStr+=
			"<a href=\"javascript:void(0);\" onClick=\"genreClick('face"+genreCount+"',this);return false;\" class=\"kaoGenreLast\">"+genreName+"</a>\n";
		kaomojiGenreStr+=
			"<a href=\"javascript:void(0);\" onClick=\"switch_picker('kaomoji');return false;\" class=\"close\">［ 顔文字を閉じる ］</a>\n</li>\n";
	}
	else {
		kaomojiGenreStr+="<a href=\"javascript:void(0);\" onClick=\"genreClick('face"+genreCount+"',this);return false;\">"+genreName+"</a>\n";
	}
	genreCount++;
}


/**
  * 顔文字パレットをHTML内に反映させる.
  */
function createKaomojiParette(){
	kaomojiStr+= "</ul></li>\n";
	kaomojiStr+="<li id=\"kaoLast\" id=\"kaoDiscription\">\n";
	kaomojiStr+="最初に本文の中で顔文字を挿入したい部分をクリックしてください<br/>\n";
	kaomojiStr+="次に使いたい顔文字をクリックしてください<br/>\n";
	kaomojiStr+="上のジャンルを選ぶと顔文字リストが切り替わります</li>\n";
	kaomojiStr+="</ul>";

	document.getElementById("kaomoji").innerHTML = kaomojiGenreStr + kaomojiStr;
	initializeKaomoji();
	kaomojiLoadFlg = false;

	//window.clipboardData.setData("text",kaomojiGenreStr + kaomojiStr);

}


/**
  * 選択された顔文字をテキストエリアにセットする.
  * @param td_obj クリックされたTDの参照
  */
function setKaomoji(td_obj){
 // 選択されたリンクに記述されている顔文字文字列を取得する
	var face_string = td_obj.childNodes[0].nodeValue;
	insertText(entryText, face_string);
	showlayer('kaomoji',false);//挿入後、パレットを閉じる
    entryText.focus();
}


// テキスト挿入処理 ////////////////////////////////////////////////////////////////////////

function insertText(textEl, str){

	var target = textEl;

	target.focus();

	if (document.selection != null){//IE
		var sSel = document.selection.createRange().text;
		if (sSel) {
			//alert("IE選択状態" + sSel);
			document.selection.createRange().text = str;
			document.selection.createRange().select();

		} else {
			//alert("IEカーソル");
			document.selection.createRange().text = str;
		}

	}else if(target.selectionStart || target.selectionStart == '0'){
		var s = target.selectionStart;
		var e = target.selectionEnd;

		var str2 = target.value.substring(s,e);
		if (str2){
			//alert("選択状態");
			target.value = target.value.substring(0,s) + str + target.value.substring(e,target.value.length);
		} else {
			//alert("カーソル");
			target.value = target.value.substring(0,s) + str + target.value.substring(e,target.value.length);
		}
		target.focus();

	}else{
		target.value += str;
	}

	return;
}

