﻿
//Function is used to replace the string
function replace(str, find,replace) 
 {
    return str.split(find).join(replace)
 }

function setFilter(tab,UI)
{

    //
    // ---------------------------------------
    // tab ->
    // 0 = All
    // 1 = Table
    // 2 = Graph
    // 3 = Map
    // 4 = Report
    // ---------------------------------------
    //
	
	// If same then do nothing - //TODO - Change this logic
	
	if (ifilter==tab) return
	
	// Initialize
	Initialize()
	
	// Set appropriate Class on the Tabs
	for(i=0;i<=5;i++) document.getElementById("flt" + i).className="tab"
	ifilter=tab
	document.getElementById("flt" + tab).className="crntTab"
	// TO BE EXECUTED ONLY WHEN THE TAB is CLICKED and not the Search Button
	if(!UI)
	{
	ConvertString(); 
	
	getTable();
	}
}
function ConvertString()
{


    //-- make things visible
    document.getElementById("mainbtn").style.display="none" // Home Page Search Button and POWER
    document.getElementById("btnSec").style.display="" // Search Button for Results Page
    //document.getElementById("Adv").style.display=""
      
    //	if (document.getElementById("txtSearch").value.length<=0) return
    //Commented by Ravi
    if (document.getElementById("txtSearch").value.length<=0) return	
    	
    var sFileName="";var sKeyWords="";keys="";UFile="";keyWords=document.getElementById('txtSearch').value.toLowerCase().replace('"',' ').replace('  ',' ').split(' ');
  
}

function getTable()
{ 
    
	try{

		oDate=new Date();
		searchStart=oDate.getTime();
		
		FileCounts=0	
		    XmlResults=new ActiveXObject("Microsoft.XMLDOM");	
		PrepareResults()
    }
	catch(ex){
	
	}
}

function PrepareResults()
{
 
    // Added on 31Aug 2007 ****************
    
    CallBack()
}
// NEW FUNCTION - Callback to Search.aspx page
function CallBack()
{

    // xmlhttp request normaly involves an url to call. this url will be processed by iis normaly only once, as the url itselfe won't be changed during requests and iis serves the request from cache...
    //"http://<page-name.aspx>?dummyVar="+Date()  instead of: "http://<page-name.aspx>
    //http://www.telerik.com/community/forums/thread/b311D-httmk.aspx
    var URL='search.aspx?dummyVar=' +Date();    
    //  var URL='search.aspx';    
    // No callBack if Search text is blank and older result will be cleared
    // alert(document.getElementById("txtSearch").value)
    if (document.getElementById("txtSearch").value<=0 || ifilter == 4) 
    {
        
        document.getElementById("dDisplay").innerHTML="" ;
        document.getElementById("TotFiles").innerText="0";
        document.getElementById("timSearch").innerText="0:000";
         SetSearchTypeText()
        return
     }
    var SearchString=document.getElementById("txtSearch").value; 
    
    //Added for Checking.Is it advance search?
    //var IsAdvSearch=0;
    
    var Condition="B"; //Condition "B"( for blank)indicate that this is simple search and is default condition       
    
    if (SeachCondition != "")
    {
       Condition = SeachCondition;
    }
    else if (document.getElementById("chkAllWords").checked)
    {
        Condition="A";
    }
    else if (document.getElementById("chkExactPhrase").checked)
    {
        Condition="X";
        SearchString = "\"" + SearchString.trim() + "\"";
    }
    
    /*
    if(document.getElementById("AdvanceSearch").value !="" || document.getElementById("AdvanceSearch").value!="B")
    { 

    // IsAdvSearch=1; 
    if(document.getElementById("AdvanceSearch").value!="") 
        Condition=document.getElementById("AdvanceSearch").value;
           
        // Resetting the Advance Search initial Value
        document.getElementById("AdvanceSearch").value="B";   
    }
    */
  
    if (ifilter ==undefined)
    {ifilter=0;}    
    xmlhttp=false;
    
      try
      {
            xmlhttp=getXMLHTTPRequest();
            xmlhttp.onreadystatechange=LoadXMLResult;
            xmlhttp.open('POST',URL,true);  
            xmlhttp.setRequestHeader("SearchStr",SearchString);
            xmlhttp.setRequestHeader("SearchType",ifilter); 
            xmlhttp.setRequestHeader("Condition",Condition);  
            xmlhttp.setRequestHeader("PageNo",1);  
            xmlhttp.send(null);
        }
        catch(ex)
        {
            alert(ex);
        }
     
     //- test ICallBack page functions
        if (false)
        {
          try
          { 
                var ICallBackURL ='ICallBack.aspx?dummyVar=' + Date(); 
                var xmlhttp2 = getXMLHTTPRequest();
                xmlhttp2.onreadystatechange = function()
                {
                    if(xmlhttp2.readyState == 4)
                    {
                       alert(xmlhttp2.responseText);
                    }
                };
                xmlhttp2.open('POST',ICallBackURL,true); 
                xmlhttp2.setRequestHeader("Action","A");
                xmlhttp2.setRequestHeader("Indicators","23,24,56, 17, 87, 36, 112");
                xmlhttp2.setRequestHeader("Areas", "23,24,56, 17, 87, 36, 112"); 
                xmlhttp2.setRequestHeader("PageNo",1);  
                xmlhttp2.send(null);
            }
            catch(ex)
            {
                alert(ex);
            }
         }
}

function getXMLHTTPRequest()
{
	if(window.XMLHttpRequest)
	{
	   
		return new window.XMLHttpRequest()
	}
	else
	{
	  
		for(i=0;i<xmlVersions.length;i++)
		{
			try
			{
				return new ActiveXObject(xmlVersions[i]);
			}
			catch(ex)
			{
			}
		}
	}
}


function CallBackOld()
{
	xmlhttp=getXMLHTTPRequest()
	xmlhttp.onreadystatechange=LoadXMLResult		
	xmlhttp.open("GET","Search.aspx",true)
	if(xmlhttp)
	{
		xmlhttp.setRequestHeader("SearchStr","ass");
        xmlhttp.setRequestHeader("SearchType","0"); 
       xmlhttp.setRequestHeader("Condition","B");   
     //}
//		catch(ex)
//		{}		
		xmlhttp.send(null)
	}

}


function LoadXMLResult()
{    

    if(xmlhttp.readyState == 4)//&& xmlhttp.status == 200)
    {     
        displayResults(xmlhttp.responseText);
    }
}

function displayResults(vari)
{    
            XmlResults = new ActiveXObject("Microsoft.XMLDOM");
            XmlResults.async=false;            
            XmlResults.loadXML(vari);
  
    if (XmlResults.documentElement.childNodes.length>0)
    {                
        objResult= XmlResults.documentElement;         
                  FileCounts= XmlResults.documentElement.getElementsByTagName("file").length;
                    xsl= new ActiveXObject("Microsoft.XMLDOM")
                    xsl.async = true
                    xsl.onreadystatechange=function(){if(xsl.readyState==4)
                    {GenerateNow();}}
                    xsl.load("result.xsl")                
        }
        
    else{
        document.getElementById("dDisplay").style.height="100%"   
        document.getElementById("dDisplay").innerHTML="Your search - <B>" + document.getElementById("txtSearch").value  + "</B> - did not match any documents"
        oDate=new Date()
		endSearch=oDate.getTime()
		
		switch(ifilter)
		{
			case 0:
				document.getElementById("searchType").innerHTML="All";	
			break;
			case 1:
				document.getElementById("searchType").innerHTML="Table";	
			break;
			case 2:						
				document.getElementById("searchType").innerHTML="Graph";								
			break;
			case 3:
				document.getElementById("searchType").innerHTML="Map";	
			break;
			case 4:			
				document.getElementById("searchType").innerHTML="Reports";
			break;
			case 5:			
				document.getElementById("searchType").innerHTML="Profile";
			break;
		}
		oDate=new Date();
        endSearch=oDate.getTime();
        document.getElementById("TotFiles").innerText=FileCounts;
        document.getElementById("timSearch").innerText=(endSearch - searchStart)/1000;
        document.getElementById("topLogo").style.display="none"; 
        document.getElementById("tdBlank").style.display="none";
        document.getElementById("smallLogo").style.display="";
        document.getElementById("resPane").style.display="";
        document.getElementById("searchPanel").align="left";
        document.getElementById("tdTabs").align="left";
        document.getElementById("topLogo").align="left" ;
        document.getElementById("tdTabs").align="left" ;
        document.getElementById("tdTabs").style.paddingTop="15px";
        document.getElementById("dPower").style.display=""      ;
        }
	fileName="";
	lastSep=0;
	firstChrCode=0;
	crntIndexValue=0;
}
    

function GenerateNow()
{
     
    //  10 sept07: getting the name of thumbnail file
    for(i=0;i<XmlResults.documentElement.childNodes.length;i++)
    {
    try { 
       
       
		     XmlResults.documentElement.childNodes(i).attributes.getNamedItem("id").value =(XmlResults.documentElement.childNodes(i).attributes.getNamedItem("id").value  +".gif");		
		     if(XmlResults.documentElement.childNodes(i).attributes.getNamedItem("type").value=="B")
		     {
		        var TempArray= new Array();
		        TempArray=XmlResults.documentElement.childNodes(i).attributes.getNamedItem("name").value.split('\\')
		        XmlResults.documentElement.childNodes(i).attributes.getNamedItem("name").value=TempArray[TempArray.length-1];
		     }
		
       
        }
        catch(ex)
        { 
            XmlResults.documentElement.removeChild(XmlResults.documentElement.childNodes.item(i));  
        }    
    }    
	
		  retXMl=XmlResults.xml;
		 
 
        
         retXMl=replace(retXMl,'\"','~')
         retXMl=replace(retXMl,"~","'")   
        
   
   
    XmlResults= new ActiveXObject("Microsoft.XMLDOM")
    XmlResults.async=true
    XmlResults.onreadystatechange=function(){if(XmlResults.readyState==4){GenerateNow2();}}
    XmlResults.loadXML(retXMl)
     

   
    }
function GenerateNow2(){

    var sResult =XmlResults.transformNode(xsl)   
      document.getElementById("dDisplay").innerHTML=sResult;//sResult.tostring();
 
    switch(ifilter)
    {
        case 0:
            document.getElementById("searchType").innerHTML="All"	
        break;
        case 1:
            document.getElementById("searchType").innerHTML="Table"	
        break;
        case 2:
            document.getElementById("searchType").innerHTML="Graph"	
        break;
        case 3:
            document.getElementById("searchType").innerHTML="Map"	
        break;
		case 4:
			document.getElementById("searchType").innerHTML="Reports"	
		break;
		case 5:
			document.getElementById("searchType").innerHTML="Profile"
		break;
    }
   
    oDate=new Date()
    endSearch=oDate.getTime()
    document.getElementById("TotFiles").innerHTML=FileCounts
    document.getElementById("timSearch").innerHTML=(endSearch - searchStart)/1000
    document.getElementById("topLogo").style.display="none"
    document.getElementById("tdBlank").style.display="none"
    document.getElementById("smallLogo").style.display=""
    document.getElementById("resPane").style.display=""
    document.getElementById("searchPanel").align="left"
    document.getElementById("tdTabs").align="left"
    document.getElementById("topLogo").align="left"
    document.getElementById("tdTabs").align="left"
    document.getElementById("tdTabs").style.paddingTop="15px"
    document.getElementById("dPower").style.display=""    
    setTimeout('MakePage()', 5)}

function MakePage(){
    try{
        var currentX =0
        var currentY=0
        var XRef
        var nextY=0
        var screenWidth=window.document.body.offsetWidth
        var screenHeight=window.document.body.offsetHeight
        var cTbl
             
        for(i=0;i<XmlResults.documentElement.childNodes.length;i++){         
            cTbl=document.getElementById("Table_" + XmlResults.documentElement.childNodes(i).attributes.getNamedItem("name").value)
            
            if(i!=0)
            {
            currentX += cTbl.clientWidth + 40
            }
            if(currentY+cTbl.clientHeight+5>nextY)
            {
             nextY=currentY+cTbl.clientHeight+5
             }
            if(currentX+cTbl.clientWidth + 40>screenWidth)
            {
                currentX=XRef
                currentY=nextY
                
                }
           if(i==0)
            {
                currentX=cTbl.offsetLeft
                currentY=cTbl.offsetTop
                XRef=currentX
             }
            cTbl.style.left=currentX
            cTbl.style.top=currentY
            }
        if(currentY + cTbl.clientHeight + 5 >screenHeight)
        {
         document.getElementById("dDisplay").style.height=nextY
         }
        else
        {
         document.getElementById("dDisplay").style.height="100%"
         }
         }
    catch(ex){}
}

function getResult(val){document.getElementById("Display").innerHTML=val.value}

function getSortXML()
{
    XSlSort= new ActiveXObject("Microsoft.XMLDOM")
    XSlSort.async = true
    XSlSort.load("sort.xsl")
}  



function getPresentation(val){
    var type=2
    var sFileName


   sFileName=val.innerText
   if(val.pType =="B")
   {
    sFileName ="presentations/" + sFileName +"/Default.html" 
    // Path changed on 8/9/2007
	var owindow=window.open(sFileName)
	owindow.onload="window.close()";
   }   
   else
   {
   if(val.pType =="V")	
	{	   
	  
      var owindow=  window.open("MediaPlay.htm?filename=" +  sFileName);
      owindow.onload="window.close()";
	}
	else
	{	   
	switch(type)
	{
		case 0:
			sFileName += ".pdf"
		break
		case 1:
			sFileName += ".xls"
		break
		case 2:
			sFileName += ".mht"
		break
		case 3:
			sFileName += ".html"
		break
	}		
	// Path changed on 8/9/2007
	var owindow=window.open("presentations/MHTFiles/" +  sFileName)
	owindow.onload="window.close()";
	}	
	}
    }
	
function SetSearchTypeText()
{
switch(ifilter)
		{
			case 0:
				document.getElementById("searchType").innerText="All"	
			break;
			case 1:
				document.getElementById("searchType").innerText="Table"	
			break;
			case 2:
				document.getElementById("searchType").innerText="Graph"	
			break;
			case 3:
				document.getElementById("searchType").innerText="Map"	
			break;
			case 4:
				document.getElementById("searchType").innerText="Reports"
			break;
            case 5:
				document.getElementById("searchType").innerText="Profile"	
			break;
		}
}

// Added For Advance Search
// Open Advance Search Window 
function openAdvPopup()
{

    var ChildWindow;
    var oParentWin_TxtSearch =document.getElementById("txtSearch").value; 
    
	ChildWindow=open("AdvancedPage.htm?DummyVar=" +Date(),'','height=400,width=800,resizable=yes,scrollbars=yes');		     
}

//Set Advance search String 
// Values under Exect text box will be within double quote
function SetAdvSearchString()
{
    var AdvSearchString="";
    var oParentWin_AdvSearchInput = window.opener.document.getElementById("AdvanceSearch");
    var oParentWin_TxtSearch = window.opener.document.getElementById("txtSearch");
   
    //If nothing is entered in Exect text Box. search string will be advanced text search field only
    if (document.getElementById("txtExactPhrase").value.length<=0)
    {
        if (document.getElementById("txtSearchAll").value.length>0)
        {     
            AdvSearchString=document.getElementById("txtSearchAll").value;  
            // var AdvSearchString=document.txtSearchAll.value;   
            //window.opener.document.IndexForm.AdvanceSearch.value="1";            
            oParentWin_AdvSearchInput.value="A";
        }                
    }
    else        // if txtExact phrase is not blank
     {
         if (document.getElementById("txtSearchAll").value.length<=0)   //txtExact phrase is not blank but Search all is blank
            {            
                    AdvSearchString=" \"" + document.getElementById("txtExactPhrase").value + "\"" ;                    
                    oParentWin_AdvSearchInput.value="X";
            }
         else
            {
                    var AdvSearchString=document.getElementById("txtSearchAll").value + " \"" +document.getElementById("txtExactPhrase").value + "\"" ;            
                    oParentWin_AdvSearchInput.value="AX";
            }
    }
           
    oParentWin_TxtSearch.value=AdvSearchString;
    oParentWin_TxtSearch.focus();    
    window.opener.setFilter(0,true);
    window.opener.ConvertString();
    window.opener.getTable();
}

//Update advanced search window's search all textbox with searchtext of index.htm
function  setChildSearchString()
{
    var oParentWin_TxtSearch = window.opener.document.getElementById("txtSearch").value;
    
    document.getElementById("txtSearchAll").value=oParentWin_TxtSearch ;
}


    
