﻿// 同步数据变量
var gMainxmlHttp = null;
// 记录当前显示的页数
var nCurPage =  1;
// 设定当前显示页面最大的数据条目数
var nPageSize = 10 ;
// 记录当前显示类型的数据页数
var nPageCnt =   0;
// 当前正在显示的类型
var nSearchType = 0 ;
//当前页码
    this.npageindex=0;
// 当前查找关键字
var curKeyWord = "";

// 当前返回类型，分为2中，一种是改变关键字，或者改变搜索类型的来的； 第二种是通过分页处理的来的结果集合
var bPageResults = false ;


function CreateMainAjax()
{
   gMainxmlHttp = CreatAjaxObj();
   if (gMainxmlHttp == null )
   {
      alert( "Error initializing gMainxmlHttpRequest!" );
   }
}

function CatStr(str,len)
{
   if(str.length>len)
   {
     str=str.substring(0,len)+'...';
   }
   return str;
}
function Hide()
{
   var CtrID = document.getElementById( "ImgB" );
   if( CtrID.style.display == "" )
   CtrID.style.display = "none";
   else
   CtrID.style.display = "";
}
// 根据CASID来更新HTML页面
function updatePageCASID()
{
    if(gMainxmlHttp.readyState==0||gMainxmlHttp.readyState==1||gMainxmlHttp.readyState==2||gMainxmlHttp.readyState==3)
     {setInnerHTML(document.getElementById( "divFileInfo" ), "<div style='width:482; height:355; text-align:center;'><img src=images/loading.gif border=0 /></div>");
     }
  else 
   if ( gMainxmlHttp.readyState == 4 )
   {
      if( gMainxmlHttp.status == 200 )
      {
         if ( ! bPageResults)
         {
            // 显示导航条
            ShowNavi();
         }
         if (nPageCnt <= 0 )
         return ;
         var xmlResponse = gMainxmlHttp.responseXML;
         
         nodelistTemp = xmlResponse.selectNodes( "//Products" );
         sHtmlTemp = '<table  class="table_title"  align="center" >';
         sHtmlTemp = sHtmlTemp + '<tr>';
         sHtmlTemp = sHtmlTemp + '<td  width="90px"  bgcolor="#bfe2eb" class="biuuu1" title="">Code</td>';
         sHtmlTemp = sHtmlTemp + '<td  width="100px"  bgcolor="#bfe2eb"  style="text-align:center;"><div style="padding-left:30">CAS No.</div></td>';
         sHtmlTemp = sHtmlTemp + '<td  width="250px"  bgcolor="#bfe2eb"  style="text-align:center;">Details</td></tr>';
         for( i = 0; i < nodelistTemp.length; i ++ )
         {
            sHtmlTemp = sHtmlTemp + '<tr><td   class="table_td_iron">' + xmlResponse.getElementsByTagName( "ProID" )[i].firstChild.nodeValue + '</td>';
            sHtmlTemp = sHtmlTemp + '<td   style="text-align:right;" >' + xmlResponse.getElementsByTagName( "CASID" )[i].firstChild.nodeValue + '</td>';
            sHtmlTemp = sHtmlTemp + '<td  style="text-align:center;"><a href="detail.shtml?ProID=';
            sHtmlTemp += xmlResponse.getElementsByTagName("ProID")[i].firstChild.nodeValue + '" target="_blank" ><u>Enter</u></a></td></tr>';
         }
         sHtmlTemp = sHtmlTemp + '</table>';
        //  document.getElementById( "divFileInfo" ).innerHTML = '<a href="#" id="biuuu1" title="sce">dfds</a>';
         setInnerHTML(document.getElementById( "divFileInfo" ),sHtmlTemp );
      }
      else  // 超时处理，
      {
         //alert("服务超时，请稍后重试！");
      }
   }
}

// 根据产品ID或者是产品的名称来更新HTML页面
function updatePageProID()
{
  if(gMainxmlHttp.readyState==0||gMainxmlHttp.readyState==1||gMainxmlHttp.readyState==2||gMainxmlHttp.readyState==3)
     {setInnerHTML(document.getElementById( "divFileInfo" ), "<div style='width:482; height:355; text-align:center;'><img src=images/loading.gif border=0 /></div>");
     }
     else if ( gMainxmlHttp.readyState == 4 )
   {
      if( gMainxmlHttp.status == 200 )
      {
         if ( ! bPageResults)
         {
            ShowNavi();
         }
         if (nPageCnt <= 0 )
         return ;
         var xmlResponse = gMainxmlHttp.responseXML;
         nodelistTemp = xmlResponse.selectNodes( "//Products" );
         sHtmlTemp = '<table  class="table_title"  align="center" table style="table-layout:fixed" >';
         sHtmlTemp = sHtmlTemp + '<tr>';
         sHtmlTemp = sHtmlTemp + '<td  width="90px"  bgcolor="#BFE2EB">Code</td>';
         sHtmlTemp = sHtmlTemp + '<td width="200px"  bgcolor="#BFE2EB"  style="text-align:center;"> Name</td>';
         sHtmlTemp = sHtmlTemp + '<td  width="150px"  bgcolor="#BFE2EB" style="text-align:center;">Details</td></tr>';
         for( i = 0; i < nodelistTemp.length; i ++ )
         {
            var  pName = "暂缺";
            sHtmlTemp = sHtmlTemp + '<tr><td   class="table_td_iron">' + xmlResponse.getElementsByTagName( "ProID" )[i].firstChild.nodeValue + '</td>';
            pName = xmlResponse.getElementsByTagName( "EngName" )[i].firstChild.nodeValue ;
            if (pName == "暂缺")
            {
                pName = "untitle";
            }    
            sHtmlTemp = sHtmlTemp + '<td nowrap style="overflow:hidden; text-overflow:ellipsis;word-break:keep-all;text-align:left;" title="'+pName+'" class=biuuu1>' + pName + '</td>';
            sHtmlTemp = sHtmlTemp + '<td  style="text-align:center;"><a href="detail.shtml?ProID=';
            sHtmlTemp += xmlResponse.getElementsByTagName("ProID")[i].firstChild.nodeValue + '" target="_blank" ><u>Enter</u></a></td></tr>';
         }
         sHtmlTemp = sHtmlTemp + '</table>';
         // document.getElementById( "divFileInfo" ).innerHTML = sHtmlTemp;
         setInnerHTML(document.getElementById( "divFileInfo" ), sHtmlTemp);
      }
      else  // 超时处理，
      {
         //alert("服务超时，请稍后重试！");
      }
   }
}

// 根据产品分子式查找来更新新HTML页面
function updatePageMolecular()
{
  if(gMainxmlHttp.readyState==0||gMainxmlHttp.readyState==1||gMainxmlHttp.readyState==2||gMainxmlHttp.readyState==3)
     {setInnerHTML(document.getElementById( "divFileInfo" ), "<div style='width:482; height:355; text-align:center;'><img src=images/loading.gif border=0 /></div>");
     }
  else if ( gMainxmlHttp.readyState == 4 )
   {
      if( gMainxmlHttp.status == 200 )
      {
        if ( ! bPageResults)
         {
            ShowNavi();
         }
         if (nPageCnt <= 0 )
         return ;

         var xmlResponse = gMainxmlHttp.responseXML;
         nodelistTemp = xmlResponse.selectNodes( "//Products" );
         sHtmlTemp = "<table  class='table_title'  align='center'>" ;
         sHtmlTemp += "<tr> <td  width='80px' align='left' bgcolor='#BFE2EB'>&nbspCode</td>";
         sHtmlTemp += "<td   width='130px'  bgcolor='#BFE2EB'>&nbspFormula</td>";
         sHtmlTemp += "<td  width='100px'  bgcolor='#BFE2EB'  style='text-align:center;'>&nbspName</td>";
         sHtmlTemp += "<td   width='80px'  bgcolor='#BFE2EB'  style='text-align:center;'>&nbspDetails</td></tr>"
         for( i = 0; i < nodelistTemp.length; i ++ )
         {
            var  pName = "暂缺";
            sHtmlTemp += '<tr><td  class="table_td_iron">' + xmlResponse.getElementsByTagName( "ProID" )[i].firstChild.nodeValue + '</td>';
            var moca=xmlResponse.getElementsByTagName( "Molecular" )[i].firstChild.nodeValue;
            sHtmlTemp += '<td ><div  nowrap style="overflow:hidden; text-overflow:ellipsis;word-break:keep-all;text-align:left; width:100px;" width=100px id="cc"  onmouseover="ddrivetip(\''+moca +'\')"  onmouseout="hideddrivetip()">' +xmlResponse.getElementsByTagName( "Molecular" )[i].firstChild.nodeValue + '</div></td>';
            pName = xmlResponse.getElementsByTagName( "EngName" )[i].firstChild.nodeValue;
            if (pName == "暂缺")
            {
                pName = "untitled";
            }
            sHtmlTemp += '<td width="150px"  nowrap style="overflow:hidden; text-overflow:ellipsis;word-break:keep-all;text-align:left; width:150px;" class=biuuu1  title="'+pName+'">&nbsp' +CatStr( pName ,14)+ '</td>';
            sHtmlTemp += '<td  style="text-align:center;"><a href="detail.shtml?ProID=';
            sHtmlTemp += xmlResponse.getElementsByTagName("ProID")[i].firstChild.nodeValue + '" target="_blank"><u>Enter</u></a></td></tr>';
         }
         sHtmlTemp += '</table>';
         // document.getElementById( "divFileInfo" ).innerHTML = sHtmlTemp;
         setInnerHTML(document.getElementById( "divFileInfo" ), sHtmlTemp);
      }
      else  // 超时处理，
      {
         //alert("服务超时，请稍后重试！");
      }
   }
}

// 根据产品多肽序列查找来更新新HTML页面
function updatePageSequence()
{
   if(gMainxmlHttp.readyState==0||gMainxmlHttp.readyState==1||gMainxmlHttp.readyState==2||gMainxmlHttp.readyState==3)
     {setInnerHTML(document.getElementById( "divFileInfo" ), "<div style='width:482; height:355; text-align:center;'><img src=images/loading.gif border=0 /></div>");
     }
  else  if ( gMainxmlHttp.readyState == 4 )
   {
      if( gMainxmlHttp.status == 200 )
      {
         if ( ! bPageResults)
         {
            ShowNavi();
         }
         if (nPageCnt <= 0 )
         return ;
         var xmlResponse = gMainxmlHttp.responseXML;
         nodelistTemp = xmlResponse.selectNodes( "//Products" );
         sHtmlTemp = '<table  class="table_title"  align="center" >';
         sHtmlTemp = sHtmlTemp + '<tr   width="90px" bgcolor="#BFE2EB">';
         sHtmlTemp = sHtmlTemp + '<td  width="90px"  bgcolor="#BFE2EB">Code</td>';
         sHtmlTemp = sHtmlTemp + '<td  width="250px"  bgcolor="#BFE2EB">Sequence</td>';
         sHtmlTemp = sHtmlTemp + '<td  width="50px"  bgcolor="#BFE2EB"  style="text-align:center;">Details</td></tr>';
         for( i = 0; i < nodelistTemp.length; i ++ )
         {
            sHtmlTemp = sHtmlTemp + '<tr><td  class="table_td_iron">' + xmlResponse.getElementsByTagName( "ProID" )[i].firstChild.nodeValue + '</td>';
            sHtmlTemp = sHtmlTemp + '<td ><a class=biuuu1 title='+xmlResponse.getElementsByTagName( "Sequence" )[i].firstChild.nodeValue+'>' +CatStr( xmlResponse.getElementsByTagName( "Sequence" )[i].firstChild.nodeValue,30) + '</a></td>';
            sHtmlTemp = sHtmlTemp + '<td  style="text-align:center;"><a href="detail.shtml?ProID=';
            sHtmlTemp += xmlResponse.getElementsByTagName("ProID")[i].firstChild.nodeValue + '" target="_blank" ><u>Enter</u></a></td></tr>';
         }
         sHtmlTemp = sHtmlTemp + '</table>';
         setInnerHTML(document.getElementById( "divFileInfo" ), sHtmlTemp);
      }
      else  // 超时处理，
      {
         //alert("服务超时，请稍后重试！");
      }
   }
}
function ClearContent()
{
   varClearCtl  = document.getElementById("divResult") ;
   setInnerHTML(varClearCtl, "");
   setInnerHTML(document.getElementById( "divFileInfo"), "");
   if( ! bPageResults)
   {
      setInnerHTML(document.getElementById( "Navi"), "");
   }
}
function ResetContent()
{
   varClearCtl  = document.getElementById("divFileInfo") ;
   setInnerHTML(varClearCtl, "");
   varClearNavi  = document.getElementById("Navi") ;
   setInnerHTML(varClearNavi, "");
   var content="";
   content+=' <div style="line-height:28px;   padding-left:25px; text-align:left ;">Structure Search</div>';
   content+=' <div>';
   content+=' <applet code="JME.class" name="JME" width="491" height="335" archive="JME.jar" style="width: 481px; margin-left: 20px"35"> ';
   content+='    <PARAM NAME="options" VALUE="nohydrogens">';
   content+='    To use JME enable Java in your browser options ! ';
   content+=' </applet>  ';
   content+=' <div style=" text-align:right ; width:491px;"><a href=http://www.molinspiration.com/jme/ style="color:blue">JME Editor</a> courtesy of Peter Ertl, Novartis</div>';
   content+='	<div align ="center">';
   content+='    <input id="BtnStruct" type="button" value="Search"  onclick= "SmilsExac()"/>';
   content+='	</div>';
   content+=' </div>';
   setInnerHTML(document.getElementById( "divResult"), content );     
}
function callServer(param, bPages)
{
   if (gMainxmlHttp == null)
   {
      CreateMainAjax() ;
      if (gMainxmlHttp == null)
      {
         alert("浏览器创建AJAX对象失败！");
         return ;
      }
   }

   curKeyWord = document.getElementById("InputKeyWord").value ;
   if (curKeyWord == "")
   {
      alert("Please input keyword");
      return ;
   }
   // 是否支持精确搜索
   var bExacSearch = document.getElementById("ExacSearch").checked;
   var   url = "../Search.aspx?SearchType=" + param + "&KeyWord=" + escape(curKeyWord) + "&PageNum=" + nCurPage + "&nPageSize=" + nPageSize + "&bExac=" + bExacSearch;
   gMainxmlHttp.open( "post", url, true );
   gMainxmlHttp.setRequestHeader("Cache-Control","no-cache"); 
   if (bPages == null)
   {
      bPageResults = false ;
   }
   else
   {
      bPageResults = bPages ;
   }
   ClearContent();

   if (param != nSearchType)
   {
      nCurPage =  1 ;
      nPageCnt = 0 ;
   }
   nSearchType = param  ;
   SetCallBackFun(nSearchType);
//   setInnerHTML(document.getElementById( "divFileInfo" ), "<div style='width:482; height:355; text-align:center;'><img src=images/loading.gif border=0 /></div>");
   gMainxmlHttp.send( null );
}

function SetCallBackFun(searchType)
{
   switch(searchType )
   {
      case 1 :
         gMainxmlHttp.onreadystatechange = updatePageCASID;
         break ;
      case 2 :
      case 3 :
         gMainxmlHttp.onreadystatechange = updatePageProID;
         break ;
      case 4 :
         gMainxmlHttp.onreadystatechange = updatePageMolecular;
         break ;
      case 5 :
         gMainxmlHttp.onreadystatechange = updatePageSequence;
         break ;
      default :
         break;
   }
}

function ShowNavi()
{
   if (gMainxmlHttp.responseXML == null)
   {
      return ;
   }
   try
   {
      var xmlResponse = gMainxmlHttp.responseXML;

     nPageCnt = xmlResponse.getElementsByTagName( "PageCnt" )[0].firstChild.nodeValue;
      nRecCnt  = xmlResponse.getElementsByTagName( "Gets" )[0].firstChild.nodeValue;
      dTime  =  xmlResponse.getElementsByTagName( "Time" )[0].firstChild.nodeValue;
   //   setInnerHTML(document.getElementById("divResult"), "搜索到" + nRecCnt + "个分子," + "耗时" +  dTime + "毫秒");
   setInnerHTML(document.getElementById("divResult"), "");
      if (nPageCnt <= 0)
      {
         setInnerHTML(document.getElementById("divFileInfo"), "Nothing be found");
         setInnerHTML(document.getElementById( "Navi" ), "");
         return false ;
      }

       var sHtml = "<table  width=100%><tr><td width=20% align=left ><img src=images/11.jpg border=0  onClick=ResetContent() /></td>";
       sHtml += "<td width=80% align=right><button type='submit'disabled='true' id='PrePage' onclick ='PrePage()' class='btn3_mouseover' style='width: 72px' >Previous</button>";
      // 不需要了，客户要求
      sHtml +=  "<select id='PageSelect' name='D1' onchange ='SelectChange()' style='cursor: hand; display:none'>";
      //for (index = 1; index <= nPageCnt; index ++ )
      //{
        // sHtml += "<option>" + index + "</option>";
      //}
      sHtml += "</select>";
      // 只有一页的时候
      if (nPageCnt > 1)
      {
          sHtml += "&nbsp;<button type='submit' id='NextPage' onclick ='NextPage()' class='btn3_mouseover'  style='width: 72px' >Next</button></td></tr></table>";
      }
      else
      {
          sHtml += "&nbsp;<button type='submit' disabled='true' id='NextPage' onclick ='NextPage()' class='btn3_mouseover'  style='width: 72px' >Next</button></td></tr></table>";
      }
      setInnerHTML(document.getElementById( "Navi" ), sHtml)  ;
     
   }
   catch(failed)
   {

   }
   return true ;
}

// 该函数用来响应对应的Selct改变的时候进行重新的数据绑定
function  SelectChange()
{
   var eSelctTag = document.getElementById("PageSelect");

   var nSelectIndex = eSelctTag.selectedIndex;

   var Colls = eSelctTag.options ;

   var nPage = Colls[nSelectIndex].text ;

   // 当前显示是分页查询的来的结果集合
   bPageResults  = true ;
   // 防止用户随便输入，然后点击分页导致结果认为不一致的误解
   document.getElementById("InputKeyWord").value = curKeyWord ;

   // 设置按钮状态
   SetPageBtnState(nPage);

   nCurPage = nPage;
   callServer(nSearchType, true);
}

function SetPageBtnState(nPage)
{
   // 设置上下也可用状态
   if(nPage == 1)// 上一页不可用
   {
      document.getElementById("PrePage").disabled = true ;
   }
   // 下一页不可用
   if (nPage == nPageCnt)
   {
      document.getElementById("NextPage").disabled = true;
   }
   // 均可用
   if (nPage>1 && nPage<nPageCnt)
   {
      document.getElementById("PrePage").disabled = false;
      document.getElementById("NextPage").disabled = false;
   }
}

function NextPage()
{
   //var eSelctTag = document.getElementById("PageSelect");

   //var nSelectIndex = eSelctTag.selectedIndex;

   //eSelctTag.selectedIndex  = nSelectIndex + 1 ;
var eSelctTag =npageindex;
    npageindex++;
   // 设置按钮状态
   SetPageBtnState(eSelctTag + 1 + 1);

   // 当前显示是分页查询的来的结果集合
   bPageResults  = true ;
   // 防止用户随便输入，然后点击分页导致结果认为不一致的误解
   document.getElementById("InputKeyWord").value = curKeyWord ;

   nCurPage = eSelctTag + 1 + 1;
   // + 1最后一个1是为了表示当前人为的页数从第一页开始计算导致的
   callServer(nSearchType, true);
}

function PrePage()
{
  // var eSelctTag = document.getElementById("PageSelect");

   //var nSelectIndex = eSelctTag.selectedIndex;

   //eSelctTag.selectedIndex  = nSelectIndex - 1 ;
  var eSelctTag =npageindex;
  //  var nSelectIndex = eSelctTag.selectedIndex;
    npageindex--;
   // 设置按钮状态
   SetPageBtnState(eSelctTag - 1 + 1);

   // 当前显示是分页查询的来的结果集合
   bPageResults  = true ;
   // 防止用户随便输入，然后点击分页导致结果认为不一致的误解
   document.getElementById("InputKeyWord").value = curKeyWord ;

   nCurPage = eSelctTag - 1 + 1;
   callServer(nSearchType, true);
}

window.onload = function()
{
   addOnloadEvent(CreateMainAjax) ;
   // 左边的新产品播放
   addOnloadEvent(GetNewProduct);
   // 右边的新闻页面
   addOnloadEvent(IniCropNewsTitle);
}

