// JavaScript Document

function CreateRecord(nIdx, strURL, strTitle, strTitleMemo, strAbs, strDesc, strImgURL, strImg, strImgW, strImgH)
{
	var strRecord = '';
	if(strImg != '')
  	strRecord = '<TABLE width="100%" BORDER=0><TR><TD width="2%" valign="top">'+
	  	'<DIV  id="plus'+nIdx+'" style="display:none"><A href="javascript:;" onClick="ToggleShow('+nIdx+
	  	')"><IMG SRC="../images/plus.gif" width="9" height="12" border="0"></A></DIV>'+
	  	'<DIV  id="minus'+nIdx+'" ><A href="javascript:;"'+
			' onClick="ToggleShow('+nIdx+')">'+
			'<IMG SRC="../images/minus.gif" width="9" height="12" border="0"></A></DIV></TD>'+
	  	'<TD valign="top"><!-- [Title] --><a class="aTitle" style="font-size:12px;" href="'+strURL+'">'+strTitle+'</a>'+strTitleMemo+
	    '<DIV  id="short'+nIdx+'" style="display:none"><!-- [Short description] -->'+strAbs+
	    '&nbsp;&nbsp;<A href = "javascript:;" onClick="ToggleShow('+nIdx+')"> >></A></DIV>'+
	    '<DIV  id="abstract'+nIdx+'"  ><!-- [Full description] -->'+
	    '<div style="float:right; padding: 2px 2px 2px 2px; border:1px solid #A3D1D1;">'+
	    '<a href="'+strImgURL+'"><img src="'+strImg+'" '+strImgW+' ' + 'strImgH'+' border="0" />'+
			'</a></div>'+strDesc+'</DIV></TD></TR></TABLE>';
	else
  	strRecord = '<TABLE width="100%" BORDER=0><TR><TD width="2%" valign="top">'+
	  	'<DIV  id="plus'+nIdx+'"  style="display:none"><A href="javascript:;" onClick="ToggleShow('+nIdx+
	  	')"><IMG SRC="../images/plus.gif" width="9" height="12" border="0"></A></DIV>'+
	  	'<DIV  id="minus'+nIdx+'"><A href="javascript:;"'+
			' onClick="ToggleShow('+nIdx+')">'+
			'<IMG SRC="../images/minus.gif" width="9" height="12" border="0"></A></DIV></TD>'+
	  	'<TD valign="top"><!-- [Title] --><a class="aTitle" style="font-size:12px;" target="_blank" href="'+strURL+'">'+strTitle+'</a>'+strTitleMemo+
	    '<DIV  id="short'+nIdx+'" style="display:none"><!-- [Short description] -->'+strAbs+
	    '&nbsp;&nbsp;<A href = "javascript:;" onClick="ToggleShow('+nIdx+')"> >></A></DIV>'+
	    '<DIV  id="abstract'+nIdx+'"  ><!-- [Full description] -->'+strDesc+
	    '</DIV></TD></TR></TABLE>';
	
  return strRecord;
}
     
function addnew(strContainer, nIdx, strURL, strTitle, strTitleMemo, strAbs, strDesc, strImgURL, strImg, strImgW, strImgH)
{
	var objContainer = document.getElementById(strContainer);
	if(objContainer)
	{
		var sample = CreateRecord(nIdx, strURL, strTitle, strTitleMemo, strAbs, strDesc, strImgURL, strImg, strImgW, strImgH); 
		
		var objNew = document.createElement("div");
		objNew.innerHTML = sample;
		objContainer.appendChild(objNew); 
	}
}
        
function setRecordNumber(nTotalNum)
{
	var item = document.getElementById("spanResultNum");
	if(item != null)
	{
		item.innerHTML = '<strong>'+nTotalNum+'</strong>';
		item.title = nTotalNum;
	}		
}

function ToggleShow(idx)
{
		abstractid = "abstract" + idx;
		shortid	= "short" + idx;
		plusid = "plus" + idx;
		minusid = "minus" + idx;
		
	if(document.getElementById(abstractid).style.display == 'none')
	{
    	document.getElementById(shortid).style.display = 'none';
    	document.getElementById(abstractid).style.display = 'block';
		document.getElementById(plusid).style.display = 'none';
		document.getElementById(minusid).style.display = 'block';			
	}
	else /// if(document.getElementById(abstractid).style.display == 'block')
	{
    	document.getElementById(shortid).style.display = 'block';
    	document.getElementById(abstractid).style.display = 'none';
		document.getElementById(plusid).style.display = 'block';
		document.getElementById(minusid).style.display = 'none';		
	}	
	
} 

function ToggleAll(hide)
{
	var strCount = document.getElementById("spanResultNum").title; 
	var nCount = parseInt(strCount); 
	var szAbstract;
	var szShort;
	var szImg;
	for(idx=0;idx<nCount;++idx)
	{
		szAbstract = "abstract" + idx;
		szShort	= "short" + idx;
		szPlus = "plus" + idx;
		szMinus = "minus" + idx;		

		if(!hide)
		{
    		if(document.getElementById(szAbstract).style.display != 'block')
			{
    			document.getElementById(szShort).style.display = 'none';
    			document.getElementById(szAbstract).style.display = 'block';
				document.getElementById(szPlus).style.display = 'none';
				document.getElementById(szMinus).style.display = 'block';	
			}	
		}
		else
		{
    		if(document.getElementById(szAbstract).style.display != 'none')
			{
    			document.getElementById(szShort).style.display = 'block';
    			document.getElementById(szAbstract).style.display = 'none';
				document.getElementById(szPlus).style.display = 'block';
				document.getElementById(szMinus).style.display = 'none';				
			}	
		}		
	}
} 

	function isIE(){
            var arVersion = navigator.appVersion.split("MSIE")
            var version = parseFloat(arVersion[1])
            if ((version >= 5.5) && (version < 7)) ///  && (document.body.filters))
	        return true; 
            else
		return false;
	}
	
	function correctPNG() 
	{
	   for(var i=0; i<document.images.length; i++)
	   {
		  var img = document.images[i]
		  
		  /// if(img.className == "logoimg")
		  {
			  var LW=img.width
			  var LH=img.height
			  
			  var imgName = img.src.toUpperCase()
			  if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
			  { 
				 img.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+img.src+", sizingmethod=scale);" 
				 img.src="http://www.cleeki.com/images/transparent.gif"
				 img.width=LW
				 img.height=LH
			  }
		  }
	   }
	}
	
  function truncateString(strValue, bAddEllipsis, nMax, nTolerate)
  {
    var strNew = strValue;
	
	var bHasChinese = strValue.match(/[\u4E00-\u9FA0]/);
	if(bHasChinese != null)
	{
		nMax = nMax / 2; 
	}
	
	var nNorm = nMax-nTolerate;
  	if(strValue.length > nMax)
	{
		strNew = strValue.substr(0, nNorm); 
		var nSpacePos = strValue.indexOf(' ', nNorm); 
		if(nSpacePos >= 0 && nSpacePos  < nTolerate + nNorm)
		{
			strNew += strValue.substr(nNorm, nSpacePos-nNorm);
		}
		else if(nSpacePos < 0)
		{
			nSpacePos = strNew.lastIndexOf(' ');
			if(nSpacePos > 0 && nSpacePos > nNorm-nTolerate)
				strNew = strNew.substr(0, nSpacePos); 			
		}
			
		if(bAddEllipsis)
			strNew += "...";
	}
	return strNew;
  }
  
  function highlightKey(strValue, strKeys, bStrict)
  {
	
	var strKeysForReg = strKeys.replace(/(\_)(\.)(\*)(\+)(\')(\")(\()(\))(\;)(\@)(\&)(\$)(\,)(\%)(\#)(\/)(\?)(\=)(\:)(\-)/, "\\$1$2$3$4$5$6$7$8$9$10$11$12$13$14$15$16$17$18$19$20");

  	var regSpace = new RegExp("( )|(\u3000)", "g");
    var strKeyAry = strKeysForReg.split(regSpace); 
	var strReg="";
	var strRep="";
	for(var i=0;i<strKeyAry.length;++i)
	{	
		strReg += "("+strKeyAry[i]+")";
		if(i != strKeyAry.length -1)
			strReg += "|"; 
		strRep += "$"+(i+1);
	}
	strRep = "<span class='clsKey'>"+strRep+"</span>";
	
  	var pattern = new RegExp(strReg, "gi");
	var strNew = strValue.replace(pattern, strRep);
	return strNew;
  	
  }	
  
	var xmlhttp;
	function loadXMLDoc(url, async, callback)
	{
		var async = async ? async : false; 
		xmlhttp=null;
		if (window.XMLHttpRequest)
		  // code for all new browsers
		  xmlhttp=new XMLHttpRequest();
		else if (window.ActiveXObject)
		  // code for IE5 and IE6
		  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  		
		if (xmlhttp!=null)
		{
		  var strUID = ((new Date()).getTime() + "" + Math.floor(Math.random() *
1000000)).substr(0, 18);
		  var nHasPara = url.indexOf('?');
		  if(nHasPara > 0)
			url = url + "&randomid=" + strUID;
		  else
		  	url = url + "?&randomid=" + strUID;
		
		  if(async)
		  	  xmlhttp.onreadystatechange=callback;
			  
		  xmlhttp.open("GET",url,async);
		  xmlhttp.send(null);
		}
		else
		  alert("Your browser does not support XMLHTTP.");

		var strRe = "async";
		if(!async)
		{
			strRe = "Unknown error with status: " + xmlhttp.status;
			if (xmlhttp.readyState==4)
			{
			  // 4 = "loaded"
			  if (xmlhttp.status==200)
				// 200 = OK
				// ...our code here...
				strRe = xmlhttp.responseText; 
			}
		}
		
        return strRe;
	}  

   function postForm(url, parameters, callback) 
   {
      xmlhttp = null;
      if (window.XMLHttpRequest) 
	  { 
	     // Mozilla, Safari,...
         xmlhttp = new XMLHttpRequest();
         if (xmlhttp.overrideMimeType) 
		 {
         	// set type accordingly to anticipated content type
            //http_request.overrideMimeType('text/xml');
            xmlhttp.overrideMimeType('text/html');
         }
      } 
	  else if (window.ActiveXObject) 
	  { 
	     // IE
         try 
		 {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
         }
		 catch (e) 
		 {
            try 
			{
               xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } 
			catch (e) {}
         }
      }
      if (!xmlhttp) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      xmlhttp.onreadystatechange = callback;
      xmlhttp.open('POST', url, true);
      xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      xmlhttp.setRequestHeader("Content-length", parameters.length);
      xmlhttp.setRequestHeader("Connection", "close");
      xmlhttp.send(parameters);
   }


String.prototype.parseURL = function(query) {
    var url=this,
    rx=/^((?:ht|f|nn)tps?)\:\/\/(?:([^\:\@]*)(?:\:([^\@]*))?\@)?([^\/]*)([^\?\#]*)(?:\?([^\#]*))?(?:\#(.*))?$/,
    rg=[null,'scheme','user','pass','host','path','query','fragment'],
    r=url.match(rx),i,q,ret={};
    
	if (r==null) return ret;
    for (i=1; i<rg.length; i++)
        if (r[i]!=undefined)
            ret[rg[i]]=r[i];       
    if (ret.path=='') ret.path='/';
    if (query!=undefined && r[6]!=undefined) 
	{
        var q=r[6];
        ret.query={};
        q=q.split('&');
        for (var i=0; i<q.length; i++) 
		{
            q[i]=q[i].split('=',2);
            ret.query[unescape(q[i][0])]=unescape(q[i][1]);
        }
    }
    return ret;
}
