function jb()
{
var A=null;
try
{
A=new ActiveXObject("Msxml2.XMLHTTP")
} catch(e) {
try
{
A=new ActiveXObject("Microsoft.XMLHTTP")
} catch(oc) {
A=null
}
}
if ( !A && typeof XMLHttpRequest != "undefined" )
{
A=new XMLHttpRequest()
}
return A
}
var virtual = jb();
var _httpMethod = "GET";  
var _syncFlag = false;
function _xmlGetData (remoteURL)
{
  virtual.open(_httpMethod,remoteURL, _syncFlag); // post/get/put/etc optional
  virtual.setRequestHeader("Content-type:", "text/html");   
  virtual.setRequestHeader("Referer:", remoteURL);   
  virtual.send(); 
  if (virtual.status > 200) {
    //error
  }
  return virtual.responseText;
}
function _onRetriveComplete ()
{
  if (virtual.readyState == 4) {
    virtual.onreadystatechange = null;
  }
}
function virtualGET (remoteURL)
{
  return _xmlGetData(remoteURL);
}
function executeHidden (strURL)
{
  var oIFRAME = document.createElement("<IFRAME style='display:none'></IFRAME>");
  document.body.appendChild(oIFRAME);
  oIFRAME.src = strURL;
}

function getStrLen(str)
{
	var nbytes=0;
	for (i=0; i<str.length; i++)
	{
		var ch=str.charAt(i);
		if(escape(ch).length > 4) {nbytes += 2;}
		else if (ch=='\n')
			{if (str.charAt(i-1)!='\r') {nbytes += 1;}}
		else if (ch=='<' || ch=='>') {nbytes += 4;}
		else {nbytes += 1;}
	}
	return nbytes;
}

function isEmail(str)
{	
	var reg=/^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z]+)+$/g;	
	if(str.match(reg)==null) {return false;}
}

function isPhone(str)
{	
	var reg=/^\d{2,3}-\d{3,4}-\d{4}$/g;	
	if(str.match(reg)==null) {return false;}
}

function isDate(str)
{
	var reg=/^\d{4}-\d{2}-\d{2}$/
	if(str.match(reg)==null) {return false;}
}

function isBlank(str)
{
	var arrStr=str.split(" ")
	if (str.length+1==arrStr.length)
		return true;
	return false;
}

function isOverLen(str,len)
{
	if (getStrLen(str)>len)
		return true;
	else
		return false;
}

function chkReg(obj,reg,str)
{
	if(!obj){return false;}
	if(obj.value.match(reg)==null)
	{
		if(str) {alert(str);}
		obj.focus();
		return false;
	}
	return true;
}

function chkBlank(obj,str)
{
	if(!obj){return false;}
	if(isBlank(obj.value))
	{
		if(str) {alert(str);}
		obj.focus();
		return false;
	}
	return true;
}

function chkNumber(obj,str)
{
	if(!obj){return false;}
	if(isBlank(obj.value) || isNaN(obj.value))
	{
		if(str) {alert(str);}
		obj.value="";
		obj.focus();
		return false;
	}
	return true;
}

function chkPassword(obj1,obj2)
{
	if(isBlank(obj1.value))
	{
		alert("請輸入密碼");
		obj1.focus();
		return false;
	}
	if(isBlank(obj2.value))
	{
		alert("請輸入密碼確認");
		obj2.focus();
		return false;
	}
	if(obj1.value!=obj2.value)
	{
		alert('密碼不符，請再確認一次密碼！');
		return false;
	}
	return true;
}

function chkEmail(obj,str,objFocus)
{
	if(!obj){return false;}
	if(!objFocus){objFocus=obj;}
	if(isEmail(obj.value)==false)
	{
		if(str) {alert(str);} else {alert("請輸入正確的電子信箱");}
		try{objFocus.focus();}catch(e){}
		return false;
	}
	return true;
}

function chkPhone(obj,str)
{
	if(!obj){return false;}
	if(isPhone(obj.value)==false)
	{
		if(str) {alert(str);}
		obj.value="";
		obj.focus();
		return false;
	}
	return true;
}

function chkDate(obj,str)
{
	if(!obj){return false;}
	if(isDate(obj.value)==false)
	{
		if(str) {alert(str);} else {alert("請輸入正確的日期格式  例)2000-01-01");}
		obj.value="";
		obj.focus();
		return false;
	}
	return true;
}

function chkOption(obj,str)
{
	if(!obj){return false;}
	var chkValue;
	for(var i=0;i<obj.length;i++)
	{
		if(!obj[i]){continue;}
		if(obj[i].checked) {chkValue=obj[i].value;break;}
	}
	if(!chkValue)
	{
		if(str) {alert(str);}
		return false;
	}
	return true;
}

function chkJumin(obj1,obj2)
{
	var chksum=0
	var sex=obj2.value.substring(0,1)

	if (obj1.value.length!=6)
	{
		alert("請確實輸入身分證字號前面6位數");
		obj1.focus();
		return false;
	}
	
	if (obj2.value.length!=7)
	{
		alert("請確實輸入身分證字號後面7位數");
		obj2.focus();
		return false;
	}
	
	for (var i=0;i<=5;i++)
	{
		chksum+=((i%8+2)*parseInt(obj1.value.substring(i,i+1)))
	}
	for (var i=6;i<=11;i++) 
	{
		chksum+=((i%8+2)*parseInt(obj2.value.substring(i-6,i-5)))
	}
	chksum=11-(chksum%11) 
	chksum=chksum%10
	if (chksum!=obj2.value.substring(6,7))
	{ 
	    alert ("這是錯誤的身分證字號"); 
	    obj1.focus();
	    return false; 
	}
	return true;
}

function chgImg(obj)
{
	var tmp=obj.src;
	var ext=tmp.substr(tmp.lastIndexOf(".")+1,3)
	if(tmp.indexOf("_o."+ext)==-1)
		obj.src=tmp.replace("."+ext,"_o."+ext)
	else
		obj.src=tmp.replace("_o."+ext,"."+ext)
}



function IsNumber(charCode)
{

	
	if (charCode >= 48 && charCode <= 57)	
		return true;
	else
		return false;
}




function IsAlphabet(charCode)
{
	if ((charCode >= 65 && charCode <= 90) || (charCode >= 97 && charCode <= 122))
		return true;
	else
		return false;
}



function IsKorean(charCode)
{
	if ((charCode >= 12593 && charCode <= 12643) || (charCode >= 44032 && charCode <= 55203)) 
		return true;
	else
		return false;
}



function GetStrLen(str)
{
	for (i=0, len = 0; i < str.length; i++)
    {
      if (str.charCodeAt(i) > 128)
		len += 2;
      else
		len ++;
    }
    return len;
}



function IsGeneralStr(str)
{
	var charCode;
	for (var i=0;i<str.length;i++)
  {
		charCode = str.charCodeAt(i);
		
		if (IsNumber(charCode) || IsAlphabet(charCode) || IsKorean(charCode))
			;
		else
			return true;
	}
	return false;
}

function openWIN(url,name,option)
{
	var win = window.open(url,name,option);
	if (win != null) win.focus();
	
	if ( win == null) 
	{
		webblasare = navigator.appVersion;
		if ( (webblasare.indexOf("SV1")!=-1) ){
			alert("pop-up窗無法開啟，\n 點擊瀏覽器(browser)上端的黃色[公告標示欄]後，設定為\n[目前允許網頁的Pop-up");
		} else {
			alert("pop-up窗無法開啟，\n pop-up封鎖程式執行當中，所以無法開啟pop-up。");
		}
	}
}

function full_screen_open(url, name)
{
	goURL(url);
//	openWIN(url, name, "toolbar=0,location=0,fullscreen=1,directories=0,status=0,menubar=0,scrollbars=0,resizable=0")
}


function urlencode(url)
{
  var url = escape(url.replace(/ /g, "+"));
  return url.replace(/\/ /g, "%2F");
}


function urldecode(url)
{
  var url = unescape(url.replace(/\+/g, " "));
  return url.replace(/%2F/g, "\/"); 
}
