/************************************************
 * 
 * ルーム共通処理
 * 
 * Author        : $Author$
 * Last Modified : $Date$
 * Version       : $Revision$
 * 
 * (c) CYBER AGENT.LTD
 * 
 ************************************************/


function html_entity_encode(str){
	if(!str) return "";

	str = str.replace(/&/g,"&amp;");
	str = str.replace(/\"/g,"&quot;");
	str = str.replace(/\'/g,"&#039;");
	str = str.replace(/</g,"&lt;");
	str = str.replace(/>/g,"&gt;");
	str = str.replace(/\n/g,"<br \/>");

	return str;
}

function html_entity_decode(str){
	if(!str) return "";

	str = str.replace(/&amp;/g, "&");
	str = str.replace(/&quot;/g, '"');
	str = str.replace(/&#039;/g, "'");
	str = str.replace(/&lt;/g, "<");
	str = str.replace(/&gt;/g, ">");
	str = str.replace(/<br \/>/g, "\n");

	return str;
}
/*
how to use
1 make Load instance 
2 call startLoad method to start loading
3 call stopLoad method to stop loading
*/

var Loading = new Class({

	loadingImg : '<img src="http://stat.ameba.jp/common_style/img/ameba/common/loading.gif">',

	initialize : function(){		
		this.obj=document.createElement("div");
		this.obj.id="load"	
		this.loadFlag=false;
		this.obj.style.position ="absolute";
		this.obj.style.left=0+"px";
		this.obj.style.top=0+"px";
		this.x=0;
		this.y=0;
		document.body.appendChild(this.obj);
		document.onmousemove=this.setPosi.bindAsEventListener(this);
		document.onscroll=this.setPosi.bindAsEventListener(this);
	},

	startLoad : function(){
		this.loadFlag=true;
		this.obj.innerHTML=this.loadingImg;
	},
	setPosi :function(e){
	
		this.x=this.getX(e);
		this.y=this.getY(e);
		this.obj.style.left=this.x+10 +"px";
		this.obj.style.top=this.y+5+"px";
	},
	stopLoad : function(){
		this.loadFlag=false;
		this.obj.innerHTML="";
	},
	getX : function(event){

	  var xScrollleft;
	  if (this.pageXOffset) {
		xScrollleft = this.pageXOffset;
	  } else if (document.documentElement && document.documentElement.scrollLeft){	 // Explorer 6 Strict
		xScrollleft = document.documentElement.scrollLeft;
	  } else if (document.body) {// all other Explorers
		xScrollleft = document.body.scrollLeft;
	  }
		
	  if(window.opera)   
          return xScrollleft+event.clientX;
  	  else if(document.all)
          return xScrollleft+event.clientX;
      else if(document.layers||document.getElementById)
          return event.pageX;
	},
	getY :function(event){
	
		var yScrolltop;
		if (this.pageYOffset) {
			yScrolltop = this.pageYOffset;
		} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
			yScrolltop = document.documentElement.scrollTop;
		} else if (document.body) {// all other Explorers
			yScrolltop = document.body.scrollTop;
		}
		
  		if(window.opera)
   	       return yScrolltop+event.clientY;
 		else if(document.all)
          return yScrolltop+event.clientY;
  		else if(document.layers||document.getElementById)
          return event.pageY;
	}
});