// 
var getTransport=function(){
	try{ return new ActiveXObject('Msxml2.XMLHTTP'); }
	catch(e){}
	try{ return new ActiveXObject('Microsoft.XMLHTTP'); }
	catch(e){}
	return new XMLHttpRequest();
}

document.mpImgCache=Array();
function mpFlipImg(id,url){
	if(document.mpImgCache[url]){
		try{
			document.getElementById(id)=document.mpImgCache[url];
			return;
		}catch(e){}
	}
	try{ document.getElementById(id).src=url; }catch(e){}
}
function mpLoadInCache(url){
	try{
		window.addEventListener("load",function(ev){
			var t=getTransport();
			t.onreadystatechange=function(){
				if(t.readyState==4){
					document.mpImgCache[url]=new Image();
					document.mpImgCache[url].src=url;
				}
			}
			try{
				t.open("GET",url);
				t.send("");
			}catch(e){}
		},false);
	}catch(e){}
}


// thanks for http://activecontent.blogspot.com/2006/04/solution.html
var bo_ns_id = 0;
function startIeFix(){if(ieFixisIE()){document.write('<noscript id="bo_ns_id_' + bo_ns_id + '">');}}

function endIeFix(){ if(ieFixisIE()){ var theObject = document.getElementById("bo_ns_id_" + bo_ns_id++);var theNoScript = theObject.innerHTML;document.write(theNoScript);}}

function ieFixisIE(){ var strBrowser = navigator.userAgent.toLowerCase();if(strBrowser.indexOf("msie") > -1 && strBrowser.indexOf("7.0") < 0 && strBrowser.indexOf("mac") < 0){return true;}else{return false;}}



// for word breaking.
function wordbreakById(nodeId){
	wordbreakNode(document.getElementById(nodeId),11);
}
function wordbreakNode(node,lim){
	if(node.nodeName=="#text"){
		var pn=node.parentNode;
		var baseTxtArray=node.nodeValue.split(/\s+/);
		for(var s=0,slen=baseTxtArray.length; s<slen; s++){
			var txt=baseTxtArray[s];
			var tick=new Array();
			var clen=0;
			var len=txt.length;
			
			if(/^\s*$/.test(txt)){ continue; }
			
			while(len > clen){
				tick.push(clen);
				clen=clen+lim;
			}
			
			var chunk=wordbreakChunk(txt, lim);
			if(s>0){
				pn.insertBefore(document.createTextNode(' '),node);
			}
			for(var i=0,len=chunk.length; i<len; i++){
				pn.insertBefore(document.createTextNode(chunk[i]),node);
				if(/Chrome/i.test(navigator.userAgent)){
					// skip
				}else if(/WebKit/i.test(navigator.userAgent) || /Opera/i.test(navigator.userAgent)){
					pn.insertBefore(document.createTextNode('\u00AD'),node);
				}else{
					pn.insertBefore(document.createElement('wbr'),node);
				}
			}
		}
		node.nodeValue=" ";
		pn.removeChild(node);
	}else{
		var cn=node.childNodes;
		for(var i=cn.length-1; i>=0; i--){
			wordbreakNode(cn[i],lim);
		}
	}
}
function wordbreakChunk(txt,lim){
	if(/^[0-9a-zA-Z\~\!\@\#\$\%\^\&\*\(\)\_\+\`\-=\{\}\|\[\]\\:";'<>\?,\.\/]+$/.test(txt)
			|| /^[！？＄￥―・＜＞＃]+$/.test(txt)){
		var clen=0;
		var len=txt.length;
		var chunks=new Array();
		
		if(len < lim){ return [txt]; }
		
		while(clen<len){
			var chTxt=txt.substr(clen,lim);
			
			var pos=chTxt.lastIndexOf('/')
			if(pos>=0){
				chunks.push(chTxt.substr(0, pos+1));
				clen=clen+pos+1;
				continue;
			}
			
			var pos=chTxt.lastIndexOf('?')
			if(pos>=0){
				chunks.push(chTxt.substr(0, pos+1));
				clen=clen+pos+1;
				continue;
			}
			
			var pos=chTxt.lastIndexOf('&')
			if(pos>=0){
				chunks.push(chTxt.substr(0, pos+1));
				clen=clen+pos+1;
				continue;
			}
			
			var pos=chTxt.lastIndexOf('.')
			if(pos>=0){
				chunks.push(chTxt.substr(0, pos+1));
				clen=clen+pos+1;
				continue;
			}
			
			chunks.push(chTxt);
			clen=clen+lim;
		}
		return chunks;
	}
	return [txt];
}

