function isValidInputStr(sStr) {
	var myReg = /^['-._@\sA-Za-z0-9]+['-._@\sA-Za-z0-9]$/;
	return myReg.test(sStr);	
}
function isValidEmail(sEmail)
{
	var myReg = /^[\-._a-zA-Z0-9]+@([\-_a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,3}$/;
	var sEmails,i;
	
	
	sEmails = sEmail.replace(/(;)/g,",").split(",");
	for (i=0;i<sEmails.length ;i++ ){
		if(!myReg.test(sEmails[i].replace(/(^\s*)|(\s*$)/g, ""))) {
			return false;
		}
	}
	return true;	
	
}

function isEmpty(s1)
{
	var sValue = s1 + "";
	var test = / /g;
	sValue = sValue.replace(test, "");
	return sValue==null || sValue.length<=0;
}

function onCancel()
{
	window.location.href = "conf_list.asp";
}

function isValidNumber(s1)
{
	var i,j;	
	var strTemp="0123456789";
	if (isEmpty(s1))
		return false;
	
	var bRet = true;
	for (i=0;i<s1.length;i++)
	{
		j=strTemp.indexOf(s1.charAt(i)); 
		if (j==-1)
		{
			bRet = false;
			break;
		}
	}	
	return bRet;
}

function isValidTel(s1)
{
	var i,j;
	var strTemp="0123456789-()#+ ";
	
	if (isEmpty(s1))
		return false;
		
	var bRet = true;
	for (i=0;i<s1.length;i++)
	{
		j=strTemp.indexOf(s1.charAt(i)); 
		if (j==-1)
		{			
			bRet = false;
			break;
		}
	}
	return bRet;
}

function isValidAccount(s1)
{
	var myReg = /^[-._@A-Za-z0-9]+[-._@A-Za-z0-9]$/;
	return myReg.test(s1);	
}
function isValidIP(v) {
  nums=v.split(".");
  if(nums.length!=4)return false;
  for(j=0;j<4;j++){
    if(!isValidNumber(nums[j],0,255))return false;
  }
  return true;
} 
function isValidHostName(s1)
{
	var myReg = /^[-._A-Za-z0-9]+[-._A-Za-z0-9]$/;
	return myReg.test(s1);	
}
function CJSObject() {
	this.mAttrName = new Array();
	this.mAttrValue = new Array();
	this.mAttrNameNoValue = new Array();
	this.mParamName = new Array();
	this.mParamValue = new Array();
	this.SetAttr = function(sAttrName, sAttrValue) {
		this.mAttrName[this.mAttrName.length] = sAttrName;
		this.mAttrValue[this.mAttrValue.length] = sAttrValue;
	}
	this.SetAttrNoValue = function(sAttrName) {
		this.mAttrNameNoValue[this.mAttrNameNoValue.length] = sAttrName;
	}
	this.SetParam = function(sParamName, sParamValue) {
		this.mParamName[this.mParamName.length] = sParamName;
		this.mParamValue[this.mParamValue.length] = sParamValue;
	}
	this.GetObjectHTML = function() {
		var sRet = "";
		
		sRet += "<";
		sRet += "ob";
		sRet += "je";
		sRet += "ct";
		for (var i = 0; i < this.mAttrName.length; i++) {
			sRet += " " + this.mAttrName[i] + "=\"" + this.mAttrValue[i] + "\"";
		}
		for (var i = 0; i < this.mAttrNameNoValue.length; i++) {
			sRet += " " + this.mAttrNameNoValue[i];
		}
		sRet += "\">\r\n";
		for (var i = 0; i < this.mParamName.length; i++) {
			sRet += "\t<";
			sRet += "pa";
			sRet += "ram";
			sRet += " name=\"" + this.mParamName[i];
			sRet += "\" value=\"" + this.mParamValue[i];
			sRet += "\">\r\n";
		}
		sRet += "</";
		sRet += "obj";
		sRet += "e";
		sRet += "ct";
		sRet += ">\r\n";
		
		return sRet;				
	}
}

Date.prototype.DateAdd = function(strInterval, Number) {    
    var dtTmp = this;   
    switch (strInterval) {    
        case 's' :return new Date(Date.parse(dtTmp) + (1000 * Number));   
        case 'n' :return new Date(Date.parse(dtTmp) + (60000 * Number));   
        case 'h' :return new Date(Date.parse(dtTmp) + (3600000 * Number));   
        case 'd' :return new Date(Date.parse(dtTmp) + (86400000 * Number));   
        case 'ww' :return new Date(Date.parse(dtTmp) + ((86400000 * 7) * Number));   
        case 'q' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number*3, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());   
        case 'm' :return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + Number, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());   
        case 'yyyy' :return new Date((dtTmp.getFullYear() + Number), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds());   
    }   
}

function CBrowser()
{
	this.n = navigator.userAgent.toLowerCase();
	this.is_major = parseInt(navigator.appVersion);
  this.is_minor = parseFloat(navigator.appVersion);

	this.firefox = (this.n.indexOf("firefox") >= 0);
	this.firefox3 = (this.n.indexOf("firefox/3.") >= 0);
	this.seamonkey = (this.n.indexOf("seamonkey") >= 0);
	this.op = !!(window.opera && document.getElementById);
	this.op6 = !!(this.op && !(this.db && this.db.innerHTML));
	this.ie = (this.n.indexOf("msie") >= 0 && document.all && !this.op);
	this.iemac = !!(this.ie && this.n.indexOf("mac") >= 0);
	this.ie3    = (this.ie && (this.is_major < 4));
	this.ie4 = (this.ie && (this.is_major == 4) && (this.n.indexOf("msie 4")!=-1) );
	this.ie5up  = (this.ie && !this.ie3 && !this.ie4);	
	this.mac = (this.n.indexOf("macintosh") >=0)
	this.n4 = !!(document.layers && typeof document.classes != "undefined");
	this.n6 = !!(typeof window.getComputedStyle != "undefined" && typeof document.createRange != "undefined");
	this.w3c = !!(!this.op && !this.ie && !this.n6 && document.getElementById);
	this.ce = !!(document.captureEvents && document.releaseEvents);
	this.wsafari = (this.n.indexOf("windows") >=0 && this.n.indexOf("safari") >=0 )
	
	//added by haitao 2006.4.13 check safari browser with macintosh
	this.safver = (this.n.indexOf("safari") > 0)?this.n.substring(this.n.indexOf("safari")+7,this.n.length):"0";
	this.safari = (this.n.indexOf("macintosh") >=0 && this.n.indexOf("safari") >=0 )
		
}
function IsOpera() {
	var b = new CBrowser();
	return b.op6;		
}
function IsWSafari() {
	var b = new CBrowser();
	return b.wsafari;	
}
function IsIE()
{	
	var b = new CBrowser();
	return b.ie;
}
function IsFirefox() {
	var b = new CBrowser();
	return b.firefox;
}
function IsFirefox3() {
	var b = new CBrowser();
	return b.firefox3;
}
function IsSeamonkey() {
	var b = new CBrowser();
	return b.seamonkey;
}
function IsSupportBrowser() {
	var sAgent;
	
	sAgent = navigator.userAgent.toLowerCase();
	if ( IsIE() || ((IsFirefox() || IsSeamonkey() || IsWSafari() || IsOpera() ) && sAgent.indexOf("windows") >= 0) ) {
		return true;
	} else {
		return false;
	}	
}
function IsPlayStudioSupportBrower() {
	if ( IsWSafari() || IsOpera() || IsFirefox3() ) {
		return false;
	}
	if ( IsSupportBrowser() || IsMac() ) {
		return true;
	} else {
		return false;
	}	
}

function IsWinVista() {
	var sAgent;
	
	sAgent = navigator.userAgent.toLowerCase();
	return sAgent.indexOf("windows nt 6.0")>-1;	
}

function IsAdvancedBrowser() {
	if (IsSupportBrowser()) {
		if(IsIE() && !IsIE5()) {
			return false;
		}
		return true;
	}
	return false;
}
function IsIE5()
{	
	var b = new CBrowser();
	return b.ie5up;
}

function IsMac()
{
	var b = new CBrowser();
	return b.mac;	
}
function processMultiBrowser(sExpression) {
	var sReturn;
	
	sReturn = sExpression;
	if ( !IsIE() ) {
		sReturn = sExpression.replace(".innerText",".textContent");
	}	else {
		sReturn = sExpression;
	}
	return sReturn;
}

function myGetElementById(idname){   
    var Objs=document.getElementsByName(idname);   
    var Obj;   
    if (Objs.length>1){   
        for (var i=0;i<Objs.length;i++){   
            Obj=Objs[i];   
            if (Obj.id==idname){   
                break;   
            }   
        }   
    }   
    else{   
        Obj= Objs[0];   
    }   
    return Obj;   
}  
function $(_sId){
	var obj,err;		
	try {
		obj = document.getElementById(_sId);
	} catch(err) {
		
	}
	if ( !obj ) {
		//alert(_sId);
	} else {
		return obj;
	}	
}
function getFFWMP(aCodeBase) {	
	var sReturn;
	var sCodeBase="";
	
	if ( aCodeBase.length > 0 ) {
		sCodeBase = "/login/get_file.asp?filename=" + aCodeBase;
	}	
	sReturn = '<object type="application/x-ms-wmp" id="wmp" name="wmp" width="0" height="0" codeBase="' + sCodeBase + '">';
	sReturn += '<param name="autostart" value="false" />';
	sReturn += '<param name="allowChangeDisplaySize" value="true" />';
	sReturn += '<param name="stretchToFit" value="true" />';
	sReturn += '<param name="autosize" value="false" />';
	sReturn += '<param name="windowlessVideo" value="true" />';
	sReturn += '<param name="EnableContextMenu" value="false" />';	
	sReturn += '</object>';
	return sReturn;
	
}
function getFFWMPCache(aCodeBase) {	
	var sReturn;
	var sCodeBase="";
	
	if ( aCodeBase.length > 0 ) {
		sCodeBase = "/login/get_file.asp?filename=" + aCodeBase;
	}	
	sReturn = '<object type="application/x-ms-wmp" id="wmpCache" name="wmpCache" width="100" height="100" codeBase="' + sCodeBase + '">';
	sReturn += '<param name="autostart" value="true" />';
	sReturn += '<param name="volume" value="0" />';
	sReturn += '<param name="uiMode" value="none" />';
	sReturn += '</object>';
	return sReturn;
	
}

function getWebConf(aCodeBase) {	
	var sReturn;
	var sCodeBase="";
	
	if ( aCodeBase.length > 0 ) {
		sCodeBase = "/login/get_file.asp?filename=" + aCodeBase;
	}	
	sReturn = '<object type="application/win32/webconf" id="opr" name="opr" width="0" height="0" codeBase="' + sCodeBase + '">';
	sReturn += '</object>';
	return sReturn;
	
}
function installWebConf(aCodeBase) {
	var sCodeBase="";
	var strXPI;

	if ( aCodeBase.length > 0 ) {
		sCodeBase = "/login/get_file.asp?filename=" + aCodeBase;
	}	
	strXPI = {'WebConf':sCodeBase};
	return InstallTrigger.install(strXPI,xpinstallCallback);	
}
function updateWebConf(aCodeBase) {
	var sCodeBase="";
	var strXPI;	

	if ( aCodeBase.length > 0 ) {
		sCodeBase = "/login/get_file.asp?filename=" + aCodeBase;
	}	
	strXPI = {'WebConf':sCodeBase};	
	return InstallTrigger.install(strXPI,xpinstallCallback);	
}

function IsSupportInstallTrigger() {
	if( getWebConfInstallFileType().toLowerCase() == "xpi" ) {
		return InstallTrigger.enabled();
	} else {
		return false;
	}
}
function getWebConfInstallFileType() {
	return "exe";
}
function checkWebConfVer(aVer)
{
	if (navigator.plugins)
	{
		np = navigator.plugins;
		for (var i = 0; i < np.length; i++)
		{
			if (np[i].name.indexOf("WebConf") >= 0)
			{
				var pname = np[i].name;				
				pname = pname.substring(pname.indexOf(",")-1).replace(/( )/g,"");
				if ( pname == aVer ) {
					return true;
				}	
			}
		}	
	}	
	
	return false;	
}
function IsWebConfInstalled()
{
	if (navigator.plugins)
	{
		np = navigator.plugins;
		for (var i = 0; i < np.length; i++)
		{
			if (np[i] && np[i].name.indexOf("WebConf") >= 0)
			{
					return true;
			}
		}	
	}	
	return false;	
}

function copyToClipboard(sTemp,sFFTips)
{    
	var bRet;
	
    //IE            
    if(window.clipboardData)
    {
      window.clipboardData.clearData();
      bRet = window.clipboardData.setData("Text", sTemp);
      return bRet;
    }   
    //FireFox
    else if (IsFirefox())
    {
        try
        {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        }
        catch (e)
        {
            alert(sFFTips);
            return false;
        }
        var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);
        if (!clip)
            return false;
        var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);
        if (!trans)
            return false;
        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 = sTemp;
        str.data = copytext;
        trans.setTransferData("text/unicode",str,copytext.length*2);
        var clipid = Components.interfaces.nsIClipboard;
        if (!clip)
        	return false;
        clip.setData(trans,null,clipid.kGlobalClipboard);
        return true;
    } else {
    		var flashcopier = 'flashcopier';
        if(!document.getElementById(flashcopier)) 
        {
          var divholder = document.createElement('div');
          divholder.id = flashcopier;
          document.body.appendChild(divholder);
        }
        document.getElementById(flashcopier).innerHTML = '';
        var divinfo = '<embed src="/aculearn-idm/images/clipboard.swf" FlashVars="clipboard='+encodeURIComponent(sTemp)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
        document.getElementById(flashcopier).innerHTML = divinfo;  
        return true;  	
    }    
}

function checkBrowser(aQueryStr,aReferURL) {	
	if ( (IsSupportBrowser() || ( IsPlayStudioSupportBrower() && aReferURL.toLowerCase().indexOf('acustudio') > 0 )) && !IsIE() ) {
		location.href = "/login/other_browser_continue.asp?ref=" + UrlEncode(aReferURL);
		return false;
	} else if ( !IsSupportBrowser() ) {
		location.href = "/login/other_browser.asp?" + aQueryStr;
		return false;		
	}
	return true;
}
function UrlEncode(str){
 var i,c,ret="",strSpecial="!\"#$%&'()*+,/:;<=>?@[\]^`{|}~%";
 for(i=0;i<str.length;i++){  
   c=str.charAt(i);
   if(c==" ")
    ret+="+";
   else if(strSpecial.indexOf(c)!=-1)
    ret+="%"+str.charCodeAt(i).toString(16);
   else
    ret+=c;
  }
 return ret;
}
function HtmlDecode(text) {
	return   text.replace(/&amp;/g, '&').replace(/&quot;/g, '\"').replace(/&lt;/g, '<').replace(/&gt;/g, '>');   
}
function HtmlEncode(text) {
	return   text.replace(/&/g, '&amp').replace(/\"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');   
}
String.prototype.Trim = function()
{
	return this.replace(/(^\s*)|(\s*$)/g, "");
}
String.prototype.LTrim = function()
{
	return this.replace(/(^\s*)/g, "");
}
String.prototype.Rtrim = function()
{
	return this.replace(/(\s*$)/g, "");
}
function ShortenString(sStr, nLen) {
	
	var r = /[^\x00-\xff]/g;
  if(sStr.replace(r, "mm").length <= nLen) return sStr;
  nLen = nLen - 3;
  var m = Math.floor(nLen/2);
  for(var i=m; i<sStr.length; i++)
  {
    if(sStr.substr(0, i).replace(r, "mm").length >= nLen)
    {
      return sStr.substr(0, i) +"...";
    }
  }
  return sStr;
}

function ShowTipsWin(sContent)
{
		var mouse_x, mouse_y, divTips;
		
		divTips = document.getElementById("tipsWin");
		if ( !divTips ) {
				divTips = document.createElement('div');
				divTips.style.visibility = "hidden";
				divTips.style.display = "none";
				document.body.appendChild(divTips);				
				divTips.style.left = 0;
	 			divTips.style.top = 0;
		}		
		divTips.style.visibility = "visible";    
	 	divTips.style.display = "";
	 	
		divTips.innerHTML=sContent;
		divTips.id = "tipsWin";
		divTips.style.position="absolute";
		divTips.style.zIndex = 100;   
		divTips.style.background = "#FFFFE1";
		
		if(!document.all){
	      mouse_x=event.pageX;
	      mouse_y=event.pageY + 21;
	  }else{
	      mouse_x = document.body.scrollLeft+event.clientX;
	      mouse_y=document.body.scrollTop+event.clientY + 21;  
	  }
	  		
	  mouse_x = divTips.offsetWidth + mouse_x < document.body.scrollLeft + document.body.clientWidth ? mouse_x : document.body.clientWidth - divTips.offsetWidth - 0;
		mouse_y = divTips.offsetHeight + mouse_y < document.body.scrollTop + document.body.clientHeight ? mouse_y : mouse_y - divTips.offsetHeight - 21;

	 	divTips.style.left = mouse_x;
	 	divTips.style.top = mouse_y;	 
}
function HiddeTipsWin() {
	var divTips;
	 divTips = document.getElementById("tipsWin");
	 if ( divTips ) {
		divTips.style.visibility = "hidden";
	 }	
}

