// JavaScript Document
//based on jQuery
if ( typeof jQuery == "undefined" )
{
	alert('jQuery is not found!');
}
var JQ = jQuery;
var dir_ws_plugin = 'usr/js';

//jQuery.noConflict();
jQuery.extend({
    parseInt:function(i){var s=parseInt(i); return isNaN(s)?0:s;},
    parseFloat:function(i){var s=parseFloat(i); return isNaN(s)?0:s;},
	numberFormat:function(number, decimals, dec_point, thousands_sep){
		var n = number, prec = decimals;
	 
		var toFixedFix = function (n,prec) {
			var k = Math.pow(10,prec);
			return (Math.round(n*k)/k).toString();
		}; 
		n = !isFinite(+n) ? 0 : +n;
		prec = !isFinite(+prec) ? 0 : Math.abs(prec);
		var sep = (typeof thousands_sep === 'undefined') ? '' : thousands_sep;
		var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
	 
		var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
	 
		var abs = toFixedFix(Math.abs(n), prec);
		var _, i;
	 
		if (abs >= 1000) {
			_ = abs.split(/\D/);
			i = _[0].length % 3 || 3;
	 
			_[0] = s.slice(0,i + (n < 0)) +
				  _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
			s = _.join(dec);
		} else {
			s = s.replace('.', dec);
		}
	 
		var decPos = s.indexOf(dec);
		if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
			s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
		}
		else if (prec >= 1 && decPos === -1) {
			s += dec+new Array(prec).join(0)+'0';
		}
		return s;
	}
});
function message(obj,msg,css){
	var obody=false;
	if(typeof obj=='string'){
		css=msg;msg=obj;obody=true;
	}else if(!obj[0]){
		obody=true;
	}
	JQ.topmessageID=++JQ.topmessageID||1;
	JQ.timer_topmessage={};
	var topmessageID=JQ.topmessageID;
	var s='class="topmessage flowtip" style="text-align:center;position:absolute;width:auto;white-space:nowrap;padding:2px 4px 2px 4px;z-index:10000"></div>';
		if(obody){
			var o=JQ('#_topmessage');
			if(!o[0]){ 
			JQ('body').prepend('<div id="_topmessage" '+s);
			o=JQ('#_topmessage');
			}
		}else{
			var o=JQ('#_topmessage'+topmessageID);
			if(o[0]) o.remove(); 
			obj.after('<div id="_topmessage'+topmessageID+'" '+s);
			o=JQ('#_topmessage'+topmessageID);
		}

	var m=JQ('<div '+(obody?'id="_topmessage'+topmessageID+'"':'')+' class="msg"><span><b>'+msg+'</b></span></div>');
	o.append(m);
	if(!obody){var offset=obj.offset(),pobj=obj.offsetParent(),t=l=0;if(pobj[0]){var offp=pobj.offset();t=offp.top;l=offp.left}}
	o.css({left:obody?(JQ(window).width()-m.width())/2:offset.left-l+obj.width(),top:obody?JQ(window).scrollTop():offset.top-t});
	if(typeof(css)==='object'){
		JQ('span',m).css(css);
	}else if(typeof(css)==='string'){
		JQ('span',m).addClass(css);
	}else{
		JQ('span',m).css({color:'#000',padding:'2px 4px 2px 4px',background:'#FFF9DE'});
	}
	JQ('b',m).html(msg);m.css('opacity',0).show().fadeTo('slow',1);JQ.timer_topmessage[topmessageID]=setTimeout("JQ('#_topmessage"+topmessageID+"').fadeTo('slow',0,function(){JQ(this).remove()})",3000);
	JQ(window).unload(function(){for(var i in JQ.timer_topmessage)clearTimeout(JQ.timer_topmessage[i])});
}
function error(obj,msg,css){
	var errorcss={color:'#fff',padding:'2px 4px 2px 4px',background:'#CC0000'};
	if(typeof obj=='string'){
		if(typeof msg==='undefined')msg=errorcss;
	}else{
		if(typeof css==='undefined')css=errorcss;
	}
	message(obj,msg,css);
}
function copytext(txt,note) 
{
	if(window.clipboardData) { 
	window.clipboardData.clearData(); 
	window.clipboardData.setData("Text", txt); 
	} else if(navigator.userAgent.indexOf("Opera") != -1) { 
	window.location = txt; 
	} else if (window.netscape) { 
	try { 
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
	} catch (e) { 
	alert("您的firefox安全限制限制您进行剪贴板操作，请打开'about:config'将'signed.applets.codebase_principal_support'设置为'true'之后重试"); 
	return ; 
	} 
	var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); 
	if (!clip) 
	return; 
	var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); 
	if (!trans) 
	return; 
	trans.addDataFlavor('text/unicode'); 
	var str = new Object(); 
	var len = new Object(); 
	var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); 
	var copytext = txt; 
	str.data = copytext; 
	trans.setTransferData("text/unicode",str,copytext.length*2); 
	var clipid = Components.interfaces.nsIClipboard; 
	if (!clip) 
	return ; 
	clip.setData(trans,null,clipid.kGlobalClipboard); 
	} 
	note&&alert(note);			
}
var _PLUGINS=[];
function plugin(p)
{
	if(JQ.inArray(p,_PLUGINS)==-1)
	{
		_PLUGINS.push(p);
		require(dir_ws_plugin+'/'+p.replace(/>/g,'/')+'.js');
	}
}
function includeCss(fileName)
{
	 //JQ('head').append('<link rel="stylesheet" type="text/css" href="'+fileName+'?_='+pamstime()+'">');//not work with jquery 1.4 
	var objHead = document.getElementsByTagName('head');
	var objScript = document.createElement('link');
	objScript.type = 'text/css';
	objScript.href = fileName+'?_='+pamstime();
	objScript.rel = 'stylesheet';
	objHead[0].appendChild(objScript);
}
//url
function redirect(url)
{
	window.location.href=urldecode(url);
}
function hash(hash_name)
{ 
	var para_sep = ';'; //  &
	var value_sep = ',';//  =
	var sStr = window.location.hash;
	if(sStr!='')
	{
		sStr=sStr.substr(1);
		if (sStr == '') return '';
		
		var name='';
		if (sStr=sStr.split(para_sep))
		{
			 for (var j=0;j<sStr.length;j++)
			{
					var request=sStr[j].split(value_sep);
						 name = request[0];
					var value = request[1];
				if (hash_name==name) 
				{
					 return value ? value : '';
				}
				
			}
		}
	}
	return '';
}
function inithash(hash_name)
{ 
	if (hash_name && hash(hash_name))
		return click(hash(hash_name));	

	var para_sep = ';'; //  &
	var value_sep = ',';//  =
	var sStr = window.location.hash;

	if(sStr!='')
	{
		sStr=sStr.substr(1);
		if (sStr == '') return '';
		
		if (sStr=sStr.split(para_sep))
		{
			for (var j=0;j<sStr.length;j++)
			{
					var request=sStr[j].split(value_sep);
					request[1]&&click(request[1]);	
			}
		}
	}
}

function sethash(hash_name,hash_value)
{ 
	var para_sep = ';'; //  &
	var value_sep = ',';//  =
	var sStr = window.location.hash;
	var	hash=sStr.substr(1);
	var new_hash = new Array();
	if (!hash)
	{
		hash = '#'+hash_name+value_sep+hash_value;
	}
	else
	{
		if (sStr=hash.split(para_sep))
		{
			 for (var j=0;j<sStr.length;j++)
			{
				if (sStr[j])
				{
					var request=sStr[j].split(value_sep);
						 name = request[0];
					var value = request[1];

					if (hash_name!=name) new_hash.push(sStr[j]);
				}
			}
		}
		new_hash.push(hash_name+value_sep+hash_value);
		hash = new_hash.join(para_sep);
	}

	window.location.hash = hash;
}
function get_query_string()
{
	var lse=window.location.search;
	var sStr = '';
	if (lse!='')
	{
		sStr=lse.substr(1);
	}
	return sStr;
}
function get(request_name,url)
{ 
	var sStr = url||get_query_string();
	if (sStr == '') return '';
	
	var name='';
	if (sStr=sStr.split("&"))
	{
		 for (var j=0;j<sStr.length;j++)
		{
				var request=sStr[j].split("=");
					 name = request[0];
				var value = request[1];
			if (request_name==name) 
			{
				 return urldecode(value);
			}
		}
	}
	return '';
}
function errorimg(src,obj){if(!JQ(obj).attr('errored'))JQ(obj).attr({errored:'errored',src:src});}
//phpSameName function
function time(){return +new Date;}
function pamstime(){
	//alert(typeof(pams_time))
	if(pams_time==undefined){
		 var pams_time = time();
	}else{
		 var pams_time = pams_time;
	}
	//alert(pams_time);
	return pams_time;
}
function include(fileName)
{
	//JQ('head').append('<scr'+'ipt type="text/javascript" src="'+fileName+'?_='+pamstime()+'"></scr'+'ipt>');
	jQuery.ajax({url: fileName+'?_='+pamstime(),async: false,dataType: "script",cache:true});
}
function require(fileName)
{
	 echo('<scr'+'ipt type="text/javascript" src="'+fileName+'?_='+pamstime()+'"></scr'+'ipt>');
}

function include_once(sFileName)
{
	var loadedScripts = document.getElementsByTagName('script');
	for (var i = 0; i < loadedScripts.length; i++) {
		if (loadedScripts[i].src && loadedScripts[i].src.indexOf(sFileName) == 0)
			return;
	}
	return include(sFileName);
}
function echo(s) 
{
	return document.write(s);
}
function isEmpty(s) 
{
	return  (s == null || s == undefined || s == '' || s == 0) ? true: false;
}
// -- array_diff => 返回一个 arr1 和 arr2 中不重复的数组
function array_diff(arr1, arr2) {
    var arr = new Array() ;
    for (var i = 0; i <arr1.length; i++)  {
        if (JQ.inArray(arr1[i], arr2)==-1) arr.push(arr1[i]);
    }
    return arr;
}

// -- array_unique => 返回一个没有重复值的数组
function array_unique(arr) {
    var ret = new Array() ;
    for (var i = 0; i <arr.length; i++) {
        if (JQ.inArray(arr[i], ret)==-1) ret.push(arr[i]) ;
    }
    return ret;
}

// -- array_keys => 返回一个所有键名数组
function array_keys(arr) {
    var ret = new Array() ;
    for (var i = 0; i <arr.length; i++) {
        ret.push(i);
    }
    return ret;
}

// -- array_values => 返回一个所有值的数组
function aray_values(arr) {
    var ret = new Array() ;
    for (var i = 0; i <arr.length; i++) {
        ret.push(arr[i]);
    }
    return ret;
}
function substr( str, start, len ) {
	if ( str==null || str=="" ) return "";
	 len = len || str.length;
	var buf = new String( str );
	return buf.substr( start, len );
}
//url
function urlencode(sStr) 
{
    return encodeURIComponent(sStr);
}
function urldecode(sStr) 
{
    return decodeURIComponent(sStr);
}
function number_format(number, decimals, dec_point, thousands_sep){
		var n = number, prec = decimals;
	 
		var toFixedFix = function (n,prec) {
			var k = Math.pow(10,prec);
			return (Math.round(n*k)/k).toString();
		}; 
		n = !isFinite(+n) ? 0 : +n;
		prec = !isFinite(+prec) ? 0 : Math.abs(prec);
		var sep = (typeof thousands_sep === 'undefined') ? '' : thousands_sep;
		var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
	 
		var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
	 
		var abs = toFixedFix(Math.abs(n), prec);
		var _, i;
	 
		if (abs >= 1000) {
			_ = abs.split(/\D/);
			i = _[0].length % 3 || 3;
	 
			_[0] = s.slice(0,i + (n < 0)) +
				  _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
			s = _.join(dec);
		} else {
			s = s.replace('.', dec);
		}
	 
		var decPos = s.indexOf(dec);
		if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
			s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
		}
		else if (prec >= 1 && decPos === -1) {
			s += dec+new Array(prec).join(0)+'0';
		}
		return s;
}