
function getXMLHttpRequest(){
    var request;
           try {
             request = new XMLHttpRequest();
           } catch (trymicrosoft) {
             try {
               request = new ActiveXObject("Msxml2.XMLHTTP");
             } catch (othermicrosoft) {
               try {
                    request = new ActiveXObject("Microsoft.XMLHTTP");
               } catch (failed) {
                    request = false;
               }
             }
           }

           if (!request)
             alert("Error initializing XMLHttpRequest!");
    return request;
}

function checkInput(str,pattern,errMsg){

	var ele=document.getElementById(str);
	
	if(ele){
		if(!trim(ele.value).match(pattern)){
			if(errMsg) alert(errMsg);
			
			ele.focus();
			return false;
		}
	}else{
		alert('目標不存在');
		return false;
	}
	return true;
}
function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}
function send_AJAX_Form(url,valueObj,method,cb_ok,cb_err){
    
    
    if(url&&valueObj&&method&&cb_ok&&cb_err){
		var request=getXMLHttpRequest();
		
		if(method=='POST'){
		    
		    var requestValue="";
		    var length=0;
		    
		    for (var i in valueObj)
            {
                if(requestValue!="") requestValue+="&";
                
                requestValue+=i+"="+escape(valueObj[i]);
                length+= parseInt(escape(valueObj[i]).length);
                
            }
            
            request.open("POST", url, true);

            request.setRequestHeader("content-length",length);
            request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
            
            
            request.onreadystatechange = function(){
                callBackFunction(request,cb_ok,cb_err);
            };
            
            request.send(requestValue);
		    
		}else{  // "GET" Mode
			var requestValue="";
		    
		    for (var i in valueObj)
            {
                if(requestValue!="") requestValue+="&";
                requestValue+=i+"="+escape(valueObj[i]);
            }
            
            if(requestValue.length>256){
                alert('長度超過Get上限,無法送出!');
                return false;
            }
            request.open("GET", url+"?"+requestValue, true);

            request.onreadystatechange = function(){
                callBackFunction(request,cb_ok,cb_err);
            };
            
            request.send(null);
		    
		}
		
    }else{
		alert('<url>,<valueObj>,<method>,<cbfunction>');
    }
}



function callBackFunction(request,cb_ok,cb_err) {
    if (request.readyState == 4) {
       if (request.status == 200) {
            cb_ok(request.responseText);
        } else{
            cb_err(request.status,request.responseText);
        }
    }
    //alert('callback');
    
 }
 
 /* Tony1223_AJAX_Lib v0.01 2007/01/06 14:26 */