//global variables	
var request = false;


var glevel = "";
var gquery ="";
var prior_pValue = "";
var prior_pValue2 = "";
var level1selection = "";
var level2selection = "";
var level3selection = "";
var level4selection = "";
var resultTableHTML = "";
var fieldTitle="";
var category ="";
var dsite2 = "";
var dsite3 ="";
var surl = "";
//var site_new=Site;
var servlet_path="";
var selectBox ="";
var resultsurl ="";
var sortOrder="";
var sortField="";
var sortField2 ="";
var pageNumber="";
var countryImage="";
var dateImage=""
var titleImage="";
var titleHeadUI ="";
var countryHeadUI ="";
var dateHeadUI ="";
var descHeadUI ="";
	try{
		request = new XMLHttpRequest();
	} 
	catch (trymicrosoft){
		try{ 
	    	request = new ActiveXObject("Msxml2.XMLHTTP");
	    } 
	    catch (othermicrosoft){
	    	try{	 
	        	request = new ActiveXObject("Microsoft.XMLHTTP");
	       	}
	       	catch (failed){
	        	request = false;
	       	}  
	     }
   	}
   	if (!request)
   		alert("Error initializing XMLHttpRequest!");


function menu1funct(menu1,Ajax_SERVLET)
{
	servlet_path = Ajax_SERVLET;
	IsGlobal=false;
	
	callServer('1','refreshAll');
}

function callServer(level,pValue,IsThisGlobal)
{
    IsGlobal = false;
	selectBox = document.getElementById("menu1");             
    dsite2 = selectBox.options[selectBox.selectedIndex].value;     
    dsite3 = selectBox.options[selectBox.selectedIndex].text; 
    
	glevel = level;
       	
    if (level == "2" ){
		level2selection = pValue;
		fieldTitle = document.getElementById("menu2").options[document.getElementById("menu2").selectedIndex].value		;
  		category = document.getElementById("menu2").options[document.getElementById("menu2").selectedIndex].text;		
  		var url = servlet_path + "?request=getResults&library=" + escape(dsite2)+"&category=" + escape(level2selection)+"&libraryName="+escape(dsite3);
  		document.getElementById('listbox1').scrollTop = 0;
  	}
    else if (level == "3"){
    	level3selection = pValue;     	
    	pValue = prior_pValue + pValue;
    	var url = servlet_path+  "?request=getResults&library=" + escape(dsite2)+"&category=" + escape(level2selection) +"&subCategory=" +escape(level3selection)+"&libraryName="+escape(dsite3);    	    	
    	document.getElementById('listbox2').scrollTop = 0;
    }
    else if (level =="4"){	    
    	level4selection = pValue;
		var url = servlet_path+  "?request=getResults&library=" + escape(dsite2)+"&category=" + escape(level2selection) +"&subCategory=" +escape(level3selection)+"&subSiteSection="+ escape(level4selection)+"&libraryName="+escape(dsite3);
		document.getElementById('listbox3').scrollTop = 0;
    }
    else{
    	level1selection = pValue;   
   		var url = servlet_path +"?request=getResults&library=" + escape(dsite2)+"&libraryName="+escape(dsite3); 	 	
 	}
	prior_pValue = pValue;
	surl = url;		
	if (level == "1"){
		level2selection='';
		level3selection='';
		level4selection='';
		MakeRequest(url,updatePage);
	}
	if (level=="2"){
		level3selection='';
		level4selection='';
		MakeRequest(url,updatePage);
	}
	if (level=="3"){
		level4selection='';
		MakeRequest(url,updatePage);
	}
	if (level=="4"){
			MakeRequest(url,updatePage);
	}
}

function MakeRequest(url,whatfunction)
{
	// Open a connection to the server
	request.open("GET", url, true);
	// Setup a function for the server to run when it's done
	request.onreadystatechange = whatfunction;
	// Send the request
	request.send(null);
}

function updatePage()
{
	var runquery = "no";
	level = glevel;
	
	if (request.readyState == 4){ 		
	
		
  		if (request.status == 200){
       			var responseMinusLineFeedText =request.responseText.replace(/[\r\n]+/g, "");     			
    			var response = responseMinusLineFeedText.split("~~");    			
    			if (response[0] != "<h2>No documents found</h2>"){
			    	buildOptions(response,level);
      				showDiv(level,prior_pValue);
     			}
    			else{
    				runquery = "yes";
    			}
    		} 
    		
    	
    		if  ((request.status == 404) || (runquery == "yes")){	
    		  buildQuery();	  
		    //  document.library.submit();		
		    
		    location.href="/DLResults?Query=" + gquery;
  		}
  	}
}	
function buildQuery()
{
	var countryLocale = dsite2.split("~");
	var countryCode = countryLocale[0];
	var languageCode = countryLocale[1];
	var gsite = "[CountryCode]=" + countryCode;
	var locale= "[LanguageCode]="+languageCode;
	
	if(level2selection==''){
		gquery=gsite + "~" + locale ;
	} else{
		var glevel1='['+fieldTitle+']=';
		//if(level2selection.toLowerCase() == 'about us'){
		//	glevel1='[T_AboutUs]=';
		//}
		//else if(level2selection.toLowerCase() =='industries'){
		//	glevel1='[T_Industry]=';
		//}
		//else{
		//	glevel1 = '[T_' + level2selection+']=';
		//}
		if(level2selection != '' && level3selection !='' && level4selection != ''){
			if(level4selection == "View All " + level3selection + " Documents"){
				gquery = gsite +"~" + locale +"~" + glevel1 +"("+ category + "\\" + level3selection +")";
			}else{
			gquery = gsite + "~" + locale +"~"+ glevel1  +"("+category + "\\" + level3selection+"~"+category + "\\" + level3selection + "\\"+level4selection +")";
			}
		}else if (level2selection != '' && level3selection !=''){
			gquery = gsite + "~" + locale +"~"+ glevel1  +"("+category + "\\"+level3selection+")";
		}else if(level2selection != ''){
			gquery=gsite+"~"+locale+"~"+glevel1 +"("+level2selection+")";
		}
	}	
	
}

function buildOptions(response,level)
{
	newInnerHtml = "";
	var numrows = 0;	
	
	
	if (prior_pValue == "refreshAll"){
		newInnerHtml = newInnerHtml + "<select class=\"library_select\" onChange=\"callServer(2,this[this.selectedIndex].text)\" name=\"menu2\" size=\"8\" id=\"menu2\">";
		level = "1";
	}
	if (level==2){
		newInnerHtml = newInnerHtml + "<select class=\"library_select\" onChange=\"callServer(3,this[this.selectedIndex].text)\" name=\"menu3\" size=\"8\" id=\"menu3\">";
	}	
	if (level==3)
	{
		newInnerHtml = newInnerHtml + "<select class=\"library_select\" onClick=\"callServer(4,this[this.selectedIndex].text)\" name=\"menu4\" size=\"8\" id=\"menu4\">";
	}
	for(i = 0;i<response.length;i++){ 	
 		if (response[i] != ""){
 			var fieldNames = response[i].split("||");
  			newInnerHtml = newInnerHtml + "<option value="+fieldNames[1]+">"  +fieldNames[0] + "</option>";		  	 
		  	numrows = numrows+1;
  		}
  		
 	}
	newInnerHtml = newInnerHtml+ "</select>";
	var whichlistbox = "listbox" + level;
	var whichtitle = "TitreSelect" + level;	
	if (level==2) 
	{
		var firstLetter = prior_pValue.substring(0,1);
 		if (firstLetter.toLowerCase() == "a" || firstLetter.toLowerCase() == "e" || firstLetter.toLowerCase() == "i" ||firstLetter.toLowerCase()=="o"||firstLetter.toLowerCase()=="u"){
  			var aoran = " an ";
  		}
  		else{	
  			var aoran = " a ";
  		}
  		document.getElementById(whichtitle).innerHTML = "Now select" + aoran + prior_pValue.toLowerCase()+":";
		prior_pValue2 = prior_pValue;
	}
	if (level ==3 ) {
		document.getElementById(whichtitle).innerHTML = "<span><b> Now select a sub " +prior_pValue2.toLowerCase()+":</span>";
	}
	
	document.getElementById(whichlistbox).innerHTML = newInnerHtml ;
}

function showDiv(par,prior_pValue)  
{ 
	if (par==1){
		MM_showHideLayers('etape1On','','hide','etape1Off','','show','DivCol2','','show','etape3Off','','hide','etape2Off','','hide','etape2On','','show','DivCol3','','hide','etape3On','','hide','DivCol4','','hide','etape4On','','hide');
	}
	if (par==2)	{
		MM_showHideLayers('etape2On','','hide','etape2Off','','show','DivCol3','','show','DivCol4','','hide','etape3On','','show','etape3Off','','hide','etape4On','','hide');
	}
	if (par==3)
	{
		MM_showHideLayers('etape3On','','hide','etape3Off','','show','DivCol4','','show','etape4On','','show');
	}
	if (prior_pValue=='refreshAll'){ 
		prior_pValue = "";		
  	}	
}

function MM_showHideLayers() 
{ 
	var i,p,v,obj,args=MM_showHideLayers.arguments;	
  	for (i=0; i<(args.length-2); i+=3) 
  	with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { 
		v=args[i+2];  
		if (obj.style){
			obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; 
		}	
		obj.visibility=v; 
  	}
}
function sortLink(obj,currentSortField,Ajax_SERVLET,titleHeader,dateHeader,countryHeader,descHeader)
{

	titleHeadUI=titleHeader;
	dateHeadUI=dateHeader;
	countryHeadUI=countryHeader;
	descHeadUI=descHeader;	
	servlet_path = Ajax_SERVLET;	
	sortField= currentSortField;	
	var currentTime = new Date();	
	setSortFields();		
	var resultsurl = servlet_path + "?request=getSort&sortField=" + escape(sortField)+"&sortField2=" + escape(sortField2)+"&sortOrder=" + escape(sortOrder) + "&timestamp="+escape(currentTime);	
	MakeRequest(resultsurl,updateResults);
}

function setSortFields()
{
	if( document.searchResults.sortOrder.value == "dsc"){
		sortOrder="asc";
	} 
	else if (document.searchResults.sortOrder.value == "asc"){
		sortOrder= "dsc";
	}
	
	if( sortField =="assetDate"){
		if(document.searchResults.sortField.value!="assetDate"){
			sortOrder="asc";
		}
		document.searchResults.sortField.value="assetDate";
		sortField2 = "assetTitle";
	}
	else if(sortField=="assetTitle")	{
		if(document.searchResults.sortField.value!="assetTitle"){
			sortOrder="dsc";
		}
		document.searchResults.sortField.value="assetTitle";
		sortField2 = "assetDate";
	}
	else if(sortField=="country"){		
		if(document.searchResults.sortField.value!="country"){	
			sortOrder="dsc";
		}
		document.searchResults.sortField.value="country";	
		sortField2 = "assetDate";			
	}	
}


function updateResults()
{
	if (request.readyState == 4){ 		
  		if (request.status == 200){
      			//location.reload(true);
      			var responseMinusLineFeedText =request.responseText.replace(/[\r\n]+/g, "");     			
      			var response = responseMinusLineFeedText.split("~~");      			
      			
      			eval(response[0]);
      			setImages();
      			resultTableHTML  ="<table cellSpacing='0' cellPadding='0'>";
      			resultTableHTML +="<tr><td><p class='pubimageresultscolheader'></p></td>";
			resultTableHTML +="<td onClick=\"sortLink(this,'assetTitle',Ajax_SERVLET,titleHeader,dateHeader,countryHeader,descHeader)\" align='center' style='cursor:hand;'>";
			resultTableHTML +="<p class='pubtitleresultscolheader'>"+ titleHeadUI +"&nbsp; <img id='titleSortIcon' src='"+titleImage + "'/></p></td>";
			resultTableHTML +="<td onClick=\"sortLink(this,'assetDate',Ajax_SERVLET,titleHeader,dateHeader,countryHeader,descHeader)\" align='center' style='cursor:hand;'>";
			resultTableHTML +="<p class='pubdateresultscolheader'>"+dateHeadUI+"&nbsp; <img id='dateSortIcon' src='"+dateImage + "'/></p></td>";
			resultTableHTML +="<td onClick=\"sortLink(this,'country',Ajax_SERVLET,titleHeader,dateHeader,countryHeader,descHeader)\" align='center' style='cursor:hand;'>";
			resultTableHTML +="<p class='pubcountryresultscolheader'>"+countryHeadUI+"&nbsp; <img id='countrySortIcon'  src='"+countryImage + "'/></p></td>";
			resultTableHTML +="<td><p class='pubdescriptionresultscolheader' align='center' style='cursor:hand;'>"+descHeadUI+"</p></td></tr>";
			for(j=0;j<results.length;j++)
			{
				resultTableHTML +="<tr><td>" + unescape(results[j][6]) +"</td>";
				resultTableHTML +="<td class='pubtitle'><a href='" + unescape(results[j][1]) + "' target='_blank'>" + unescape(results[j][0]) + "</a><br/>" + formatpdf(results[j][5],results[j][4])+"</td>";
				resultTableHTML +="<td class='pubDate' align='center'>" + unescape(results[j][7]) + "</td>";
				resultTableHTML +="<td class='pubCountry' align='center'>" + unescape(results[j][2]) + "</td>";
				resultTableHTML +="<td class='pubDescription'><p>" +unescape(results[j][3])+ "</p></td></tr>";
			}
			resultTableHTML += "</table>";      			
      			var nextFlag = response[1];     
      			var previousFlag = response[2]; 					
      			
      			if( nextFlag == 'false'){      				
      				setNextPaginationOff();      					
      			}
      			if( previousFlag == 'false'){
      				setPreviousPaginationOff();
      			}
      			if(previousFlag =='true'){
				setPreviousPaginationOn();		
      			}
      			if( nextFlag == 'true'){
      				setNextPaginationOn();
      			}      			
      			if( nextFlag == 'sort'){
      				document.searchResults.pageNumber.value =1;
      				
      				setPreviousPaginationOff();
      				setNextPaginationOn();			
      			}
      			else{
      				document.searchResults.pageNumber.value=pageNumber;      		
      				
      			}
      				      			
      			document.searchResults.sortOrder.value=sortOrder;
      			document.searchResults.sortField.value=sortField;      			
      			document.getElementById("searchresults-container").innerHTML=resultTableHTML;
    	}    	
    	if  ((request.status == 404)){
		   alert('Could not sort data on the field you requested');
  		}
  	}
}

function setImages()
{
	if( sortField =="assetDate"){
		if(sortOrder =="asc"){
			dateImage="/Media/sortarrowup.gif";	
		}
		else if(sortOrder =="dsc"){
			dateImage="/Media/sortarrowdown.gif";
		}
		titleImage="/Media/sortarrow.gif";
		countryImage="/Media/sortarrow.gif";
	}
	else if(sortField=="assetTitle"){
		if(sortOrder =="asc"){
			titleImage="/Media/sortarrowup.gif";	
		}
		else if(sortOrder =="dsc"){
			titleImage="/Media/sortarrowdown.gif";
		}
		dateImage="/Media/sortarrow.gif";
		countryImage="/Media/sortarrow.gif";
	}
	else if(sortField=="country"){		
		if(sortOrder =="asc"){
			countryImage="/Media/sortarrowup.gif";	
		}
		else if(sortOrder =="dsc"){
			countryImage="/Media/sortarrowdown.gif";
		}
		dateImage="/Media/sortarrow.gif";
		titleImage="/Media/sortarrow.gif";
	}
}
function setNextPaginationOff()
{
	if(document.getElementById("topNextPagination")){
		document.getElementById("topNextPagination").style.visibilty = 'none'; 
		document.getElementById("topNextPagination").style.display = 'none';
		document.getElementById("bottomNextPagination").style.visibilty = 'none'; 
		document.getElementById("bottomNextPagination").style.display = 'none';
	}	
}

function setNextPaginationOn()
{
	
	if(document.getElementById("topNextPagination")){
	document.getElementById("topNextPagination").style.visibilty = 'visible'; 
	document.getElementById("topNextPagination").style.display = '';
	document.getElementById("bottomNextPagination").style.visibilty = 'visible'; 
	document.getElementById("bottomNextPagination").style.display = '';
	}
}

function setPreviousPaginationOn()
{
	if(document.getElementById("topPreviousPagination")){
		document.getElementById("topPreviousPagination").style.visibilty = 'visible'; 
		document.getElementById("topPreviousPagination").style.display = '';
		document.getElementById("bottomPreviousPagination").style.visibilty = 'visible'; 
		document.getElementById("bottomPreviousPagination").style.display = ''; 
	}	
}

function setPreviousPaginationOff()
{
	if(document.getElementById("topPreviousPagination")){
		document.getElementById("topPreviousPagination").style.visibilty = 'none'; 
		document.getElementById("topPreviousPagination").style.display = 'none';
		document.getElementById("bottomPreviousPagination").style.visibilty = 'none'; 
		document.getElementById("bottomPreviousPagination").style.display = 'none';
	}
}


function getNext( Ajax_SERVLET,titleHeader,dateHeader,countryHeader,descHeader)
{

	titleHeadUI=titleHeader;
	dateHeadUI=dateHeader;
	countryHeadUI=countryHeader;
	descHeadUI=descHeader;	
	servlet_path = Ajax_SERVLET;
	pageNumber = document.searchResults.pageNumber.value;
	pageNumber++;		
	sortField = document.searchResults.sortField.value;
	sortOrder = document.searchResults.sortOrder.value;
	setSortField2();	
	var resultsurl = servlet_path + "?request=getPagination&paginationType=next&pageNumber="+escape(pageNumber)+"&sortOrder="+escape(sortOrder)+"&sortField="+escape(sortField)+"&sortField2="+escape(sortField2);
	MakeRequest(resultsurl,updateResults);	
}

function setSortField2()
{
	if( sortField =="assetDate"){
		sortField2 = "assetTitle";
	}
	else if (sortField =="assetTitle") {
		sortField2 = "assetDate";
	}
	else if (sortField =="country") {
		sortField2 = "assetDate";
	}
}
function getPrevious( Ajax_SERVLET,titleHeader,dateHeader,countryHeader,descHeader)
{

	titleHeadUI=titleHeader;
	dateHeadUI=dateHeader;
	countryHeadUI=countryHeader;
	descHeadUI=descHeader;	
	servlet_path = Ajax_SERVLET;
	pageNumber = document.searchResults.pageNumber.value;
	pageNumber--;		
	sortField = document.searchResults.sortField.value;
	sortOrder = document.searchResults.sortOrder.value;		
	setSortField2();
	var resultsurl = servlet_path + "?request=getPagination&paginationType=previous&pageNumber="+escape(pageNumber)+"&sortOrder="+escape(sortOrder)+"&sortField="+escape(sortField)+"&sortField2="+escape(sortField2);
	MakeRequest(resultsurl,updateResults);	
}
	
function formatpdf(results,spec_doctype){
	spec_doctype_lower= spec_doctype.toLowerCase();

	if ((spec_doctype_lower == "podcast") || (spec_doctype_lower == "webcast") || (spec_doctype_lower == "video")||( spec_doctype_lower == "information required to receive pdf")) {
		 return "("+ spec_doctype +")";
	}
	else {
 		return "(pdf, " + results + ")";
	}
}

function formatURL(url,term){
	url = url.replace('Query=','Q=');
	url = url.replace('[LanguageCode]=','[LC]=');
	url = url.replace('[CountryCode]=','[C$]=');
	var str ='?';
	str = encodeURIComponent(str);	
	url = url.replace('?',str);	

	if(term != ""){
		url = url.substring(0,url.lastIndexOf('['));
		url = url +'[T$]='+ term;
		url = url.replace(/Term-/g,'');
	}		

	return url;
}

function testForEnter(e,errorMsg)
{ 
   	var KeyID = (window.event) ? event.keyCode : e.keyCode;
   	if (KeyID == 13)
   	{
   		try{
 			doSearch(errorMsg);}
     	catch(e){};
 		return false;
 	}
}
function xtestForEnter()
{ 
	if (event.keyCode == 13)
 	{ 
  		event.cancelBubble = true;
  		event.returnValue = false; 
  		doSearch();
    }
}

function doSearch(errorMsg) 
{
	var fld = document.getElementById('Query');
 	sQuery = fld.value;
 	sQuery = trim(sQuery);
 	// alert and stop if empty search
 	if (sQuery == "" || sQuery == "Enter Keywords") {
  		alert (errorMsg);
  		return;
 	}
 	// run search in Main frame
 	document.getElementById('Search').value='A';
	document.library.method='GET';
	document.library.submit();	
	
}
function trim(stringToTrim) {
	return stringToTrim.replace(/^\s*|\s(?=\s)|\s*$/g, ""); 
} 

function clear_textbox(){
	if (document.getElementById('Query').value == "Enter Keywords")
 	{
		document.getElementById('Query').value = "";
		document.getElementById('Query').style.color = 'black'; 
	}
}
function sortLibraryResults(sortField,currentSortField,currentSortOrder)

{
	var sortOrder = "";
	if(currentSortField == sortField){
		if(currentSortOrder =='Asc'){
			sortOrder ='Desc';
		}else if( currentSortOrder =='Desc'){
			sortOrder ='Asc';
		}
	}
	else {
		sortOrder='Desc';
	}
	document.PDFSearchResults.SF.value= sortField;
	document.PDFSearchResults.SO.value=sortOrder;	
	document.PDFSearchResults.ACTION.value='RequestSort';

}

function submitForm()
{
	document.PDFSearchResults.submit();
}

function pagination(requestedPage,currentSortField,currentSortOrder)
{
	document.PDFSearchResults.SF.value=currentSortField;
	document.PDFSearchResults.SO.value=currentSortOrder;
	document.PDFSearchResults.ACTION.value='RequestPage';
	document.PDFSearchResults.Page.value=requestedPage;
	
}