function open_Palette(){
	EmoSend_Detail('dummy');
}


function open_PaletteBBS(){
	EmoSend_DetailBBS('dummy');
}


//submit
function EmoSend_Detail(ll){
	if (document.getElementById('layerEmo').style.visibility == "hidden" || document.getElementById('layerEmo').style.visibility == "") {
		sendRequest(emoDisp_Detail,'ll','POST',"/Palette.html",true,false);
	}
}

//submit
function EmoSend_DetailBBS(ll){
	if (document.getElementById('layerEmo').style.visibility == "hidden" || document.getElementById('layerEmo').style.visibility == "") {
		sendRequest(emoDisp_DetailBBS,'ll','POST',"/Palette.html",true,false);
	}
}



//response
function emoDisp_Detail(res){
	var resdata = res.responseText;
	document.getElementById('layerEmo').innerHTML = decodeURIComponent(resdata);
	switchDisplay_();
	EmostartFixed();
}

function emoDisp_DetailBBS(res){
	var resdata = res.responseText;
	document.getElementById('layerEmo').innerHTML = decodeURIComponent(resdata);
	switchDisplay_();
	EmostartFixedBBS();
}




function switchDisplay_() {
	document.getElementById('layerEmo').style.visibility="visible"
}

function EmostartFixed(){

	lef = document.getElementById('layerEmo2').offsetLeft+160;
	to = document.getElementById('layerEmo2').offsetTop-60;

//	alert(lef+'------------'+to);

    /*このstartFixed()関数内へ固定したいレイヤー名などを
      引数へ書いたfixedLAYER()関数をならべてください。  */
      fixedLAYER('layerEmo','acenter',lef,to)
//      fixedLAYER('layerEmo','center')

  }

  /* -- ここから下はさわらなくてもOK -- */

  var ie= !!document.all
  var n4= !!document.layers
  var w3c=!!document.getElementById
  var mac45 
    = navigator.userAgent.indexOf('MSIE 4.5; Mac_PowerPC')

  if(document.layers)window.onresize=resizeFunc
  function resizeFunc(e){location.reload()}

  function iniFunc(){
    if(ie&&!(mac45!=-1))window.onscroll = startFixed
    startFixed()
  }

  var tid=new Array()

  function fixedLAYER(layName,posString,offSetX,offSetY){
//  function fixedLAYER(layName,posString){

    offSetX = parseInt(offSetX,10)
    offSetY = parseInt(offSetY,10)
    if( posString == 'rightTop' ){
     
      if(ie) offLeft = document.body.clientWidth   + offSetX
      else   offLeft = window.innerWidth           + offSetX
      if(ie) offTop  =                               offSetY
      else   offTop  =                               offSetY

    }
    else if( posString == 'rightBottom' ){

      if(ie) offLeft = document.body.clientWidth   + offSetX
      else   offLeft = window.innerWidth           + offSetX
      if(ie) offTop  = document.body.clientHeight  + offSetY
      else   offTop  = window.innerHeight          + offSetY

    }
    else if( posString == 'leftBottom' ){

      if(ie) offLeft =                               offSetX
      else   offLeft =                               offSetX
      if(ie) offTop  = document.body.clientHeight  + offSetY
      else   offTop  = window.innerHeight          + offSetY

    }
    else if( posString == 'center' ){

      if(ie) offLeft = document.body.clientWidth/2 + offSetX
      else   offLeft = window.innerWidth/2         + offSetX
      if(ie) offTop  = document.body.clientHeight/2+ offSetY
      else   offTop  = window.innerHeight/2        + offSetY

    }
    else {

      if(ie) offLeft =                               offSetX
      else   offLeft =                               offSetX
      if(ie) offTop  =                               offSetY
      else   offTop  =                               offSetY

    }

    offLeft = parseInt(offLeft)
    offTop  = parseInt(offTop)

    if(document.all){
      var mx = parseInt(document.body.scrollLeft +offLeft)
      var my = parseInt(document.body.scrollTop  +offTop)
    } else {
      var mx = parseInt(self.pageXOffset+offLeft)
      var my = parseInt(self.pageYOffset+offTop)

    }

    emomoveLAYER(layName,mx,my)

    //WinIE以外 opera n4用
    if(!(ie&&!mac45) || opr){
      clearTimeout(fixedLAYER[layName])
      fixedLAYER[layName]=setTimeout("fixedLAYER('"+layName+"','"+posString
                   +"','" +offSetX+"','"+offSetY+"')",100)
    }
  }

  function emomoveLAYER(layName,x,y){
      
      if(document.getElementById){         //Moz,NN6,IE5用
        document.getElementById(layName).style.left=x
        document.getElementById(layName).style.top=y
      }
      else if(document.all){
        document.all(layName).style.pixelLeft=x    //IE4用
        document.all(layName).style.pixelTop=y
      }
      else if(document.layers)
        document.layers[layName].moveTo(x,y)
                                                   //NN4用
  }

function add_Emo(i){
	var tmp = document.getElementById('message');
//	document.getElementById('message').value = tmp+'{emo:'+i+'}';

	var stag = '{';		//絵文字として認識させる開始タグ
	var etag = ',}';		//絵文字として認識させる終了タグ
	var emo = 'emoji=,';	//絵文字プリフィクス文字

    var mode = get_mode();
    if (mode == 1 || mode == 4) {
        var bl1 = tmp.value.substring(0, tmp.selectionStart);
        var bl2 = emo+i;
        var bl3 = tmp.value.substring(tmp.selectionEnd, tmp.value.length);
        tmp.value = bl1 + stag + bl2 + etag + bl3;
    }
    else if (mode == 2) {
        tmp.focus();
        var sel = document.selection.createRange();
        var rang = tmp.createTextRange();
        rang.moveToPoint(sel.offsetLeft,sel.offsetTop);
        rang.moveEnd("textedit");
        if(rang.text.replace(/\r/g,"").length != 0){
            var las = (tmp.value.match(/(\r\n)*$/),RegExp.lastMatch.length);
            tmp.selectionStart = tmp.value.length - (rang.text.length + las);
            tmp.selectionEnd = tmp.selectionStart + sel.text.length;
            tmp.selectionStart2 = tmp.value.replace(/\r/g,"").length - (rang.text.replace(/\r/g,"").length + las/2);
            var bl1 = tmp.value.substring(0, tmp.selectionStart);
            var bl2 = emo+i;
            var bl3 = tmp.value.substring(tmp.selectionEnd, tmp.value.length);
            tmp.value = bl1 + stag + bl2 + etag + bl3;
            tmp.selectionEnd2 = (tmp.selectionStart2 + stag.length + bl2.length + etag.length) - tmp.value.replace(/\r/g,"").length;
            rang.moveStart("character",tmp.selectionStart2);
            rang.moveEnd("character",tmp.selectionEnd2);
        }else{
            rang.moveToPoint(sel.offsetLeft,sel.offsetTop);
            rang.text = stag + emo + i +etag;
            rang.moveStart("character",-(stag.length + (emo+i).length + etag.length));
        }
        rang.select();
    }
    else if (mode == 3) {
        tmp.value = stag + tmp.value + etag;
    }
    else {
        tmp.value += stag + etag;
    }

	hide_Palette();

}

function hide_Palette(){
	document.getElementById('layerEmo').style.visibility='hidden';
}

function get_mode() {
    var mode;
    if (window.opera){
        mode = 4;
    }
    else if (navigator.appName == 'Microsoft Internet Explorer') {
        if (navigator.platform == 'MacPPC') {
            mode = 4;
        }
        else {
            mode = 2;
        }
    }
    else if (navigator.userAgent.indexOf('Safari') != -1) {
            mode = 4;
    }
    else if (navigator.appName == 'Netscape') {
        if (navigator.platform == 'MacPPC') {
            mode = 4;
        }
        else {
            mode = 1;
        }
    }
    else if (navigator.userAgent.indexOf('Firefox') != -1) {
        mode = 1;
    }
    else if (navigator.userAgent.indexOf('Netscape') != -1) {
        mode = 1;
    }
    else if (navigator.userAgent.indexOf('Gecko') != -1) {
        mode = 1;
    }
    else {
        mode = 4;
    }
    return mode;
}




function EmostartFixedBBS(){

	lef = document.getElementById('layerEmo2').offsetLeft+160;
	to = document.getElementById('layerEmo2').offsetTop-100;

//	alert(lef+'------------'+to);

    /*このstartFixed()関数内へ固定したいレイヤー名などを
      引数へ書いたfixedLAYER()関数をならべてください。  */
      fixedLAYERBBS('layerEmo','acenter',lef,to)
//      fixedLAYER('layerEmo','center')

  }

  /* -- ここから下はさわらなくてもOK -- */

  var ie= !!document.all
  var n4= !!document.layers
  var w3c=!!document.getElementById
  var mac45 
    = navigator.userAgent.indexOf('MSIE 4.5; Mac_PowerPC')

  if(document.layers)window.onresize=resizeFunc
  function resizeFunc(e){location.reload()}

  function iniFunc(){
    if(ie&&!(mac45!=-1))window.onscroll = startFixed
    startFixed()
  }

  var tid=new Array()

  function fixedLAYERBBS(layName,posString,offSetX,offSetY){


//  function fixedLAYER(layName,posString){

    offSetX = parseInt(offSetX,10)
    offSetY = parseInt(offSetY,10)
    if( posString == 'rightTop' ){
     
      if(ie) offLeft = document.body.clientWidth   + offSetX
      else   offLeft = window.innerWidth           + offSetX
      if(ie) offTop  =                               offSetY
      else   offTop  =                               offSetY

    }
    else if( posString == 'rightBottom' ){

      if(ie) offLeft = document.body.clientWidth   + offSetX
      else   offLeft = window.innerWidth           + offSetX
      if(ie) offTop  = document.body.clientHeight  + offSetY
      else   offTop  = window.innerHeight          + offSetY

    }
    else if( posString == 'leftBottom' ){

      if(ie) offLeft =                               offSetX
      else   offLeft =                               offSetX
      if(ie) offTop  = document.body.clientHeight  + offSetY
      else   offTop  = window.innerHeight          + offSetY

    }
    else if( posString == 'center' ){

      if(ie) offLeft = document.body.clientWidth/2 + offSetX
      else   offLeft = window.innerWidth/2         + offSetX
      if(ie) offTop  = document.body.clientHeight/2+ offSetY
      else   offTop  = window.innerHeight/2        + offSetY

    }
    else {

      if(ie) offLeft =                               offSetX
      else   offLeft =                               offSetX
      if(ie) offTop  =                               offSetY
      else   offTop  =                               offSetY

    }

    offLeft = parseInt(offLeft)
    offTop  = parseInt(offTop)

    if(document.all){
      var mx = parseInt(document.body.scrollLeft +offLeft)
      var my = parseInt(document.body.scrollTop  +offTop)
    } else {
      var mx = parseInt(self.pageXOffset+offLeft)
      var my = parseInt(self.pageYOffset+offTop)

    }

    emomoveLAYER(layName,mx,my)

    //WinIE以外 opera n4用
    if(!(ie&&!mac45) || opr){
      clearTimeout(fixedLAYER[layName])
      fixedLAYER[layName]=setTimeout("fixedLAYER('"+layName+"','"+posString
                   +"','" +offSetX+"','"+offSetY+"')",100)
    }
  }

