﻿var HL_RD_BASE_URL = "http://search1.china.com.cn/search/";
var insertID = "search_engine";

/*用户自定义的初始化函数*/
var HL_RD_USER_INIT_FUN = null;

/*发送查询请求*/
function HL_RD_INIT(){
	/*创建一个script的容器，firefox和IE都兼容*/
	var js_obj = document.createElement( "script" );
	if(js_obj){
		js_obj.type = "text/javascript" ;
		
		/*通过javascript获取的当前页面的refer值*/
		if (!document.createElement) return null;

		var refer = document.referrer;
		var key = "&url=" + refer;
		//alert(window.location.href);
		var url = "&kurl=" + window.location.href;
		var strSvrUrl = HL_RD_BASE_URL + "buoy-data.jsp?cnt=10" + key + url;
		//alert(strSvrUrl);
		js_obj.setAttribute( "src" , strSvrUrl);
		document.body.appendChild(js_obj); 	
	}	
}

/*显示相关结果内容*/
function HL_RD_SHOW_RESULT(strResult){	
	
	/*1. 解析XML*/
	/*2. 组织成HTML*/
	//alert(strResult);
	var strHTML = fnGetHtml(strResult);
	//alert(strHTML);
	if(strHTML != "")
	{
		var obj = document.getElementById(insertID);
		if(obj){
			obj.innerHTML = "<div style=\"width:100%; font-size:14px; padding-left:15px!important; padding-left:0px\"><strong><font color=\"#cc0000\">新闻导航</font></strong></div>"+strHTML;
		}
	}
	else
	{
		document.getElementById(insertID).style.display = 'none';
	}
	
}


/*页面加载完成的响应函数*/
function HL_RD_LOAD_FUNCTION(){
	HL_RD_INIT();
	if(HL_RD_USER_INIT_FUN)
		HL_RD_USER_INIT_FUN();
}
HL_RD_USER_INIT_FUN = window.onload;
window.onload = HL_RD_LOAD_FUNCTION;

/*根据xml返回dom对象*/
function fnGetDomObj(strXml){
	var xmlDoc;
	if(strXml.length > 0){
		if (window.ActiveXObject){/*IE*/
			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async=false;
			xmlDoc.loadXML(strXml);
		}else if (document.implementation &&
			document.implementation.createDocument){/*Mozilla, Firefox, Opera*/
			var parser = new DOMParser();
			xmlDoc = parser.parseFromString(strXml,"text/xml");
		}else{
			alert("非常抱歉，您的浏览器不支持此功能！");
		}
	}
	return xmlDoc;
}

/*两个公共的函数*/
function trim(s){
	return s.replace(/(^\s*)|(\s*$)/g,"");
}

function fnIsIE(){
	var bIE = false;
	if (window.ActiveXObject){/*IE*/
		bIE = true;
	}
	return bIE;
}

/*\breif	解析xml内容，并组织成html
 *\param	strXML	函数返回xml的内容
 *\remark	服务器返回的xml格式*/
function fnGetHtml(strXML){
		/*解析并组织成xml*/
		strXML = trim(strXML);
		var strKey = '';
		var strHTML = "";
		var SUCCESS = "1";
		if(strXML != ""){
			var bIsIE = fnIsIE();
			var oDoc = fnGetDomObj(strXML);
			if(bIsIE){	/*IE*/
				var strFlag = oDoc.getElementsByTagName("root/flag").item(0).text;
				if(strFlag == SUCCESS){
					var strKey = oDoc.getElementsByTagName("root/key").item(0).text;
					var strCount = oDoc.getElementsByTagName("root/count").item(0).text;
					var nItemCnt = oDoc.getElementsByTagName("root/item").length;
					/*条件判断:判断设置的*/
					if(strCount<=nItemCnt){
					    for(var i=0; i<strCount; i++){
						    var strUrl = oDoc.getElementsByTagName("root/item/url").item(i).text;
						    var strTitle = oDoc.getElementsByTagName("root/item/title").item(i).text;
							
							/*组织html*/
							strHTML += fnFormatRecord(i+1, strUrl, strTitle,strKey);
						}
					}else{
						for(var i=0; i<nItemCnt; i++){
						    var strUrl = oDoc.getElementsByTagName("root/item/url").item(i).text;
						    var strTitle = oDoc.getElementsByTagName("root/item/title").item(i).text;
							
							/*组织html*/
							strHTML += fnFormatRecord(i+1, strUrl, strTitle,strKey);
						}
					}
					strKey = '<div style="padding-left:30px!important; padding-left:0px; padding-top:10px; padding-bottom:10px">'+strHTML+'</div>';
				}	
			}else{/*firefox*/
				var root = oDoc.getElementsByTagName('root')[0];
				var strRet = root.getElementsByTagName('flag')[0].firstChild.nodeValue;
				if(strRet == SUCCESS){
					var strKey = root.getElementsByTagName("key")[0].firstChild.nodeValue;
					var strCount = root.getElementsByTagName("count")[0].firstChild.nodeValue;
					var items = root.getElementsByTagName("item");
					if(strCount<=items.length){						
						for (var i = 0 ; i < strCount; i++) {
							var item = items[i];
							var strUrl = item.getElementsByTagName("url")[0].firstChild.nodeValue;
							var strTitle = item.getElementsByTagName("title")[0].firstChild.nodeValue;
							/*组织html*/
							strHTML += fnFormatRecord(i+1,strUrl,strTitle,strKey);
						}
					}else{
						for (var i = 0 ; i <items.length; i++) {
							var item = items[i];
							var strUrl = item.getElementsByTagName("url")[0].firstChild.nodeValue;
							var strTitle = item.getElementsByTagName("title")[0].firstChild.nodeValue;
							
							/*组织html*/
							strHTML += fnFormatRecord(i+1,strUrl,strTitle,strKey);
						}
					}
					strKey = '<div style="padding-left:30px!important; padding-left:0px; padding-top:10px; padding-bottom:10px">'+strHTML+'</div>';
				}		
			}
		}
		
		return strKey;
	}
	
	function fnFormatRecord(i, u, title,key){
		var strRecord = "";
		if(i && u && title && key){					
			strRecord += "<div style=\"\">";			
			strRecord += "<li><a class='hl' style='font-size: 14px; color: #333399; line-height: 20px;' onclick=" + fnPostToLog(key,u) + " href='" + u 
				+ "'title='" + title + "' target='_blank'>" + rep(title,key) + "</a></li>";
			strRecord += "</div>";
		}
		return strRecord;
	}
	
	function rep(title, key){
		title = title.replace(/<font color=\"red\">/,"");
		title = title.replace(/<\/font>/,"");
		if(title !="" && title.length>200) {
			title = title.substring(0,200);
			title += "...";
		}
	   return title.replace(key, "<span style=>"+key+"</span>");
	}
	
	
	function fnPostToLog(key,url){
	    var oFrame = document.getElementById("HL_SEND_LOG");
	    if(oFrame){
	        var sUrl;
            sUrl = HL_RD_BASE_URL + "read_log.jsp?key=" + encodeURI(key) + "&url=" + url;
	        oFrame.src = sUrl;
	    }    
	}
	
	/*调整IE下浮动框的位置*/
	function fnSetFloatPosition(){
		$(function(){
			//$("#newnotice").floatdiv();
		});
	}

	if(fnIsIE()){
		//window.onscroll= fnSetFloatPosition;	
	}
