<!--

/*
	*	File:					add.js
	*	Description:	Functions that add Resource items to a form (adapts to any resource)
	*	Date:					July 2004
	*	Author:				H. Korotnicki - Education Queensland
	*	Browsers:			Internet Explorer 4 and above, Netscape 6 and above
*/

// GLOBAL VARIABLES
// Browser detection
var NS4 = (document.layers) ? true : false;
var IE4 = ((document.all)&&(navigator.appVersion.indexOf("MSIE 4.")!=-1)) ? true : false;

// These arrays store the form values when required to regenerate the form
var titleValue = new Array(0);		// Title of publication
var articleValue = new Array(0);	// Article name
var authorValue = new Array(0);		// Author	
var volValue = new Array(0);			// Volume number
var noValue = new Array(0);				// Issue number
var dateValue = new Array(0);			// Date of publication
var pubValue = new Array(0);			// Publisher
var pagesValue = new Array(0);		// Page numbers
var callValue = new Array(0);			// Call number or 'A' number
var clValue = new Array(0);			// Classification number
var isbnValue = new Array(0);			// ISBN or ISSN
var classsetValue = new Array(0);       // Class set to request multiple copies
var fromDayValue = new Array(0);		// from date (day)
var fromMonthValue = new Array(0);	// from date (month)
var fromYearValue = new Array(0);		// from date (year)
var toDayValue = new Array(0);			// from date (day)
var toMonthValue = new Array(0);		// from date (month)
var toYearValue = new Array(0);			// from date (year)
var monthsValue = new Array(0);			// number of months

//	FUNCTION:			getForm
//	DESCRIPTION:	Dynamically create HTML for the journal items on the form
// 	ARGUMENTS:		Name of form
//	RETURNS:			HTML for dynamic list of resource fields and add resource button
function getForm(formName)
{
	var title = eval('document.' + formName + '.title1'); 
	var article = eval('document.' + formName + '.article1');
	var author = eval('document.' + formName + '.author1');
	var vol = eval('document.' + formName + '.vol1');
	var no = eval('document.' + formName + '.no1');
	var date = eval('document.' + formName + '.date1')
	var publisher = eval('document.' + formName + '.publisher1');
	var pages = eval('document.' + formName + '.pages1');
	var call = eval('document.' + formName + '.call_no1');
	var cl = eval('document.' + formName + '.cl_no1');
	var isbn = eval('document.' + formName + '.isbn1');
	var fromDay = eval('document.' + formName + '.from_day1');
	var classset = eval('document.' + formName + '.classset1');
	var language = eval('document.' + formName + '.language');	// used to check hidden field only
	var htmlStr = '';
	
	var dateDay, dateMonth, dateYear, dateMonthNum;
	var Now = new Date();
	var NowYear = Now.getFullYear();
	dateDay = dateMonth = '<option value=""> </option>';
	dateYear = '';
	dateMonthNum = '<option value="_"> </option>';
	for (i=1; i<=31; i++)	dateDay += '<option value="' + i + '">' + i + '</option>';
	dateMonth += '<option value="Jan">January</option><option value="Feb">February</option><option value="Mar">March</option><option value="Apr">April</option><option value="May">May</option><option value="June">June</option><option value="July">July</option><option value="Aug">August</option><option value="Sept">September</option><option value="Oct">October</option><option value="Nov">November</option><option value="Dec">December</option>';
	for (i=NowYear; i<=(NowYear+1); i++)	dateYear += '<option value="' + i + '">' + i + '</option>';
	for (i=1; i<=12; i++)	dateMonthNum += '<option value="' + i + '">' + i + '</option>';	

	
	for (var i=0;i<titleValue.length;i++)	{
		
		if (title && article)	{
			htmlStr += '<h2>Photocopy request ' + (i+2) + '</h2><fieldset>';
			htmlStr += '<div><label for="title' + (i+2) + '">Journal/book title:</label><input type="text" name="title' + (i+2) + '" size="50" id="title' + (i+2) + '" class="FieldBorder3" value="' + titleValue[i] + '"></div>';
		}
		else if (fromDay)	{
			htmlStr += '<h2>Booking ' + (i+2) + '</h2><fieldset>';
			htmlStr += '<div><label for="title' + (i+2) + '">Title:</label><input type="text" name="title' + (i+2) + '" size="50" id="title' + (i+2) + '" class="FieldBorder3" value="' + titleValue[i] + '"></div>';
		}
		else if (title)	{
			htmlStr += '<h2>Resource ' + (i+2) + '</h2><fieldset>';
			htmlStr += '<div><label for="title' + (i+2) + '">Title:</label><input type="text" name="title' + (i+2) + '" size="50" id="title' + (i+2) + '" class="FieldBorder3" value="' + titleValue[i] + '"></div>';
		}
		if (article)
			htmlStr += '<div><label for="article' + (i+2) + '">Article/chapter title:</label><input type="text" name="article' + (i+2) + '" size="50" id="article' + (i+2) + '" class="FieldBorder3" value="' + articleValue[i] + '"></div>';		
		if (author)
			htmlStr += '<div><label for="author' + (i+2) + '">Author(s):</label><input type="text" name="author' + (i+2) + '" size="50" id="author' + (i+2) + '" class="FieldBorder3" value="' + authorValue[i] + '"></div>';
		if (vol)
			htmlStr += '<div><label for="vol' + (i+2) + '">Vol:</label><input type="text" name="vol' + (i+2) + '" size="20" id="vol' + (i+2) + '" class="FieldBorder1" value="' + volValue[i] + '"></div>';
		if (no)
			htmlStr += '<div><label for="no' + (i+2) + '">No:</label><input type="text" name="no' + (i+2) + '" size="20" id="no' + (i+2) + '" class="FieldBorder1" value="' + noValue[i] + '"></div>';
		if (date)	{
			if (article)
				htmlStr += '<div><label for="date' + (i+2) + '">Date:';		
			else
				htmlStr += '<div><label for="date' + (i+2) + '">Year of publication:';
			htmlStr += '</label><input type="text" name="date' + (i+2) + '" size="30" id="date' + (i+2) + '" class="FieldBorder2" value="' + dateValue[i] + '"></div>';		
		}
		if (publisher)
			htmlStr += '<div><label for="publisher' + (i+2) + '">Publisher:</label><input type="text" name="publisher' + (i+2) + '" size="20" id="publisher' + (i+2) + '" class="FieldBorder1" value="' + pubValue[i] + '"></div>';
		if (pages)
			htmlStr += '<div><label for="pages' + (i+2) + '">Pages:</label><input type="text" name="pages' + (i+2) + '" size="20" id="pages' + (i+2) + '" class="FieldBorder1" value="' + pagesValue[i] + '"></div>';
		if (call)	{
			if (language)
				htmlStr += '<div><label for="call_no' + (i+2) + '">Language:';
			else if (fromDay)
				htmlStr += '<div><label for="call_no' + (i+2) + '">\'A\' number:';
			else
				htmlStr += '<div><label for="call_no' + (i+2) + '">Call number:';
			htmlStr += '</label><input type="text" name="call_no' + (i+2) + '" size="50" id="call_no' + (i+2) + '" class="FieldBorder2" value="' + callValue[i] + '"></div>';	
		}
		if (cl)	{
			htmlStr += '<div><label for="cl_no' + (i+2) + '">Classification number:';
			htmlStr += '</label><input type="text" name="cl_no' + (i+2) + '" size="50" id="cl_no' + (i+2) + '" class="FieldBorder2" value="' + clValue[i] + '"></div>';	
		}
		if (isbn)	{
			if (article)
				htmlStr += '<div><label for="isbn' + (i+2) + '">ISSN:';
			else
				htmlStr += '<div><label for="isbn' + (i+2) + '">ISBN:';
			htmlStr += '</label><input type="text" name="isbn' + (i+2) + '" size="50" id="isbn' + (i+2) + '" class="FieldBorder2" value="' + isbnValue[i] + '"></div>';		
		}
		if (fromDay) {
			htmlStr += '<div class="date">Date required: <div><label for="from_day' + (i+2) + '">from:</label>';
			htmlStr += '<select name="from_day' + (i+2) + '" id="from_day' + (i+2) + '">' + dateDay.replace(new RegExp('value="' + fromDayValue[i] + '"', 'gi'), 'value="' + fromDayValue[i] + '" selected') + '</select>';
			htmlStr += '<select name="from_month' + (i+2) + '" id="from_month' + (i+2) + '">' + dateMonth.replace(new RegExp('value="' + fromMonthValue[i] + '"', 'gi'), 'value="' + fromMonthValue[i] + '" selected') + '</select>';
			htmlStr += '<select name="from_year' + (i+2) + '" id="from_year' + (i+2) + '">' + dateYear.replace(new RegExp('value="' + fromYearValue[i] + '"', 'gi'), 'value="' + fromYearValue[i] + '" selected') + '</select></div>';
			htmlStr += '<div><label for="to_day' + (i+2) + '">to:</label> <select name="to_day' + (i+2) + '" id="to_day' + (i+2) + '">' + dateDay.replace(new RegExp('value="' + toDayValue[i] + '"', 'gi'), 'value="' + toDayValue[i] + '" selected') + '</select>';	
			htmlStr += '<select name="to_month' + (i+2) + '" id="to_month' + (i+2) + '">' + dateMonth.replace(new RegExp('value="' + toMonthValue[i] + '"', 'gi'), 'value="' + toMonthValue[i] + '" selected') + '</select>';
			htmlStr += '<select name="to_year' + (i+2) + '" id="to_year' + (i+2) + '">' + dateYear.replace(new RegExp('value="' + toYearValue[i] + '"', 'gi'), 'value="' + toYearValue[i] + '" selected') + '</select></div>';
			htmlStr += '<div class="months"><label for="months' + (i+2) + '">or any 10 working days within the next <select name="months' + (i+2) + '" id="months' + (i+2) + '">' + dateMonthNum.replace(new RegExp('value="' + monthsValue[i] + '"', 'gi'), 'value="' + monthsValue[i] + '" selected') + '</select> months.</label></div></div>';
		}
		if (classset) {
			htmlStr += '<label for="classset' + (i+2) + '">If available I would like: ';
			htmlStr += '<select name="classset' + (i+2) + '" id="classset' + (i+2) + '">';
			if (classsetValue[i]){
				htmlStr += '<option value=""></option>';
			}else{
				htmlStr += '<option value="" selected="selected"></option>';
			}
			if (classsetValue[i] == '1 copy'){
				htmlStr += '<option value="1 copy" selected="selected">1</option>';
			}else{
				htmlStr += '<option value="1 copy">1</option>';
			}
			if (classsetValue[i] == '2 copies'){
				htmlStr += '<option value="2 copies" selected="selected">2</option>';
			}else{
				htmlStr += '<option value="2 copies">2</option>';
			}
			if (classsetValue[i] == '3 copies'){
				htmlStr += '<option value="3 copies" selected="selected">3</option>';
			}else{
				htmlStr += '<option value="3 copies">3</option>';
			}
			if (classsetValue[i] == '4 copies'){
				htmlStr += '<option value="4 copies" selected="selected">4</option>';
			}else{
				htmlStr += '<option value="4 copies">4</option>';
			}
			if (classsetValue[i] == '5 copies'){
				htmlStr += '<option value="5 copies" selected="selected">5</option>';
			}else{
				htmlStr += '<option value="5 copies">5</option>';
			}
			if (classsetValue[i] == '6 copies'){
				htmlStr += '<option value="6 copies" selected="selected">6</option>';
			}else{
				htmlStr += '<option value="6 copies">6</option>';
			}
			if (classsetValue[i] == '7 copies'){
				htmlStr += '<option value="7 copies" selected="selected">7</option>';
			}else{
				htmlStr += '<option value="7 copies">7</option>';
			}
			if (classsetValue[i] == '8 copies'){
				htmlStr += '<option value="8 copies" selected="selected">8</option>';
			}else{
				htmlStr += '<option value="8 copies">8</option>';
			}
			if (classsetValue[i] == '9 copies'){
				htmlStr += '<option value="9 copies" selected="selected">9</option>';
			}else{
				htmlStr += '<option value="9 copies">9</option>';
			}
			if (classsetValue[i] == '10 copies'){
				htmlStr += '<option value="10 copies" selected="selected">10</option>';
			}else{
				htmlStr += '<option value="10 copies">10</option>';
			}
			htmlStr += '</select> copy(ies)</label><br>';
		}
		htmlStr += '</fieldset><hr noshade>';
	}	
	// Add Request or Resource button
	if (article)
		htmlStr += '<input name="add" type="button" value="Add request"';
	else
		htmlStr += '<input name="add" type="button" value="Add resource"';
	htmlStr += ' onClick="addResource(\'' + formName + '\')">';
	return htmlStr;
}

//	FUNCTION:			addResource
//	DESCRIPTION:	Add a resource item to the web page			
// 	ARGUMENTS:		Name of form
//	RETURNS:			nothing
function addResource(formName)
{	
	var title = eval('document.' + formName + '.title1'); 
	var article = eval('document.' + formName + '.article1');
	var author = eval('document.' + formName + '.author1');
	var vol = eval('document.' + formName + '.vol1');
	var no = eval('document.' + formName + '.no1');
	var date = eval('document.' + formName + '.date1');
	var publisher = eval('document.' + formName + '.publisher1');
	var pages = eval('document.' + formName + '.pages1');
	var call = eval('document.' + formName + '.call_no1');
	var cl = eval('document.' + formName + '.cl_no1');
	var isbn = eval('document.' + formName + '.isbn1');
	var fromDay = eval('document.' + formName + '.from_day1');
	var classset = eval('document.' + formName + '.classset1');
	var language = eval('document.' + formName + '.language');	// used to check hidden field only

	// save all previously entered resource items
	for (var i=0;i<titleValue.length;i++)	{
		if (title)
			titleValue[i]= eval( 'document.' + formName + '.title' + (i+2) + '.value');
		if(article)
			articleValue[i]= eval( 'document.' + formName + '.article' + (i+2) + '.value');
		if (author)
			authorValue[i]= eval( 'document.' + formName + '.author' + (i+2) + '.value');
		if (vol)
			volValue[i]= eval( 'document.' + formName + '.vol' + (i+2) + '.value');
		if (no)
			noValue[i]= eval( 'document.' + formName + '.no' + (i+2) + '.value');
		if (date)	
			dateValue[i]= eval( 'document.' + formName + '.date' + (i+2) + '.value');
		if (publisher)
			pubValue[i]= eval( 'document.' + formName + '.publisher' + (i+2) + '.value');
		if (pages)
			pagesValue[i]= eval( 'document.' + formName + '.pages' + (i+2) + '.value');
		if (call)
			callValue[i]= eval( 'document.' + formName + '.call_no' + (i+2) + '.value');
		if (cl)
			clValue[i]= eval( 'document.' + formName + '.cl_no' + (i+2) + '.value');
		if (isbn)
			isbnValue[i]= eval( 'document.' + formName + '.isbn' + (i+2) + '.value');
		if (fromDay)	{
			fromDayValue[i] = eval( 'document.' + formName + '.from_day' + (i+2) + '.value');
			fromMonthValue[i] = eval( 'document.' + formName + '.from_month' + (i+2) + '.value');
			fromYearValue[i] = eval( 'document.' + formName + '.from_year' + (i+2) + '.value');
			toDayValue[i] = eval( 'document.' + formName + '.to_day' + (i+2) + '.value'); 
			toMonthValue[i] = eval( 'document.' + formName + '.to_month' + (i+2) + '.value');
			toYearValue[i] = eval( 'document.' + formName + '.to_year' + (i+2) + '.value');
			monthsValue[i] = eval( 'document.' + formName + '.months' + (i+2) + '.value');			
		}
		if (classset){
			classsetValue[i] = eval('document.' + formName + '.classset' + (i+2) + '.value');
		}
	}
	
	// create the new resource item
	if (title) titleValue[titleValue.length]='';
	if (article) articleValue[articleValue.length]='';
	if (author) authorValue[authorValue.length]='';
	if (vol) volValue[volValue.length]='';
	if (no) noValue[noValue.length]='';
	if (date) dateValue[dateValue.length]='';
	if (publisher) pubValue[pubValue.length]='';
	if (pages) pagesValue[pagesValue.length]='';
	if (call)	callValue[callValue.length]='';
	if (cl)	clValue[clValue.length]='';
	if (isbn)	isbnValue[isbnValue.length]='';
	if (classset) classsetValue[classsetValue.length]='';
	if (fromDay)	{
		fromDayValue[fromDayValue.length]=''; 
		fromMonthValue[fromMonthValue.length]=''; 
		fromYearValue[fromYearValue.length]=''; 
		toDayValue[toDayValue.length]=''; 
		toMonthValue[toMonthValue.length]=''; 
		toYearValue[toYearValue.length]=''; 
		monthsValue[monthsValue.length]=''; 		
	}
	
	// update form
	var htmlStr = getForm(formName);
	document.getElementById("itemList").innerHTML = htmlStr;
	
	// update email template
	var i=titleValue.length+1;
	if (fromDay)
		document.getElementById("Template").value += '\nBOOKING ' + i + '\n';
	else
		document.getElementById("Template").value += '\nREQUEST ' + i + '\n';
	if (title && article)
		document.getElementById("Template").value +='Journal/book title:';
	else if(title)
		document.getElementById("Template").value +='Title:';
	if (title)
		document.getElementById("Template").value += '  {title' + i + '}.\n';
	if (article)
		document.getElementById("Template").value += 'Article/chapter title:  {article' + i + '}\n';
	if (author)
		document.getElementById("Template").value += 'Author(s):  {author' + i + '}\n';
	if (vol)
		document.getElementById("Template").value += 'Vol:  {vol' + i + '}\n';
	if (no)
		document.getElementById("Template").value += 'No:  {no' + i + '}\n';
	if (date)
		if (article) document.getElementById("Template").value += 'Date:  {date' + i + '}\n';
		else document.getElementById("Template").value += 'Year of publication:  {date' + i + '}\n';
	if (publisher)
		document.getElementById("Template").value += 'Publisher:  {publisher' + i + '}\n';
	if (pages)	
		document.getElementById("Template").value += 'Pages:  {pages' + i + '}\n';
	if (call)
		if (language) document.getElementById("Template").value += 'Language:  {call_no' + i + '}\n';	
		else if (fromDay) document.getElementById("Template").value += '\'A\' number:  {call_no' + i + '}\n';
		else document.getElementById("Template").value += 'Call number:  {call_no' + i + '}\n';
	if (cl)
		document.getElementById("Template").value += 'Classification number:  {cl_no' + i + '}\n';
	if (isbn)	
		if (article) document.getElementById("Template").value += 'ISSN:  {isbn' + i + '}\n';
		else document.getElementById("Template").value += 'ISBN:  {isbn' + i + '}\n';
	if (fromDay)
		document.getElementById("Template").value += 'Date required: from: {from_day' + i + '} {from_month' + i + '} {from_year' + i + '} to: {to_day' + i + '} {to_month' + i + '} {to_year' + i + '}\nor any 10 working days within the next {months' + i + '} months.\n';	
	if  (classset)
		document.getElementById("Template").value += 'If available I would like: {classset' + i + '}\n';
}

//	FUNCTION:			insertForm
//	DESCRIPTION:	Insert HTML for form in the correct part of the web page
// 	ARGUMENTS:		Name of form
//	RETURNS:			nothing
function insertForm(formName)
{
	var htmlStr = getForm(formName);	// get code for form

	if ( !(NS4||IE4) )	{
		document.write('<div id="itemList" name="itemList">' + htmlStr + '</div>');
	}
}
// -->