var browserSys = {};
var uaBrowser = navigator.userAgent.toLowerCase();
window.ActiveXObject ? browserSys.ie = uaBrowser.match(/msie ([\d.]+)/)[1] :
document.getBoxObjectFor ? browserSys.firefox = uaBrowser.match(/firefox\/([\d.]+)/)[1] :
window.MessageEvent && !document.getBoxObjectFor ? browserSys.chrome = uaBrowser.match(/chrome\/([\d.]+)/)[1] :
window.opera ? browserSys.opera = uaBrowser.match(/opera.([\d.]+)/)[1] :
window.openDatabase ? browserSys.safari = uaBrowser.match(/version\/([\d.]+)/)[1] : 0;

var requestAd;
function createRequestAd() {
  try {
	requestAd = new XMLHttpRequest();
  } catch (trymicrosoft) {
	try {
	  requestAd = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (othermicrosoft) {
	  try {
		requestAd = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (failed) {
		requestAd = false;
	  }
	}
  }
  if (!requestAd)
	alert("Error initializing XMLHttpRequest!");
}
var requestLinkAd;
function createRequestLinkAd() {
  try {
	requestLinkAd = new XMLHttpRequest();
  } catch (trymicrosoft) {
	try {
	  requestLinkAd = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (othermicrosoft) {
	  try {
		requestLinkAd = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (failed) {
		requestLinkAd = false;
	  }
	}
  }
  if (!requestLinkAd)
	alert("Error initializing XMLHttpRequest!");
}
function crawlLinkAdContent(adClient,adPlace,displayId)
{
	if(browserSys.firefox){	
		//希望在这里暂停2秒
		var evlon = new Evlon();
		evlon.sleep(1000);
	}
	createRequestLinkAd();  
	var url = "/mall/adCrawlServlet?ajaxType=getMoreAdContent&adClient="+adClient+"&adPlace="+adPlace+"&displayId="+displayId;
	if(browserSys.firefox){	
		requestLinkAd.open("POST",url,true);//使用POST方法打开一个到服务器的连接
	}else{
		requestLinkAd.open("POST",url,false);//使用POST方法打开一个到服务器的连接
	}
	requestLinkAd.onreadystatechange = adLinkDisplayAjax;
	requestLinkAd.send(null);//发送数据
	//document.getElementById(displayId).innerHTML=url;
}

function adLinkDisplayAjax() {
	if (requestLinkAd.readyState == 4) {
		
		if (requestLinkAd.status == 200) {
			var xmlDoc = requestLinkAd.responseXML;
			//var xmlText = requestAd.responseText;
			//alert(xmlText);
			var showElements = xmlDoc.getElementsByTagName("value");
			
			var getAdPicPath = "";
			var getAdLink = "";
			var getAdPicName = "";
			var getAdContentType = "";
			var width = "";
			var height = "";
			var displayId = "";
			var adClient = "";  
			
			
			for (var x=0; x<showElements.length; x++) {
				// We know that the first child of show is title, and the second is rating
				if(browserSys.firefox){		        	
					getAdPicPath = showElements[x].childNodes[0].textContent;
					getAdLink = showElements[x].childNodes[1].textContent;
					getAdLink = getAdLink.replace(new RegExp("%26","gm"),"&");
					getAdPicName = showElements[x].childNodes[2].textContent;
					getAdContentType = showElements[x].childNodes[3].textContent;
					width = showElements[x].childNodes[4].textContent;
					height = showElements[x].childNodes[5].textContent;
					displayId = showElements[x].childNodes[6].textContent;
					adClient = showElements[x].childNodes[7].textContent;
				}else{
					getAdPicPath = showElements[x].childNodes[0].text;
					getAdLink = showElements[x].childNodes[1].text;
					getAdLink = getAdLink.replace(new RegExp("%26","gm"),"&");
					getAdPicName = showElements[x].childNodes[2].text;
					getAdContentType = showElements[x].childNodes[3].text;
					width = showElements[x].childNodes[4].text;
					height = showElements[x].childNodes[5].text;
					displayId = showElements[x].childNodes[6].text;
					adClient = showElements[x].childNodes[7].text;
				}
				writeLink(getAdPicName,getAdLink,displayId);
			}
		} 
	}
}
function writeLink(adName,adLink,displayId){
	var adContent = document.getElementById(displayId).innerHTML;
	document.getElementById(displayId).innerHTML=adContent+'<a href="'+adLink+'" target=_blank>'+adName+'</a><BR>'; 
}
function crawlAdContent(adClient,adPlace,width,height,displayId)
{
	if(browserSys.firefox){	
		//希望在这里暂停2秒
		var evlon = new Evlon();
		evlon.sleep(1000);
	}
	createRequestAd();  
	var url = "/mall/adCrawlServlet?ajaxType=getAdContent&adClient="+adClient+"&adPlace="+adPlace+"&width="+width+"&height="+height+"&displayId="+displayId;
	if(browserSys.firefox){	
		requestAd.open("POST",url,true);//使用POST方法打开一个到服务器的连接
	}else{
		requestAd.open("POST",url,false);//使用POST方法打开一个到服务器的连接
	}
	requestAd.onreadystatechange = adDisplayAjax;
	requestAd.send(null);//发送数据
	//document.getElementById(displayId).innerHTML=url;
}

function adDisplayAjax() {
	if (requestAd.readyState == 4) {
		
		if (requestAd.status == 200) {
			var xmlDoc = requestAd.responseXML;
			//var xmlText = requestAd.responseText;
			//alert(xmlText);
			var showElements = xmlDoc.getElementsByTagName("value");
			
			var getAdPicPath = "";
			var getAdLink = "";
			var getAdPicName = "";
			var getAdContentType = "";
			var width = "";
			var height = "";
			var displayId = "";
			var adClient = "";  
			
			
			for (var x=0; x<showElements.length; x++) {
				// We know that the first child of show is title, and the second is rating
				if(browserSys.firefox){		        	
					getAdPicPath = showElements[x].childNodes[0].textContent;
					getAdLink = showElements[x].childNodes[1].textContent;
					getAdLink = getAdLink.replace(new RegExp("%26","gm"),"&");
					getAdPicName = showElements[x].childNodes[2].textContent;
					getAdContentType = showElements[x].childNodes[3].textContent;
					width = showElements[x].childNodes[4].textContent;
					height = showElements[x].childNodes[5].textContent;
					displayId = showElements[x].childNodes[6].textContent;
					adClient = showElements[x].childNodes[7].textContent;
				}else{
					getAdPicPath = showElements[x].childNodes[0].text;
					getAdLink = showElements[x].childNodes[1].text;
					getAdLink = getAdLink.replace(new RegExp("%26","gm"),"&");
					getAdPicName = showElements[x].childNodes[2].text;
					getAdContentType = showElements[x].childNodes[3].text;
					width = showElements[x].childNodes[4].text;
					height = showElements[x].childNodes[5].text;
					displayId = showElements[x].childNodes[6].text;
					adClient = showElements[x].childNodes[7].text;
				}
				switch (parseInt(getAdContentType)){
				   case 1:
				     writePicture(getAdPicPath,getAdPicName,width,height,getAdLink,displayId);
				     break;
				   case 2:
				     writeFlash(getAdPicPath,getAdPicName,width,height,getAdLink,displayId);
				     break;
				   default:
				     document.write("错误的广告类别!")
				}
			}
		} 
	}
}
function writePicture(picPath,adName,adWidth,adHeight,adLink,displayId){
	document.getElementById(displayId).innerHTML='<a href="'+adLink+'" target=_blank><img src="'+picPath+'" alt="'+adName+'"  width="'+adWidth+'" height="'+adHeight+'"/></a>'; 
}

function writeFlash(picPath,adName,adWidth,adHeight,adLink,displayId){
	var fs= new ad_FlashObject(picPath, adWidth, adHeight);
  	fs.write(displayId);	
}

var ad_FlashObject = function(swf, w, h) {
	this.swf = swf;
	this.width = w;
	this.height = h;

}
var ad_FOP = ad_FlashObject.prototype;

ad_FOP.getHTML = function() {
    var flashHTML = "";
    if (navigator.plugins && navigator.mimeTypes.length) { // netscape plugin architecture
        flashHTML += '<embed type="application/x-shockwave-flash" wmode="transparent" src="' + this.swf + '" width="' + this.width + '" height="' + this.height + '"';
        flashHTML += '></embed>';

    } else { // PC IE
        flashHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + this.width + '" height="' + this.height +  '">';
        flashHTML += '<param name="movie" value="' + this.swf + '" />';
        flashHTML += '<param name="wmode" value="transparent" />';
        flashHTML += '</object>';
    }
    return flashHTML;	
}

ad_FOP.write = function(elementId) {


	if (elementId) {
	//alert(elementId);
		document.getElementById(elementId).innerHTML = this.getHTML();
	} else {
		document.write(this.getHTML());
	}
}






function Evlon()
  {
   this.xh = new XMLHttpRequest();//new ActiveXObject("Msxml2.ServerXMLHTTP");
   this.lresolveTimeout = 0;   // 解析DNS名字的超时时间
   this.lconnectTimeout = 500;   // 建立Winsock连接的超时时间
   this.lsendTimeout = 0 ;    // 发送数据的超时时间
   this.lreceiveTimeout = 0 ;    // 接收response的超时时间
   this.xh.setTimeouts(this.lresolveTimeout,this.lconnectTimeout,this.lsendTimeout,this.lreceiveTimeout);
   this.urlport = "http://127.0.0.1:1111";
 
  }        
  Evlon.prototype.sleep = function(ms)
  {
   var beg = new Date();
   
   var count = Math.floor(ms / 500);
   var lastms = ms % 500;
   this.xh.setTimeouts(this.lresolveTimeout,this.lconnectTimeout,this.lsendTimeout,this.lreceiveTimeout);
   
   for(var i = 0 ;i< count + 1; ++i)
   {
    //先看一下时间过了没有
    var now = new Date();
    if(ms < now - beg)
    {
     break;
    }
    else
    {
     if( i == count)
     {
      this.xh.setTimeouts(this.lresolveTimeout,lastms,this.lsendTimeout,this.lreceiveTimeout);
     }
     
     //Sleep
     try
     {
      this.xh.open("GET",this.urlport,false,null,null);
      this.xh.send();
     }
     catch(e){
     }
     
    }
   }
   
  }


