var mygrid;
var timeoutHnd;
var search_publisher ='';
var search_author ='';
var search_media = '';
var searchValue;
var searchHistory = new Array();
var globalIdColumn;
function m6(){
	window.open("opac.htm","_blank");
}

function m31(){
	menu.hide();
	GridDiv("Browse");
	   mygrid = new dhtmlXGridObject('gridholder');
	    mygrid.setImagePath("imgs/");
		GridStyle('800px','300px');
	    mygrid.setHeader("&nbsp;,Id,Isbn,Title,Authors,Publisher,Media,Class,Bibliography"); 
	     mygrid.setColTypes("sub_row_grid,ro,ro,ro,ro,ro,ro,ro,ro");
		mygrid.setInitWidths("30,50,70,150,120,100,100,100,70"); 
		mygrid.setColAlign("left,left,left,left,left,left,left,center,center"); 
	    mygrid.setColSorting("na,server,server,server,server,server,server,server,na");
	    mygrid.attachEvent("onBeforeSorting", customColumnSort);
	    mygrid.attachEvent("onBeforePageChanged", function() {
	    	if (!this.getRowsNum())
	        	return false;
	        return true;
	    });
	    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
	    mygrid.setPagingSkin("bricks");
	  	mygrid.setSkin("light"); 
	    mygrid.init();
	 	var col1 = "<div style='padding-right:3px'><a href='javascript:doSearch();'><img src='images/go.gif' title='Apply filter' border='0'/></a></div>";
		var col2 = "<div id='isbn_flt' style='padding-right:3px' onClick='(arguments[0]||window.event).cancelBubble=true;'><input type='text' id='search_isbn' style='width: 100%; border:1px solid gray;'/></div>";
		var col3 = "<div id='title_flt' style='padding-right:3px' onClick='(arguments[0]||window.event).cancelBubble=true;' ><input type='text' id='search_title' style='width: 100%; border:1px solid gray;'/></div>";
		var col4 = "<div id='author_flt' style='padding-right:3px' onClick='(arguments[0]||window.event).cancelBubble=true;'></div>";
	   	var col5 = "<div id='publisher_flt' style='padding-right:3px' onClick='(arguments[0]||window.event).cancelBubble=true;'></div>";
	 	var col6 = "<div id='media_flt' style='padding-right:3px' onClick='(arguments[0]||window.event).cancelBubble=true;'></div>";
	 	var col7 = "<div id='class_flt' style='padding-right:3px' onClick='(arguments[0]||window.event).cancelBubble=true;'></div>";
	 	var col8 = "<div style='padding-right:3px'><a href='javascript:doSearch();'><img src='images/go.gif' title='Apply filter' border='0'/></a></div>";
	 
	   	mygrid.enableColumnAutoSize(false);
	    mygrid.attachHeader("<div></div>" + "," + col1 + "," + col2 + "," + col3 + "," + col4 + "," + col5 + "," + col6 + "," + col7 + "," + col8);
	    mygrid.enableSmartRendering(false);
		mygrid.attachEvent("onXLE", function() {
			showLoading(false);
		});
	    mygrid.attachEvent("onXLS", function() {
	        showLoading(true);
	    });
	 	mygrid.loadXML("50000_load_grid.php?un=" + Date.parse(new Date()))
	   	var z = new dhtmlXCombo("author_flt", "alfa", 90);
		z.enableFilteringMode(true, "loadauthor.php", true, true);
		z.setOptionHeight(300);
		z.setComboText('%');
		z.attachEvent("onChange", function(value,state){
			var myValue = z.getComboText();
			search_author = z.getComboText();
			doSearch();
		});
		var z1 = new dhtmlXCombo("publisher_flt", "alfa", 80);
		z1.enableFilteringMode(true, "loadpublisher.php", true, true);
		z1.setOptionHeight(300);
		z1.setComboText('%');
		z1.attachEvent("onChange", function(value,state){
			search_publisher = z1.getComboText();
			doSearch();
		});
		var z2 = new dhtmlXCombo("media_flt", "alfa", 80);
		z2.enableFilteringMode(true, "loadmedia.php", true, true);
		z2.setOptionHeight(300);
		z2.setComboText('%');
		z2.attachEvent("onChange", function(value,state){
			search_media = z2.getComboText();
			doSearch();
		});
		var z3 = new dhtmlXCombo("class_flt", "alfa", 80);
		z3.enableFilteringMode(true, "loadclass.php", true, true);
		z3.setOptionHeight(300);
		z3.setComboText('%');
		z3.attachEvent("onChange", function(value,state){
			search_media = z3.getComboText();
			doSearch();
		});

	    mygrid.hdr.rows[2].onmousedown = mygrid.hdr.rows[2].onclick = function(e) { (e || event).cancelBubble = true;}
	    mygrid.setSizes(); 
	    //add the copy sub grid
		mygrid.attachEvent("onSubGridCreated",function(subgrid,row_id,ind,value){
			subgrid.setHeader("Id,Catalogue,Barcode,Category,Location,Site,Shelf,Status,Price"); 
			subgrid.setColAlign("left,left,left,left,left,left,left,left,left"); 
	        subgrid.setInitWidths("80,80,80,80,80,80,80,80,80"); 
	        subgrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ro,ro"); 
	        subgrid.setSkin("blue"); 
	        subgrid.init(); 
	        global_mysubgrid = subgrid;
	        var myId = mygrid.cellById(row_id, 1).getValue();
	        GetCopyLines(myId,subgrid);
		});       
}


function doSearch() {

    if (timeoutHnd)
    clearTimeout(timeoutHnd);
    timeoutHnd = setTimeout(reloadGrid, 500);
}
function reloadGrid() {
	var sortpos = parseInt(window.s_col,10) -1;
	var isbn_mask = document.getElementById("search_isbn").value;
	var title_mask = document.getElementById("search_title").value;
	var author_mask = search_author;
	if(author_mask == '%')
		author_mask = '';
		
    var publisher_mask = search_publisher;
    if(publisher_mask == '%')
    	publisher_mask = '';
    	
    var media_mask = search_media;
    if(media_mask == '%')
    	media_mask = '';
    mygrid.clearAndLoad("50000_load_grid.php?"+
    "isbn_mask=" +
    isbn_mask + 
    "&title_mask=" + 
    title_mask + 
    "&author_mask=" + 
   	author_mask + 
    "&publisher_mask=" + 
    publisher_mask + 
    "&media_mask=" + 
    media_mask + 
    "&orderBy=" + 
    sortpos + 
    "&direction=" + 
    window.a_direction
    );
    if (window.a_direction)
    	mygrid.setSortImgState(true, window.s_col, window.a_direction);

}

function customColumnSort(ind) {
    if (ind == 9999) {
        alert("Table can't be sorted by this column.");
        if (window.s_col);
        mygrid.setSortImgState(true, window.s_col, window.a_direction);
        return false;
    }
    var a_state = mygrid.getSortingState();
    window.s_col = ind;
    window.a_direction = ((a_state[1] == "des") ? "asc": "des");
    reloadGrid();
    return false;
}
function GoRecord(mygrid){
	var selectedId=mygrid.getSelectedRowId();
	var Id = mygrid.cellById(selectedId, 1).getValue();

 	var SQL = "select id_,isbn_,title_,authors_,publisher_,media_,class_,DATE_FORMAT(catalogued_,'%d/%m/%Y') as catalogued_,web_,editors_,edition_,pubyear_,pubcountry_,subjects_,description_,series_,keywords_,synopsis_ from catalogue where id_ = " + Id;
 	var SQLCOLS = "id_,isbn_,title_,authors_,publisher_,media_,class_,catalogued_,web_,editors_,edition_,pubyear_,pubcountry_,subjects_,description_,series_,keywords_,synopsis_";

 	var dhxWins,w1,	tabbar;
	dhxWins = new dhtmlXWindows();
	dhxWins.enableAutoViewport(true);
	dhxWins.setImagePath("imgs/");
	w1 = dhxWins.createWindow("w1", 100, 100, 550, 300);
	w1.setText("Full Record");
	tabbar = w1.attachTabbar();
	tabbar.setSkin("dhx_skyblue");
	tabbar.setImagePath("imgs/");
	tabbar.attachEvent("onXLE", function() { //row_id will be the first row
		showLoading(false);
	});
	tabbar.attachEvent("onXLS", function() {
		showLoading(true);
	});
	tabbar.addTab("a1", "Page 1", "100px");
	tabbar.addTab("a2", "Page 2", "100px");
	tabbar.setTabActive("a1");
	var grid1 = tabbar.cells("a1").attachGrid();
	var grid2 = tabbar.cells("a2").attachGrid();
	grid1.setImagePath("imgs/");
	grid2.setImagePath("imgs/");
   	grid1.loadXML("loadopac.php?cmd=select id_,isbn_,title_,authors_,publisher_,media_,class_,DATE_FORMAT(catalogued_,'%d/%m/%Y') as catalogued_,web_ from catalogue where id_=" + Id); 
	grid2.loadXML("loadopac1.php?cmd=select editors_,edition_,pubyear_,pubcountry_,subjects_,description_,series_,keywords_,synopsis_ from catalogue where id_=" + Id);
}


var global_z1;
var global_z2;
var global_z3;
var global_z4;
var global_z5;
var global_z6;
var global_z7;

function m32(){
	menu.hide();
	$("#workbar").remove();
	$("#workarea").append("<div id=\"workbar\"></div>");
	$("#workarea").css("background", "white"); 
	loadTab("#workbar","opac.div");
	SetMouseKeys();

	 $("#class_").focus();
	
	var z2 = new dhtmlXCombo("class_", "alfa", 200);
	z2.enableFilteringMode(true, "loadclass.php?limit=2000");

	global_z2 = z2;
	var z3 = new dhtmlXCombo("author_", "alfa", 200);
	z3.enableFilteringMode(true, "loadauthor.php?limit=100");
	global_z3 = z3;
	var z4 = new dhtmlXCombo("subject_", "alfa", 200);
	z4.enableFilteringMode(true, "loadsubject.php?limit=100");
	global_z4 = z4;
	var z5 = new dhtmlXCombo("publisher_", "alfa", 200);
	z5.enableFilteringMode(true, "loadpublisher.php?limit=2000");
	global_z5 = z5;
	var z6 = new dhtmlXCombo("editor_", "alfa", 200);
	z6.enableFilteringMode(true, "loadeditor.php?limit=2000");
	global_z6 = z6;
	var z7 = new dhtmlXCombo("isbn_", "alfa", 200);
	z7.enableFilteringMode(true, "loadisbn.php?mask=%");
	global_z7 = z7;
}

function m33(){
	menu.hide();
	$("#workbar").remove();
	$("#workarea").append("<div id=\"workbar\"></div>");
	$("#workarea").css("background", "white"); 
	loadTab("#workbar","basic.div");
	SetMouseKeys();
	SetMouseKeys();
	GoToField("#search_");
}

var class_search;
var author_search;
var subject_search;
var publisher_search;
var editor_search;
var isbn_search;

function GoSearch(){
	class_search = global_z2.getSelectedValue(); 
	author_search = global_z3.getSelectedValue(); 
	subject_search = global_z4.getSelectedValue(); 
	publisher_search = global_z5.getSelectedValue(); 
	editor_search = global_z6.getSelectedValue(); 
	isbn_search = global_z7.getSelectedValue(); 
	searchValue = '';

	if(class_search != null)
		searchValue += "LEFT(class_, INSTR(class_, ' '))='" + class_search+ "' and ";
	if(author_search != null)	
		searchValue += "authors_='" + author_search+ "' and ";
	if(subject_search != null)
		searchValue += "subjects_='" + subject_search+ "' and ";
	if(publisher_search)		
		searchValue += "publisher_='" + publisher_search+ "' and ";
	if(editor_search != null)
		searchValue += "editor_='" + editor_search+ "' and ";
	if(isbn_search != null)
		searchValue += "isbn_='" + isbn_search + "'";
	searchValue += " and";
	searchValue = searchValue.replace("and  and","");
		
	menu.hide();
		GridDiv("Results");
	   mygrid = new dhtmlXGridObject('gridholder');
	    mygrid.setImagePath("imgs/");
		GridStyle('745px','300px');
	    mygrid.setHeader("&nbsp;,Id,Isbn,Title,Authors,Publisher,Media,Class,Bibliography"); 
	     mygrid.setColTypes("sub_row_grid,ro,ro,ro,ro,ro,ro,ro,ro");
		mygrid.setInitWidths("30,50,70,150,120,100,100,70,70"); 
		mygrid.setColAlign("left,left,left,left,left,left,left,center,center"); 
	    mygrid.setColSorting("na,server,server,server,server,server,server,server,na");
	    mygrid.attachEvent("onBeforeSorting", customColumnSortBasic);
	    mygrid.attachEvent("onBeforePageChanged", function() {
	    	if (!this.getRowsNum())
	        	return false;
	        return true;
	    });
	    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
	    mygrid.setPagingSkin("bricks");
	  	mygrid.setSkin("light"); 
	    mygrid.init();
	 
	   	mygrid.enableColumnAutoSize(false);
	    mygrid.enableSmartRendering(false);
		mygrid.attachEvent("onXLE", function() {
			showLoading(false);
		});
	    mygrid.attachEvent("onXLS", function() {
	        showLoading(true);
	    });
	 	mygrid.loadXML("index.php?search_mask=" + searchValue  + "&subrow=yes");
	   mygrid.setSizes(); 
	    //add the copy sub grid
		mygrid.attachEvent("onSubGridCreated",function(subgrid,row_id,ind,value){
			subgrid.setHeader("Id,Catalogue,Barcode,Category,Location,Site,Shelf,Status,Price"); 
			subgrid.setColAlign("left,left,left,left,left,left,left,left,left"); 
	        subgrid.setInitWidths("80,80,80,80,80,80,80,80,80"); 
	        subgrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ro,ro"); 
	        subgrid.setSkin("blue"); 
	        subgrid.init(); 
	        global_mysubgrid = subgrid;
	        var myId = mygrid.cellById(row_id, 1).getValue();
	        GetCopyLines(myId,subgrid);
		});
}

function GoBasic(){
	searchValue = $("#search_").val();
		menu.hide();
		GridDiv("Results");
		   mygrid = new dhtmlXGridObject('gridholder');
		    mygrid.setImagePath("imgs/");
			GridStyle('800px','260px');
		    mygrid.setHeader("&nbsp;,Id,Isbn,Title,Authors,Publisher,Media,Class,Bibliography"); 
		     mygrid.setColTypes("sub_row_grid,ro,ro,ro,ro,ro,ro,ro,ro");
			mygrid.setInitWidths("30,50,70,150,120,100,100,70,70"); 
			mygrid.setColAlign("left,left,left,left,left,left,left,center,center"); 
		    mygrid.setColSorting("na,server,server,server,server,server,server,server,na");
		    mygrid.attachEvent("onBeforeSorting", customColumnSortBasic);
		    mygrid.attachEvent("onBeforePageChanged", function() {
		    	if (!this.getRowsNum())
		        	return false;
		        return true;
		    });
		    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
		    mygrid.setPagingSkin("bricks");
		  	mygrid.setSkin("light"); 
		    mygrid.init();
 
		   	mygrid.enableColumnAutoSize(false);
		    mygrid.enableSmartRendering(false);
			mygrid.attachEvent("onXLE", function() {
				showLoading(false);
			});
		    mygrid.attachEvent("onXLS", function() {
		        showLoading(true);
		    });
		 	mygrid.loadXML("match.php?search_mask=" + searchValue + "&subrow=yes");
		   mygrid.setSizes(); 
		    //add the copy sub grid
			mygrid.attachEvent("onSubGridCreated",function(subgrid,row_id,ind,value){
				subgrid.setHeader("Id,Catalogue,Barcode,Category,Location,Site,Shelf,Status,Price"); 
				subgrid.setColAlign("left,left,left,left,left,left,left,left,left"); 
		        subgrid.setInitWidths("80,80,80,80,80,80,80,80,80"); 
		        subgrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ro,ro"); 
		        subgrid.setSkin("blue"); 
		        subgrid.init(); 
		        global_mysubgrid = subgrid;
		        var myId = mygrid.cellById(row_id, 1).getValue();
		        GetCopyLines(myId,subgrid);
			});    
			AddOpacExportButton(searchValue,'opac');
			AddPrintButton(mygrid);
}

function AddOpacExportButton(search_term,FILE){
	var z = document.getElementById("groupholder");
	var img = document.createElement("img");
	img.setAttribute("id","export_click");
	img.src = "images/export.jpg";
	img.border = 0;
	img.title = "Export to clipboard";
	addEvent(img, "click",function() {	GoOpacExport(search_term,FILE);});		
	z.appendChild(img);
}

function GoOpacExport(search_term,FILE){
	var myData = '';
	$.ajax({
	   	method: "get",url: "match.php",data:"search_mask=" + search_term + "&export=opac",
		async: false,
		beforeSend: function(){
			$("#tab").html('<img src="/images/wait.gif" />');
	      	$("#tab").show("fast");
	   	},
	    complete: function(){ 
			$("#tab").html('');
	   		$("#tab").hide("slow");
	   	},
		success: function(data){
			var xml;
			if($.browser.msie){
				if (typeof data == "string") {
					xml = new ActiveXObject("Microsoft.XMLDOM");
					xml.async = false;
					xml.loadXML(data);
				} 
				else
					xml = data;	
			}
			else 
				xml = data;
			$(xml).find('record').each(function(x){
				myData = $(this).find("pkey").text();
				alert(myData);
			});
		},
		error: function(){
			alert("There has been an error");

		}
	});
	window.open("export/opac.csv","_blank");
}

function customColumnSortBasic(ind) {
    if (ind == 9999) {
        alert("Table can't be sorted by this column.");
        if (window.s_col);
        mygrid.setSortImgState(true, window.s_col, window.a_direction);
        return false;
    }
    var a_state = mygrid.getSortingState();
    window.s_col = ind;
    window.a_direction = ((a_state[1] == "des") ? "asc": "des");
    reloadGridBasic();
    return false;
}
function reloadGridBasic() {
	var sortpos = parseInt(window.s_col,10) -1;
 	mygrid.clearAndLoad("match.php?search_mask=" + searchValue +
    "&orderBy=" + 
    sortpos + 
    "&direction=" + 
    window.a_direction
    );
    if (window.a_direction)
    	mygrid.setSortImgState(true, window.s_col, window.a_direction);
}
var option_index = "<?xml version=\"1.0\" ?>" +
"<complete>" + 
"<option value=\"global\">Any field</option>" +
"<option value=\"authors_\">Author</option>" +
"<option value=\"subjects_\">Subject</option>" +
"<option value=\"title_\">Title</option>" +
"<option value=\"keywords_\">Keywords</option>" +
"<option value=\"synopsis_\">Synopsis</option>" +
"<option value=\"series_\">Series</option>" +
"</complete>";
var option_style = "<?xml version=\"1.0\" ?>" +
"<complete>" + 
"<option value=\"natural\">Natural language</option>" +
"<option value=\"boolean\">Boolean</option>" +
"</complete>";
var option_having = "<?xml version=\"1.0\" ?>" +
"<complete>" + 
"<option value=\"and\">All of these words</option>" +
"<option value=\"or\">Any of these words</option>" +
"<option value=\"not\">First word but not the rest</option>" +
"<option value=\"notall\">Any of these words but not all of them</option>" +
"<option value=\"between\">Ranging between them</option>" +
"<option value=\"adjacent\">Next to each other</option>" +
"<option value=\"sentence\">In same sentence</option>" +
"<option value=\"soundex\">Sound like</option>" +
"</complete>";
var option_published = "<?xml version=\"1.0\" ?>" +
"<complete>" + 
"<option value=\"any\">Anytime</option>" +
"<option value=\"current\">This year</option>" +
"<option value=\"last\">Last year</option>" +
"<option value=\"five\">Within last 5 years</option>" +
"<option value=\"ten\">Within last 10 years</option>" +
"</complete>";
function m35(){
	menu.hide();
	$("#workbar").remove();
	$("#workarea").append("<div id=\"workbar\"></div>");
	$("#workarea").css("background", "white"); 
	loadTab("#workbar","advanced.div");
	SetMouseKeys();
	var z2 = new dhtmlXCombo("index_", "alfa", 200);
	z2.loadXMLString(option_index);
	z2.setComboText('Any field');
	z2.selectOption(0,false,true);
	global_z2 = z2;
	
	var z3 = new dhtmlXCombo("style_", "alfa", 200);
	z3.loadXMLString(option_style);
	z3.setComboText('Natural language');
	z3.selectOption(0,false,true);
	global_z3 = z3;
	
	var z4 = new dhtmlXCombo("having_", "alfa", 200);
	z4.loadXMLString(option_having);
	z4.setComboText('All of these words');
	z4.selectOption(0,false,true);
	global_z4 = z4;
	
	var z5 = new dhtmlXCombo("media_", "alfa", 200);
	z5.loadXML("loadmedia.php?mask=%&limit=2000");
	z5.setComboText('Any');
	z5.selectOption(0,false,true);
	global_z5 = z5;
	
	var z6 = new dhtmlXCombo("published_", "alfa", 200);
	z6.loadXMLString(option_published);
	z6.setComboText('Anytime');
	z6.selectOption(0,false,true);
	global_z6 = z6;

	GoToField("#search_");
}
var index_search;
var style_search;
var having_search;
var publisher_search;
var media_search;
var published_search;
var search_term;
function GoAdvanced(){
	var process = '';
	index_search = global_z2.getSelectedValue(); 
	style_search = global_z3.getSelectedValue(); 
	having_search = global_z4.getSelectedValue(); 
	media_search = global_z5.getSelectedValue(); 
	published_search = global_z6.getSelectedValue();
	search_term = $("#search_").val();
	if(having_search == 'and'){
		if(style_search == 'boolean'){
			search_term = '+';
			search_term += $("#search_").val();
			search_term = search_term.replace(/ /g,'+');
			search_term = search_term.replace(/\+\+/g,'+');
		}
	}
	else if(having_search == 'or'){
		search_term = search_term.replace(/\+/g,' ');
		search_term = search_term.replace(/\-/g,' ');
		style_search = 'natural';
	}
	else if(having_search == 'not'){
		var a = new Array();
		a = search_term.split(' ');
		search_term = "+" + a[0];
		for(var i=1;i<a.length;i++){
			search_term += "-";
			search_term += a[i];
		}
		style_search = 'boolean';
	}	
	//"<option value=\"notall\">Any of these words but not all of them</option>" +
	else if(having_search == 'notall'){
		process = 'notall';
		style_search = 'natural';
	}
	search_term = search_term.replace(/\+/g,' +');
	search_term = search_term.replace(/\-/g,' -');
	searchValue = '';
	search_term = fixedEncodeURIComponent(search_term); 
	searchValue = "match.php?search_mask=" + search_term + "&style=" + style_search + "&index=" + index_search + "&media=" + media_search + "&process=" + process + "&published=" + published_search + "&subrow=yes";
	menu.hide();
	GridDiv("Results");
	   mygrid = new dhtmlXGridObject('gridholder');
	    mygrid.setImagePath("imgs/");
	    GridStyle('800px','260px');
	    mygrid.setHeader("&nbsp;,Id,Isbn,Title,Authors,Publisher,Media,Class,Bibliography"); 
	     mygrid.setColTypes("sub_row_grid,ro,ro,ro,ro,ro,ro,ro,ro");
		mygrid.setInitWidths("30,50,70,150,120,100,100,100,70"); 
		mygrid.setColAlign("left,left,left,left,left,left,left,center,center"); 
	    mygrid.setColSorting("na,server,server,server,server,server,server,server,na");
	    mygrid.attachEvent("onBeforeSorting", customColumnSortBasic);
	    mygrid.attachEvent("onBeforePageChanged", function() {
	    	if (!this.getRowsNum())
	        	return false;
	        return true;
	    });
	    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
	    mygrid.setPagingSkin("bricks");
	  	mygrid.setSkin("light"); 
	    mygrid.init();
	 
	   	mygrid.enableColumnAutoSize(false);
	    mygrid.enableSmartRendering(false);
		mygrid.attachEvent("onXLE", function() {
			showLoading(false);
		});
	    mygrid.attachEvent("onXLS", function() {
	        showLoading(true);
	    });
	 	mygrid.loadXML(searchValue);
	   mygrid.setSizes(); 
	    //add the copy sub grid
		mygrid.attachEvent("onSubGridCreated",function(subgrid,row_id,ind,value){
			subgrid.setHeader("Id,Catalogue,Barcode,Category,Location,Site,Shelf,Status,Price"); 
			subgrid.setColAlign("left,left,left,left,left,left,left,left,left"); 
	        subgrid.setInitWidths("80,80,80,80,80,80,80,80,80"); 
	        subgrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ro,ro"); 
	        subgrid.setSkin("blue"); 
	        subgrid.init(); 
	        global_mysubgrid = subgrid;
	        var myId = mygrid.cellById(row_id, 1).getValue();
	        GetCopyLines(myId,subgrid);
		});
}

function fixedEncodeURIComponent (str) {   
	  return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').   
	                                 replace(/\)/g, '%29').replace(/\*/g, '%2A');   
	}  

function customColumnSortAdvanced(ind) {
    if (ind == 9999) {
        alert("Table can't be sorted by this column.");
        if (window.s_col);
        mygrid.setSortImgState(true, window.s_col, window.a_direction);
        return false;
    }
    var a_state = mygrid.getSortingState();
    window.s_col = ind;
    window.a_direction = ((a_state[1] == "des") ? "asc": "des");
    reloadGridAdvanced();
    return false;
}
function reloadGridAdvanced() {
	var sortpos = parseInt(window.s_col,10) -1;
 	mygrid.clearAndLoad(searchValue +
    "&orderBy=" + 
    sortpos + 
    "&direction=" + 
    window.a_direction
    );
    if (window.a_direction)
    	mygrid.setSortImgState(true, window.s_col, window.a_direction);
}

function LoadCategory(){
	var SQL = "select subjectcategory_ from subjectcategory order by subjectcategory_";
	var SQLCOLS = "subjectcategory_";
	var result = new Array();
	var str = "<ul>";
	AjaxBrowse(SQL,SQLCOLS,result);
	var cnt = result[0];
	var v = SQLCOLS.split(',');
	var SIZE = v.length;
	if(cnt > 0){
		for(var j=0;j<cnt;j++){
			var pos = (j*SIZE)+1;
			var dlist = '';
			for(i=0;i<SIZE;i++){
				var x = result[pos+i];
			}
			str += "<li>";
			str += "<a href=javascript:NarrowTerm('" + x + "');  class='clearfix'  title='Right click for thesaurus'>" + x + "</a>";
			str += "</li>";
			
		}	
	}
	str += "</ul>";
	$("#subjectcategory").html(str);
	SetMouseKeys();
//send email
	var send_to = "xsoft@btconnect.com"
	var bcc_to = "";
	var subject = "Cyberlibrary viewing";
	var message = "Someome has displayed the index page";
	$.ajax({
		type: "post",url: "phpmailer.php", data:"send_to=" + send_to + "&bcc_to=" + bcc_to + "&subject=" + subject + "&message=" + message, 
	    async: false,
	    beforeSend: function(){
		  $("#tab").html('<img src="/images/wait.gif" />');
		  $("#tab").show("fast");
		},
		complete: function(){ 
			$("#tab").html('');
			$("#tab").hide("slow");
		}
	});
}

function NarrowTerm(searchTerm){
//	$("#subjectcategory").remove();
//	$("#side-nav").append("<div id=\"subjectcategory\" class=\"refineBy>\"</div>");
	var SQL = "select narrowerterm from thesaurus where subjectcategory like '" + searchTerm + "%' and narrowerterm <> ''";
	var SQLCOLS = "narrowerterm";
	var result = new Array();
	var str = "<ul><li><a href=javascript:LoadCategory(); class='clearfix' style='COLOR: #333;'>" + searchTerm + ":</a></li>";
	str += "<li></li>";
	
	AjaxBrowse(SQL,SQLCOLS,result);
	var cnt = result[0];
	var v = SQLCOLS.split(',');
	var SIZE = v.length;
	if(cnt > 0){
		for(var j=0;j<cnt;j++){
			var pos = (j*SIZE)+1;
			var dlist = '';
			for(var i=0;i<SIZE;i++){
				var x = result[pos+i];
				var xa = x.split(':');
				for(var k=0;k<xa.length-1;k++){
					str += "<li>";
					str += "<a href='javascript:SubjectSearch(\""  + xa[k] +  "\")' class='clearfix'>" + xa[k] + "</a>";
					str += "</li>";
				}
			}
		}	
	}
	str += "</ul>";
	$("#subjectcategory").html(str);
//	searchValue = "match.php?search_mask=" + search_term + "&style=" + style_search + "&index=" + index_search + "&media=" + media_search + "&process=" + process + "&published=" + published_search;
}
function SearchHistory(){
//	$("#subjectcategory").remove();
//	$("#side-nav").append("<div id=\"subjectcategory\" class=\"refineBy>\"</div>");
	var str = "<h2 class=\"homeCategoriesOverview\"><a href=\"javascript:LoadSearchHistory();\">Search history</a></h2>";	
	str += "<ul>";
	for(var i=0;i<searchHistory.length;i++){
		var xa = searchHistory[i].split("@@");
		str += "<li>";
		str += "<a href='javascript:ReRun(" +
			"\"" +
			xa[1] +  
			"\"" +
			"," + 
			"\"" +
			xa[2] +
			"\"" +
			");'" +
			" class='clearfix'>" + 
			xa[2] +
			"</a>";
		str += "</li>";
	}
	str += "</ul>";
	$("#subjectcategory").html(str);
}

function ReRun(type,search_term){
	if(type == "TopSearch"){
		$("#typeAheadTextInput").val(search_term);
		TopSearch();
	}
	else if(type == "SubjectSearch")
		SubjectSearch(search_term);
	else if(type == "GoOpacAdvancedSearch")
		GoOpacAdvancedSearch(search_term);
	else if(type == "ComingSoon")
		ComingSoon();
	else if(type == "WhatsNew")
		WhatsNew();
	else if(type == "MediaBooks")
		MediaBooks(search_term);
}

function SubjectSearch(search_term){
//	var result = new Array();
//	AjaxSearch(search_term,result);
//	ShowResults(result);
	searchValue = search_term;
	$("#workbar").remove();
	$("#workbar").remove();
	$("#workarea").append("<div id=\"workbar\">" +
			"<div align=\"center\"  id = \"headholder\" ></div>" +
		"<div id=\"gridholder\" style=\"width:100%;height:300px;margin-top:5px;margin-bottom:10px;\"></div>" +
	"<div style=\"background-color: white;\" id=\"pagingarea\"></div>" +
	"<div  style=\"background-color: white;\" id=\"infoarea\"></div>" +
	"<div style=\"background-color: white;\" id=\"groupholder\"></div></div>");


	   mygrid = new dhtmlXGridObject('gridholder');
	    mygrid.setImagePath("imgs/");
		GridStyle('800px','300px');
	    mygrid.setHeader("Id,Isbn,Title,Authors,Publisher,Media,Class,Bibliography"); 
	     mygrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ch");
		mygrid.setInitWidths("50,70,200,120,100,100,70,90"); 
		mygrid.setColAlign("left,left,left,left,left,left,left,center"); 
	    mygrid.setColSorting("server,server,server,server,server,server,server,na");
	    mygrid.attachEvent("onBeforeSorting", customColumnSortBasic);
	    mygrid.attachEvent("onBeforePageChanged", function() {
	    	if (!this.getRowsNum())
	        	return false;
	        return true;
	    });
	    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
	    mygrid.setPagingSkin("bricks");
	  	mygrid.setSkin("light"); 
	    mygrid.init();

	   	mygrid.enableColumnAutoSize(false);
	    mygrid.enableSmartRendering(false);
		mygrid.attachEvent("onXLE", function() {
			showLoading(false);
		});
	    mygrid.attachEvent("onXLS", function() {
	        showLoading(true);
	    });
	   	
	 	mygrid.loadXML("match.php?search_mask=" + searchValue + "&style=boolean&index=subjects_");
	   mygrid.setSizes(); 


		searchHistory.push("subject@@SubjectSearch@@"+ searchValue);		
}



function ShowResults(result){
	var cnt = result[0];
	if(cnt > 0){
		for(var j=0;j<cnt;j++){
			var pos = (j*10)+1;
			var dlist = '';
			for(var i=0;i<10;i++)
				dlist += result[pos+i];
		}
		$("#searchresults").text(result[pos+i]);
	}
	else
		$("#searchresults").text("No records Found");
}

function AjaxSearch(search_term,result){
	$.ajax({
	   	method: "get",url: "match.php",data:"search_mask=" + search_term + "&style=boolean&index=subjects_",
	   	async: false,
	   	beforeSend: function(){
		$("#tab").html('<img src="/images/wait.gif" />');
		$("#tab").show("fast");
	},
    complete: function(){ 
		$("#tab").html('');
   		$("#ab").hide("slow");
   	},
	    success: function(data){
	   		var xml;

	   		if($.browser.msie){
	   			if (typeof data == "string") {
	   				xml = new ActiveXObject("Microsoft.XMLDOM");
	   				xml.async = false;
	   				xml.loadXML(data);
	   			} else {
	   				xml = data;
	   			}
	   		}
	   		else 
	   			xml = data;
//count number of records
	   		result[0] = 0;
	   		var i = 1;
	   		$(xml).find('row').each(function(x){
	   			$(xml).find('cell').each(function(x){
	   				var myData = $(this).text();
					result[i] = myData;
   					i++;
	   			});
   				result[0] += 1;
	   		});
	   	}
	});
	
}

function AjaxBrowse(SQL,SQLCOLS,result){
	var COLS_ARRAY = SQLCOLS.split(',');
	$.ajax({
	   	method: "get",url: "gophptable.php",data:"cmd=" + SQL,
	   	async: false,
	beforeSend: function(){
		$("#tab").html('<img src="/images/wait.gif" />');
		$("#tab").show("fast");
	},
    complete: function(){ 
		$("#tab").html('');
   		$("#ab").hide("slow");
   	},
	    success: function(data){
	   		var xml;
	   		if($.browser.msie){
	   			if (typeof data == "string") {
	   				xml = new ActiveXObject("Microsoft.XMLDOM");
	   				xml.async = false;
	   				xml.loadXML(data);
	   			} else {
	   				xml = data;
	   			}
	   		}
	   		else 
	   			xml = data;
//count number of records
	   		result[0] = 0;
	   		var i = 1;
	   		$(xml).find('record').each(function(x){
	   				
	   				for(var j=0;j<COLS_ARRAY.length;j++){
	   					var myData = $(this).find(COLS_ARRAY[j]).text();
	   					if(myData == 'empty')
	   						myData = '';
   						result[i] = myData;
   						i++;
	   				}
	   				result[0] += 1;
	   		});
	   	}
	});
}


function TopSearch(){
	var searchValue = $("#typeAheadTextInput").val();
	$("#workbar").remove();
	$("#workarea").append("<div id=\"workbar\">" +
			"<div align=\"center\"  id = \"headholder\" ></div>" +
		"<div id=\"gridholder\" style=\"width:100%;height:300px;margin-top:5px;margin-bottom:10px;\"></div>" +
	"<div style=\"background-color: white;\" id=\"pagingarea\"></div>" +
	"<div  style=\"background-color: white;\" id=\"infoarea\"></div>" +
	"<div style=\"background-color: white;\" id=\"groupholder\"></div></div>");

	   mygrid = new dhtmlXGridObject('gridholder');
	    mygrid.setImagePath("imgs/");
		GridStyle('800px','300px');
	    mygrid.setHeader("Id,Isbn,Title,Authors,Publisher,Media,Class,Bibliography"); 
	     mygrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ch");
		mygrid.setInitWidths("50,70,250,120,100,100,70,90"); 
		mygrid.setColAlign("left,left,left,left,left,left,left,center"); 
	    mygrid.setColSorting("server,server,server,server,server,server,server,na");
	    mygrid.attachEvent("onBeforeSorting", customColumnSortBasic);
	    mygrid.attachEvent("onBeforePageChanged", function() {
	    	if (!this.getRowsNum())
	        	return false;
	        return true;
	    });
	    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
	    mygrid.setPagingSkin("bricks");
	  	mygrid.setSkin("light"); 
	    mygrid.init();

	   	mygrid.enableColumnAutoSize(false);
	    mygrid.enableSmartRendering(false);
		mygrid.attachEvent("onXLE", function() {
			showLoading(false);
		});
	    mygrid.attachEvent("onXLS", function() {
	        showLoading(true);
	    });
	   	
	 	mygrid.loadXML("match.php?search_mask=" + searchValue);
	   mygrid.setSizes(); 

//		$("#searchresults").html("<h3><em>Results</em></h3>");
	searchHistory.push("Basic@@TopSearch@@"+ searchValue);	
}

function ComingSoon(){
	OpacGridDiv("");

	   mygrid = new dhtmlXGridObject('gridholder');
	    mygrid.setImagePath("imgs/");
	    GridStyle('800px','260px');
	    mygrid.setHeader("Id,Isbn,Title,Authors,Publisher,Media"); 
	     mygrid.setColTypes("ro,ro,ro,ro,ro,ro");
		mygrid.setInitWidths("50,70,300,120,100,100"); 
		mygrid.setColAlign("left,left,left,left,left,left"); 
	    mygrid.setColSorting("server,server,server,server,server,server");
	    mygrid.attachEvent("onBeforeSorting", customColumnSortBasic);
	    mygrid.attachEvent("onBeforePageChanged", function() {
	    	if (!this.getRowsNum())
	        	return false;
	        return true;
	    });
	    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
	    mygrid.setPagingSkin("bricks");
	  	mygrid.setSkin("light"); 
	    mygrid.init();

	   	mygrid.enableColumnAutoSize(false);
	    mygrid.enableSmartRendering(false);
		mygrid.attachEvent("onXLE", function() {
			showLoading(false);
		});
	    mygrid.attachEvent("onXLS", function() {
	        showLoading(true);
	    });
	   	
	 	mygrid.loadXML("coming.php");
	   mygrid.setSizes(); 
		$("#searchresults").html("<h3><em>Results</em></h3>");
	searchHistory.push("Coming@@ComingSoon@@Coming Soon@@");	
}
function WhatsNew(){
	OpacGridDiv("");
	   mygrid = new dhtmlXGridObject('gridholder');
	    mygrid.setImagePath("imgs/");
	    GridStyle('800px','260px');
	    mygrid.setHeader("Id,Isbn,Title,Authors,Publisher,Media,Class,Bibliography"); 
	     mygrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ch");
		mygrid.setInitWidths("50,70,200,120,100,100,70,90"); 
		mygrid.setColAlign("left,left,left,left,left,left,left,center"); 
	    mygrid.setColSorting("server,server,server,server,server,server,server,na");
	    mygrid.attachEvent("onBeforeSorting", customColumnSortBasic);
	    mygrid.attachEvent("onBeforePageChanged", function() {
	    	if (!this.getRowsNum())
	        	return false;
	        return true;
	    });
	    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
	    mygrid.setPagingSkin("bricks");
	  	mygrid.setSkin("light"); 
	    mygrid.init();

	   	mygrid.enableColumnAutoSize(false);
	    mygrid.enableSmartRendering(false);
		mygrid.attachEvent("onXLE", function() {
			showLoading(false);
		});
	    mygrid.attachEvent("onXLS", function() {
	        showLoading(true);
	    });
		var searchValue = " catalogued_ >= now() - INTERVAL 1 MONTH";
	 	mygrid.loadXML("index.php?search_mask=" + searchValue);
	   mygrid.setSizes(); 
	$("#searchresults").html("<h3><em>Results</em></h3>");
	searchHistory.push("New@@WhatsNew@@Whats New@@");	
}
function Popular(){
	OpacGridDiv("");
		   mygrid = new dhtmlXGridObject('gridholder');
	    mygrid.setImagePath("imgs/");
	    GridStyle('800px','260px');
	    mygrid.setHeader("Id,Isbn,Title,Authors,Publisher,Media,Class,Bibliography"); 
	     mygrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ch");
		mygrid.setInitWidths("50,70,200,120,100,100,70,90"); 
		mygrid.setColAlign("left,left,left,left,left,left,left,center"); 
	    mygrid.setColSorting("server,server,server,server,server,server,server,na");
	    mygrid.attachEvent("onBeforeSorting", customColumnSortBasic);
	    mygrid.attachEvent("onBeforePageChanged", function() {
	    	if (!this.getRowsNum())
	        	return false;
	        return true;
	    });
	    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
	    mygrid.setPagingSkin("bricks");
	  	mygrid.setSkin("light"); 
	    mygrid.init();

	   	mygrid.enableColumnAutoSize(false);
	    mygrid.enableSmartRendering(false);
		mygrid.attachEvent("onXLE", function() {
			showLoading(false);
		});
	    mygrid.attachEvent("onXLS", function() {
	        showLoading(true);
	    });
		mygrid.loadXML("popular.php");
	   mygrid.setSizes(); 

		$("#searchresults").html("<h3><em>Results</em></h3>");
	searchHistory.push("Popular@@Popular@@Popular@@");	
}
function MediaBooks(search_term){
	OpacGridDiv("");
	   mygrid = new dhtmlXGridObject('gridholder');
	    mygrid.setImagePath("imgs/");
		GridStyle('745px','300px');
	    mygrid.setHeader("Id,Isbn,Title,Authors,Publisher,Media,Class,Bibliography"); 
	     mygrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ch");
		mygrid.setInitWidths("50,70,200,120,100,100,70,90"); 
		mygrid.setColAlign("left,left,left,left,left,left,left,center"); 
	    mygrid.setColSorting("server,server,server,server,server,server,server,na");
	    mygrid.attachEvent("onBeforeSorting", customColumnSortBasic);
	    mygrid.attachEvent("onBeforePageChanged", function() {
	    	if (!this.getRowsNum())
	        	return false;
	        return true;
	    });
	    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
	    mygrid.setPagingSkin("bricks");
	  	mygrid.setSkin("light"); 
	    mygrid.init();

	   	mygrid.enableColumnAutoSize(false);
	    mygrid.enableSmartRendering(false);
		mygrid.attachEvent("onXLE", function() {
			showLoading(false);
		});
	    mygrid.attachEvent("onXLS", function() {
	        showLoading(true);
	    });
	    var searchValue = "media_ = '" + search_term + "'";
	 	mygrid.loadXML("index.php?search_mask=" + searchValue);
	   mygrid.setSizes(); 

		$("#searchresults").html("<h3><em>Results</em></h3>");
		searchHistory.push("media@@MediaBooks@@"+ search_term);

}

function LibraryServices(){
	OpacGridDiv("");
	$("#searchresults").html("<h3><em>Link to Library Website</em></h3>");
}
function SelfService(){
	$("#workbar").remove();
	$("#workarea").append("<div id=\"workbar\"></div>");
	loadTab("#workbar","service.div");
	SetMouseKeys();
	GoToField("#id_");
}
function GoSelfService(){
	var id = $("#id_").val();
	var surname = $("#surname_").val();
	var SQL = "select id_ from members where id_ = " + id + " and surname_ = '" + surname + "'";
	var v = Exists(SQL);
	if(v == true){
		SelfServiceLoans('1');
	}
	else
		$("#searchresults").html("<h3><em>Unknown Borrower</em></h3>");
}

function SelfServiceLoans(id){
	OpacGridDiv("");
	   mygrid = new dhtmlXGridObject('gridholder');
	    mygrid.setImagePath("imgs/");
	    GridStyle('800px','260px');
		mygrid.setHeader("Select,Barcode,Title,Issued,Due,Fine"); 
		mygrid.setColAlign("center,left,left,left,left,left"); 
		mygrid.setInitWidths("70,90,350,90,90,90"); 
		mygrid.setColTypes("ch,ro,ro,ro,ro,ro"); 
        mygrid.setColSorting("na,server,server,server,server,server");
	    mygrid.attachEvent("onBeforeSorting", customColumnSortBasic);
	    mygrid.attachEvent("onBeforePageChanged", function() {
	    	if (!this.getRowsNum())
	        	return false;
	        return true;
	    });
	    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
	    mygrid.setPagingSkin("bricks");
	  	mygrid.setSkin("light"); 
	    mygrid.init();

	   	mygrid.enableColumnAutoSize(false);
	    mygrid.enableSmartRendering(false);
		mygrid.attachEvent("onXLE", function() {
			showLoading(false);
			mygrid.forEachRow(function(id){
				mygrid.cells(id,0).setChecked(false);
			});
		});
	    mygrid.attachEvent("onXLS", function() {
	        showLoading(true);
	    });
	    var SQL= "select '0',barcode_,title_,issue_,return_,fine_ from copies,catalogue where copies.catalogue_=catalogue.id_ and copies.status_ = 'LOA' and borrower_ = '" + id + "'";
	    var SQLCOLS = "0,barcode_,title_,issue_,return_,fine_";
	    mygrid.loadXML("connector.php?cmd="+SQL+"&cols=" + SQLCOLS + "&");
	   mygrid.setSizes(); 
		AddReturnButton(mygrid);
		AddRenewButton(mygrid);
		$("#searchresults").html("<h3><em>Current Loans</em></h3>");
}
function LoadAdvanced(){
	
}
function loadTab(div,filename)
{
		$.ajax(
        {
        	method: "get",url: "gophpform.php",data: "filename=" + filename, 
        	async: false,
     	   	beforeSend: function(){
			$("#tab").html('<img src="/images/wait.gif" />');
	      	$("#tab").show("fast");
	   	},
	    complete: function(){ 
			$("#tab").html('');
	   		$("#tab").hide("slow");
	   	},
           success: function(html) 
            {			    
                $(div).append(html); 
            }
        });			        
}
function Exists(SQL){
	var myData = '';
	$.ajax({
		type: "post",url: "exists.php", data:"cmd=" + SQL,
	    async: false,
	    beforeSend: function(){
		  $('#loading').html('<img src="/images/wait.gif" />');
		  $("#loading").show("fast");
		},
		complete: function(){ 
			$("#loading").hide("fast");
		},
		success: function(data){
			var xml;
			if($.browser.msie){
				if (typeof data == "string") {
					xml = new ActiveXObject("Microsoft.XMLDOM");
					xml.async = false;
					xml.loadXML(data);
				} 
				else
					xml = data;	
			}
			else 
				xml = data;

			$(xml).find('record').each(function(x){
				myData = $(this).find("id_").text();
			});
		},
		error: function(){
			alert("There has been an error");
			myData = "error";
		}
	});
	if(!isNaN(myData) && myData != ''){
		return(true);
	}
	return(false);
}
function SetMouseKeys(){
	$(document)[0].oncontextmenu = function() {return false;}  
	$("input").bind("mousedown", function(e){
		if(e.button == 2){  
			OpacclickCheck(this);  
			return false;  
		} 
		else  
			return true;    
    });
	$("textarea").bind("mousedown", function(e){
		if(e.button == 2){  
			OpacclickCheck(this);  
			return false;  
		} 
		else  
			return true;  
    });
	$("a").bind("mousedown", function(e){
		if(e.button == 2){  
			OpacclickCheck(this);  
			return false;  
		} 
		else  
			return true;  
    });
	if ($.browser.mozilla)
		$("input").keypress(checkForEnter);
	else
		$("input").keydown(checkForEnter);
}

function OpacclickCheck(e){
	var a = $($(e)).text();
	var b = $($(e)).attr("class");
	if(b == 'clearfix')
		GoThesaurus(a);
}

function checkForEnter (event) {
    if (event.keyCode == 13) {
    	event.preventDefault();
    	return false;
	}
} 
function GoToField(field){
	setTimeout( function() { 
		$(field).focus(); 
	} , 500);
}
function GridStyle(width,height){
	var elem = document.getElementById("gridholder");
 	elem.style.width = width;
 	elem.style.height = height;
}
function showLoading(fl) {
	if(fl == true){
		$("#tab").html('<img src="/images/wait.gif" />');
     	$("#tab").show("fast");
    }
	else{
		$("#tab").html('');
   	   	$("#tab").hide("slow");
	}
}

function AddReturnButton(mygrid){
	var z = document.getElementById("groupholder");
	var img = document.createElement("img");
	img.setAttribute("id","return_click");
	img.src = "images/return.jpg";
	img.border = 0;
	img.title = "Return checked items";
	addEvent(img, "click",function() {	SelfServiceReturn(mygrid);});		
	z.appendChild(img);
}
function AddRenewButton(mygrid){
	var z = document.getElementById("groupholder");
	var img = document.createElement("img");
	img.setAttribute("id","renew_click");
	img.src = "images/renew.jpg";
	img.border = 0;
	img.title = "Renew checked items";
	addEvent(img, "click",function() {	SelfServiceRenew(mygrid);});		
	z.appendChild(img);
}
function AddIssueButton(mygrid){
	var z = document.getElementById("groupholder");
	var img = document.createElement("img");
	img.setAttribute("id","renew_click");
	img.src = "images/renew.jpg";
	img.border = 0;
	img.title = "Renew checked items";
	addEvent(img, "click",function() {	SelfServiceRenew(mygrid);});		
	z.appendChild(img);
}
function addEvent( obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}
function removeEvent( obj, type, fn )
{
	if (obj.removeEventListener)
		obj.removeEventListener( type, fn, false );
	else if (obj.detachEvent)
	{
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}
function SelfServiceReturn(){
	mygrid.forEachRow(function(id){
		if(mygrid.cells(id,0).isChecked()){
			mygrid.selectRowById(id);
			var barcode = mygrid.cells(id,1).getValue();
			var SQL = "update copies set status_='SHE',renew_=0,overdue_=0 where barcode_ = '" + barcode + "'" ;
			var result = UpdateRecord(SQL);
			if(isNaN(result)){
				alert(result);
				return(false);
			}
			else{
				mygrid.setRowTextStyle(id, "color: red; ");
				SelfServiceReserveToCounter(barcode);
			}
			return;
		}
	});
}

function SelfServiceReserveToCounter(barcode){
	var SQL = "update reserves set " +
		"status_='COU' " +
		"where id_=" + result[1];
		UpdateRecord(SQL);
}

function UpdateRecord(SQL){
	var ESQL = escape(SQL);
	var myData = '';
	$.ajax({
		type: "post",url: "gophpupdate.php", data:"cmd=" + ESQL,
	    async: false,
		beforeSend: function(){
			$("#tab").html('<img src="/images/wait.gif" />');
			$("#tab").show("fast");
   		},
   		complete: function(){ 
   			$("#tab").html('');
   			$("#tab").hide("slow");
   		},
   		success: function(data){
   			var xml;
   			if($.browser.msie){
   				if (typeof data == "string") {
   					xml = new ActiveXObject("Microsoft.XMLDOM");
   					xml.async = false;
   					xml.loadXML(data);
   				} 
   				else
   					xml = data;	
   			}
   			else 
   				xml = data;
   				$(xml).find('record').each(function(x){
   					myData = $(this).find("pkey").text();
   				});
   			},
   		error: function(){
   			alert("There has been an error");
   			myData = "error";
   		}
	});
	return(myData);
}
//<span class="termHighlight">Computer</span>
function GoBibliography(mygrid,idcolumn){
	
	var catData= new Array();
	var copData= new Array();
	var selectedId=mygrid.getSelectedRowId();
	var Id = mygrid.cellById(selectedId, idcolumn).getValue(); 
	var SQL = "select subjectcategory_,descriptor_,synopsis_,series_,pubyear_,relatedterm_,web_ from catalogue where id_ = " + Id;
	var SQLCOLS = "subjectcategory_,descriptor_,synopsis_,series_,pubyear_,relatedterm_,web_";
	var result = new Array();
	globalIdColumn = idcolumn;
//rest of catalogue record
	AjaxBrowse(SQL,SQLCOLS,result);
	var cnt = result[0];
	var v = SQLCOLS.split(',');
	var SIZE = v.length;
	if(cnt > 0){
		for(var j=0;j<cnt;j++){
			var pos = (j*SIZE)+1;
			var dlist = '';
			for(i=0;i<SIZE;i++){
				catData[i] = result[pos+i];
			}	
		}	
	}
	else
		return;

	var SQL = "select barcode_,status_,return_,site_,location_,shelf_ from copies where catalogue_ = " + Id;
	var SQLCOLS = "barcode_,status_,return_,site_,location_,shelf_";
	var result = new Array();
//get availability
	AjaxBrowse(SQL,SQLCOLS,result);
	var cnt = result[0];
	var v = SQLCOLS.split(',');
	var SIZE = v.length;
	if(cnt > 0){
		for(var j=0;j<cnt;j++){
			var pos = (j*SIZE)+1;
			var dlist = '';
			for(i=0;i<SIZE;i++){
				copData[i] = result[pos+i];
			}	
		}	
	}
	if(idcolumn == 0){
		var isbn = mygrid.cellById(selectedId, 1).getValue();
		var title = mygrid.cellById(selectedId, 2).getValue(); 
		var author = mygrid.cellById(selectedId, 3).getValue(); 
		var publisher = mygrid.cellById(selectedId, 4).getValue(); 
		var media = mygrid.cellById(selectedId, 5).getValue(); 
		var classs = mygrid.cellById(selectedId, 6).getValue();
	}
	else {
		var isbn = mygrid.cellById(selectedId, 2).getValue();
		var title = mygrid.cellById(selectedId, 3).getValue(); 
		var author = mygrid.cellById(selectedId, 4).getValue(); 
		var publisher = mygrid.cellById(selectedId, 5).getValue(); 
		var media = mygrid.cellById(selectedId, 6).getValue(); 
		var classs = mygrid.cellById(selectedId, 7).getValue();
	}
	var titleStr = "<strong>" + Id + ":</strong> " + title;
	var ihtml = $.ajax({
		method: "get",url: "inner.htm", 
		async: false,
		beforeSend: function(){
			$("#tab").html('<img src="/images/wait.gif" />');
			$("#tab").show("fast");
		},
		complete: function(){ 
			$("#tab").html('');
			$("#tab").hide("slow");
		}
	});			
	Tip(
	ihtml.responseText,CLICKSTICKY, true, CLICKCLOSE, false, 
	CLOSEBTN, true,SHADOW, true,	
	TITLE, 'Bibliography', PADDING, 9,FIX, ['Welcome', 0, 5],
	WIDTH,745,FONTFACE, 'Arial, Helvetica, sans-serif', FONTSIZE, '10pt',TITLEALIGN, 'center');
	$(document).ready(function(){
		$("#authors_").html(author);
		$("#isbn_").html(isbn);
		$("#title_").html(titleStr);
		$("#publisher_").html(publisher);
		$("#media_").html(media);
		$("#class_").html(classs);
		$("#subjectcategory_").html(catData[0]);
		$("#descriptors_").html("<strong>Descriptors:</strong><br>" + catData[1]);
		$("#synopsis_").html("<strong>Synopsis:</strong><br>" + catData[2]);
		$("#series_").html("<strong>Series:</strong><br>" + catData[3]);
		$("#pubyear_").html(catData[4]);
		$("#relatedterm_").html(
				"<strong>Related Items:</strong>&nbsp;" +
				"<a href=\"javascript:GoRelated('" +
				catData[5] +
				"');\"" +
				" title='New Search for related ecords'>" +
				catData[5] +
				"</a>"
		);
		var sStr = "<strong>Availability:</strong>&nbsp;";
		if(copData[1] == 'SHE'){
			if(copData[3] != '')
				sStr += "Available at " + copData[3] + " site ";
			if(copData[4] != '')
				sStr += " in " + copData[4] + " location ";
			if(copData[5] != '')
				sStr += " on the " + copData[5] + " shelf ";
		}	
		else
			sStr += " due back " + copData[2];
		$("#availability_").html(sStr);
		var oneauthor = author.split(';')[0];
		oneauthor = escape(oneauthor);
		var googleauthor = "author " +  author.split(';')[0];
		googleauthor = escape(googleauthor);
		
		sStr = '<strong>Weblinks:</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
		sStr += "<a href=http://www.amazon.co.uk/gp/search/field-isbn=" + isbn + " TARGET=_BLANK><img src=\"images/amazon.png\"/>&nbsp;Amazon&nbsp;</a>";	
		sStr += "&nbsp;&nbsp;&nbsp;";
		sStr += "<a href=http://en.wikipedia.org/wiki/"+ oneauthor + " TARGET=_BLANK><img src=\"images/wikipedia.png\"/>&nbsp;Wikipedia&nbsp;</a>";
		sStr += "&nbsp;&nbsp;&nbsp";
		sStr += "<a href=http://www.google.co.uk/search?q=" + googleauthor + " TARGET=_BLANK><img src=\"images/google.png\"/>&nbsp;Google&nbsp;</a>";	
		if(catData[5] != ''){
			sStr += "&nbsp;&nbsp;&nbsp";
			sStr += "<a href=http://" + catData[5] + " TARGET=_BLANK><img src=\"images/utube.png\"/>&nbsp;Author web&nbsp;</a>";
		}
		sStr += "&nbsp;&nbsp;&nbsp";	
		sStr += "<a href=javascript:OpacEmail();><img src=\"images/email.png\"/>&nbsp;Email&nbsp;</a>";
		$("#weblinks_").html(sStr);
	});
}
function OpacEmail(){
	 var ihtml = $.ajax({
			method: "get",url: "email.div", 
			async: false,
			beforeSend: function(){
				$("#tab").html('<img src="/images/wait.gif" />');
				$("#tab").show("fast");
			},
			complete: function(){ 
				$("#tab").html('');
				$("#tab").hide("slow");
			}
		});	
		var selectResult = "<div style=\"background: white; width:480px;height:100px;padding:10px; margin:0px\">" +
		ihtml.responseText + "</div>";
		Tip(
		selectResult,CLICKSTICKY, true, CLICKCLOSE, false, 
		CLOSEBTN, true,SHADOW, true,	
		TITLE, 'Email this record', PADDING, 9,FIX, ['Email', 0, 5],
		WIDTH,490,FONTFACE, 'Arial, Helvetica, sans-serif', FONTSIZE, '10pt',TITLEALIGN, 'center');
		$(document).ready(function(){
			SetValidator(20);
			GoToField("#email_");
		});
}

function GoOpacEmail(){
	var selectedId=mygrid.getSelectedRowId();
	var Id = mygrid.cellById(selectedId, globalIdColumn).getValue();
	if(globalIdColumn == 0){
		var isbn = mygrid.cellById(selectedId, 1).getValue();
		var title = mygrid.cellById(selectedId, 2).getValue(); 
		var author = mygrid.cellById(selectedId, 3).getValue(); 
		var publisher = mygrid.cellById(selectedId, 4).getValue(); 
		var media = mygrid.cellById(selectedId, 5).getValue(); 
		var classs = mygrid.cellById(selectedId, 6).getValue();
	}
	else {
		var isbn = mygrid.cellById(selectedId, 2).getValue();
		var title = mygrid.cellById(selectedId, 3).getValue(); 
		var author = mygrid.cellById(selectedId, 4).getValue(); 
		var publisher = mygrid.cellById(selectedId, 5).getValue(); 
		var media = mygrid.cellById(selectedId, 6).getValue(); 
		var classs = mygrid.cellById(selectedId, 7).getValue();
	}
	var message = '';
	message = "Isbn: " + isbn + "<br/>";
	message += "Title: " + title + "<br/>";
	message += "Author: " + author + "<br/>";
	message += "Publisher: " + publisher + "<br/>";
	message += "Media: " + media + "<br/>";
	message += "Class: " + classs + "<br/>";
	message = escape(message);
	var v = $("#cmaForm").validate();
	if(!v.form())
		return;
	var send_to = $("#email_").val();
	var bcc_to = "";
	var subject = "Library Enquiry";
	var ret = $.ajax({
		type: "post",url: "phpmailer.php", data:"send_to=" + send_to + "&bcc_to=" + bcc_to + "&subject=" + subject + "&message=" + message, 
	    async: false,
	    beforeSend: function(){
		  $("#tab").html('<img src="/images/wait.gif" />');
		  $("#tab").show("fast");
		},
		complete: function(){ 
			$("#tab").html('');
			$("#tab").hide("slow");
		}
	});
	var selectResult = "<div style=\"background: white; width:350px;height:100px;padding-top:5px;text-align:center;\">" +
	ret.responseText + "</div>";
	Tip(
	selectResult,CLICKSTICKY, true, CLICKCLOSE, false, 
	CLOSEBTN, true,SHADOW, true,	
	TITLE, 'Email result', PADDING, 9,FIX, ['Email result', 0, 5],
	WIDTH,350,FONTFACE, 'Arial, Helvetica, sans-serif', FONTSIZE, '10pt',TITLEALIGN, 'center');
	$("#tab").html('');
	$("#tab").hide("slow");
	
}

function GoThesaurus(search_term){
	var catData= new Array();
	var SQL = "select id_, descriptor, relatedterm, subjectcategory, usedfor, useas, broaderterm, scopenote, narrowerterm, historynote FROM thesaurus where descriptor = '" + search_term + "'";  
	var SQLCOLS = "id_, descriptor, relatedterm, subjectcategory, usedfor, useas, broaderterm, scopenote, narrowerterm, historynote";
	var result = new Array();
	AjaxBrowse(SQL,SQLCOLS,result);
	var cnt = result[0];
	var v = SQLCOLS.split(',');
	var SIZE = v.length;
	if(cnt > 0){
		for(var j=0;j<cnt;j++){
			var pos = (j*SIZE)+1;
			var dlist = '';
			for(i=0;i<SIZE;i++){
				catData[i] = result[pos+i];
			}	
		}	
	}
	else
		return;
	var ihtml = $.ajax({
		method: "get",url: "thesaurus.htm", 
		async: false,
		beforeSend: function(){
			$("#tab").html('<img src="/images/wait.gif" />');
			$("#tab").show("fast");
		},
		complete: function(){ 
			$("#tab").html('');
			$("#tab").hide("slow");
		}
	});			
	Tip(
	ihtml.responseText,CLICKSTICKY, true, CLICKCLOSE, false, 
	CLOSEBTN, true,SHADOW, true,		TITLE, 'Thesaurus', PADDING, 9,FIX, ['Welcome', 0, 5],
	WIDTH,745,FONTFACE, 'Arial, Helvetica, sans-serif', FONTSIZE, '10pt',TITLEALIGN, 'center');
	$(document).ready(function(){
		var SQLCOLS = "id_, descriptor, relatedterm, subjectcategory, usedfor, useas, broaderterm, scopenote, narrowerterm, historynote";
		var titleStr = "<strong>" + catData[0] + ":</strong> " + catData[1];

		$("#title_").html(titleStr);
		$("#scopenote_").html(catData[7]);
		$("#subjectcategory_").html(catData[3]);
		$("#broaderterm_").html(catData[6]);
		$("#narrowerterm_").html(catData[8]);
		$("#usedfor_").html(catData[4]);
		$("#useas_").html(catData[5]);
		
		
				$("#relatedterm_").html(
				"<strong>Related terms:</strong>&nbsp;" +
				"<a href=\"javascript:GoRelated('" +
				catData[2] +
				"');\"" +
				" title='New Search for related ecords'>" +
				catData[2] +
				"</a>"
				);	
		
	});
}

function GoOpacAdvanced(){

	$("#workbar").remove();
	$("#workarea").append("<div id=\"workbar\"></div>");
	loadTab("#workbar","opacadvanced.div");

	SetMouseKeys();
	var z2 = new dhtmlXCombo("index_", "alfa", 200);
	z2.loadXMLString(option_index);
	z2.setComboText('Any field');
	z2.selectOption(0,false,true);
	global_z2 = z2;
	
	var z3 = new dhtmlXCombo("style_", "alfa", 200);
	z3.loadXMLString(option_style);
	z3.setComboText('Natural language');
	z3.selectOption(0,false,true);
	global_z3 = z3;
	
	var z4 = new dhtmlXCombo("having_", "alfa", 200);
	z4.loadXMLString(option_having);
	z4.setComboText('All of these words');
	z4.selectOption(0,false,true);
	global_z4 = z4;
	
	var z5 = new dhtmlXCombo("media_", "alfa", 200);
	z5.loadXML("loadmedia.php?mask=%&limit=2000");
	z5.setComboText('Any');
	z5.selectOption(0,false,true);
	global_z5 = z5;
	
	var z6 = new dhtmlXCombo("published_", "alfa", 200);
	z6.loadXMLString(option_published);
	z6.setComboText('Anytime');
	z6.selectOption(0,false,true);
	global_z6 = z6;

	GoToField("#search_");
}

var advancedHistory = new Array();
function GoOpacAdvancedSearch(history_term){
	var process = '';
	if(history_term != ''){
		var x = history_term.split(':')[1];
		searchValue = advancedHistory[x];
	}
	else{
	index_search = global_z2.getSelectedValue(); 
	style_search = global_z3.getSelectedValue(); 
	having_search = global_z4.getSelectedValue(); 
	media_search = global_z5.getSelectedValue(); 
	published_search = global_z6.getSelectedValue();
	search_term = $("#search_").val();
	if(having_search == 'and'){
		if(style_search == 'boolean'){
			search_term = '+';
			search_term += $("#search_").val();
			search_term = search_term.replace(/ /g,'+');
			search_term = search_term.replace(/\+\+/g,'+');
		}
	}
	else if(having_search == 'or'){
		search_term = search_term.replace(/\+/g,' ');
		search_term = search_term.replace(/\-/g,' ');
		style_search = 'natural';
	}
	else if(having_search == 'not'){
		var a = new Array();
		a = search_term.split(' ');
		search_term = "+" + a[0];
		for(var i=1;i<a.length;i++){
			search_term += "-";
			search_term += a[i];
		}
		style_search = 'boolean';
	}	
	//"<option value=\"notall\">Any of these words but not all of them</option>" +
	else if(having_search == 'notall'){
		process = 'notall';
		style_search = 'natural';
	}
	search_term = search_term.replace(/\+/g,' +');
	search_term = search_term.replace(/\-/g,' -');
	searchValue = '';
	search_term = fixedEncodeURIComponent(search_term); 
	searchValue = "match.php?search_mask=" + search_term + "&style=" + style_search + "&index=" + index_search + "&media=" + media_search + "&process=" + process + "&published=" + published_search;

	}

	OpacGridDiv("");
	   mygrid = new dhtmlXGridObject('gridholder');
	    mygrid.setImagePath("imgs/");
	    GridStyle('800px','260px');
	    mygrid.setHeader("Id,Isbn,Title,Authors,Publisher,Media,Class,Bibliography"); 
	     mygrid.setColTypes("ro,ro,ro,ro,ro,ro,ro,ch");
		mygrid.setInitWidths("50,70,200,120,100,100,70,90"); 
		mygrid.setColAlign("left,left,left,left,left,left,left,center"); 
	    mygrid.setColSorting("server,server,server,server,server,server,server,na");
	    mygrid.attachEvent("onBeforeSorting", customColumnSortBasic);
	    mygrid.attachEvent("onBeforePageChanged", function() {
	    	if (!this.getRowsNum())
	        	return false;
	        return true;
	    });
	    mygrid.enablePaging(true, 50, 10, "pagingarea", true, "infoarea");
	    mygrid.setPagingSkin("bricks");
	  	mygrid.setSkin("light"); 
	    mygrid.init();
	 
	   	mygrid.enableColumnAutoSize(false);
	    mygrid.enableSmartRendering(false);
		mygrid.attachEvent("onXLE", function() {
			showLoading(false);
		});
	    mygrid.attachEvent("onXLS", function() {
	        showLoading(true);
	    });
	 	mygrid.loadXML(searchValue);
	   mygrid.setSizes(); 

		$("#searchresults").html("<h3><em>Results</em></h3>");
		advancedHistory.push(searchValue);
		var len = advancedHistory.length-1;
		searchHistory.push("Advaced@@GoOpacAdvancedSearch@@"+ search_term+":"+len);		  
}

function OpacGridDiv(msg){
	$("#workbar").remove();
	$("#workarea").append("<div id=\"workbar\">" +
		"<div align=\"center\"  id = \"headholder\" ></div>" +
		"<div id=\"gridholder\" style=\"width:100%;height:260px;margin-top:5px;margin-bottom:10px;\"></div>" +
		"<div style=\"background-color: #EFF2FF;\" id=\"pagingarea\"></div>" +
		"<div  style=\"background-color: #EFF2FF;\" id=\"infoarea\"></div>" +
		"<div style=\"background-color: #EFF2FF;\" id=\"groupholder\"></div></div>");
		$("#workarea").css("background", "url(images/header_bg.gif) repeat 0px 0px"); 
}