var Browser = new Object();
var xmlHttp;
Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument != 'undefined');
Browser.isIE = window.ActiveXObject ? true : false;
Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox") != - 1);
Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari") != - 1);
Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != - 1);


function GetXmlHttpObject(handler)
{ 
var objXmlHttp=null
if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesnt work in Opera") 
return; 
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{ 
var strName="Msxml2.XMLHTTP"
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP"
} 
try
{ 
objXmlHttp=new ActiveXObject(strName)
objXmlHttp.onreadystatechange=handler 
return objXmlHttp
} 
catch(e)
{ 
alert("Error. Scripting for ActiveX might be disabled") 
return 
} 
} 
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest()
objXmlHttp.onload=handler
objXmlHttp.onerror=handler 
return objXmlHttp
}
}
//prototype.js
function $() {
	if (arguments.length == 1) return get$(arguments[0]);
	var elements = [];
	$c(arguments).each(function(el){
		elements.push(get$(el));
	});
	return elements;

	function get$(el){
		if (typeof el == 'string') el = document.getElementById(el);
		return el;
	}
}
function $c(array){
	var nArray = [];
	for (var i=0;i<array.length;i++) nArray.push(array[i]);
	return nArray;
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function rowindex(tr)
{
  if (Browser.isIE)
  {
    return tr.rowIndex;
  }
  else
  {
    table = tr.parentNode.parentNode;
    for (i = 0; i < table.rows.length; i ++ )
    {
      if (table.rows[i] == tr)
      {
        return i;
      }
    }
  }
}
//分頁大小
//设定cookie值 
function setCookie(name,value){   
	var   argv=setCookie.arguments;   
	var   argc=setCookie.arguments.length;   
	var   expires=(argc>2)?argv[2]:null;   
	var   path=(argc>3)?argv[3]:null;   
	var   domain=(argc>4)?argv[4]:null;   
	var   secure=(argv>5)?argv[5]:false;   
	  
	document.cookie=name+"="+escape(value)   
	+((expires==null)?"":(";expires="+expire_string))   
	+((path==null)?"":(";path="+path))   
	+((domain==null)?"":(";domain="+domain))   
	+((secure==true)?";secure":"");   
}  //
//得到cookie值
function getCookie(name){   
	var   arg=name+"=";   
	var   alen=arg.length;   
	var   clen=document.cookie.length;   
	var   j=0;   
	while(j<clen){   
		  var   k=j+alen;   
	if   (document.cookie.substring(j,k)==arg)   return   getCookieVal(k);   
	j=document.cookie.indexOf("",j)+1;   
	if(j==0)   break;   
	}   
	return   null   
}

//改變分頁大小
function jumppage(pagesize){
	var url = location.href;
	if (url.indexOf("MPsize=")>0){
		location.href = url.replace(/(MPsize=)\d*/i, "$1"+pagesize)
	}
	else{
		if (url.indexOf("?")>0){
			if (url.length-1==url.indexOf("?"))
				location.href = url+"MPsize="+pagesize;
			else
				location.href = url+"&MPsize="+pagesize;
		}
		else{
			location.href = url+"?MPsize="+pagesize;
		}
	}
}

//自定義驗證
var isChkErr = false; //外部變量判定焦點
function CheckAll(form) {
	for (var i=0;i<form.elements.length;i++)  
	{  
		var e = form.elements[i];  
		if (e.name != 'chkall')  
		e.checked = true // form.chkall.checked;  
	}  
} 
 
function ContraSel(form) {
	for (var i=0;i<form.elements.length;i++)
	{
		var e = form.elements[i];
		if (e.name != 'chkall')
		e.checked=!e.checked;
	}
}
function selcheck(form,arg){
	for (var i=0;i<form.elements.length;i++)  
	{  
		var e = form.elements[i];
		if (e.type == 'checkbox')  
			e.checked = false // form.chkall.checked;  
	}
	form.elements[arg].checked = true;
}
function confirmDeal(form,tip){
	for (var i=0;i<form.elements.length;i++){
		var e=form.elements[i];
		if (e.type=='checkbox' && e.name!="allselect")
			if (e.checked==true)
				if (confirm("確定要執行“"+tip+"”的操作嗎？"))
					return true;
				else
					return false;
		}
	alert("請選擇要"+tip+"的欄目!");
	return false;
}
function ValidDate(date){

}

String.prototype.trim  =  function()
{
        return  this.replace(/(^\s*)|(\s*$)/g,  "");
}
String.prototype.isNull = function (){
	if (this == null || this.trim() == "")
		return true;
	else
		return false;
}
String.prototype.isInteger = function (){
	var r = this.match(/^(\d{1,})$/); 
	if (r == null)
		return false;
	else
		return true;
}
String.prototype.isReal = function (){
	var r = this.match(/^(\d{1,})\.{0,1}(\d{0,})$/); 
	if (r == null)
		return false;
	else
		return true;
}
function isEmail(email){
	return email.search("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$")!=-1;
}

String.prototype.isTel = function (){
	var r = this.match(/^\d{1,2}-\d{7}(#\d{1,})?$/); 
	if (r == null)
		return false;
	else
		return true;
}

String.prototype.isDate = function(){
   var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); 
   if(r==null)return false; var d = new Date(r[1], r[3]-1, r[4]); 
   return(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}

String.prototype.getExt = function (ext){
   var r = new RegExp(ext+"$");
   if(r.test(this))
   	 return true;
   else
   	 return false;
}

function isUser(arg){
	return arg.search("^[a-zA-Z0-9_]{6,12}$")!=-1;
}

function chkNull(arg,ErrMsg){
	if ($(arg).value.isNull()){
		$(arg+"_tip").className ="td_right_err";
		!isChkErr?$(arg).focus():null;
		isChkErr = true;
		return ErrMsg+"\n";
	}
	else{
		$(arg+"_tip").className ="td_right";
		return "";
	}
}
function chkInteger(arg,ErrMsg){
	if (!$(arg).value.isInteger()){
		$(arg+"_tip").className ="td_right_err";
		!isChkErr?$(arg).focus():null;
		isChkErr = true;
		return ErrMsg+"\n";
	}
	else{
		$(arg+"_tip").className ="td_right";
		return "";
	}
}
function chkReal(arg,ErrMsg){
	if (!$(arg).value.isReal()){
		$(arg+"_tip").className ="td_right_err";
		!isChkErr?$(arg).focus():null;
		isChkErr = true;
		return ErrMsg+"\n";
	}
	else{
		$(arg+"_tip").className ="td_right";
		return "";
	}
}
function chkEmail(arg,ErrMsg){
	if (!isEmail($(arg).value)){
		$(arg+"_tip").className ="td_right_err";
		!isChkErr?$(arg).focus():null;
		isChkErr = true;
		return ErrMsg+"\n";
	}
	else{
		$(arg+"_tip").className ="td_right";
		return "";
	}
}
function chkDate(arg,ErrMsg){
	if (!$(arg).value.isDate()){
		$(arg+"_tip").className ="td_right_err";
		!isChkErr?$(arg).focus():null;
		isChkErr = true;
		return ErrMsg+"\n";
	}
	else{
		$(arg+"_tip").className ="td_right";
		return "";
	}
}

//特例驗證
function chkUser(arg,ErrMsg){
	if (!isUser($(arg).value)){
		$(arg+"_tip").className ="td_right_err";
		!isChkErr?$(arg).focus():null;
		isChkErr = true;
		return ErrMsg+"\n";
	}
	else{
		$(arg+"_tip").className ="td_right";
		return "";
	}
}

function chkTel(arg,ErrMsg){
	if (!$(arg).value.isTel()){
		$(arg+"_tip").className ="td_right_err";
		!isChkErr?$(arg).focus():null;
		isChkErr = true;
		return ErrMsg+"\n";
	}
	else{
		$(arg+"_tip").className ="td_right";
		return "";
	}
} 
function chkOptions(arg,ErrMsg){
	if ($(arg).selectedIndex == 0){
		$(arg+"_tip").className ="td_right_err";
		!isChkErr?$(arg).focus():null;
		isChkErr = true;
		return ErrMsg+"\n";
	}
	else{
		$(arg+"_tip").className ="td_right";
		return "";
	}
}
function chkRadio(arg,ErrMsg){
	var RBoolean = false;
	for(var i=0;i<document.getElementsByName(arg).length;i++){
		if (document.getElementsByName(arg)[i].checked)
			RBoolean = true;
	}
	if (!RBoolean){
		$(arg+"_tip").className ="td_right_err";
		!isChkErr?$(arg).focus():null;
		isChkErr = true;
		return ErrMsg+"\n";
	}
	else{
		$(arg+"_tip").className ="td_right";
		return "";
	}
}

//檢測圖片路徑是是否有效
function chkPath(dir){
	var result = false;
	var oImage = new Image();
	oImage.onload = function () {
		result = true;
	}
	oImage.onerror = function () {
		result = false;
	}
	oImage.src = dir;
	return result;
}
/* *
 * 帮助信息的显隐函数
 */
function showHelp(objId)
{
  var obj = $(objId);

  if (obj)
  {
    if (obj.style.display != "block")
    {
      obj.style.display = "block";
    }
    else
    {
      obj.style.display = "none";
    }
  }
}
//圖片預覽功能

function viewImage(){
	$('Preview'+arguments[0].name).src=arguments[0].value;
}

//日期UTC 轉換
function UTCToDate(arg){
   var s;
   if (Browser.isIE)
	   s = arg.getYear() + "/";
   else
	   s = arg.getYear()+1900+ "/";
   s += arg.getMonth()+1+ "/";
   s += arg.getDate();
   return s;
}

function DateToUTC(arg){
   alert(arg);
   
   return //Date.UTC();
}

function writeYears()	{
		var years,nyears,beginyear=-80,endyear=10,selectedIndex=0;
		var date,obj = arguments[0];
		switch(arguments.length){
			case 1 : date = new Date();break;
			case 2 : date = arguments[1];break;
			case 3 : date = new Date();beginyear=arguments[1];endyear=arguments[2];break;
			case 4 : date = arguments[1];beginyear=arguments[2];endyear=arguments[3];break;
			default: alert('對不起，參數不對！');
		}
		
		Browser.isIE?years= date.getYear():years= date.getYear()+1900;
		years<100?years += 1900:null;
		for (var i=years+(beginyear); i<years+endyear; i++)
		{
			obj.options.add(new Option(i,i));
			if (years==i){
				selectedIndex=i;
			}
		}
		obj.selectedIndex = selectedIndex-years-(beginyear);
	}
	
	function writeMonth()	{
		if (arguments.length==1){
			var obj = arguments[0];
			var date = new Date();
		}
		else{
			var obj = arguments[0];
			var date = arguments[1];
		}
		for (var i=1; i<13; i++)
		{
			obj.options.add(new Option(i,i));
		}
		obj.selectedIndex = date.getMonth();
	}
	
	function writeDay()
	{
		var year,month,day;
		
		if (arguments.length==1){
			var obj = arguments[0];
			var date = new Date();
		}
		else{
			var obj = arguments[0];
			var date = arguments[1];
		}
		
		Browser.isIE?year= date.getYear():year= date.getYear()+1900;
		month = parseInt((UTCToDate(date)).split("/")[1])+1;
		year<100?year += 1900:null;
		day = new Date(""+year+"/"+(parseInt(month))+"/"+0).getDate();
		//alert(day);
		var selectedIndex = (date-1)<obj.selectedIndex ? (date-1) : obj.selectedIndex;
		selectedIndex <= -1?selectedIndex=date.getDate()-1:null;
		var len = obj.options.length
		if (day>len)
			for (var i=len+1; i<=day; i++)
			{
				var opt = document.createElement("option")
				var value = Math.floor(i/10) ? i : "0"+i
				obj.options.add(new Option(value,value));
			}
		else
			for (var i=day; i<len; i++)
			{
				obj.remove(obj.length-1)
			}
		obj.length-1<selectedIndex?obj.selectedIndex = obj.length-1:obj.selectedIndex = selectedIndex;
	}
	
	function MM_openBrWindow(theURL,winName,features) { //v2.0
	  window.open(theURL,winName,features);
	}
	
function doCopy(obj) {
 var rng = document.body.createTextRange();
 rng.moveToElementText(obj);
 rng.scrollIntoView();
 rng.select();
 rng.execCommand("Copy");
 rng.collapse(false);
 alert("代碼已成功複製到剪貼板!");
}

function getStringUTFLength(str) {
    var value = str.replace(/[^\x00-\xff]/g," ");
    return value.length;
}

function leftUTFString(str,len) {
    if(getStringUTFLength(str)<=len)
        return str;
    var value = str.substring(0,len);

    while(getStringUTFLength(value)>len) {
        value = value.substring(0,value.length-1);
    }
    return value;
}

function txt_count(objId,len) {
    var value = objId.value;
    value = value.replace(/[\u4e00-\u9fa5]/g," ");
    //alert(value.length);
    if(value.length>=len) {
        with(window.event) {
            cancelBubble = true;
            keyCode=0;
            returnValue = false;
        }
        objId.value = leftUTFString(objId.value,len);
    }
	//剩余字符数
    //document.getElementById("result").value = len-getStringUTFLength(document.getElementById(objId).value);
}

function DrawImage(ImgD,iwidth,iheight){
    var image=new Image();
    image.src=ImgD.src;
    if(image.width>0 && image.height>0){
        if(image.width/image.height>= iwidth/iheight){
            if(image.width>iwidth){ 
                ImgD.width=iwidth;
                ImgD.height=(image.height*iwidth)/image.width;
            }else{
                ImgD.width=image.width; 
                ImgD.height=image.height;
            }
        }
        else{
            if(image.height>iheight){ 
                ImgD.height=iheight;
                ImgD.width=(image.width*iheight)/image.height; 
            }else{
                ImgD.width=image.width;
                ImgD.height=image.height;
            }
        }
    }
}
