function detectFileType(fileName) {
	var type = "other";
	if (/([^\\\'\;\?[]*)\.(jpg)$/.test(fileName.toLowerCase()))
		type = "jpg";
	else if (/([^\\\'\;\?[]*)\.(bmp|jpeg|jp2|exr|psd|pict|png|sgi|tga|tif|tiff|gif|pic|jpe|ico|wmf|ai|dxf|eps|dwg)$/.test(fileName.toLowerCase()))
	    type = "pic";
	else if (/([^\\\'\;\?[]*)\.(aif|au|mid|mp3|aac|rmi|wav|snd|m4p|m4a|ogg|ape|flac|wma)$/.test(fileName.toLowerCase()))
		type = "music";
	else if (/([^\\\'\;\?[]*)\.(3gp|m4v|avi|rm|rmvb|flv|mp4|mov|wmv|asf|mpeg|mpg|swf|mkv)$/.test(fileName.toLowerCase()))
		type = "movie";
	else if (/([^\\\'\;\?[]*)\.(arj|lzh|pak|pcx|rar|dz2|zip|cab|gz|bz2|sit|img|lzo|lzx|tar|7z|c2d|ccd|iso|cdi|cue|mdf|mds|nrg|gho)$/.test(fileName.toLowerCase()))
		type = "rar";
	else if (/([^\\\'\;\?[]*)\.(doc|docx|ppt|pptx|pub|vsd|xsl|xlsx|dat|txt|pdf|rtf)$/.test(fileName.toLowerCase()))
	    type = "document";
	else if (/([^\\\'\;\?[]*)\.(htm|html|jsp|css|xml|php|asp|url|js|shtml|xhtml|hta|eot|svg|class|ear|jar|java|war|aspx)$/.test(fileName.toLowerCase()))
	    type = "program";
	return type;
}

function LoadJsCssFile(filename, filetype) {
	if (filetype == "js") { // 如果是.js文件
		var fileref = document.createElement('script');
		fileref.setAttribute("type", "text/javascript");
		fileref.setAttribute("src", filename);
	} else if (filetype == "css") { // 如果是.css文件
		var fileref = document.createElement("link");
		fileref.setAttribute("rel", "stylesheet");
		fileref.setAttribute("type", "text/css");
		fileref.setAttribute("href", filename);
	}
	if (typeof fileref != "undefined")
		document.getElementsByTagName("head")[0].appendChild(fileref)
}

// LoadJsCssFile("myscript.js", "js"); // 動態載入.js 文件
// LoadJsCssFile("javascript.php", "js"); // 將".php" 文件作為.js 文件動態載入
// LoadJsCssFile("main.css", "css"); // 動態載入.css 文件

var filesadded = "" // 已經加載的文件列表

function CheckLoadJsCssFile(filename, filetype) {
	if (filesadded.indexOf("[" + filename + "]") == -1) {
		LoadJsCssFile(filename, filetype);
		filesadded += "[" + filename + "]"; // 從表單中加載的文件列表
	} else{
		//alert('該文件已經添加！');
	}
}

// CheckLoadJsCssFile("myscript.js", "js") // 加載成功
// CheckLoadJsCssFile("myscript.js", "js") // 文件存在，不再加載 。

function checkEmail(mailAddress){
    var tos = mailAddress.split(',');
    for ( var i = 0; i < tos.length; i++ ){
        var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if (!filter.test(tos[i])) {
            return false;
        }    
    }
    return true;
}
function copyToClipboard(txt) {
    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("被瀏覽器拒絕！\n請在瀏覽器地址欄輸入'about:config'並回車\n然後將'signed.applets.codebase_principal_support'設置為'true'");
        	 //alert("Not Supported!");
         }
         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 false;
         clip.setData(trans,null,clipid.kGlobalClipboard);
    } else {
    	//alert("Not Supported!");
    }
    //alert('已經複製');
}
function htmlElement(elementId){
	return document.getElementById(elementId);
}

/*
將String類型解析為Date類型.
parseDate('2006-1-1') return new Date(2006,0,1)
parseDate(' 2006-1-1 ') return new Date(2006,0,1)
parseDate('2006-1-1 15:14:16') return new Date(2006,0,1,15,14,16)
parseDate(' 2006-1-1 15:14:16 ') return new Date(2006,0,1,15,14,16);
parseDate('2006-1-1 15:14:16.254') return new Date(2006,0,1,15,14,16,254)
parseDate(' 2006-1-1 15:14:16.254 ') return new Date(2006,0,1,15,14,16,254)
parseDate('不正確的格式') retrun null
*/
function parseDate(str){
	if(typeof str == 'string'){
	  var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);
	  if(results && results.length>3)
	    return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));
	  results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);
	  if(results && results.length>6)
	    return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));
	  results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);
	  if(results && results.length>7)
	    return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]),parseInt(results[7]));
	}
	return null;
}

/*
將Date/String類型,解析為String類型.
傳入String類型,則先解析為Date類型
不正確的Date,返回 ''
如果時間部分為0,則忽略,只返回日期部分.
*/
function formatDate(v){
	if(typeof v == 'string') v = parseDate(v);
	if(v instanceof Date){
	  var y = v.getFullYear();
	  var m = v.getMonth() + 1;
	  var d = v.getDate();
	  var h = v.getHours();
	  var i = v.getMinutes();
	  var s = v.getSeconds();
	  var ms = v.getMilliseconds();  
	  if(ms>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s + '.' + ms;
	  if(h>0 || i>0 || s>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
	  return y + '-' + m + '-' + d;
	}
	return '';
}