function url(filename,sendstr){

 var req = newXMLHttpRequest();

 //req.onreadystatechange = getReadyStateHandler(req, updateCart);
 
// req.open("POST","url/getfile.jsp?name="+filename,true);
 req.open("POST",filename,false);
 //req.setRequestHeader("Content-Type","utf-8");
 req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 req.send(sendstr); 
 //req.send("action=add&item="+itemCode); 
 //req.send("name="+filename);
 var name=getStringHandler(req);
 //alert(name); 
 return name;
 
}
var urlresult="";
function callurl(filename,sendstr,CallBack){

 var req = newXMLHttpRequest();

// req.open("POST","url/getfile.jsp?name="+filename,true);
 req.open("POST",filename,true);

 //req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 //"Content-Type", "text/xml; charset=utf-8"
  //req.setRequestHeader("Content-Type","utf-8");
  req.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
  //req.onreadystatechange = getHandler(req,CallBack);
  if(CallBack)
  req.onreadystatechange =function(){getHandler(req,CallBack);};

  req.send(sendstr);

 //req.send("action=add&item="+itemCode); 
 //req.send("name="+filename);
 //var name=getStringHandler(req);
 //alert(name); 
 //return name;
 
}
/*
 * Returns an new XMLHttpRequest object, or false if the browser
 * doesn't support it
 */
function newXMLHttpRequest() {
/*open(): 
send():
abort():
readyState:
responseText:
*/
  var xmlreq = false;

  // Create XMLHttpRequest object in non-Microsoft browsers
  if (window.XMLHttpRequest) {
    xmlreq = new XMLHttpRequest();

  } else if (window.ActiveXObject) {

    try {
      // Try to create XMLHttpRequest in later versions
      // of Internet Explorer

      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
      
    } catch (e1) {

      // Failed to create required ActiveXObject
      
      try {
        // Try version supported by older versions
        // of Internet Explorer
      
        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (e2) {

        // Unable to create an XMLHttpRequest by any means
        xmlreq = false;
      }
    }
  }

return xmlreq;
}

 /*
	* Returns a function that waits for the specified XMLHttpRequest
	* to complete, then passes it XML response to the given handler function.
  * req - The XMLHttpRequest whose state is changing
  * responseXmlHandler - Function to pass the XML response to
  */
function getHandler(req,CallBack) { 
   // Return an anonymous function that listens to the XMLHttpRequest instance
     //alert(req.readyState);
     // If the request's status is "complete"
     if (req.readyState == 4) {
       
			// Check that we received a successful response from the server
			if (req.status == 200) {
			// Pass the XML payload of the response to the handler function.
				var name=req.responseText; 
				
				var pos=name.indexOf("ReturnString=");  
				if(pos>=0)
				{
				//alert(name.substring(pos)); 
				//return name.substring(pos+13);
				urlresult=name.substring(pos+13);
				
				CallBack();
				}
				else
				{
				urlresult=name;
				//return name;
				CallBack(name);
				}
			
			} else {
				//alert(req.statusText);
			// An HTTP problem has occurred
			   //alert("HTTP error "+req.status+": "+req.statusText);
			}
			return;
     }

 }
 function getStringHandler(req) { 
   // Return an anonymous function that listens to the XMLHttpRequest instance

     // If the request's status is "complete"
     if (req.readyState == 4) {
       
       // Check that we received a successful response from the server
       if (req.status == 200) {
         // Pass the XML payload of the response to the handler function.
        var name=req.responseText; 
        var pos=name.indexOf("ReturnString=");  
         if(pos>=0)
         {
         //alert(name.substring(pos)); 
         return name.substring(pos+13);
         }
         else
         return name;
           
       } else {
         // An HTTP problem has occurred
         //alert("HTTP error "+req.status+": "+req.statusText);
       }
       return null;
     }

 }
 
 function loadData(XmlString)
{       
       var arrSignatures = ["MSXML2.DOMDocument.5.0", "MSXML2.DOMDocument.4.0",
                                 "MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument",
                                 "Microsoft.XmlDom"];
       var xmldoc;                     
            for (var i=0; i < arrSignatures.length; i++) {
                try {
                
                    xmldoc = new ActiveXObject(arrSignatures[i]);
                    
                    i=10;
                
                } catch (oError) {
                    //ignore
                }
            }              
            if(xmldoc==null){
				alert("你的系统没有安装MSXML");  
				return null;
			}
			else
			{
      		if(!xmldoc.loadXML(XmlString))alert("FALSE");
			return xmldoc;
			}		
		
}

function getNode(doc,xpath) {
	//var items = orderDoc.selectNodes("/Order/Item");//items.length - 1
	//document.forms[0].SKU.value = getNode(orderDoc, "/Order/Item[" + i + "]/SKU");
      var value = doc.selectSingleNode(xpath);
      if(value) 
	  return value.text;
      else
	  return "";
}
/* 兼容IE 7.0以前版本 XMLHttpRequest */
function base64encode(str) {
	var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
	var base64DecodeChars = new Array(
		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
		52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
		-1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
		15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
		-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
		41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
    var out, i, len;
    var c1, c2, c3;

    len = str.length;
    i = 0;
    out = "";
    while(i < len) {
	c1 = str.charCodeAt(i++) & 0xff;
	if(i == len)
	{
	    out += base64EncodeChars.charAt(c1 >> 2);
	    out += base64EncodeChars.charAt((c1 & 0x3) << 4);
	    out += "==";
	    break;
	}
	c2 = str.charCodeAt(i++);
	if(i == len)
	{
	    out += base64EncodeChars.charAt(c1 >> 2);
	    out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
	    out += base64EncodeChars.charAt((c2 & 0xF) << 2);
	    out += "=";
	    break;
	}
	c3 = str.charCodeAt(i++);
	out += base64EncodeChars.charAt(c1 >> 2);
	out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4));
	out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6));
	out += base64EncodeChars.charAt(c3 & 0x3F);
    }
    return out;
}

function base64decode(str) {
	var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
	var base64DecodeChars = new Array(
		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
		-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
		52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
		-1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,
		15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
		-1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
		41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
    var c1, c2, c3, c4;
    var i, len, out;

    len = str.length;
    i = 0;
    out = "";
    while(i < len) {
	/* c1 */
	do {
	    c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
	} while(i < len && c1 == -1);
	if(c1 == -1)
	    break;

	/* c2 */
	do {
	    c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
	} while(i < len && c2 == -1);
	if(c2 == -1)
	    break;

	out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));

	/* c3 */
	do {
	    c3 = str.charCodeAt(i++) & 0xff;
	    if(c3 == 61)
		return out;
	    c3 = base64DecodeChars[c3];
	} while(i < len && c3 == -1);
	if(c3 == -1)
	    break;

	out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));

	/* c4 */
	do {
	    c4 = str.charCodeAt(i++) & 0xff;
	    if(c4 == 61)
		return out;
	    c4 = base64DecodeChars[c4];
	} while(i < len && c4 == -1);
	if(c4 == -1)
	    break;
	out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
    }
    return out;
}
function UrlEncode(str){ 
   var ret=""; 
   var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%"; 
   for(var i=0;i<str.length;i++){ 
    var chr = str.charAt(i); 
     var c=str2asc(chr); 
     tt += chr+":"+c+"n"; 
     if(parseInt("0x"+c) > 0x7f){ 
       ret+="%"+c.slice(0,2)+"%"+c.slice(-2); 
     }else{ 
       if(chr==" ") 
         ret+="+"; 
       else if(strSpecial.indexOf(chr)!=-1) 
         ret+="%"+c.toString(16); 
       else 
         ret+=chr; 
     } 
   } 
   return ret; 
} 
function UrlDecode(str){ 
   var ret=""; 
   for(var i=0;i<str.length;i++){ 
    var chr = str.charAt(i); 
     if(chr == "+"){ 
       ret+=" "; 
     }else if(chr=="%"){ 
      var asc = str.substring(i+1,i+3); 
      if(parseInt("0x"+asc)>0x7f){ 
       ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6))); 
       i+=5; 
      }else{ 
       ret+=asc2str(parseInt("0x"+asc)); 
       i+=2; 
      } 
     }else{ 
       ret+= chr; 
     } 
   } 
   return ret; 
} 
function DateAdd(interval,number,date){ // date 可以是时间对象也可以是字符串，如果是后者，形式必须为: yyyy-mm-dd hh:mm:ss 其中分隔符不定。"2006年12月29日 16点01分23秒" 也是合法的
number = parseInt(number);
if (typeof(date)=="string"){
date = date.split(/\D/);
--date[1];
eval("var date = new Date("+date.join(",")+")");
}
if (typeof(date)=="object"){
var date = date
}
switch(interval){
case "y": date.setFullYear(date.getFullYear()+number); break;
case "m": date.setMonth(date.getMonth()+number); break;
case "d": date.setDate(date.getDate()+number); break;
case "w": date.setDate(date.getDate()+7*number); break;
case "h": date.setHours(date.getHour()+number); break;
case "n": date.setMinutes(date.getMinutes()+number); break;
case "s": date.setSeconds(date.getSeconds()+number); break;
case "l": date.setMilliseconds(date.getMilliseconds()+number); break;
} 
return date;
}
function formatDate(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;
	var mm=m.toString();
	var dd=d.toString();
	if(mm.length==1)mm="0"+mm;
	if(dd.length==1)dd="0"+dd;
	
    return y + '-' + mm + '-' + dd;   
  }   
  return '';   
}  

