/**
* 文件名稱：validate_check.js
* Description: 常用的一些網頁輸入控制.比如檢查是否有為英文等等
* =====================目 錄=========================
* function ValidateUserName(Sting):一個常規的判斷用戶名是否合法的函數
* function CheckIfEmail(email):判斷是否為合法email格式
* function CheckIfEnglish(String):判斷是否為英文字母串(含數字)
* function CheckIfLowerWord(String):判斷是否為小寫字母串(含數字)
* function CheckIfUpperWord(String):判斷是否為大寫字母串(含數字)
* function CheckIfSpace(String):判斷是否為空或為空格
* function CheckIfSpace(String):判斷是否為空或為空格
* function Ltrim(str):去除一個字符串的左邊空格,相當於常見的Ltrim()函數.
* function Ltrim(str):去除一個字符串的右邊空格,相當於常見的Rtrim()函數.
* function Ctrim(str):去除一個字符串的前後空格,相當於常見的trim()函數.
* function Checkifnumber(num):判斷是否為數字
* function checkpersonid(formid):簡單地判斷是否為證件號碼
* function CheckIfInteger(String):判斷是否為整數(正負均可).
* function CheckIfFloat(String):判斷是否為浮點型數據(正負均可).
* function CheckValidateChar(strTemp):判斷是否合法
* function CheckIfDate(strDate):判斷一個字符串是否為合法日期,日期格式：YYYY-MM-DD
* function CheckIfPeriod(startDate,endDate):檢查輸入的起止日期是否正確，規則為兩個日期的格式正確或都為空且結束日期>=起始日期(日期格式為yyyy-mm-dd)</p>
* function ErrorAlert(item,text):常規的錯誤提示函數,給出提示信息後,聚焦在所指定的表單元素上.
* function checkAll():全選或全不選表單中的CHECKBOX元素
* function CheckIfAnyChecked(f):判斷表單中是否checkbox被選中.
* function trim(strMessage):去除字串的空白.
* function ChangeLayer(item):顯示或隱藏圖層.
* function checkFileUpload(form,extensions,requireUpload,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight):上傳檔案驗證
* @version 1.0
* =====================目 錄=========================
*/



/**
* ===================================================
* 一個常規的判斷用戶名是否合法的函數
* @param Sting
* @return 如果通過驗證返回true,否則返回false,並給出提示的錯誤信息；
*/

function ValidateUserName(Sting)
{
var flag1=true;
errInfo="";
if(Sting.length<1||Sting.length>20){
	errInfo="您的用戶名長度不符和規定！！"
	flag1=false;
}else{
	var compStr="?,./\\\">~`!@#$%^&*()_+-=[]{};\':\"<>?,.| ";
	var length2=Sting.length;
	for (var iIndex=0;iIndex<length2;iIndex++){
		var temp1=compStr.indexOf(Sting.charAt(iIndex));
		if(temp1>=0){
			errInfo=errInfo+Sting.charAt(iIndex);
			flag1=false;
		}
	}
	if(!flag1)
		errInfo="您的帳號中包含非法字符：\n" +errInfo;
}
	return flag1;
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷一個字符串是否為合法email格式
* @param email
* @return 如果通過驗證返回true,否則返回false,並給出提示的錯誤信息；
*/

function CheckIfEmail(email)
{
invalid = "";
if (email.length== 0){
	invalid = "請輸入您的Email地址。";
	return false;
}else {
	if ( (email.indexOf("@") == -1) || (email.indexOf(".") == -1) )
		invalid += "\n\nEmail地址不合法。應當包含\'@\'和\'.\'；例如(\'.com\')。請重新檢查。";
	if (email.indexOf("your email here") > -1)
		invalid += "\n\nEmail地址不合法，請檢測您的Email地址，在域名內應當包含\'@\'和\'.\'；例如(\'.com\')。";
	if (email.indexOf("\\") > -1)
		invalid += "\n\nEmail地址不合法，含有非法字符(\\)。";
	if (email.indexOf("/") > -1)
		invalid += "\n\nEmail地址不合法，含有非法字符(/)。";
	if (email.indexOf("\'") > -1)
		invalid += "\n\nEmail地址不合法，含有非法字符(\')。";
	if (email.indexOf("!") > -1)
		invalid += "\n\nEmail地址不合法，含有非法字符(!)。";
	if ( (email.indexOf(",") > -1) || (email.indexOf(";") > -1) )
		invalid += "\n\n只輸入一個Email地址，不要含有分號和逗號。";
	if (email.indexOf("?subject") > -1)
		invalid += "\n\n不要加入\'?subject=...\'。";
}
if (invalid == ""){
	return true;
}else{
	//alert("輸入的Email可能包含錯誤：" + invalid);
	return false;
}
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷是否為英文
* @param String
* @return 如果通過驗證返回true,否則返回false
*/

function CheckIfEnglish( String )
{
invalid = "";
var Letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_";//可根據需要增加控制的字符
var i;
var c;
if ( String.length <= 5)
	return false;
if(String.charAt( 0 )=='-')
	return false;
if( String.charAt( String.length - 1 ) == '-' )
	return false;
for( i = 0; i < String.length; i ++ )
{
	c = String.charAt( i );
	if (Letters.indexOf( c ) < 0)
	return false;
}
return true;
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷是否為小寫字母
* @param String
* @return 如果通過驗證返回true,否則返回false
*/

function CheckIfLowerWord( String )
{
var Letters = "abcdefghijklmnopqrstuvwxyz1234567890_";
var i;
var c;
if ( String.length== 0)
return true;
if(String.charAt( 0 )=='-')
return false;
if( String.charAt( String.length - 1 ) == '-' )
return false;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷是否為大寫字母串
* @param String
* @return 如果通過驗證返回true,否則返回false
*/

function CheckIfUpperWord( String )
{
var Letters = "ABCDEFGHIGKLMNOPQRSTUVWXYZ1234567890_";
var i;
var c;
if ( String.length== 0)
return true;
if(String.charAt( 0 )=='-')
return false;
if( String.charAt( String.length - 1 ) == '-' )
return false;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷是否為空或為空格
* @param String
* @return 如果通過驗證返回true,否則返回false
*/

function CheckIfSpace(String)
{
if ( String == "" ) return false;
/*var regu = "^[ ]+$";
var re = new RegExp(regu);
return re.test(String);
*/}

/**
* ===================================================
*/






/**
* ===================================================
* 去除一個字符串的左邊空格,相當於常見的Ltrim()函數.
* @param Str
* @return str
*/

function Ltrim(str){
var sTmpStr = ' ';
var i = -1;
//去前面空格
while(sTmpStr == ' '){
++i;
sTmpStr = str.substr(i,1);
}
str = str.substring(i);
return str;
}

/**
* ===================================================
*/






/**
* ===================================================
* 去除一個字符串右邊空格,相當於常見的Rtrim()函數.
* @param str
* @return str
*/

function Rtrim(str){
//去後面空格
sTmpStr = ' ';
i = str.length;
while(sTmpStr == ' '){
--i;
sTmpStr = str.substr(i,1);
}
str = str.substring(0,i+1);
return str;
}

/**
* ===================================================
*/






/**
* ===================================================
* 去除一個字符串的前後空格,相當於常見的trim()函數.
* @param str
* @return str
*/

function Ctrim(str){
var sTmpStr ='';
sTmpStr=Ltrim(str);
sTmpStr=Rtrim(sTmpStr);
return sTmpStr;
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷是否為數字
* @param num
* @return 如果通過驗證返回true,否則返回false
*/

function Checkifnumber(num)
{
var i,j,strTemp;
strTemp="0123456789";
if ( num.length== 0)
return false;
for (i=0;i<num.length;i++)
{
j=strTemp.indexOf(num.charAt(i));
if (j==-1)
{
//說明有字符不是數字
return false;
}
}
//說明是數字
return true;
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷是否為證件號碼,這個只能簡單地判斷是否為證件號碼中允許的字符
* 如果要判斷很具體的話,需要建立相應的庫來進行判斷.
* @param String
* @return 如果通過驗證返回true,否則返回false
*/

function checkspace(checkstr) {
	var str = '';
	for(i = 0; i < checkstr.length; i++) {
	str = str + ' ';
	}
	return (str == checkstr);
}

function checkpersonid(formid) {
	
if(checkspace(formid.value)) {
	alert("對不起，請填寫您的身份證號碼！");
	formid.focus();
	return false;
}
Idx=new Array(10);
var cid="";
cid=formid.value;
if(cid.length != 10)
{
   alert("對不起，您的身份證號長度錯誤！");
   formid.focus();
   return false;
}

switch(cid.charAt(0).toUpperCase()){
  case "A":
	  Idx[0]=1;Idx[1]=0;break;
  case "B":
	  Idx[0]=1;Idx[1]=1;break;
  case "C":
	  Idx[0]=1;Idx[1]=2;break;
  case "D":
	  Idx[0]=1;Idx[1]=3;break;
  case "E":
	  Idx[0]=1;Idx[1]=4;break;
  case "F":
	  Idx[0]=1;Idx[1]=5;break;
  case "G":
	  Idx[0]=1;Idx[1]=6;break;
  case "H":
	  Idx[0]=1;Idx[1]=7;break;
  case "J":
	  Idx[0]=1;Idx[1]=8;break;
  case "K":
	  Idx[0]=1;Idx[1]=9;break;
  case "L":
	  Idx[0]=2;Idx[1]=0;break;
  case "M":
	  Idx[0]=2;Idx[1]=1;break;
  case "N":
	  Idx[0]=2;Idx[1]=2;break;
  case "P":
	  Idx[0]=2;Idx[1]=3;break;
  case "Q":
	  Idx[0]=2;Idx[1]=4;break;
  case "R":
	  Idx[0]=2;Idx[1]=5;break;
  case "S":
	  Idx[0]=2;Idx[1]=6;break;
  case "T":
	  Idx[0]=2;Idx[1]=7;break;
  case "U":
	  Idx[0]=2;Idx[1]=8;break;
  case "V":
	  Idx[0]=2;Idx[1]=9;break;
  case "W":
	  Idx[0]=3;Idx[1]=2;break;
  case "X":
	  Idx[0]=3;Idx[1]=0;break;
  case "Y":
	  Idx[0]=3;Idx[1]=1;break;
  case "Z":
	  Idx[0]=3;Idx[1]=3;break;
  case "I":
	  Idx[0]=3;Idx[1]=4;break;
  case "O":
	  Idx[0]=3;Idx[1]=5;break;
  default:
	  alert("對不起，您的身份證號碼第一碼必須為英文字母！");
	  formid.focus();
	  return false;
  }
 if(cid.charAt(1) != "1" && cid.charAt(1) != "2")
	   {
	  alert("對不起，您的身份證號碼第二碼錯誤！");
	  formid.focus();
	  return false;
	  }
 for(Idxnum=2;Idxnum<10;Idxnum++)
  {
	if(cid.charAt(Idxnum) < "0" || cid.charAt(Idxnum) > "9")
	   {
	  alert("對不起，您的身份證號碼第"+(Idxnum+1).toString()+"碼不是數字！");
	  formid.focus();
	  return false;
	  }
	Idx[Idxnum]=cid.charAt(Idxnum-1);
	}
  Idsum=Idx[0]+Idx[1]*9;
 for(Idxnum=2;Idxnum<10;Idxnum++) Idsum+=parseInt(Idx[Idxnum])*(10-Idxnum);
 Idsum%=10; //取餘數
 Idlast=10-Idsum;
if(Idsum.toString() != "0"){
	 if(Idlast.toString() != cid.charAt(9))
	 {
	  alert("對不起，您的身份證號碼不正確！");
	  formid.focus();
	  return false;
	 }else{} 
}else{
	 if(Idsum.toString() != cid.charAt(9))
	 {
	  alert("對不起，您的身份證號碼不正確！");
	  formid.focus();
	  return false;
	 }else{} 
 }
 
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷是否為整數.
* @param String
* @return 如果通過驗證返回true,否則返回false
*/
function CheckIfInteger( String ){
var regu = /^[-]{0,1}[0-9]{1,}$/;
return regu.test(String);
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷是否為帶小數的數字格式.
* @param String
* @return 如果通過驗證返回true,否則返回false
*/

function CheckIfFloat( String )
{
if(CheckIfInteger(str)) return true;
var re = /^[-]{0,1}(\\d+)[\\.]+(\\d+)$/;
if (re.test(str)) {
if(RegExp.$1==0&&RegExp.$2==0) return false;
return true;
} else {
return false;
}
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷輸入是否合法
* @param strTemp
* @return 如果通過驗證返回true,否則返回false
*/

function CheckValidateChar(strTemp){
if(strTemp=='')
return true;
else if ((strTemp.toLowerCase().indexOf("\'") < 0) &&
//(strTemp.toLowerCase().indexOf("\\"") < 0) &&
//(strTemp.toLowerCase().indexOf("<") < 0) &&
//(strTemp.toLowerCase().indexOf("&") < 0) &&
//(strTemp.toLowerCase().indexOf("\\n") < 0) &&
//(strTemp.toLowerCase().indexOf("\\t") < 0) &&
(strTemp.toLowerCase().indexOf("--") < 0) &&
(strTemp.toLowerCase().indexOf("//") < 0) &&
(strTemp.toLowerCase().indexOf("/*") < 0) &&
(strTemp.toLowerCase().indexOf("\\") < 0)){
return true;
}
else{
return false;
}
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷一個字符串是否為合法日期,日期格式：YYYY-MM-DD
* @param strDate
* @return 如果通過驗證返回true,否則返回false
*/

function CheckIfDate(strDate){
var strSeparator = "-"; //日期分隔符
var strDateArray;
var intYear;
var intMonth;
var intDay;
var boolLeapYear;
strDateArray = strDate.split(strSeparator);
if(strDateArray.length!=3)
return false;
intYear = parseInt(strDateArray[0],10);
intMonth = parseInt(strDateArray[1],10);
intDay = parseInt(strDateArray[2],10);

if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay))
return false;

if(intMonth>12||intMonth<1)
return false;

if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1))
return false;

if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1))
return false;

if(intMonth==2){
if(intDay<1) return false;
boolLeapYear = false;
if((intYear%100)==0){
if((intYear%400)==0) boolLeapYear = true;
}else{
if((intYear%4)==0) boolLeapYear = true;
}
if(boolLeapYear){
if(intDay>29) return false;
}else{
if(intDay>28) return false;
}
}
return true;
}　

/**
* ===================================================
*/






/**
* ===================================================
* 檢查輸入的起止日期是否正確，規則為兩個日期的格式正確或都為空且結束日期>=起始日期
* 日期格式為:yyyy-mm-dd
* @param startDate：起始日期，字符串
* @param endDate： 結束日期，字符串
* @return 如果通過驗證返回true,否則返回false
*/

function CheckIfPeriod(startDate,endDate ) {
if( !checkDate(startDate) ) {
window.alert("起始日期不正確!");
return false;
} else if( !checkDate(endDate) ) {
window.alert("終止日期不正確!");
return false;
}
var strSeparator = "-"; //日期分隔符
var strDateArrayStart;
var strDateArrayEnd;
var intDay
strDateArrayStart = strDateStart.split(strSeparator);
strDateArrayEnd = strDateEnd.split(strSeparator);
var strDateS = new Date(strDateArrayStart[0] + "/" + strDateArrayStart[1] + "/" + strDateArrayStart[2]);
var strDateE = new Date(strDateArrayEnd[0] + "/" + strDateArrayEnd[1] + "/" + strDateArrayEnd[2]);
intDay = (strDateS-strDateE)/(1000*3600*24)
if( intDay<0) {
alert("起始日期不能大於終止日期!");
return false;
}
return true;
}

/**
* ===================================================
*/






/**
* ===================================================
* 常規的錯誤提示函數,給出提示信息後,聚焦在所指定的表單元素上.
* 日期格式為:yyyy-mm-dd
* @param item：表單元素名稱.如document.form1.user_name.
* @param text： 要提示的信息內容，字符串
* @return 顯示錯誤信息
*/

function ErrorAlert(item,text){
window.alert(text);
item.select();
item.focus();
}

/**
* ===================================================
*/






/**
* ===================================================
* 選或全不選CHECKBOX元素
* @param form：要全部選擇的表單名稱
* @return 全選或全不選CHECKBOX
*/

function checkAll() {
var c = document.getElementsByTagName("input");
var l = c.length;
var i;
var tag = 0;
var count = 0;
for(i = 0;i < l;i++) {
if(c.type == "checkbox") {
count++;
if (c.checked == true) tag++;
}
}
if (tag == 0) {
for(i = 0;i < l;i++) {
if(c.type == "checkbox") c.checked = true;
}
} else {
if (tag == count) {
for(i = 0;i < l;i++) {
if(c.type == "checkbox") c.checked = false;
}
} else {
for(i = 0;i < l;i++) {
if(c.type == "checkbox") c.checked = true;
}
}
}
}

/**
* ===================================================
*/






/**
* ===================================================
* 判斷表單中是否checkbox被選中
* @param f：選擇判斷的表單名稱
* @return 如果通過驗證返回true,否則返回false
*/

function CheckIfAnyChecked(f){
var ifChecked = 0;
for(var i = 0;i < form2.length;i++) {
var e = f.elements;
if (e.type == "checkbox") {
if (e.checked) ifChecked = 1;
}
}
if (ifChecked == 0) {
alert("未選擇任何信息！");
return false;
}
else
return true;
}

/**
* ===================================================
*/



/**
* ===================================================
* 去除空白.
* @param strMessage：要去除的字串
* @return 去除後字串
*/

function trim(strMessage)
{
        var strResult;
        var charTemp;
        var i;

        strResult = "";

        //remove the left space
        for ( i = 0; i < strMessage.length; i++ )
        {
                charTemp = strMessage.charAt(i);
                if ( charTemp != " " )
                {
                        strResult = strMessage.substring(i);
                        break;
                }
        }

        //remove the right space
        for ( i = strResult.length-1; i >= 0; i-- )
        {
                charTemp = strResult.charAt(i);
                if ( charTemp != " " )
                {
                        strResult = strResult.substring(0,i+1);
                        break;
                }
        }
        return (strResult);
}

/**
* ===================================================
* 顯示或隱藏圖層.
* @param item：要顯示(隱藏)的圖層名稱
* @return 顯示或隱藏圖層
*/

function ChangeLayer(item)
{
if (item.style.display == "none")
item.style.display = ""
else
item.style.display= "none";
}


/**
* ===================================================
* 上傳檔案檢查.
* @param form：檢查表單名稱
* @param extensions：可上傳副檔名
* @param requireUpload：是否一定要選取檔案(true:false)
* @param sizeLimit：檔案需求大小
* @param minWidth：最小的圖寬
* @param minHeight：最小的圖高
* @param maxWidth：最大的圖寬
* @param maxHeight：最大的圖高
* @param saveWidth：存的圖寬
* @param saveHeight：存的圖高
* @return 是否合乎條件
*/
function checkFileUpload(form,extensions,requireUpload,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight) {
  document.MM_returnValue = true;
  if (extensions != '') var re = new RegExp("\.(" + extensions.replace(/,/gi,"|") + ")$","i");
  for (var i = 0; i<form.elements.length; i++) {
    field = form.elements[i];
    if (field.type.toUpperCase() != 'FILE') continue;
    if (field.value == '') {
      if (requireUpload) {
		  alert('請選取上傳的檔案！');
		  document.MM_returnValue = false;
		  field.focus();
		  break;
		  }
    } else {
      if(extensions != '' && !re.test(field.value)) {
        alert('這個檔案不符合上傳的類型！\n只有以下的類型才允許上傳： ' + extensions + '。\n請依規定選取新的檔案。');
        document.MM_returnValue = false;
		field.focus();
		break;
      }
    document.PU_uploadForm = form;
    re = new RegExp(".(gif|jpg|jpeg)$","i");
    if(re.test(field.value) && (sizeLimit != '' || minWidth != '' || minHeight != '' || maxWidth != '' || maxHeight != '' || saveWidth != '' || saveHeight != '')) {
      setTimeout('if (document.MM_returnValue) document.PU_uploadForm.submit()',500);
      checkImageDimensions(field.value,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight);
    } } }
}
function showImageDimensions() {
  if ((this.minWidth != '' && this.width > this.minWidth) || (this.minHeight != '' && this.height < this.minHeight)) {
    alert('您所上傳的圖片尺寸太小了！\n上傳的圖片大小至少要 ' + this.minWidth + ' x ' + this.minHeight); 
	return;}
  if ((this.maxWidth != '' && this.width > this.maxWidth) || (this.maxHeight != '' && this.height > this.maxHeight)) {
    alert('您所上傳的圖片尺寸為 '+ this.width + ' x ' + this.height+' 太大了！\n上傳的圖片大小不可超過 ' + this.maxWidth + ' x ' + this.maxHeight); 
	return;}
  if (this.sizeLimit != '' && this.fileSize/1000 > this.sizeLimit) {
    alert('您所上傳的檔案為 '+this.fileSize/1000+' KB太大了！\n最大不可超過 ' + this.sizeLimit + ' KB'); 
	return;}
  if (this.saveWidth != '') document.PU_uploadForm[this.saveWidth].value = this.width;
  if (this.saveHeight != '') document.PU_uploadForm[this.saveHeight].value = this.height;
  document.MM_returnValue = true;
}
function checkImageDimensions(fileName,sizeLimit,minWidth,minHeight,maxWidth,maxHeight,saveWidth,saveHeight) { //v2.0
  document.MM_returnValue = false; 
  var imgURL = 'file:///' + fileName, img = new Image();
  img.sizeLimit = sizeLimit; img.minWidth = minWidth; img.minHeight = minHeight; img.maxWidth = maxWidth; img.maxHeight = maxHeight;
  img.saveWidth = saveWidth; img.saveHeight = saveHeight;
  img.onload = showImageDimensions; img.src = imgURL;
}

/**
* ===================================================
* 自動置換超連結.
* @.@
* @.@
* 別忘了還有asp部分function 要配合s
*/
function edit_hrefs(s_html, type){
s_str = new String(s_html);
if (type == 1) {
s_str = s_str.replace(/\b(http\:\/\/[\w+\.]+[\w+\.\:\/\_\?\=\&\-\'\#\%\~\;\,\$\!\+\*]+)/gi,
"<a href=\"$1\" target=\"_blank\">$1<\/a>");
}
if (type == 2) {

s_str = s_str.replace(/\b(https\:\/\/[\w+\.]+[\w+\.\:\/\_\?\=\&\-\'\#\%\~\;\,\$\!\+\*]+)/gi,
"<a href=\"$1\" target=\"_blank\">$1<\/a>");
}
if (type == 3) {
s_str = s_str.replace(/\b(file\:\/\/\/\w\:\\[\w+\/\w+\.\:\/\_\?\=\&\-\'\#\%\~\;\,\$\!\+\*]+)/gi,
"<a href=\"$1\" target=\"_blank\">$1<\/a>");
}
if (type == 4) {

s_str = s_str.replace(/\b(www\.[\w+\.\:\/\_\?\=\&\-\'\#\%\~\;\,\$\!\+\*]+)/gi,
"<a href=\"http://$1\" target=\"_blank\">$1</a>");
}
if (type == 5) {
s_str = s_str.replace(/\b([\w+\-\'\#\%\.\_\,\$\!\+\*]+@[\w+\.?\-\'\#\%\~\_\.\;\,\$\!\+\*]*)/gi,
"<a href=\"mailto\:$1\">$1</a>");
}
if (type == 6) {
s_str = s_str.replace(/\b(ftp\:\/\/[\w+\.]+[\w+\.\:\/\_\?\=\!\&\-\'\#\%\~\;]+)/gi,
"<a href=\"$1\" target=\"_New\">$1<\/a>");
}

return s_str;
}
