/******************************************************************************
 *
 *
 *****************************************************************************/  
var http_request = null;
var isAuthenticated = false;
var currentAction = "home";	
var listener = 'actionListener.asp';
var pageRedirect = '/default.asp';
var contentRenderer = "mainPage";
var delimiter = "##";
var pendingAction = "";

/******************************************************************************
 *
 *****************************************************************************/ 
function sendAction(obj, params, renderer, targetUrl) { 
  var method = 'POST'
  if (obj != null){
  	var currentId = obj.id;		
  	if 	(currentAction != null && currentAction == currentId) return false  	
  	currentAction = currentId;	  
  } else {currentAction = null}
  
  var parameters = params || ('action=' + currentAction);	
  contentRenderer = renderer || "mainPage";
  var url = targetUrl || listener;  
 	return requestData(method, url, encodeURI(parameters) , responseHandler); 	
}	// function sendAction(0bj, renderer)

/******************************************************************************
 *
 *****************************************************************************/ 
function submitAction(params){   
  var objForm = document.createElement("form");
  document.body.appendChild(objForm);
  var paramList = params.split('&');
  var message = '';  
  for (indice=0;indice<paramList.length;indice++){
    var objInput = document.createElement("input");
    var nameValue = paramList[indice].split('=');
    objInput.type = "hidden";
    objInput.name = nameValue[0];
    objInput.value = nameValue[1];    
    objForm.appendChild(objInput);
  }     
  objForm.action = pageRedirect;
  objForm.method = "post";
  objForm.submit();
  //alert(message);  
  return false;
} //submitAction


/******************************************************************************
 *
 *****************************************************************************/ 
function sentRedirect(params) {
  location.href = pageRedirect + encodeURI(params);
  return false
}

/******************************************************************************
 *
 *****************************************************************************/ 
function responseHandler() {  
	var containerObject = document.getElementById(contentRenderer);			
	if (http_request.readyState == 4) {				
		if (http_request.status == 200) {			  
			updateContent(containerObject, http_request.responseText);
			window.status = "Done";			
		} else {
		  window.status = 'Error on page';
		  alert('An error has been returned for the page you\'ve requested:\n' + http_request.status + '\n' + http_request.statusText);
      } // if (http_request.status == 200)
      document.body.style.cursor = 'default';
   } else {
    window.status = "Loading...";	    
    document.body.style.cursor = 'wait';
   }// if (http_request.readyState == 4)   
   return false;
} // function responseHandler()	

/******************************************************************************
 *
 *****************************************************************************/
function updateContent(htmlObject, content) {   
  switch (htmlObject.tagName) {
    case "TR":
       var contentList = content.split(delimiter);
      for (indice=0;indice<htmlObject.cells.length; indice++) {
        htmlObject.cells.item(indice).innerHTML = contentList[indice]; 
        }     
      break;    
    default:  
      htmlObject.innerHTML = content;
  } // switch
} // function updateContent(htmlObject, content)

/******************************************************************************
 *
 *****************************************************************************/ 
function newHttpRequest() {  
 var xmlHttp = false;
 if(window.XMLHttpRequest) {
   try{
     xmlHttp = new XMLHttpRequest();            
   } catch(e) {
     xmlHttp = false;      
   } // catch(e) - xmlHttp = new XMLHttpRequest(); 
 } else if (window.ActiveXObject) {
   try {
     xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");      
   } catch(e) {
     try {
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
     } catch(e) {
       xmlHttp = false;
     } //catch(e) - xmlHttp = false;
   } // catch(e) - xmlHttp = ActiveXObject("Msxml2.XMLHTTP");
 } //else if (window.ActiveXObject)
 return xmlHttp
} // function newHttpRequest()

/******************************************************************************
 *
 *****************************************************************************/ 
function requestData(method, url, parameters, eventHandler) {			
	http_request = newHttpRequest();							
	http_request.onreadystatechange = eventHandler;
	http_request.open(method, url, true);
	http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http_request.setRequestHeader("Content-length", parameters.length);
	http_request.setRequestHeader("Connection", "close");
	http_request.send(parameters);  
	return false;
} // function requestData	

// open a fresh browser with a target name or give focus if already open
function linkBrowser(toHref, windowName) {  
	windowprops = "height=540,width=740,location=0,resizable=1,scrollbars=1,status=0,titlebar=1,toolbar=0,z-lock=0";
	info = window.open(toHref, windowName, windowprops);					
	if (info.opener == null) 
		info.opener = window;
	else 
		info.focus();	
  return false;		
}	

// This function submit the login form to ejournals
function validateLoginForm(obj) {  
  var win = linkBrowser('', 'processLogin');
  obj.submit();
  return false
}

function logout(cookieName){
  document.cookie = cookieName + "=;;path=/";
  alert(cookieName);
  //document.cookie = name+"="+value+expires+"; path=/";
  submitAction('action=home');
  //window.location.reload();  
}

function validateQuickSearch(objForm) {
  var displayPrefix = '';
  var prefixList = new Array('Full Text Search: ', 'Summary Records Search: ');
  if (objForm.request.value == ""){
    alert("You must enter a search term");
    return false;
  }
  //alert(objForm.searchType[0].value + ' searchwer: ' + objForm.request.value);
  for (indice=0;indice<objForm.searchType.length;indice++)
    if (objForm.searchType[indice].checked)
      displayPrefix = prefixList[indice];
  objForm.display.value = displayPrefix + objForm.request.value;  
  return true    
}


/******************************************************************************
 *
 *
 *****************************************************************************/
var advancedSearchTable = null;
					
function create3DimensionsArray(){
	advancedSearchTable = new Array(5);	
	for (indice = 0; indice < 5; indice++){
	 advancedSearchTable[indice] = new Array(3);
	 advancedSearchTable[indice][0] = '';
	 advancedSearchTable[indice][1] = ' and '	
   advancedSearchTable[indice][2] = '';	
	}			
}

function updateQuery(x, y, value) {
	if (advancedSearchTable == null) create3DimensionsArray();
	advancedSearchTable[x][y] = value;
	//alert ('position ' + x + ', ' + y );
	return false;
}

function submitAdvancedSearch() {
	var operator = '';
	var searchQuery = '';	
	var display = '';
	for (indice=0; indice<advancedSearchTable.length;indice++) {	
		if (advancedSearchTable[indice][0].length != 0){	      						
			searchQuery += operator + advancedSearchTable[indice][0];
			display += operator + advancedSearchTable[indice][2] + ' ';
			operator = advancedSearchTable[indice][1];
		}					
	}
	return submitAction('action=search&request=' + searchQuery + '&display=' + display);
}  


