function getValue(userData,specName) {
        var rtnValue = "";
        var specIndex = userData.indexOf(specName + "=", 0);
        if(specIndex>=0) {
                var tempSingleStr;
                for(var i=specIndex+specName.length+1; i<userData.length; i++) {
                        tempSingleStr = userData.charAt(i);
                        if(tempSingleStr!="&")
                                rtnValue += tempSingleStr;
                        else
                                break;
                }
        }
        if ( rtnValue.indexOf("#")>-1)
        {
			rtnValue	= rtnValue.replace("#", "");
        }
        return rtnValue;
}

function showContainer()
{
	var argLength = showContainer.arguments.length;
	
	if ( argLength == 0 )
	{
		return;
	}
		
	for(i=0; i<argLength; i++)
	{
		document.getElementById(showContainer.arguments[i]).style.display = "none";
	}
	
	document.getElementById(showContainer.arguments[0]).style.display = "";
	
  //reset iframe-window height
	var objFrame	= parent.document.getElementById("frmMain");
	if ( objFrame != null )
	{
		var fdh=(objFrame.Document?objFrame.Document.body.scrollHeight:objFrame.contentDocument.body.offsetHeight);
		objFrame.height=(fdh>200?fdh:200);
	}
}

function refreshVerifyImage(path)
{
	if(!path) path = './';
	document.getElementById("imgVerify").src = path+'authimg.php?'+ Math.random();
}

function refreshParentVerifyImage()
{
	document.getElementById("imgVerify").src = '../authimg.php?'+ Math.random();
}

function refreshVerifyImageByCtrlID(ctrlID,path)
{
	if(!path) path = './';
	document.getElementById(ctrlID).src = path+'authimg.php?'+ Math.random();
}

function FormatDateStr(stDate)
{
	var sDay = "";
	var sTmp = "";

	sDay += stDate.getFullYear() + "-";
	
	sTmp += (stDate.getMonth() + 1);
	if (sTmp.length == 1){
		sDay += "0"; sDay += sTmp;
	}
	else
		sDay += sTmp;
	
	sDay += "-";
	
	sTmp="";
	sTmp += stDate.getDate();
	if (sTmp.length == 1) {
		sDay += "0"; 
		sDay += sTmp;
	}
	else
		sDay += sTmp;	

	return sDay;
}

function GetCurDateStr(){
	var stDate = new Date();
	
	return FormatDateStr(stDate);
}

function GetLastMonthCurDateStr(){
	var curDate = new Date();	
	var stDate = new Date(curDate.setMonth(curDate.getMonth() - 1));

	return FormatDateStr(stDate);
}

function GetCurMonFistDayStr(){
	var sFirstDay="";
	var iMonth="";
	var stDate = new Date();

	sFirstDay += stDate.getFullYear()+"-";
	iMonth = stDate.getMonth() + 1;
	if (iMonth < 10)
		sFirstDay += "0";
	sFirstDay += iMonth + "-";
	sFirstDay += "01";
	
	return sFirstDay;
}
function isNumeric(strNumber)
{
	var i,j,strTemp,NUM;
  
    strTemp="0123456789";
      
    for (i=0;i<strNumber.length;i++) 
    {
        j = strTemp.indexOf(strNumber.charAt(i));
  
        if (j==-1) 
        {
            return false;
        }
    }

    return true;
}

function isInt(strNumber)
{
	if (strNumber.indexOf(".")>-1)
	{
		return false;
	}
	
	var num = parseInt(strNumber);
	
	if ( isNaN(num) )
	{
		return false;
	}
	
	return true;
}

function isTenTimesInt(strNumber)
{
	if (strNumber.indexOf(".")>-1)
	{
		return false;
	}
	
	var num = parseInt(strNumber);
	
	if ( isNaN(num) )
	{
		return false;
	}
	
	var tmpNum = num % 10;
	
	if ( tmpNum > 0 )
	{
		return false;
	}
	
	return true;
}

function expandCtrl(objFrom, ctrlID, fromText)
{
	objCtrl = document.getElementById(ctrlID);

	if ( objCtrl.style.display == "" || objCtrl.style.display == "block")
	{
		objFrom.innerHTML 		= "+" + objFrom.innerHTML.substring(1, objFrom.innerHTML.length);
		objCtrl.style.display 	= "none";
	}
	else
	{
		objFrom.innerHTML 		= "-" + objFrom.innerHTML.substring(1, objFrom.innerHTML.length);
		objCtrl.style.display 	= "block";
	}
	
	//reset iframe-window height
	var objFrame	= parent.document.getElementById("main_content");
	if ( objFrame != null )
	{
		var fdh=(objFrame.Document?objFrame.Document.body.scrollHeight:objFrame.contentDocument.body.offsetHeight);
		objFrame.height=(fdh>200?fdh:200);
	}
}

function getLoginUin()
{
	var objFlag = document.getElementById("flag");
	
	if ( objFlag == null )
	{
		objFlag	= parent.document.getElementById("flag");
		objUin	= parent.document.getElementById("loginUin");
		
		if ( objFlag == null || objUin == null)
		{
			return 0;
		}
		else
		{
			return objUin.value;
		}
	}
	else
	{
    return document.getElementById("loginUin").value;
	}
}

function checkCon(uin){
	if( ((uin.length == 9) && (parseInt(uin.substr(8,1)) <= 9))
		||(uin.length == 8) 
	    ||(uin.length == 7) )
	{
		return true;
	}
	
	return false;
}

function writeTerms()
{
	if ( service.TermUrl != "" )
	{
		document.write("<input name=\"ckb\" type=\"checkbox\" checked=\"checked\"/><label>本人同意并接受 <a href=\"" + service.TermUrl + "\" target=\"_blank\" class=\"yzm\">" + service.ServiceName + "服务条款</a></label>");
	}
}
function writeServiceFee()
{
	document.write("<label>" + service.ServiceName + "服务资费：<span class=\"orange\">" + service.ServiceFee + "</span>元/月</label>");
}
//Example:2008-02-26
function ToDayString(objDate)
{
	var year	= objDate.getFullYear();
	//月需要特殊处理,0表示1月,1表示2月...
	var month	= objDate.getMonth()+1;
	var day		= objDate.getDate();
	var retValue="";
	retValue	= retValue+year+"-";
	if(month<10)
		retValue	= retValue+"0"+month+"-";
	else
		retValue	= retValue+month+"-";
	if(day<10)
		retValue	= retValue+"0"+day;
	else
		retValue	= retValue+day;
	return retValue;
}

function CheckUrlCredit(sUrl)
{
	return (/^(https?:\/\/)?[\w\-.]+\.(qq|paipai|soso|taotao|tenpay)\.com($|\/|\\)/i).test(sUrl)||(/^[\w][\w\/\.\-_%]+$/i).test(sUrl)||(/^[\/\\][^\/\\]/i).test(sUrl) ? true : false;
}

function getUrlParam(paramName) {
        var rtnValue = "";
        var userData = window.location.href;
        var specIndex = userData.indexOf(paramName + "=", 0);
        if(specIndex>=0) {
                var tempSingleStr;
                for(var i=specIndex+paramName.length+1; i<userData.length; i++) {
                        tempSingleStr = userData.charAt(i);
                        if(tempSingleStr!="&")
                                rtnValue += tempSingleStr;
                        else
                                break;
                }
        }
        if ( rtnValue.indexOf("#")>-1)
        {
			rtnValue	= rtnValue.replace("#", "");
        }
        return rtnValue;
}
function getTopUrlParam(paramName) {
        var rtnValue = "";
        var userData = top.window.location.href;
        var specIndex = userData.indexOf(paramName + "=", 0);
        if(specIndex>=0) {
                var tempSingleStr;
                for(var i=specIndex+paramName.length+1; i<userData.length; i++) {
                        tempSingleStr = userData.charAt(i);
                        if(tempSingleStr!="&")
                                rtnValue += tempSingleStr;
                        else
                                break;
                }
        }
        if ( rtnValue.indexOf("#")>-1)
        {
			rtnValue	= rtnValue.replace("#", "");
        }
        return rtnValue;
}

function isValidEmail(mail)
{
	return (new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail)); 
}

function URLencode(sStr) 
{
	return escape(sStr).replace(/\+/g, '%2B').replace(/\"/g,'%22').replace(/\'/g, '%27').replace(/\//g,'%2F');
}

//获取source中指定参数名的值，格式为name1=value1分隔符name2=value2分隔符name3=value3
//其中分隔符由separator指定，如getParam("name1=value1&name2=value2&name3=value3","name2", "&") = "value2"
function getParamValue(source, name, separator){
	separator = separator.replace(/\\/g, "\\\\");
	separator = separator.replace(/\//g, "\\/");
	separator = separator.replace(/\*/g, "\\*");
	separator = separator.replace(/\+/g, "\\+");
	separator = separator.replace(/\?/g, "\\?");
	separator = separator.replace(/\|/g, "\\|");
	separator = separator.replace(/\./g, "\\.");
	separator = separator.replace(/\(/g, "\\(");
	separator = separator.replace(/\(/g, "\\)");
	separator = separator.replace(/\[/g, "\[)");
	separator = separator.replace(/\]/g, "\])");
	separator = separator.replace(/\{/g, "\{)");
	separator = separator.replace(/\}/g, "\})");

	var r = new RegExp("(^|" + separator + ")" + name + "=([^" + separator + "]*)(" + separator + "|$)");
	var m = source.match(r);
	return (!m?"":m[2]);
}

var $ = function (id) {
	return "string" == typeof id ? document.getElementById(id) : id;
};

var Extend = function(destination, source) {
	for (var property in source) {
		destination[property] = source[property];
	}
	return destination;
}

var CurrentStyle = function(element){
	return element.currentStyle || document.defaultView.getComputedStyle(element, null);
}

var Bind = function(object, fun) {
	var args = Array.prototype.slice.call(arguments).slice(2);
	return function() {
		return fun.apply(object, args.concat(Array.prototype.slice.call(arguments)));
	}
}

var forEach = function(array, callback, thisObject){
	if(array.forEach){
		array.forEach(callback, thisObject);
	}else{
		for (var i = 0, len = array.length; i < len; i++) { callback.call(thisObject, array[i], i, array); }
	}
}

var Tween = {
	Quart: {
		easeOut: function(t,b,c,d){
			return -c * ((t=t/d-1)*t*t*t - 1) + b;
		}
	},
	Back: {
		easeOut: function(t,b,c,d,s){
			if (s == undefined) s = 1.70158;
			return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
		}
	},
	Bounce: {
		easeOut: function(t,b,c,d){
			if ((t/=d) < (1/2.75)) {
				return c*(7.5625*t*t) + b;
			} else if (t < (2/2.75)) {
				return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
			} else if (t < (2.5/2.75)) {
				return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
			} else {
				return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
			}
		}
	}
}


//容器对象,滑动对象,切换数量
var SlideTrans = function(container, slider, count, options) {
	this._slider = $(slider);
	this._container = $(container);//容器对象
	this._timer = null;//定时器
	this._count = Math.abs(count);//切换数量
	this._target = 0;//目标值
	this._t = this._b = this._c = 0;//tween参数
	
	this.Index = 0;//当前索引
	
	this.SetOptions(options);
	
	this.Auto = !!this.options.Auto;
	this.Duration = Math.abs(this.options.Duration);
	this.Time = Math.abs(this.options.Time);
	this.Pause = Math.abs(this.options.Pause);
	this.Tween = this.options.Tween;
	this.onStart = this.options.onStart;
	this.onFinish = this.options.onFinish;
	
	var bVertical = !!this.options.Vertical;
	this._css = bVertical ? "top" : "left";//方向
	
	//样式设置
	var p = CurrentStyle(this._container).position;
	p == "relative" || p == "absolute" || (this._container.style.position = "relative");
	this._container.style.overflow = "hidden";
	this._slider.style.position = "absolute";
	
	this.Change = this.options.Change ? this.options.Change :
		this._slider[bVertical ? "offsetHeight" : "offsetWidth"] / this._count;
};
SlideTrans.prototype = {
  //设置默认属性
  SetOptions: function(options) {
	this.options = {//默认值
		Vertical:	true,//是否垂直方向（方向不能改）
		Auto:		true,//是否自动
		Change:		0,//改变量
		Duration:	100,//滑动持续时间
		Time:		10,//滑动延时
		Pause:		4000,//停顿时间(Auto为true时有效)
		onStart:	function(){},//开始转换时执行
		onFinish:	function(){},//完成转换时执行
		Tween:		Tween.Quart.easeOut//tween算子
	};
	Extend(this.options, options || {});
  },
  //开始切换
  Run: function(index) {
	//修正index
	index == undefined && (index = this.Index);
	index < 0 && (index = this._count - 1) || index >= this._count && (index = 0);
	//设置参数
	this._target = -Math.abs(this.Change) * (this.Index = index);
	this._t = 0;
	this._b = parseInt(CurrentStyle(this._slider)[this.options.Vertical ? "top" : "left"]);
	this._c = this._target - this._b;
	
	this.onStart();
	this.Move();
  },
  //移动
  Move: function() {
	clearTimeout(this._timer);
	//未到达目标继续移动否则进行下一次滑动
	if (this._c && this._t < this.Duration) {
		this.MoveTo(Math.round(this.Tween(this._t++, this._b, this._c, this.Duration)));
		this._timer = setTimeout(Bind(this, this.Move), this.Time);
	}else{
		this.MoveTo(this._target);
		this.Auto && (this._timer = setTimeout(Bind(this, this.Next), this.Pause));
	}
  },
  //移动到
  MoveTo: function(i) {
	this._slider.style[this._css] = i + "px";
  },
  //下一个
  Next: function() {
	this.Run(++this.Index);
  },
  //上一个
  Previous: function() {
	this.Run(--this.Index);
  },
  //停止
  Stop: function() {
	clearTimeout(this._timer); this.MoveTo(this._target);
  }
};

function runStyle(container, slider, num, vertical){
	var tds = $(slider).getElementsByTagName("td");
	var st = new SlideTrans(container, slider, tds.length, { Vertical: vertical });
	var nums = [];
	//插入数字
	for(var i = 0, n = st._count - 1; i <= n;){
		(nums[i] = $("idNum").appendChild(document.createElement("li"))).innerHTML = ++i;
	}	
	forEach(nums, function(o, i){
		o.onmouseover = function(){ o.className = "on"; st.Auto = false; st.Run(i); }
		o.onmouseout = function(){ o.className = ""; st.Auto = true; st.Run(); }
	})	
	//设置按钮样式
	st.onStart = function(){
		forEach(nums, function(o, i){ o.className = st.Index == i ? "on" : ""; })
	}
	/*
	$("idTween").onchange = function(){
		switch (parseInt(this.value)){
			case 2 :
				st.Tween = Tween.Bounce.easeOut; break;
			case 1 :
				st.Tween = Tween.Back.easeOut; break;
			default :
				st.Tween = Tween.Quart.easeOut;
		}
	}
	*/
	st.Tween = Tween.Bounce.easeOut;
	st.Run();	
}

function isChinaIDCard(StrNo){
  StrNo = StrNo.toString();
  switch(StrNo.length){
	  case 15:
			if(!isValidDate("19"+StrNo.substr(6,2),StrNo.substr(8,2),StrNo.substr(10,2))){return 4;}
	  break;
	  case 18:
			if(!isValidDate(StrNo.substr(6,4),StrNo.substr(10,2),StrNo.substr(12,2))){return 4;}
	  break;
	  default:
	  	return 1;
	  break;
  }
  if(StrNo.length==18){
    var a,b,c;
    if (!isInteger(StrNo.substr(0,17))){return 3;}
    a=parseInt(StrNo.substr(0,1))*7+parseInt(StrNo.substr(1,1))*9+parseInt(StrNo.substr(2,1))*10;
    a=a+parseInt(StrNo.substr(3,1))*5+parseInt(StrNo.substr(4,1))*8+parseInt(StrNo.substr(5,1))*4;
    a=a+parseInt(StrNo.substr(6,1))*2+parseInt(StrNo.substr(7,1))*1+parseInt(StrNo.substr(8,1))*6;
    a=a+parseInt(StrNo.substr(9,1))*3+parseInt(StrNo.substr(10,1))*7+parseInt(StrNo.substr(11,1))*9;
    a=a+parseInt(StrNo.substr(12,1))*10+parseInt(StrNo.substr(13,1))*5+parseInt(StrNo.substr(14,1))*8;
    a=a+parseInt(StrNo.substr(15,1))*4+parseInt(StrNo.substr(16,1))*2;
    b=a%11;
    if(b==2){ //最后一位为校验位
    	c=StrNo.substr(17,1).toUpperCase(); //转为大写X
    }else{
    	c=parseInt(StrNo.substr(17,1));
    }
    if(b==0&&c!=1) return 2;
    if(b==1&&c!=0) return 2;
    if(b==2&&c!="X") return 2;
    if(b==3&&c!=9) return 2;
    if(b==4&&c!=8) return 2;
    if(b==5&&c!=7) return 2;
    if(b==6&&c!=6) return 2;
    if(b==7&&c!=5) return 2;
    if(b==8&&c!=4) return 2;
    if(b==9&&c!=3) return 2;
    if(b==10&&c!=2) return 2;
	}else if(StrNo.length == 15){
		if (!isInteger(StrNo)) return 3;
	}
	return 0;
}
 
function isValidDate(iY, iM, iD){
	try{
		var a=new Date(iY,iM-1,iD);
		var yyyy=a.getFullYear();
		var m=a.getMonth();
		var d=a.getDate();
		m=m+1;
		if(m>12) m=1;
		//alert(yyyy+','+iY+','+m+','+iM+','+d+','+iD);
		if(yyyy!=iY || m!=iM || d!=iD){
			return false;
		}
		return true;
	}catch(e){return false;}
}

function isInteger(str){
	if(/[^\d]+$/.test(str)){
		return false;
	}
	return true;
}

function Sleep(obj,iMinSecond){
	if (window.eventList==null)
		window.eventList=new Array();
	var ind=-1;
	for (var i=0;i<window.eventList.length;i++){
		if(window.eventList[i]==null){
			window.eventList[i]=obj;
			ind=i;
			break;
		}
	}
	if (ind==-1){
		ind=window.eventList.length;  
		window.eventList[ind]=obj;
	}
	setTimeout("GoOn(" + ind + ")",iMinSecond);
}
function GoOn(ind){
   var obj=window.eventList[ind];
   window.eventList[ind]=null;
   if (obj.NextStep) obj.NextStep();
   else obj();
}

