/*
** writed by chenyan
** email tyt@sohu.com
** date 2006-6-6
*/
function base64_encode (data) {
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
ac = 0,
enc = "",
tmp_arr = [];
if (!data){return data;}

data = this.utf8_encode(data + '');

do{
o1 = data.charCodeAt(i++);
o2 = data.charCodeAt(i++);
o3 = data.charCodeAt(i++);
bits = o1 << 16 | o2 << 8 | o3;
h1 = bits >> 18 & 0x3f;
h2 = bits >> 12 & 0x3f;
h3 = bits >> 6 & 0x3f;
h4 = bits & 0x3f;
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
}while(i < data.length);
enc = tmp_arr.join('');
switch (data.length % 3) {
case 1:enc = enc.slice(0, -2) + '==';break;
case 2:enc = enc.slice(0, -1) + '=';break;
}
return enc;
}
function utf8_encode (argString) {
var string = (argString + ''); 
var utftext = "",start,end,stringl = 0;
start = end = 0;
stringl = string.length;
for (var n = 0; n < stringl; n++) {
	var c1 = string.charCodeAt(n);
	var enc = null;
	if (c1 < 128) {
		end++;
	} else if (c1 > 127 && c1 < 2048) {
		enc = String.fromCharCode((c1 >> 6) | 192) + String.fromCharCode((c1 & 63) | 128);
	} else {
		enc = String.fromCharCode((c1 >> 12) | 224) + String.fromCharCode(((c1 >> 6) & 63) | 128) + String.fromCharCode((c1 & 63) | 128);
	}
	if (enc !== null) {
		if (end > start) {
			utftext += string.slice(start, end);
		}
		utftext += enc;
		start = end = n + 1;
	}
}
if(end > start){
	utftext += string.slice(start, stringl);
}
return utftext;
}

//对字符串进行Html编码
String.prototype.toHtmlEncode = function(){
var str = this;

str=str.replace(/&/g,"&amp;");
str=str.replace(/</g,"&lt;");
str=str.replace(/>/g,"&gt;");
str=str.replace(/\'/g,"&apos;");
str=str.replace(/\"/g,"&quot;");
str=str.replace(/\n/g,"<br>");
str=str.replace(/\ /g,"&nbsp;");
str=str.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");

return str;
}


// Randomizer 
rnd.today=new Date();
rnd.seed=rnd.today.getTime();

function rnd(){
	rnd.seed = (rnd.seed*9301+49297) % 233280;
	return rnd.seed/(233280.0);
};


function rand(number){
	return Math.ceil(rnd()*number);
};
// end randomizer. -->

function copyToClipBoard(url){	
	if( url == null || url == '' ){
		url = document.location.pathname;
	}
	window.clipboardData.setData("Text",url);
	alert('已经复制到剪贴板');
	return true;
}

function copyToUBB(url){	
	if( url == null || url == '' ){
		url = document.location.pathname;
	}
	url = '[url]' + url + '[/url]';
	window.clipboardData.setData("Text",url);
	alert('已经复制到剪贴板');
	return true;
}

function simplePreload(){ 
var args = simplePreload.arguments;
document.imageArray = new Array(args.length);
for(var i=0; i<args.length; i++){
	document.imageArray[i] = new Image;
	document.imageArray[i].src = args[i];
}
}

//for image exchange
function MM_preloadImages(){ //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore(){ //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d){ //v4.01
var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage(){ //v3.0
var i,j=0,x,a=MM_swapImage.arguments; 
document.MM_sr=new Array; 
for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){
document.MM_sr[j++]=x; 
if(!x.oSrc)
x.oSrc=x.src; x.src=a[i+2];
}
}

var handleFailure = function(o){
alert("service not found,\r\ninternal error HTTP status: " + o.status + ":" + o.statusText);
};

//string function: getrideof html comment <!-- --> around str
function deletecomment(str){
var comment1 = '<!--';
var comment2 = '-->';

var begin = str.indexOf(str);
var end = str.lastIndexOf(str);
var ret;
if( begin >= 0 && end >= 0 )
	ret = str.substring(begin+4,str.length-3-end);
else
	ret = str;

return ret;
}

//frame autosize
//<iframe id="oIfrm" src="open.htm" onload="_resize(this)"
function _resize(obj){
var o=obj.document.body;
obj.style.pixelHeight= o.scrollHeight + 20;
}

function init_lang( strLang ){
addCookie("lang_2",strLang,365*24);
window.location.reload();
}

function el( element_id ){
return document.getElementById( element_id );
}

//addEvent(window, "load", init);
function addEvent(elm, evType, fn, useCapture){
  if (elm.addEventListener){
    elm.addEventListener(evType, fn, useCapture);
    return true;
  } else if (elm.attachEvent){
    var r = elm.attachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
  }
} 

//for firefox obj.outerHTML
var setOuterHtml = function(s){
var range = this.ownerDocument.createRange();
range.setStartBefore(this);
var fragment = range.createContextualFragment(s);
//alert(fragment.xml);
this.parentNode.replaceChild(fragment, this);
};

if(window.HTMLElement){
HTMLElement.prototype.__defineSetter__("outerHTML", setOuterHtml);
}


function SetFrameHeight(cwin){
if (cwin && !window.opera){
if (cwin.contentDocument && cwin.contentDocument.body.offsetHeight)
cwin.height = cwin.contentDocument.body.offsetHeight +38; 
else if(cwin.Document && cwin.Document.body.scrollHeight)
cwin.height = cwin.Document.body.scrollHeight + 38;
}
}

function wait(){
alert('敬请期待，马上就来');
}

function SetBackColor(obj,color){
obj.style.backgroundColor=color;
}

function show(obj){  
obj.style.visibility="visible";  
}  
function hide(obj){  
obj.style.visibility="hidden";  
}
function displaypanel(id){
var _obj=el(id);
_obj.style.display=(_obj.style.display=="block")?"none":"block";
}

function refreshsrc(obj){
var str = obj.src;
var idx = str.indexOf('?');
if( idx > 0 )str = str.substr(0,idx);
obj.src = str + '?' + new Date().getTime();
}
//3 para is count of tab
function change_tab(elementid,begin){
var count = 10; 
if( arguments.length>2 )
	count = arguments[2];
	
var menu;
var con;

var obj = document.getElementById(elementid);
for(var i=begin;i<begin+count;i++){
	menu=document.getElementById("tabmenu"+i);
	con=document.getElementById("tabpanel"+i);
	if( menu == null || con == null )
		break;
	if(menu.id==obj.id){
		menu.className="tabmenucurrent";
		con.style.display="block";
	}else{
		con.style.display="none";
		menu.className="tabmenu";
	}				
}			
}

function selectAll(obj){
obj.focus();
obj.select();
}
