/*
** writed by chenyan
** email tyt@sohu.com
** date 2006-6-6
*/
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function encode64(input) {
input = escape(input);
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;
do {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);

enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;

if (isNaN(chr2)) {
	enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
	enc4 = 64;
}

output = output + 
	keyStr.charAt(enc1) + 
	keyStr.charAt(enc2) + 
	keyStr.charAt(enc3) + 
	keyStr.charAt(enc4);
	chr1 = chr2 = chr3 = "";
	enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);

return output;
}

function decode64(input) {
var output = "";
var chr1, chr2, chr3 = "";
var enc1, enc2, enc3, enc4 = "";
var i = 0;

// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
var base64test = /[^A-Za-z0-9+/=]/g;
if (base64test.exec(input)) {
alert("There were invalid base64 characters in the input text.n" +
               "Valid base64 characters are A-Z, a-z, 0-9, '+', '/', and '='n" +
               "Expect errors in decoding.");
}
input = input.replace(/[^A-Za-z0-9+/=]/g, "");

do {
enc1 = keyStr.indexOf(input.charAt(i++));
enc2 = keyStr.indexOf(input.charAt(i++));
enc3 = keyStr.indexOf(input.charAt(i++));
enc4 = keyStr.indexOf(input.charAt(i++));

chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;

output = output + String.fromCharCode(chr1);

if (enc3 != 64) {
	output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
	output = output + String.fromCharCode(chr3);
}

chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";

} while (i < input.length);

return unescape(output);
}


//对字符串进行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();
}