// -------------------- search functions  --------------------
var through=0;
var Sparalist=new Array(1000);
var myXMLHTTPRequest
var xmldoc
var xmldoc1
function resetxml(){
loaded=0;
 if (document.implementation.createDocument){
 myXMLHTTPRequest = new XMLHttpRequest();
moz=1;
 var xmldoc
 } else if (window.ActiveXObject){
  myXMLHTTPRequest = new ActiveXObject('MSXML2.XMLHTTP')
  xmldoc1 = new ActiveXObject('Microsoft.XMLDOM')
moz=0;
}
}
// var linkNodelist= new Array(1000);
// var numfolder= new Array(5);
var assets = new Array(1000);
var visited= new Array(1000);
var colspan = new Array(7);
var novisited=0;
var assetinuse=0;
var shownavind=0;
var locn="";
var loaded=0;
var foldval="";
maxopts=30;
var ms;
var li;
var caller="";
var divdone=0;
var colsrch="ff0000";
var bgcol="ffff00";
var playloc="";
var xmltran;
var ms;
colspan[1]='<span class="search1">';
colspan[2]='<span class="search2">';
colspan[3]='<span class="search3">';
colspan[4]='<span class="search4">';
colspan[5]='<span class="search5">';
colspan[6]='<span class="search6">';
colspan[7]='<span class="search7">';
var found =0;
lastpopdone=1;
var looking=0;
var ncs=0
var loopno=1;
var stitlediv=" contextmenu='sectionhead' style='margin-bottom:0px;font-weight:bold;font-size:14px;font-family:verdana' id='";
mclass="menu_topics"
mclassh="menu_topics_hover"
tclass="sub_topic"
tclassh="sub_topic_hover"
// function to load transcript xml
function load_tranXML(flname) {

if (lastpopdone==0){
alert("waiting for pop to complete");
sc=setTimeout('load_tranXML(flname);',150);
return;
}
resetxml();
  myXMLHTTPRequest.onreadystatechange=xmlhttpChange2;
  myXMLHTTPRequest.open('GET', flname, true);
  myXMLHTTPRequest.send(null);


}

// the function that reacts to xml loading and does the biz
function xmlhttpChange2(){ // 1
//alert(myXMLHTTPRequest.readyState)
 if (myXMLHTTPRequest.readyState==4 && loaded==0){// 2
    
    if(myXMLHTTPRequest.status==200||myXMLHTTPRequest.status==0){//3
             if (document.implementation.createDocument){//4
                xmltran = myXMLHTTPRequest.responseXML

             } // end doc imp 4
             else{// 5
                xmldoc1.loadXML(myXMLHTTPRequest.responseText);

            xmltran=xmldoc1.documentElement;


             } // end else 5
         // read in transcript and go back round
       loaded=2;
//streval="parent." + foldval + "_closed"
// this is all about access control .. skip for BP!
//if (eval(streval!=1)){
       //poptran()
//}

       poptran();
       xmltran=null
           // alert ("Num files="+nf+"loop="+loopno)

       if (loopno<nf){// 6

        loopno=loopno+1;

  fv=assets[loopno].indexOf("/");

foldval=assets[loopno].substring(0,fv)
     fv2="The System is initialising the search data. About to load details for " +foldval;
          gh=setTimeout('showstat(fv2);',100)
          //alert(assets[loopno])
         sc=setTimeout('load_tranXML(assets[loopno]);',150);
       } // end if 6
       else{// 7


          document.getElementById('sloading').style.display='none'
          // document.getElementById('sbott').style.display='block'






            // divlist=li.document.getElementsByTagName("div");
            //divdone=1;

            resetxml();
            xmldoc="";
            xmldoc1="";
            parent.srchload=3;
            //alert ("resetting ")
            parent.srchit();

       } // end else 7
   } // end status if 3
   else { // 8

   } // end ready state else 8

  } // end ready state3

} // end function 1

// this function does the population ***************************************************************
function poptran()
{

lastpopdone=0;

paralist = xmltran.getElementsByTagName("para");
// consolidate paraspan elements into parax array elements


for (i=0;i<paralist.length;i++){
spanlist=paralist[i].getElementsByTagName("content")
Sparalist[i]=""
for (k=0;k<spanlist.length;k++){
Sparalist[i]=Sparalist[i]+spanlist[k].firstChild.nodeValue+" ";
}

}
// done consolidation
dvlist = xmltran.getElementsByTagName("dv");
tplist=xmltran.getElementsByTagName("tp");

titlenode = xmltran.getElementsByTagName("tle");

var titleval=titlenode[0].firstChild.nodeValue
linkdiv = document.createElement('div');

linkdiv.contextmenu='sectionhead'
linkdiv.id="T-"+foldval;
li.appendChild(linkdiv)
Ttxt = document.createTextNode(titleval);
idtodo=linkdiv.id
document.getElementById(linkdiv.id).appendChild(Ttxt)
				 linkdiv = document.createElement('br');
				 document.getElementById(idtodo).appendChild(linkdiv)
				 linkdiv = document.createElement('br');
				 document.getElementById(idtodo).appendChild(linkdiv)
;document.getElementById(idtodo).className="search_title"

npara=paralist.length;


for (pn=0;pn<npara;pn++){ // first for

// parse dv to get out location info
divinfo=dvlist[pn].firstChild.nodeValue
showname=Sparalist[pn]
showtype=tplist[pn].firstChild.nodeValue
if(showname!="no text"){
if (showtype=="s"){showname="Text from slide ..."+showname}
div=foldval+"~"+divinfo


		 linkdiv = document.createElement('div');
		 linkdiv.id=div;
		 li.appendChild(linkdiv)
		 Ttxt = document.createTextNode(showname);
		 idtodo=linkdiv.id
		document.getElementById(idtodo).appendChild(Ttxt);
				 linkdiv = document.createElement('br');
				 document.getElementById(idtodo).appendChild(linkdiv)
				 linkdiv = document.createElement('br');
				 document.getElementById(idtodo).appendChild(linkdiv)
                                 document.getElementById(idtodo).style.display="none"
                   document.getElementById(idtodo).className="search_para"; 
                   onC="hovpara('"+idtodo+"')";
                   document.getElementById(idtodo).onmouseover = new Function(onC) ;
                   onC="outpara('"+idtodo+"')";
                   document.getElementById(idtodo).onmouseout = new Function(onC) ;
                   onC="clickpara('"+idtodo+"')";
                   document.getElementById(idtodo).onclick = new Function(onC) ;
                   
}

}// end for

lastpopdone=1;
} // end function *********************************************************************************************

function hovpara(what){
document.getElementById(what).className="search_para_hover";
}
function outpara(what){
document.getElementById(what).className="search_para";
}

function clickpara(what){
whparts=what.split("~")
nsld=whparts[1];

if (whparts[0]!=asset){
flname=whparts[0]+"/transcript_short.xml"
load_s_asset(flname)

}else{
launch(whparts[1])

}
srch.style.display='none'
switch(onview){
case "e-book":{
transcript.style.display="block";
show_transcript_tab.style.display="none";
jumpto()
break;
}
case "blog":{
blog.style.display="block"
show_blog_tab.style.display="none"
break;
}
case "slide":{
slide.style.display="block"
swapm.style.display="block";
show_slide_tab.style.display="none"
slidetodo.src=fldr+"/"+slidedetails[nsld]+suftodo;
break;
}
case "thumbs":{
thumbs.style.display="block"
show_thumbs_tab.style.display="none"
jumpto_thumb();
break;
}
default:{
alert("oops "+lastview)
break;

}
}
}



function getxml(flname) {
resetxml();
myXMLHTTPRequest.onreadystatechange=xmlhttpChange;
myXMLHTTPRequest.open('GET', flname, true);
myXMLHTTPRequest.send(null);

}

//........................
//  Fuction that fires on load of folders .xml
// ....................

function xmlhttpChange(){// 6

if (myXMLHTTPRequest.readyState==4 && loaded==0){ // 1

    if(myXMLHTTPRequest.status==200||myXMLHTTPRequest.status==0){// 2
     if (document.implementation.createDocument){ //3
       xmldoc = myXMLHTTPRequest.responseXML;

       loaded=1;
     } // end if 3
     else{ //4
       xmldoc1.loadXML(myXMLHTTPRequest.responseText);
   xmldoc=xmldoc1.documentElement;
     }// end else 4

    var numfolder = xmldoc.getElementsByTagName("number");
    var linkNodelist = xmldoc.getElementsByTagName("location");

    nf=numfolder.item(0).firstChild.nodeValue;
    // port linknode values to asset array
    kk=parseInt(nf)

    for (k=1;k<(kk+1);k++) {
    assets[k]=linkNodelist[k-1].firstChild.nodeValue;

    }
           fv=assets[1].indexOf("/");
           foldval=assets[1].substring(0,fv)

    fv2="The System is initialising the search data. About to load details for " +foldval;
gh=setTimeout('showstat(fv2);',100);

     sct=setTimeout('load_tranXML(assets[1]);',150);
   } // end if ready status 2
   else {// 5
alert("problem with xml load");
   } // end else atatus 5
 } //end Ready state 1
} // end function 6
function catchbackspace(evt) {//================================================
	e=(evt)? evt:window.event

	kc=e.keyCode;

	if (kc==13) {

		slen=document.myForm0.sfor.value

		focus();
		sgoclick();
		return;
	}
	if (kc==8 && srch==1 ) {
		tx=document.getElementById('sfor')
		tx.text="";
		srch=0;
		return;
	}
}

function clicker() {
	slen=document.myForm0.sfor.value;


	sgoclick();
	return;
}

function sgoclick() {
	if (slen.length==0)
	{
	  alert("Please insert a word or phrase in the Search Box");
	  return;
	}


	if (srchload==1)
	{
	  srchload=0;
	  show_search();
	  getxml('folders.xml');
	   //waiter();

	  return;
	}



	if (slen==oslen)
	{

	  show_search();
	  return;
        }
	if (srchload==4){
	
	 ndv=0
	 ht=0
	 schr2=li;
	 // li.scrollTo(0,0);

	 srchit();
	 return;
	}
} // end sgoclickfunction -------------------

function srchit()   // ==================================================
{
          
	oslen=slen;
	if (srchload<3){


	  scr=setTimeout('srchit();',100)
	  return;
	}
	if (srchload==3)
	{
	  schr2=li;
	  srchload=4;
	  // schr1=whereami.aut;
	}
	through =through+1

	  divlist=schr2.getElementsByTagName('div');
	 
	
	 si=0;
	 s=slen.length;
	 sslen=s+colspan[1].length+5;
	ncs=ncs+1;
	if (ncs>7) {ncs=1}
	// make all divs none and remove any previous search spans
	para_fnd=0
	ndv=1
	ht=0
	
	ghr=setTimeout('findnextsr();',1);

} //end srchit function--------------------------------------------------------------------


function findnextsr() {//======================================================================


 if(divlist[ndv]){

if (divlist[ndv].id.substr(0,1)!="T"){
 divlist[ndv].style.display='none';
}

    qq=divlist[ndv].innerHTML.toLowerCase().indexOf(slen.toLowerCase());
   
    while (qq>-1) {
	      para_fnd=para_fnd+1
	      divlist[ndv].style.display=''
	      dt=divlist[ndv].innerHTML.length
	      st1=divlist[ndv].innerHTML.substring(0,qq)
	      st2=divlist[ndv].innerHTML.substring(qq,qq+s)
	      st3=divlist[ndv].innerHTML.substring(qq+s,dt)

	      divlist[ndv].innerHTML= st1 + colspan[ncs] + st2 + "</span>" + st3;
	      nnow=qq+sslen;
	      
	      if(nnow>divlist[ndv].innerHTML.length) {
	      
	      break
	      };

	      qq=divlist[ndv].innerHTML.toLowerCase().indexOf(slen.toLowerCase(), nnow);
    } // while qqloop
 } // if condition on divs

if (ndv<divlist.length){
	ndv=ndv+1

	ghr2=setTimeout('findnextsr();',1);
	return;
}
else{

	sload=document.getElementById('sloading');
	sload.style.display='none';
	sfound.style.display="";
	sfdiv=document.getElementById('fnd');
	nosfdiv=document.getElementById('nofnd');
	resultdiv=document.getElementById('results');
	resultdiv.className=colspan[ncs];
	resultdiv.innerHTML=slen;
	resultnumdiv=document.getElementById('resultnum');
	resultnumdiv.innerHTML=para_fnd;
	sfdiv.style.display="none";
	nosfdiv.style.display="none";
	bot=schr2.document.getElementById('sbott')
	bot.style.display='none'

	if (para_fnd>0)  {sfdiv.style.display="";}
	if (para_fnd==0)  {nosfdiv.style.display="";}
	document.myForm0.sfor.defaultValue=slen;

	para_fnd=0;
}
} 

function showstat(fv){
 ms=document.getElementById('sloading');
 ms.innerHTML=fv;
}
function load_s_asset(flname){
// remove windows media player
document.getElementById('selector').style.display='none';
document.getElementById('bpfu').style.display='none';
document.getElementById('theatre').style.display='block';
vh=document.getElementById("vid_load")
vidiv=document.getElementById("viddiv")
stopplayer();
vidiv.style.display='none'
vh.style.display='block'

//alert(plr.Controls.currentMarker)
//delete plr;
// show confidential slide
show_slides()
show_slide_tab.style.display='none';
nsld=whparts[1];
get_assetXML(flname)

}
