var ACTION_PRINT='print';
var ACTION_CLOSE='close';
var ACTION_EMAIL='email';

function handleEnter(action,ev,file,identifier,truefalse) {
	var ENTER_KEY=13;
	var keyCode = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
	if (keyCode == ENTER_KEY) {
		switch(action){
			case ACTION_PRINT:
				printPage();
				return false;
			case ACTION_CLOSE:
				window.close();
				return false;
			case ACTION_EMAIL:
				return email_this_page();
				return false;
			default:
				return false;			
		}
	}
}

function email_this_page() {
    var url = document.location;
    var cgi = "/cli/cgi-bin/email_this_page.pl?ref_url="+ url;
    window.name="masterWindow";
    OpenWin = window.open(cgi, "Email_This_Page", 'toolbar=yes,scrollbars=yes,width=500,height=600');
    OpenWin.focus();			
}

// This function opens new window to display a hint to preview the page in Teamsite correctly
function IsPreview(purl, cname) {
    var cprm = "/cli/is_preview.inc?"+ purl;
    var retval = "http://" + cname + "/iw-cc/command/iw.ui?vpath=" + purl;
    var teamsite = "teamsite.det.nsw.edu.au";
    var teamsite_test = "teamsite.test.det.nsw.edu.au";
    var is_teamsite = document.URL.indexOf(teamsite);
    var is_teamsite_test = document.URL.indexOf(teamsite_test);
    var link;
    var url = document.url;
    var msg = "";

    msg = msg + "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
    msg = msg + "<html xmlns=\"http://www.w3.org/1999/xhtml\" >\n";
    msg = msg + "<head>\n";
    msg = msg + "<title>Preview Hint</title>\n";
    msg = msg + "</head>\n";
    msg = msg + "<body>\n";
    msg = msg + "<p>\nTo preview this page correctly please click";    
	msg = msg + "\n<a id=\"cf\" name=\"cf\" href=\"" + retval + "\" alt=\"Click this link to preview the page correctly.\">";
	msg = msg + "\n<img src=\"/cli/etis/media/images/icn_edit.gif\" alt=\"Edit\" border=0/>";
	msg = msg + "Edit\n</a>\n";
	msg = msg + ". This will open the content entry form, then choose the \n";
	msg = msg + "<img src=\"/cli/etis/media/images/icn_preview.gif\" alt=\"Preview\" />\n";
	msg = msg + "<strong>Preview</strong>\n option on the horizontal toolbar.\n";
	msg = msg + "</p>\n";
    msg = msg + "</body>\n";
    msg = msg + "</html>\n";	
	
	if ((is_teamsite != -1) || (is_teamsite_test != -1)){ 
	    OpenWin = window.open(cprm, "Is_Preview", 'toolbar=yes,scrollbars=yes,width=800,height=600,resizable=yes');
	    OpenWin.focus();
	    OpenWin.document.writeln (msg);
	}    
}

function Reminder_Submit(purl, cname) {
	var cprm = "/cli/is_preview.inc?"+ purl;
    var retval = "http://" + cname + "/iw-cc/command/iw.ui?vpath=" + purl;
    var teamsite = "teamsite.det.nsw.edu.au";
    var teamsite_test = "teamsite.test.det.nsw.edu.au";
    var is_teamsite = document.URL.indexOf(teamsite);
    var is_teamsite_test = document.URL.indexOf(teamsite_test);
    var msg = "";
    
    msg = msg + "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">";
    msg = msg + "<html xmlns=\"http://www.w3.org/1999/xhtml\" >";
    msg = msg + "<head>";
    msg = msg + "<title>Reminder to Submit pages</title>";
    msg = msg + "</head>";
    msg = msg + "<body>";
	msg = msg + "<p><strong>Initial setup to integrate a dynamic paragraph into the desired page:</strong><br /><ol>";
	msg = msg + "<li>Please copy the following paragraph into the clipboard.</li>";
	msg = msg + "<br />";	
	msg = msg + "<pre>&lt;p class=&quot;invisible&quot;&gt; This Paragraph to be modified by &lt;strong&gt;developers&lt;/strong&gt; only!!&lt;/p&gt;";
	msg = msg + "<br />&lt;asp:ContentPlaceHolder id='cphMain' runat='server'&gt;&lt;/asp:ContentPlaceHolder&gt;</pre>";
	msg = msg + "<li>Click on the 'Edit' button on the floating menu. (It may take a minute to render the edit page)</li>";
	msg = msg + "<li>Click on the 'View Source' button of the desirable paragraph's toolbar to see it in html view.</li>";
	msg = msg + "<li>Paste the clipboard content into the paragraph.</li>";
	msg = msg + "<li>Click on the 'Save' button.</li>";
	msg = msg + "<li>Click on the 'Generate' or 'Finish' button.</li></ol>";
    msg = msg + "<p><ul><li>Please submit this file along with the file of the same name located in ";    
	msg = msg + "<a id='cf' name='cf' href='" + retval + "'>";
	msg = msg + retval + "</a>";
	msg = msg + " which has an extension ";
	msg = msg + "<strong>.master</strong>.";
	msg = msg + "</li></ul></p>";
    msg = msg + "</body>";
    msg = msg + "</html>";
	
	if ((is_teamsite != -1) || (is_teamsite_test != -1)){ 
	    OpenWin = window.open(cprm, "Reminder_Submit", 'toolbar=yes,scrollbars=yes,width=800,height=600,resizable=yes');
	    OpenWin.focus();
	    OpenWin.document.writeln (msg);
	}    
}

function Reminder_Submit_RSS(purl, cname) {
	var cprm = "/cli/is_preview.inc?"+ purl;
    var retval = "http://" + cname + "/iw-cc/command/iw.ui?vpath=" + purl;
    var teamsite = "teamsite.det.nsw.edu.au";
    var teamsite_test = "teamsite.test.det.nsw.edu.au";
    var is_teamsite = document.URL.indexOf(teamsite);
    var is_teamsite_test = document.URL.indexOf(teamsite_test);
    var msg = "";

    msg = msg + "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
    msg = msg + "<html xmlns=\"http://www.w3.org/1999/xhtml\" >\n";
    msg = msg + "<head>\n";
    msg = msg + "<title>Reminder to Submit pages</title>\n";
    msg = msg + "</head>\n";
    msg = msg + "<body>\n";
    msg = msg + "<p><ul><li>Please submit this file along with the file ";    
	msg = msg + "<a id='cf' name='cf' href='" + retval + "'>";
	msg = msg + retval + "</a>";
	msg = msg + "</p></ul></li>\n";
    msg = msg + "</body>\n";
    msg = msg + "</html>\n";
	
	if ((is_teamsite != -1) || (is_teamsite_test != -1)){ 
	    OpenWin = window.open(cprm, "Reminder_Submit_RSS", 'toolbar=yes,scrollbars=yes,width=800,height=600,resizable=yes');
	    OpenWin.focus();
	    OpenWin.document.writeln (msg);
	}    
}
	
function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function printPage(){
	window.print?
		window.print()
		: alert('Sorry, your browser does not support this feature. Please choose print from the file menu.');
}

function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}


function OpenIt(NewWindow) {
        flyout=window.open(NewWindow,"flyout","menubar=yes,toolbar=yes,location=yes,address=yes,resizable=yes,scrollbars=yes,width=640,height=330,top=140,left=146")
}


function newWindow(file,window) {
    msgWindow=open(file,window,'status=yes, resizable=yes, scrollbars=yes, width=640,height=330, top=140,left=146');
    if (msgWindow.opener == null) msgWindow.opener = self;
}

function closePage() {
window.close();
}

function FormFocus() {
if (document.forms.length > 0) {
var field = document.forms[0];
for (i = 0; i < field.length; i++) {
if ((field.elements[i].type == "text") || (field.elements[i].type == "textarea") || (field.elements[i].type.toString().charAt(0) == "s")) {
document.forms[0].elements[i].focus();
break;
         }
      }
   }
}


function cfmDelete () 
{
var agree=confirm("Are you sure you wish to continue?");
if (agree)
	return true ;
else
	return false ;
}

<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}


function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/* 
  ------------------------------------------------
  PVII Equal CSS Columns scripts -Version 2
  Copyright (c) 2005 Project Seven Development
  www.projectseven.com
  Version: 2.1.0
  ------------------------------------------------
*/
function P7_colH2(){ //v2.1.0 by PVII-www.projectseven.com
 var i,oh,h=0,tg,el,np,dA=document.p7eqc,an=document.p7eqa;if(dA&&dA.length){
 for(i=1;i<dA.length;i+=2){dA[i+1].style.paddingBottom='';}for(i=1;i<dA.length;i+=2){
 oh=dA[i].offsetHeight;h=(oh>h)?oh:h;}for(i=1;i<dA.length;i+=2){oh=dA[i].offsetHeight;
 if(oh<h){np=h-oh;if(!an&&dA[0]==1){P7_eqA2(dA[i+1].id,0,np);}else{
 dA[i+1].style.paddingBottom=np+"px";}}}document.p7eqa=1;
 document.p7eqth=document.body.offsetHeight;
 document.p7eqtw=document.body.offsetWidth;}
}
function P7_eqT2(){ //v2.1.0 by PVII-www.projectseven.com
 if(document.p7eqth!=document.body.offsetHeight||document.p7eqtw!=document.body.offsetWidth){P7_colH2();}
}
function P7_equalCols2(){ //v2.1.0 by PVII-www.projectseven.com
 var c,e,el;if(document.getElementById){document.p7eqc=new Array();
 document.p7eqc[0]=arguments[0];for(i=1;i<arguments.length;i+=2){el=null;
 c=document.getElementById(arguments[i]);if(c){e=c.getElementsByTagName(arguments[i+1]);
 if(e){el=e[e.length-1];if(!el.id){el.id="p7eq"+i;}}}if(c&&el){
 document.p7eqc[document.p7eqc.length]=c;document.p7eqc[document.p7eqc.length]=el}}
 setInterval("P7_eqT2()",10);}
}
function P7_eqA2(el,p,pt){ //v2.1.0 by PVII-www.projectseven.com
 var sp=10,inc=20,g=document.getElementById(el);np=(p>=pt)?pt:p;
 g.style.paddingBottom=np+"px";if(np<pt){np+=inc;
 setTimeout("P7_eqA2('"+el+"',"+np+","+pt+")",sp);}
}

var form='Form'
function SetChecked(val,chkName) {
dml=document.forms[form];
len = dml.elements.length;
var i=0;
for( i=0 ; i<len ; i++) {
if (dml.elements[i].name==chkName) {
dml.elements[i].checked=val;
}
}
}

function ValidateForm(dml,chkName){
len = dml.elements.length;
var i=0;
for( i=0 ; i<len ; i++) {
if ((dml.elements[i].name==chkName) && (dml.elements[i].checked==1)) return true
}
alert("Please select at least one record to be deleted")
return false;
}

function AlternateTableRowColours()
	{
		if(document.getElementById('law_table')!= null){
		    stripe('law_table', '#fff', '#E9EEEF');
		}
		
		//first ensure we are on a page with the deadline link
		if(document.getElementById('deadlineLink')!= null){
		    var objDateChooserEx1 = new DateChooser();

		    // Check if the browser has fully loaded the DateChooser object, and supports it.
		    if (!objDateChooserEx1.display)
		    {
			    return false;
		    }

		    objDateChooserEx1.setCloseTime(200);
		    objDateChooserEx1.setXOffset(10);
		    objDateChooserEx1.setYOffset(-10);
		    objDateChooserEx1.setUpdateFunction(FunctionEx1);
		    document.getElementById('deadlineLink').onclick = objDateChooserEx1.display;

		    return true;
		    }
	}

	function FunctionEx1(objDate)
	{
		// objDate is a plain old Date object, with the getPHPDate() property added on.
		document.getElementById('deadline').value = objDate.getPHPDate('F jS, Y');
		return true;
	}

// search request form - make email 'required/not required' according to delivery method 'post/email'.
function showDiv() {
	document.getElementById('email_required').style.display = 'inline';
	document.getElementById('required').value='name,position,phone,email,section,delivery,purpose,delivery_street,delivery_city,delivery_postcode,deadline,timespan,request_topic,keywords';
}

function hideDiv() {
	document.getElementById('email_required').style.display = 'none';
	document.getElementById('required').value='name,position,phone,section,delivery,purpose,delivery_street,delivery_city,delivery_postcode,deadline,timespan,request_topic,keywords';

//remove error when delivery by post is selected 
	var emailPara = document.getElementById('email_address');
	emailPara.getElementsByTagName('img')[0].style.display = 'none';
}


// journal request form - make email 'required/not required' according to delivery method 'post/email'.
function showDivJournal() {
	document.getElementById('email_required').style.display = 'inline';
	document.getElementById('required').value='name,position,phone,email,section,delivery_method,delivery_street,delivery_city,delivery_postcode,journal_title,article_title';
}

function hideDivJournal() {
	document.getElementById('email_required').style.display = 'none';
	document.getElementById('required').value='name,position,phone,email,section,delivery_method,delivery_street,delivery_city,delivery_postcode,journal_title,article_title';

//remove error when delivery by post is selected 
	var emailPara = document.getElementById('email_address');
	emailPara.getElementsByTagName('img')[0].style.display = 'none';
}

		function checkform(of)
		{
		// Test if DOM is available and there is an element called required
			if(!document.getElementById || !document.createTextNode){return;}
			if(!document.getElementById('required')){return;}

		// Define error messages and split the required fields
			var errorID='errormsg';
			var errorClass='error'
            /* changes for linked list */
			var errorMsg='Please enter or change the following fields:';
            /* end changes for linked list */
			var errorImg='../../media/images/alert.gif';
			var errorAlt='Error';
			var errorTitle='This field has an error!';
			var reqfields=document.getElementById('required').value.split(',');

		// Cleanup old mess
			// if there is an old errormessage field, delete it
			if(document.getElementById(errorID))
			{
				var em=document.getElementById(errorID);
				em.parentNode.removeChild(em);
			}
			// remove old images and classes from the required fields
			for(var i=0;i<reqfields.length;i++)
			{
				var f=document.getElementById(reqfields[i]);
				if(!f){continue;}
				if(f.previousSibling && /img/i.test(f.previousSibling.nodeName))
				{
					f.parentNode.removeChild(f.previousSibling);
				}
				f.className='';
			}
		// loop over required fields
			for(var i=0;i<reqfields.length;i++)
			{
		// check if required field is there
				var f=document.getElementById(reqfields[i]);
				if(!f){continue;}
		// test if the required field has an error, 
		// according to its type
				switch(f.type.toLowerCase())
				{
					case 'text':
						if(f.value=='' && f.id!='email'){cf_adderr(f)}							
		// email is a special field and needs checking
						if(f.id=='email' && !cf_isEmailAddr(f.value)){cf_adderr(f)}							
					break;
					case 'textarea':
						if(f.value==''){cf_adderr(f)}							
					break;
					case 'checkbox':
						if(!f.checked){cf_adderr(f)}							
					break;
					case 'select-one':
						if(!f.selectedIndex && f.selectedIndex==0){cf_adderr(f)}							
					break;
				}
			}
			return !document.getElementById(errorID);

			/* Tool methods */
			function cf_adderr(o)
			{
				// create image, add to and colourise the error fields
				var errorIndicator=document.createElement('img');
				errorIndicator.alt=errorAlt;
				errorIndicator.src=errorImg;
				errorIndicator.title=errorTitle;
				o.className=errorClass;
				o.parentNode.insertBefore(errorIndicator,o);

			// Check if there is no error message
				if(!document.getElementById(errorID))
				{
				// create errormessage and insert before submit button
					var em=document.createElement('div');
					em.id=errorID;
					var newp=document.createElement('p');
					newp.appendChild(document.createTextNode(errorMsg))
					em.appendChild(newp);
/* added for linked list */
					var newul=document.createElement('ul');		
					em.appendChild(newul);
/* end added for linked list */
					// find the submit button 
					for(var i=0;i<of.getElementsByTagName('input').length;i++)
					{
						if(/submit/i.test(of.getElementsByTagName('input')[i].type))
						{
							var sb=of.getElementsByTagName('input')[i];
							break;
						}
					}
					if(sb)
					{
						sb.parentNode.insertBefore(em,sb);
					}	
				} 
/* added for linked list */
				var em=document.getElementById(errorID).getElementsByTagName('ul')[0];
				var newli=document.createElement('li');
				var newa=document.createElement('a');
				for(var i=0;i<of.getElementsByTagName('label').length;i++)
				{
					if(of.getElementsByTagName('label')[i].htmlFor==o.id)
					{
						var txt=of.getElementsByTagName('label')[i].firstChild.nodeValue;
						break;
					}
				}
	
				newa.appendChild(document.createTextNode(txt));
				newa.href='#'+f.id;
				newa.onclick=function()
				{
					var loc=this.href.match(/#(\w.+)/)[1];
					document.getElementById(loc).focus();
					return false;
				}
				newli.appendChild(newa);
				em.appendChild(newli);
			/* end added for linked list */
			}
			function cf_isEmailAddr(str) 
			{
			    return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
			}
		}
		
// Add book request 
		
		var fieldCount = 1;
		var fieldNumber = 2;
		function addBookRequest(){
		    fieldCount++;
			
			// Add a new Div 
		    var newDiv = document.createElement('div');
			newDiv.id = 'fieldset' + fieldCount;
			document.getElementById('bookreq').appendChild(newDiv);
			
			//Add request number
			var newReqPara = document.createElement('p');
			newReqPara.id = 'request_No';
			var NewReq = document.createElement('input');
			NewReq.type = 'hidden';
		    NewReq.name='request';
		    NewReq.id='request';
			NewReq.value= fieldNumber++;
		    NewReq.size='1';
			newReqPara.appendChild(NewReq);
			document.getElementById('fieldset' + fieldCount).appendChild(newReqPara);
			
			
			// Add a new Author 
		    var newAuthorText = document.createTextNode('Author ');
		    var newSpanText = document.createTextNode(' *');
		    
		    var newPara = document.createElement('p');
		    var newLabel = document.createElement('label');
			newLabel.htmlFor='author' + fieldCount;
		    var newSpan = document.createElement('span');
		    
		    newLabel.appendChild(newAuthorText);
		    newSpan.appendChild(newSpanText);
		    
		    var newAuthor = document.createElement('input');
		    newAuthor.type = 'text';
		    newAuthor.name='author';
		    newAuthor.id='author' + fieldCount;
			var thisAuthor=',author'+ fieldCount;
		    newAuthor.size='40';
		    newPara.appendChild(newLabel);
		    var myAnchor = newPara.appendChild(newAuthor);
			newPara.appendChild(newAuthor);
		    newPara.appendChild(newSpan);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara);
		   
		   // Add a new Title 
		    var newPara2 = document.createElement('p');
		    var newTitleText = document.createTextNode('Title ');
		    var newSpanText2 = document.createTextNode(' *');
		    
		    var newLabel2 = document.createElement('label');
			newLabel2.htmlFor='title' + fieldCount;
		    var newSpan2 = document.createElement('span');
		    
		    newLabel2.appendChild(newTitleText);
		    newSpan2.appendChild(newSpanText2);
		    
		    var newTitle = document.createElement('input');
		    newTitle.type = 'text';
		    newTitle.name='title';
		    newTitle.id='title'+ fieldCount;
			var thisTitle=',title'+ fieldCount;
		    newTitle.size='40';
			newTitle.htmlFor='title'+ fieldCount;
		    newPara2.appendChild(newLabel2);
		    newPara2.appendChild(newTitle);
		    newPara2.appendChild(newSpan2);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara2);
		    
		    // Add a new Publication date
		    var newPara3 = document.createElement('p');
			newPara3.id = 'para_last';
			var newPubText = document.createTextNode('Publisher and Publication date (if known) ');
		    
		    var newLabel3 = document.createElement('label');
		    
		    newLabel3.appendChild(newPubText);
		    
		    var newPubDate = document.createElement('input');
		    newPubDate.type = 'text';
		    newPubDate.name='pub';
		    newPubDate.id='pub';
		    newPubDate.size='40';
		    newPara3.appendChild(newLabel3);
		    newPara3.appendChild(newPubDate);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara3);
	
			// Add new delete book button
			var newPara4 = document.createElement('p');
			newPara4.id = 'para_button';
			var newDeleteButtonText = document.createTextNode('Delete book');
			
			var newDeleteButton = document.createElement('input');
		    newDeleteButton.type = 'button';
			newDeleteButton.value = 'Delete Book';
			newDeleteButton.onclick = deleteBookRequest;
		    newDeleteButton.name='deletebook';
		    newDeleteButton.id='deletebook';
			var thisButton = newPara4.appendChild(newDeleteButton);
		    newPara4.appendChild(newDeleteButton);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara4);
			
			
			
				function deleteBookRequest(){
					var currentSet = thisButton.parentNode.parentNode;
					document.getElementById('bookreq').removeChild(currentSet);

					var children = document.getElementById('bookreq').childNodes;
					
					//alert("Children" + children.length);
					
					var j = 1;
					
					for(i = 0; i < children.length; i++){
						
						var currDiv = children.item(i);

						if(currDiv.id != null && currDiv.id.charAt(0) == 'f'){
						currDiv.childNodes.item(0).childNodes.item(0).value = j++;
																		 
						 }
						
					}
					
					fieldNumber = j;
						
				}
			
			//Add title and author to the list of required fields
			var getRequiredFields = document.getElementById('required').value;
			//alert(getRequiredFields);
			var newRequiredFields = document.getElementById('required').value= (getRequiredFields).concat(thisAuthor).concat(thisTitle);
			//alert(newRequiredFields);
			document.getElementById('required').value = newRequiredFields;
			}
			
			
			
					function deleteFirstBookRequest(){
					var firstSet = document.getElementById('fieldset1');
					document.getElementById('bookreq').removeChild(firstSet);

					var children = document.getElementById('bookreq').childNodes;
					
					var j = 1;
					
					for(i = 0; i < children.length; i++){
						
						var currDiv = children.item(i);

						if(currDiv.id != null && currDiv.id.charAt(0) == 'f'){
						currDiv.childNodes.item(0).childNodes.item(0).value = j++;
																		 
						 }
						
					}
					
					fieldNumber = j;
						
				}
				
/** Add Journal request **/
		
		var fieldCount = 1;
		var fieldNumber = 2;
		function addJournalRequest(){
		    fieldCount++;
			
			// Add a new Div 
		    var newDiv = document.createElement('div');
			newDiv.id = 'fieldset' + fieldCount;
			document.getElementById('journreq').appendChild(newDiv);
			
			//Add request number
			var newReqPara = document.createElement('p');
			newReqPara.id = 'request_No';
			var NewReq = document.createElement('input');
			NewReq.type = 'hidden';
		    NewReq.name='request';
		    NewReq.id='request';
			NewReq.value= fieldNumber++;
		    NewReq.size='1';
			newReqPara.appendChild(NewReq);
			document.getElementById('fieldset' + fieldCount).appendChild(newReqPara);


			/** Add a new Journal Title **/
		    var newJournalTitleText = document.createTextNode('Journal title');
		    var newSpanText = document.createTextNode('*');
		    
		    var newPara = document.createElement('p');
		    var newLabel = document.createElement('label');
			newLabel.htmlFor = 'journal_title' + fieldCount;
		    var newSpan = document.createElement('span');
		    
		    newLabel.appendChild(newJournalTitleText);
		    newSpan.appendChild(newSpanText);
		    
		    var newJournalTitle = document.createElement('input');
		    newJournalTitle.type = 'text';
		    newJournalTitle.name='journal_title' + fieldCount;
		    newJournalTitle.id='journal_title' + fieldCount;
		    newJournalTitle.size='40';
			var thisJournalTitle=',journal_title'+ fieldCount;
			newPara.appendChild(newLabel);
		    newPara.appendChild(newJournalTitle);
		    newPara.appendChild(newSpan);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara);
		    
		    /** Add a new Article Title **/
		    var newPara2 = document.createElement('p');
		    var newArticleTitleText = document.createTextNode('Article title');
		    var newSpanText2 = document.createTextNode('*');
		    
		    var newLabel2 = document.createElement('label');
			newLabel2.htmlFor = 'article_title' + fieldCount;
		    var newSpan2 = document.createElement('span');
		    
		    newLabel2.appendChild(newArticleTitleText);
		    newSpan2.appendChild(newSpanText2);
		    
		    var newArticleTitle = document.createElement('input');
		    newArticleTitle.type = 'text';
		    newArticleTitle.name='article_title' + fieldCount;
		    newArticleTitle.id='article_title' + fieldCount;
		    newArticleTitle.size='40';
			var thisArticleTitle=',article_title'+ fieldCount;
		    newPara2.appendChild(newLabel2);
		    newPara2.appendChild(newArticleTitle);
		    newPara2.appendChild(newSpan2);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara2);
		    
		   	/** Add a new Author(s) of article **/
		    var newPara3 = document.createElement('p');
			var newArticleAuthorText = document.createTextNode('Author(s) of article');
		    
		    var newLabel3 = document.createElement('label');
		    
		    newLabel3.appendChild(newArticleAuthorText);
		    
		    var newArticleAuthor = document.createElement('input');
		    newArticleAuthor.type = 'text';
		    newArticleAuthor.name='article_author';
		    newArticleAuthor.id='article_author' + fieldCount;
		    newArticleAuthor.size='40';
		    newPara3.appendChild(newLabel3);
		    newPara3.appendChild(newArticleAuthor);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara3);
		    
		   	/** Add a new Volume **/
		    var newPara4 = document.createElement('p');
		    var newVolumeText = document.createTextNode('Volume');
		    
		    var newLabel4 = document.createElement('label');
		    
		    newLabel4.appendChild(newVolumeText);
		    
		    var newVolume = document.createElement('input');
		    newVolume.type = 'text';
		    newVolume.name='volume';
		    newVolume.id='volume' + fieldCount;
		    newVolume.size='40';
		    newPara4.appendChild(newLabel4);
		    newPara4.appendChild(newVolume);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara4);
		    
		   	/** Add a new Month/Part number**/
		    var newPara5 = document.createElement('p');
		    var newMonthPartNumText = document.createTextNode('Month/Part number');
		    
		    var newLabel5 = document.createElement('label');
		    
		    newLabel5.appendChild(newMonthPartNumText);
		    
		    var newMonthPartNum = document.createElement('input');
		    newMonthPartNum.type = 'text';
		    newMonthPartNum.name='month_part_num';
		    newMonthPartNum.id='month_part_num' + fieldCount;
		    newMonthPartNum.size='10';
		    newPara5.appendChild(newLabel5);
		    newPara5.appendChild(newMonthPartNum);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara5);

		   	/** Add a new Year **/
		    var newPara6 = document.createElement('p');
		    var newYearText = document.createTextNode('Year');
		    
		    var newLabel6 = document.createElement('label');
		    
		    newLabel6.appendChild(newYearText);
		    
		    var newYear = document.createElement('input');
		    newYear.type = 'text';
		    newYear.name='journal_year';
		    newYear.id='journal_year' + fieldCount;
		    newYear.size='4';
		    newPara6.appendChild(newLabel6);
		    newPara6.appendChild(newYear);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara6);

		   	/** Add a new Pages **/
		    var newPara7 = document.createElement('p');
		    var newPagesText = document.createTextNode('Pages');
		    
		    var newLabel7 = document.createElement('label');
		    
		    newLabel7.appendChild(newPagesText);
		    
		    var newPages = document.createElement('input');
		    newPages.type = 'text';
		    newPages.name='pages';
		    newPages.id='pages' + fieldCount;
		    newPages.size='4';
		    newPara7.appendChild(newLabel7);
		    newPara7.appendChild(newPages);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara7);
		    
			/** Add a new Search number **/
		    var newPara8 = document.createElement('p');
		    var newSearchNumberText = document.createTextNode('Search number');
		    
		    var newLabel8 = document.createElement('label');
		    
		    newLabel8.appendChild(newSearchNumberText);
		    
		    var newSearchNumber = document.createElement('input');
		    newSearchNumber.type = 'text';
		    newSearchNumber.name='search_num';
		    newSearchNumber.id='search_num' + fieldCount;
		    newSearchNumber.size='40';
		    newPara8.appendChild(newLabel8);
		    newPara8.appendChild(newSearchNumber);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara8);		    

			/** Add a new Other details **/
		    var newPara11 = document.createElement('p');
			newPara11.id = 'para_last';
		    var newOtherDetailsText = document.createTextNode('Other details:');
		    
		    var newLabel11 = document.createElement('label');

		    newLabel11.appendChild(newOtherDetailsText);
		    
		    var newOtherDetails = document.createElement('textarea');

		    newOtherDetails.name='other_details';
		    newOtherDetails.id='other_details' + fieldCount;
		    newOtherDetails.rows='4';
		    newOtherDetails.cols='35';		    
		    newOtherDetails.className='textArea'; 
		    newPara11.appendChild(newLabel11);
		    newPara11.appendChild(newOtherDetails);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara11); 
		   
 			// Add new delete book button
			var newPara4 = document.createElement('p');
			newPara4.id = 'para_button';
			var newDeleteButtonText = document.createTextNode('Delete journal');
			
			var newDeleteButton = document.createElement('input');
		    newDeleteButton.type = 'button';
			newDeleteButton.value = 'Delete Journal';
			newDeleteButton.onclick = deleteJournalRequest;
		    newDeleteButton.name='deletejournal';
		    newDeleteButton.id='deletejournal';
			var thisButton = newPara4.appendChild(newDeleteButton);
		    newPara4.appendChild(newDeleteButton);
		    document.getElementById('fieldset' + fieldCount).appendChild(newPara4);
			
			
			
				function deleteJournalRequest(){
					var currentSet = thisButton.parentNode.parentNode;
					document.getElementById('journreq').removeChild(currentSet);

					var children = document.getElementById('journreq').childNodes;
					
					//alert("Children" + children.length);
					
					var j = 1;
					
					for(i = 0; i < children.length; i++){
						
						var currDiv = children.item(i);

						if(currDiv.id != null && currDiv.id.charAt(0) == 'f'){
						currDiv.childNodes.item(0).childNodes.item(0).value = j++;
																		 
						 }
						
					}
					
					fieldNumber = j;
						
				}
			
			//Add title and author to the list of required fields
			var getRequiredFields = document.getElementById('required').value;
			//alert(getRequiredFields);
			var newRequiredFields = getRequiredFields = (getRequiredFields).concat(thisJournalTitle).concat(thisArticleTitle);
			//alert(newRequiredFields);
			document.getElementById('required').value = newRequiredFields;
	}	 
	
	
					function deleteFirstJournalRequest(){
					var firstSet = document.getElementById('fieldset1');
					document.getElementById('journreq').removeChild(firstSet);

					var children = document.getElementById('journreq').childNodes;
					
					var j = 1;
					
					for(i = 0; i < children.length; i++){
						
						var currDiv = children.item(i);

						if(currDiv.id != null && currDiv.id.charAt(0) == 'f'){
						currDiv.childNodes.item(0).childNodes.item(0).value = j++;
																		 
						 }
						
					}
					
					fieldNumber = j;
						
				}		
/*
DateChooser 1.7
http://yellow5.us/projects/datechooser/
09.12.2006

Copyright (c) 2006 John Hansen

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial
portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
*/

var objPrototypes =
{
	aDay: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
	aShortDay: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
	aMonth: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
	aShortMonth: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
	aSuffix: ['th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st'],
	sTimezoneOffset: '',

	GetTimezoneOffset: function()
	{
		var objLocal = new Date();
		objLocal.setHours(0);
		objLocal.setMinutes(0);
		objLocal.setSeconds(0);
		objLocal.setMilliseconds(0);

		var objUTC = new Date();
		objUTC.setFullYear(objLocal.getUTCFullYear());
		objUTC.setMonth(objLocal.getUTCMonth());
		objUTC.setDate(objLocal.getUTCDate());
		objUTC.setHours(objLocal.getUTCHours());
		objUTC.setMinutes(objLocal.getUTCMinutes());
		objUTC.setSeconds(objLocal.getUTCSeconds());
		objUTC.setMilliseconds(objLocal.getUTCMilliseconds());

		this.sTimezoneOffset = ((objLocal.getTime() - objUTC.getTime()) / (1000 * 3600));
		var bNegative = (this.sTimezoneOffset < 0);
		objLocal = null;
		objUTC = null;

		this.sTimezoneOffset  = bNegative ? (this.sTimezoneOffset + '').substring(1) : this.sTimezoneOffset + '';
		this.sTimezoneOffset  = this.sTimezoneOffset.replace(/\.5/, (parseInt('$1', 10) * 60) + '');
		this.sTimezoneOffset += (this.sTimezoneOffset.substring(this.sTimezoneOffset.length - 3) != ':30') ? ':00' : '';
		this.sTimezoneOffset  = (this.sTimezoneOffset.substr(0, this.sTimezoneOffset.indexOf(':')).length == 1) ? '0' + this.sTimezoneOffset : this.sTimezoneOffset;
		this.sTimezoneOffset  = bNegative ? '-' + this.sTimezoneOffset : '+' + this.sTimezoneOffset;

		return true;
	},

	Array_push: function()
	{
		for (var nCount = 0; nCount < arguments.length; nCount++)
		{
			this[this.length] = arguments[nCount];
		}

		return this.length;
	},

	Date_PHPDate: function()
	{
		var sFormat = (arguments.length > 0) ? arguments[0] : '';

		var nYear = this.getFullYear();
		var sYear = nYear + '';

		var nMonth = this.getMonth();
		var sMonth = (nMonth + 1) + '';
		var sPaddedMonth = (sMonth.length == 1) ? '0' + sMonth : sMonth;

		var nDate = this.getDate();
		var sDate = nDate + '';
		var sPaddedDate = (sDate.length == 1) ? '0' + sDate : sDate;

		var nDay = this.getDay();
		var sDay = nDay + '';

		sFormat = sFormat.replace(/([cDdFjlMmNnrSUwYy])/g, 'y5-cal-regexp:$1');
		sFormat = sFormat.replace(/y5-cal-regexp:c/, sYear + '-' + sPaddedMonth + '-' + sPaddedDate + 'T00:00:00' + objPrototypes.sTimezoneOffset);
		sFormat = sFormat.replace(/y5-cal-regexp:D/, objPrototypes.aShortDay[nDay]);
		sFormat = sFormat.replace(/y5-cal-regexp:d/, sPaddedDate);
		sFormat = sFormat.replace(/y5-cal-regexp:F/, objPrototypes.aMonth[nMonth]);
		sFormat = sFormat.replace(/y5-cal-regexp:j/, nDate);
		sFormat = sFormat.replace(/y5-cal-regexp:l/, objPrototypes.aDay[nDay]);
		sFormat = sFormat.replace(/y5-cal-regexp:M/, objPrototypes.aShortMonth[nMonth]);
		sFormat = sFormat.replace(/y5-cal-regexp:m/, sPaddedMonth);
		sFormat = sFormat.replace(/y5-cal-regexp:N/, (nDay == 0) ? 7 : nDay);
		sFormat = sFormat.replace(/y5-cal-regexp:n/, sMonth);
		sFormat = sFormat.replace(/y5-cal-regexp:r/, objPrototypes.aShortDay[nDay] + ', ' + sPaddedDate + ' ' + objPrototypes.aShortMonth[nMonth] + ' ' + sYear + ' 00:00:00 ' + objPrototypes.sTimezoneOffset.replace(/:/, ''));
		sFormat = sFormat.replace(/y5-cal-regexp:S/, objPrototypes.aSuffix[nDate]);
		sFormat = sFormat.replace(/y5-cal-regexp:U/, parseInt((this.getTime() / 1000), 10));
		sFormat = sFormat.replace(/y5-cal-regexp:w/, nDay);
		sFormat = sFormat.replace(/y5-cal-regexp:Y/, sYear);
		sFormat = sFormat.replace(/y5-cal-regexp:y/, sYear.substring(2));

		return sFormat;
	}
};

objPrototypes.GetTimezoneOffset();
Date.prototype.getPHPDate = objPrototypes.Date_PHPDate;
if (typeof(Array.prototype.push) == 'undefined')
{
	Array.prototype.push = objPrototypes.Array_push;
}

function DateChooser()
{
	if (!document.getElementById
	|| !document.getElementsByTagName
	|| !arguments)
	{
		return null;
	}

	var ndFrame = null;
	/*@cc_on@*/
	/*@if(@_jscript_version < 6)
		if (document.getElementById('iframehack'))
		{
			ndFrame = document.getElementById('iframehack');
		}
		else
		{
			ndFrame = document.createElement('iframe');
			ndFrame.id = 'iframehack';
			ndFrame.src = 'about:blank';
			ndFrame.scrolling = 'no';
			ndFrame.frameBorder = '0';
			ndFrame.style.display = 'none';
			ndFrame.style.position = 'absolute';
			ndFrame.style.zIndex = '5000';
			ndFrame.style.padding = '0';
			ndFrame.style.border = '0';
			document.body.appendChild(ndFrame);
		}
	/*@end@*/

	var objUpdateFields = {};
	var objAllowedDays = {'0':true, '1':true, '2':true, '3':true, '4':true, '5':true, '6':true};
	var nXOffset = 0;
	var nYOffset = 0;
	var nTimeout = 0;
	var objTimeout = null;
	var fnUpdate = null;
	var objEarliestDate = null;
	var objLatestDate = null;

	var nDateChooserID = 0;
	while (document.getElementById('calendar' + nDateChooserID)) ++nDateChooserID;
	var sDateChooserID = 'calendar' + nDateChooserID;

	var objSelectedDate = null;

	var objStartDate = new Date();
	objStartDate.setHours(0);
	objStartDate.setMinutes(0);
	objStartDate.setSeconds(0);
	objStartDate.setMilliseconds(0);

	var objMonthYear = new Date(objStartDate);
	objMonthYear.setDate(1);

	var ndDateChooser = document.createElement('div');
	ndDateChooser.id = sDateChooserID;
	ndDateChooser.className = 'calendar';
	ndDateChooser.style.visibility = 'hidden';
	ndDateChooser.style.position = 'absolute';
	ndDateChooser.style.zIndex = '5001';
	ndDateChooser.style.top = '0px';
	ndDateChooser.style.left = '0px';
	document.getElementsByTagName('body')[0].appendChild(ndDateChooser);

	var AddClickEvents = function()
	{
		var aNavLinks = ndDateChooser.getElementsByTagName('thead')[0].getElementsByTagName('a');
		for (var nNavLink = 0; nNavLink < aNavLinks.length; ++nNavLink)
		{
			aNavLinks[nNavLink].onclick = function(e)
			{
				e = e || window.event;
				var ndClicked = e.target || e.srcElement;

				if (ndClicked.className == 'previousyear')
				{
					objMonthYear.setFullYear(objMonthYear.getFullYear() - 1);
					if (objEarliestDate && objEarliestDate.getTime() > objMonthYear.getTime())
					{
						objMonthYear.setFullYear(objEarliestDate.getFullYear());
						objMonthYear.setMonth(objEarliestDate.getMonth());
					}
				}
				else if (ndClicked.className == 'previousmonth')
				{
					objMonthYear.setMonth(objMonthYear.getMonth() - 1);
					if (objEarliestDate && objEarliestDate.getTime() > objMonthYear.getTime())
					{
						objMonthYear.setFullYear(objEarliestDate.getFullYear());
						objMonthYear.setMonth(objEarliestDate.getMonth());
					}
				}
				else if (ndClicked.className == 'currentdate')
				{
					objMonthYear.setFullYear(objStartDate.getFullYear());
					objMonthYear.setMonth(objStartDate.getMonth());
				}
				else if (ndClicked.className == 'nextmonth')
				{
					objMonthYear.setMonth(objMonthYear.getMonth() + 1);
					if (objLatestDate && objLatestDate.getTime() < objMonthYear.getTime())
					{
						objMonthYear.setFullYear(objLatestDate.getFullYear());
						objMonthYear.setMonth(objLatestDate.getMonth());
					}
				}
				else if (ndClicked.className == 'nextyear')
				{
					objMonthYear.setFullYear(objMonthYear.getFullYear() + 1);
					if (objLatestDate && objLatestDate.getTime() < objMonthYear.getTime())
					{
						objMonthYear.setFullYear(objLatestDate.getFullYear());
						objMonthYear.setMonth(objLatestDate.getMonth());
					}
				}

				RefreshDisplay();
				return false;
			}
		}

		var aDateLinks = ndDateChooser.getElementsByTagName('tbody')[0].getElementsByTagName('a');
		for (var nDateLink = 0; nDateLink < aDateLinks.length; ++nDateLink)
		{
			aDateLinks[nDateLink].onclick = function(e)
			{
				e = e || window.event;
				var ndClicked = e.target || e.srcElement;

				for (var nLink = 0; nLink < aDateLinks.length; ++nLink)
				{
					if (aDateLinks[nLink].className == 'selecteddate') aDateLinks[nLink].removeAttribute('class');
				}

				var objTempDate = new Date(objMonthYear);
				objTempDate.setDate(parseInt(ndClicked.innerHTML, 10));

				var nTime = objTempDate.getTime();
				var sWeekday = objTempDate.getPHPDate('w');
				objTempDate = null;

				if (objEarliestDate && objEarliestDate.getTime() > nTime) return false;
				if (objLatestDate && objLatestDate.getTime() < nTime) return false;
				if (!objAllowedDays[sWeekday]) return false;

				objMonthYear.setTime(nTime);
				objMonthYear.setDate(1);
				if (!objSelectedDate) objSelectedDate = new Date(nTime);
				objSelectedDate.setTime(nTime);
				ndClicked.className = 'selecteddate';

				if (ndFrame) ndFrame.style.display = 'none';
				ndDateChooser.style.visibility = 'hidden';

				if (objTimeout) clearTimeout(objTimeout);
				if (fnUpdate) fnUpdate(objSelectedDate);

				for (var sFieldName in objUpdateFields)
				{
					var ndField = document.getElementById(sFieldName);
					if (ndField) ndField.value = objSelectedDate.getPHPDate(objUpdateFields[sFieldName]);
				}
				return false;
			};
		}

		return true;
	};

	var RefreshDisplay = function()
	{
		var sClass = '';
		var objTempDate = new Date(objMonthYear);

		var objToday = new Date();
		objToday.setHours(0);
		objToday.setMinutes(0);
		objToday.setSeconds(0);
		objToday.setMilliseconds(0);

		var aTable = [];
		aTable.push('<table summary="DateChooser">');
		aTable.push('<thead>');
		aTable.push('<tr>');
		aTable.push('<th><a class="previousyear" href="#" title="Previous Year">&laquo;</a></th>');
		aTable.push('<th><a class="previousmonth" href="#" title="Previous Month">&lt;</a></th>');
		aTable.push('<th colspan="3"><a class="currentdate" href="#" title="Current Date">' + objMonthYear.getPHPDate("M Y") + '</a></th>');
		aTable.push('<th><a class="nextmonth" href="#" title="Next Month">&gt;</a></th>');
		aTable.push('<th><a class="nextyear" href="#" title="Next Year">&raquo;</a></th>');
		aTable.push('</tr>');
		aTable.push('<tr>');
		aTable.push('<td>S</td>');
		aTable.push('<td>M</td>');
		aTable.push('<td>T</td>');
		aTable.push('<td>W</td>');
		aTable.push('<td>T</td>');
		aTable.push('<td>F</td>');
		aTable.push('<td>S</td>');
		aTable.push('</tr>');
		aTable.push('</thead>');
		aTable.push('<tbody>');

		while (objTempDate.getMonth() == objMonthYear.getMonth())
		{
			aTable.push('<tr>');
			for (var nWeek = 0; nWeek < 7; ++nWeek)
			{
				if ((objTempDate.getDay() == nWeek) && (objTempDate.getMonth() == objMonthYear.getMonth()))
				{
					sClass  = (objSelectedDate && (objTempDate.getTime() == objSelectedDate.getTime())) ? 'selectedday' : '';
					sClass += (objTempDate.getTime() == objToday.getTime()) ? ' today' : '';
					sClass  = ((sClass.length > 0) && (sClass[1] == ' ')) ? sClass.substr(1, sClass.length - 1) : sClass;
					sClass  = (sClass.length > 0) ? ' class="' + sClass + '"' : '';
					aTable.push('<td><a href="#"' + sClass + '>' + objTempDate.getDate() + '</a></td>');
					objTempDate.setDate(objTempDate.getDate() + 1);
				}
				else
				{
					aTable.push('<td></td>');
				}
			}
			aTable.push('</tr>');
		}
		aTable.push('</tbody>');
		aTable.push('</table>');
		ndDateChooser.innerHTML = aTable.join('');

		if (ndFrame)
		{
			ndFrame.style.display = 'block';
			ndFrame.style.top = ndDateChooser.style.top;
			ndFrame.style.left = ndDateChooser.style.left;
			ndFrame.style.width = (ndDateChooser.getElementsByTagName('table')[0].clientWidth + 2) + 'px';
			ndFrame.style.height = (ndDateChooser.getElementsByTagName('table')[0].clientHeight + 4) + 'px';
		}

		objTempDate = null;
		objToday = null;

		AddClickEvents();
		return true;
	};

	var DisplayDateChooser = function()
	{
		var sPositionX = (arguments.length > 0) ? arguments[0] : 'auto';
		var sPositionY = (arguments.length > 1) ? arguments[1] : 'auto';

		var ndStyle = ndDateChooser.style;
		ndStyle.top = sPositionY + '';
		ndStyle.left = sPositionX + '';

		ndDateChooser.style.visibility = 'visible';
		if (objTimeout) clearTimeout(objTimeout);

		RefreshDisplay();
		return true;
	};

	this.displayPosition = function()
	{
		var sPositionX = (arguments.length > 0) ? arguments[0] : 'auto';
		var sPositionY = (arguments.length > 1) ? arguments[1] : 'auto';

		return DisplayDateChooser(sPositionX, sPositionY);
	};

	this.display = function(e)
	{
		e = e || window.event;

		var sPositionX = 'auto';
		var sPositionY = 'auto';
		if (e)
		{
			if (e.pageX || e.pageY)
			{
				sPositionX = e.pageX + nXOffset + 'px';
				sPositionY = e.pageY + nYOffset + 'px';
			}
			else if (e.clientX || e.clientY)
			{
				sPositionX = e.clientX + document.body.scrollLeft + nXOffset + 'px';
				sPositionY = e.clientY + document.body.scrollTop + nYOffset + 'px';
			}

			if (e.preventDefault) e.preventDefault();
			if (e.stopPropagation) e.stopPropagation();
			e.returnValue = false;
			e.cancelBubble = true;
		}

		DisplayDateChooser(sPositionX, sPositionY);
		return false;
	};

	this.setXOffset = function()
	{
		nXOffset = ((arguments.length > 0) && (typeof(arguments[0]) == 'number')) ? parseInt(arguments[0], 10) : nXOffset;
		return true;
	};

	this.setYOffset = function()
	{
		nYOffset = ((arguments.length > 0) && (typeof(arguments[0]) == 'number')) ? parseInt(arguments[0], 10) : nYOffset;
		return true;
	};

	this.setCloseTime = function()
	{
		nTimeout = ((arguments.length > 0) && (typeof(arguments[0]) == 'number') && (arguments[0] >= 0)) ? arguments[0] : nTimeout;
		return true;
	};

	this.setUpdateFunction = function()
	{
		if ((arguments.length > 0) && (typeof(arguments[0]) == 'function')) fnUpdate = arguments[0];
		return true;
	};

	this.setUpdateField = function()
	{
		objUpdateFields = {};
		if ((typeof(arguments[0]) == 'string') && (typeof(arguments[1]) == 'string') && document.getElementById(arguments[0]))
		{
			objUpdateFields[arguments[0]] = arguments[1];
		}
		else if ((typeof(arguments[0]) == 'object') && (typeof(arguments[1]) == 'object'))
		{
			for (var nField = 0; nField < arguments[0].length; ++nField)
			{
				if (nField >= arguments[1].length) break;
				objUpdateFields[arguments[0][nField]] = arguments[1][nField];
			}
		}
		else if (typeof(arguments[0]) == 'object')
		{
			objUpdateFields = arguments[0];
		}

		return true;
	};

	this.setLink = function()
	{
		var sLinkText = ((arguments.length > 0) && (typeof(arguments[0]) == 'string')) ? arguments[0] : 'Choose a date';
		var ndNode = ((arguments.length > 1) && (typeof(arguments[1]) == 'string')) ? document.getElementById(arguments[1]) : null;
		var bPlaceRight = ((arguments.length > 2) && !arguments[2]) ? false : true;
		var sTitleText = ((arguments.length > 3) && (typeof(arguments[3]) == 'string')) ? arguments[3] : 'Click to choose a date';

		if (!ndNode) return false;

		var ndAnchor = document.createElement('a');
		ndAnchor.className = 'calendarlink';
		ndAnchor.href = '#';

		if (sTitleText.length > 0) ndAnchor.setAttribute('title', sTitleText);
		ndAnchor.appendChild(document.createTextNode(sLinkText));

		if (bPlaceRight)
		{
			if (ndNode.nextSibling)
			{
				ndNode.parentNode.insertBefore(ndAnchor, ndNode.nextSibling);
			}
			else
			{
				ndNode.parentNode.appendChild(ndAnchor);
			}
		}
		else
		{
			ndNode.parentNode.insertBefore(ndAnchor, ndNode);
		}

		ndAnchor.onclick = this.display;
		return true;
	};

	this.setIcon = function()
	{
		var sIconFile = ((arguments.length > 0) && (typeof(arguments[0]) == 'string')) ? arguments[0] : false;
		var ndNode = ((arguments.length > 1) && (typeof(arguments[1]) == 'string')) ? document.getElementById(arguments[1]) : null;
		var bPlaceRight = ((arguments.length > 2) && !arguments[2]) ? false : true;
		var sTitleText = ((arguments.length > 3) && (typeof(arguments[3]) == 'string')) ? arguments[3] : 'Click to choose a date';

		if (!ndNode || !sIconFile) return false;

		var ndIcon = document.createElement('img');
		ndIcon.className = 'calendaricon';
		ndIcon.src = sIconFile;
		ndIcon.setAttribute('alt', 'DateChooser Icon ' + (nDateChooserID + 1));
		if (sTitleText.length > 0) ndIcon.setAttribute('title', sTitleText);

		if (bPlaceRight)
		{
			if (ndNode.nextSibling)
			{
				ndNode.parentNode.insertBefore(ndIcon, ndNode.nextSibling);
			}
			else
			{
				ndNode.parentNode.appendChild(ndIcon);
			}
		}
		else
		{
			ndNode.parentNode.insertBefore(ndIcon, ndNode);
		}

		ndIcon.onclick = this.display;
		return true;
	};

	this.setStartDate = function()
	{
		if (!arguments.length || !(typeof(arguments[0]) == 'object') || !arguments[0].getTime) return false;

		objStartDate.setTime(arguments[0].getTime());
		objStartDate.setHours(0);
		objStartDate.setMinutes(0);
		objStartDate.setSeconds(0);
		objStartDate.setMilliseconds(0);

		if (objEarliestDate && objEarliestDate.getTime() > objStartDate.getTime())
		{
			objStartDate.setTime(objEarliestDate.getTime());
		}
		else if (objLatestDate && objLatestDate.getTime() < objStartDate.getTime())
		{
			objStartDate.setTime(objLatestDate.getTime());
		}

		objMonthYear.setMonth(objStartDate.getMonth());
		objMonthYear.setFullYear(objStartDate.getFullYear());

		if (!objSelectedDate) objSelectedDate = new Date(objStartDate);
		objSelectedDate.setTime(objStartDate);

		return true;
	};

	this.setEarliestDate = function()
	{
		if (!arguments.length || !(typeof(arguments[0]) == 'object') || !arguments[0].getTime) return false;

		objEarliestDate = arguments[0];
		objEarliestDate.setHours(0);
		objEarliestDate.setMinutes(0);
		objEarliestDate.setSeconds(0);
		objEarliestDate.setMilliseconds(0);

		if (objEarliestDate.getTime() > objStartDate.getTime())
		{
			objStartDate.setTime(objEarliestDate.getTime());
			objMonthYear.setMonth(objEarliestDate.getMonth());
			objMonthYear.setFullYear(objEarliestDate.getFullYear());
		}

		return true;
	};

	this.setLatestDate = function()
	{
		if (!arguments.length || !(typeof(arguments[0]) == 'object') || !arguments[0].getTime) return false;

		objLatestDate = arguments[0];
		objLatestDate.setHours(0);
		objLatestDate.setMinutes(0);
		objLatestDate.setSeconds(0);
		objLatestDate.setMilliseconds(0);

		if (objLatestDate.getTime() < objStartDate.getTime())
		{
			objStartDate.setTime(objLatestDate.getTime());
			objMonthYear.setMonth(objLatestDate.getMonth());
			objMonthYear.setFullYear(objLatestDate.getFullYear());
		}

		return true;
	};

	this.setAllowedDays = function()
	{
		if (!arguments.length || !(typeof(arguments[0]) == 'object')) return false;

		for (nCount = 0; nCount < 7; ++nCount)
		{
			objAllowedDays[nCount] = false;
		}

		for (nCount = 0; nCount < arguments[0].length; ++nCount)
		{
			objAllowedDays[arguments[0][nCount] + ''] = true;
		}

		return true;
	};

	this.getSelectedDate = function()
	{
		return objSelectedDate;
	};

	var clickWindow = function(e)
	{
		e = e || window.event;
		var ndTarget = e.target || e.srcElement;

		while (ndTarget)
		{
			if (ndTarget.className == 'calendar') return true;
			ndTarget = ndTarget.parentNode;
		}

		for (var nCount = 0; nCount <= nDateChooserID; ++nCount)
		{
			if (ndFrame) ndFrame.style.display = 'none';
			document.getElementById('calendar' + nCount).style.visibility = 'hidden';
		}

		return true;
	};

	var mouseoverDateChooser = function()
	{
		if (objTimeout) clearTimeout(objTimeout);
		return true;
	};

	var mouseoutDateChooser = function()
	{
		if (nTimeout > 0) objTimeout = setTimeout('document.getElementById("' + sDateChooserID + '").style.visibility = "hidden"; if (document.getElementById("iframehack")) document.getElementById("iframehack").style.display = "none";', nTimeout);
		return true;
	};

	// This is the addEvent script written by Dean Edwards (dean.edwards.name)
	// It has been edited for better readability.

	var addEvent = function(ndElement, sType, fnHandler)
	{
		if (!fnHandler.$$nEventID) fnHandler.$$nEventID = addEvent.nEventID++;
		if (typeof(ndElement.aEvents) == 'undefined') ndElement.aEvents = {};

		var aHandlers = ndElement.aEvents[sType];
		if (!aHandlers)
		{
			aHandlers = ndElement.aEvents[sType] = {};
			if (ndElement['on' + sType]) aHandlers[0] = ndElement['on' + sType];
		}

		aHandlers[fnHandler.$$nEventID] = fnHandler;
		ndElement['on' + sType] = handleEvent;
	};

	var handleEvent = function(e)
	{
		var bReturn = true;
		e = e || window.event;
		var aHandlers = this.aEvents[e.type];
		for (var nIndex in aHandlers)
		{
			this.$$handleEvent = aHandlers[nIndex];
			if (this.$$handleEvent(e) === false) bReturn = false;
		}
		return bReturn;
	}

	addEvent.nEventID = 1;

	addEvent(ndDateChooser, 'mouseover', mouseoverDateChooser);
	addEvent(ndDateChooser, 'mouseout', mouseoutDateChooser);
	addEvent(document, 'mousedown', clickWindow);

	return true;
}

/* zebra tables */

  // this function is needed to work around 
  // a bug in IE related to element attributes
  function hasClass(obj) {
     var result = false;
     if (obj.getAttributeNode("class") != null) {
         result = obj.getAttributeNode("class").value;
     }
     return result;
  }   

 function stripe(id) {

    // the flag we'll use to keep track of 
    // whether the current row is odd or even
    var even = false;
  
    // if arguments are provided to specify the colours
    // of the even & odd rows, then use the them;
    // otherwise use the following defaults:
    var evenColor = arguments[1] ? arguments[1] : "#fff";
    var oddColor = arguments[2] ? arguments[2] : "#eee";
  
    // obtain a reference to the desired table
    // if no such table exists, abort
    var table = document.getElementById(id);
    if (! table) { return; }
    
    // by definition, tables can have more than one tbody
    // element, so we'll have to get the list of child
    // &lt;tbody&gt;s 
    var tbodies = table.getElementsByTagName("tbody");

    // and iterate through them...
    for (var h = 0; h < tbodies.length; h++) {
    
     // find all the &lt;tr&gt; elements... 
      var trs = tbodies[h].getElementsByTagName("tr");
      
      // ... and iterate through them
      for (var i = 0; i < trs.length; i++) {

        // avoid rows that have a class attribute
        // or backgroundColor style
        if (! hasClass(trs[i]) &&
            ! trs[i].style.backgroundColor) {
 		  
          // get all the cells in this row...
          var tds = trs[i].getElementsByTagName("td");
        
          // and iterate through them...
          for (var j = 0; j < tds.length; j++) {
        
            var mytd = tds[j];

            // avoid cells that have a class attribute
            // or backgroundColor style
            if (! hasClass(mytd) &&
                ! mytd.style.backgroundColor) {
        
              mytd.style.backgroundColor =
                even ? evenColor : oddColor;
            
            }
          }
        }
        // flip from odd to even, or vice-versa
        even =  ! even;
      }
    }
  }
  
function displayDate() {
/*
 Java Script Calendar is a small script for web pages which displays current Day of the week, Month, Date and Year along with Holidays notification. Just like this working demo below. It will work with Netscape 2++, Microsoft 3++ and Opera 3++ web browsers.
Tuesday, November 24, 1998    
About 70 holidays from all over the world are displayed by Calendar (if you know other ones, let me know, I will add them). It even calculates Easter Sunday date! To see how it works change the date on your computer to January, 1,
for example and re-load the page.
Installation is very simple. Just copy the script below, everything between SCRIPT and SCRIPT tags (including tags themselves) and paste in the place you want it to appear on your page. You can customize the way
 it looks by changing document.write function arguments just after month names definitions. Java Script Calendar is free without any limitations. Copyright © Eugene Vassiltsov. But please, let me know if you will use it.
*/
 calendar = new Date();
 day = calendar.getDay();
 month = calendar.getMonth();
 date = calendar.getDate();
 year = calendar.getYear();
 if (year < 1000)
 year+=1900
 cent = parseInt(year/100);
 g = year % 19;
 k = parseInt((cent - 17)/25);
 i = (cent - parseInt(cent/4) - parseInt((cent - k)/3) + 19*g + 15) % 30;
 i = i - parseInt(i/28)*(1 - parseInt(i/28)*parseInt(29/(i+1))*parseInt((21-g)/11));
 j = (year + parseInt(year/4) + i + 2 - cent + parseInt(cent/4)) % 7;
 l = i - j;
 emonth = 3 + parseInt((l + 40)/44);
 edate = l + 28 - 31*parseInt((emonth/4));
 emonth--;
 var dayname = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
 var monthname = 
 new Array ("January","February","March","April","May","June","July","August","September","October","November","December" );
 var strOutput;
 strOutput = dayname[day] + ", ";
 strOutput += monthname[month] + " ";
 if (date< 10) strOutput += "0" + date + ", ";
         else strOutput += date + ", ";
strOutput += year;
return strOutput;
}  

function makeArray() {
  var args = makeArray.arguments;
  for (var i = 0; i < args.length; i++) {
    this[i] = args[i];
  }
  this.length = args.length;
}

function fixDate(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime(date.getTime() - skew);
}

function getString(date) {
  var months = new makeArray("January", "February",
"March", "April", "May", "June", "July", "August",
"September", "October", "November", "December");
  var RetVal = date.getDate() + " " + months[date.getMonth()] 
  	+ " " + ((date.getYear() < 100) ? "19" : "") + date.getYear();
  return RetVal;
}