	function emptyList(master) {

		 while (master.options.length) master.options[0] = null;

	}


	function fillList(master, arr, selectedOption) {

		 for ( i = 0; i < arr[0].length; i++ ) {

			   option = new Option( arr[0][i], arr[1][i] );

			   master.options[master.length] = option;

			   if( arr[1][i] == selectedOption)

			   {
				   master.selectedIndex=i;
			   }

		 }

	}

	
	function changeList2(master,slave,txtlang,selectedOption) {

		if(txtlang == "e"){
			var dateslists2 = new Array();
			dateslists2['months'] = new Array();
			dateslists2['months'][0] = new Array('Jan','Feb','March','April','May','June','July','August','Sept','Oct','Nov','Dec');
			dateslists2['months'][1] = new Array('01','02','03','04','05','06','07','08','09','10','11','12');
		} else {
			var dateslists2 = new Array();
			dateslists2['months'] = new Array();
			dateslists2['months'][0] = new Array('Jan','Fev','Mar','Avr','Mai','Juin','Juil','Août','Sep','Oct','Nov','Dec');
			dateslists2['months'][1] = new Array('01','02','03','04','05','06','07','08','09','10','11','12');	
		}
		
		now = new Date;
		currentMonth = now.getMonth();
		currentMonth = currentMonth +1;
	
		 list = dateslists2[master];

		 emptyList( slave );

		 fillList( slave, list, currentMonth );

	}
	
	
	function changeList(master,slave,txtlang,selectedOption) {
		
		 if(txtlang == "e") 
		 {
				var dateslists = new Array(); 
				
				dateslists['years'] = new Array();
				dateslists['years'][0] = new Array('2000','2001','2002','2003','2004','2005');
				dateslists['years'][1] = new Array('2000','2001','2002','2003','2004','2005');
				
				dateslists['months'] = new Array();
				dateslists['months'][0] = new Array('Jan','Feb','March','April','May','June','July','August','Sept','Oct','Nov','Dec');
				dateslists['months'][1] = new Array('01','02','03','04','05','06','07','08','09','10','11','12');
				
				dateslists['01'] = new Array();
				dateslists['01'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['01'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['02'] = new Array();
				dateslists['02'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28');
				dateslists['02'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28');
				
				dateslists['03'] = new Array();
				dateslists['03'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['03'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['04'] = new Array();
				dateslists['04'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				dateslists['04'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				
				dateslists['05'] = new Array();
				dateslists['05'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['05'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['06'] = new Array();
				dateslists['06'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				dateslists['06'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				
				dateslists['07'] = new Array();
				dateslists['07'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['07'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['08'] = new Array();
				dateslists['08'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['08'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['09'] = new Array();
				dateslists['09'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				dateslists['09'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				
				dateslists['10'] = new Array();
				dateslists['10'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['10'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['11'] = new Array();
				dateslists['11'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				dateslists['11'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				
				dateslists['12'] = new Array();
				dateslists['12'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['12'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
							
		 } 
		 else 
		 {
			 
				var dateslists = new Array(); 
				
				dateslists['months'] = new Array();
				dateslists['months'][0] = new Array('Jan','Fev','Mar','Avr','Mai','Juin','Juil','Août','Sep','Oct','Nov','Dec');
				dateslists['months'][1] = new Array('01','02','03','04','05','06','07','08','09','10','11','12');
				
				dateslists['01'] = new Array();
				dateslists['01'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['01'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['02'] = new Array();
				dateslists['02'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28');
				dateslists['02'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28');
				
				dateslists['03'] = new Array();
				dateslists['03'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['03'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['04'] = new Array();
				dateslists['04'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				dateslists['04'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				
				dateslists['05'] = new Array();
				dateslists['05'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['05'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['06'] = new Array();
				dateslists['06'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				dateslists['06'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				
				dateslists['07'] = new Array();
				dateslists['07'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['07'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['08'] = new Array();
				dateslists['08'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['08'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['09'] = new Array();
				dateslists['09'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','30');
				dateslists['09'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','30');
				
				dateslists['10'] = new Array();
				dateslists['10'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['10'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				
				dateslists['11'] = new Array();
				dateslists['11'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				dateslists['11'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30');
				
				dateslists['12'] = new Array();
				dateslists['12'][0] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
				dateslists['12'][1] = new Array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31');
							
		 }
		 
		 list = dateslists[master.options[master.selectedIndex].value];
		 
		 emptyList( slave );
		
		 fillList( slave, list, selectedOption );

	}

function lastDay(form1) { 
	var TheOptions = document.forms['form1'].endDay.options.length - 1;
	document.forms['form1'].endDay.selectedIndex = TheOptions;
}

function curMonthSel(form1) { 
	now = new Date;
	var currentMonth = now.getMonth();
		
	document.forms['form1'].endMonth.selectedIndex = currentMonth;
}

function checkTextSubmit(form1,txtlang) {
	
	var msgString = "";

	var emsgString = "The chart number entered may no longer be valid or may not exist, please verify the chart number and enter it again. To identify replaced or withdrawn charts please consult Section 1 of the Monthly Notices to Mariners current edition and archives.\n\nPlease feel free to visit the Canadian Hydrographic Services (CHS) site which also provides the list of replaced and withdrawn charts by clicking on the link found on the \"Search Notmar\" Page.";
	
	var fmsgString = "Le numéro de la carte que vous avez entré pourrait ne plus être valide ou pourrait ne pas exister. Veuillez vérifier le numéro de la carte et l’entrer de nouveau.  Pour repérerles cartes qui ont été retirées ou remplacées, consultez la partie 1 de l’édition mensuelle récente des Avis aux navigateurs ou les archives.\n\nVous pouvez visiter le site Web du Service hydrographique du Canada (SHC) qui fournit aussi la liste des cartes retirées ou remplacées en cliquant sur le lien \"Recherche dans Notmar\".";
	
	if (txtlang == "e")
	{
		msgString = emsgString;
	} else {
		msgString = fmsgString;	
	}
	
	var pattern=new RegExp("[0-9]{4}");

	//check for 4 digit product code from select control if entry is not default of nil from select control
	var productcheck = document.forms['form1'].product.options[document.forms['form1'].product.selectedIndex].value;
	if (productcheck != "nil")
	{
		var producttst = pattern.exec(productcheck);
	
		if (producttst == null)
		{
			alert (msgString);
				 return false;	
		} else {
			return true;
		}
	}
	
	//check for 4 digit product code
	var charttst = pattern.exec(document.forms['form1'].chart.value);
	
	if (charttst == null)
	{
		alert (msgString);
			 return false;	
	}

	//check that 4 digit product code entered is valid product
	var nochart=0;
	
	for (var i=0; i < document.forms['form1'].product.length; i++)
	{						
		productlisttst = document.forms['form1'].product.options[i].value;	
			
		if (productlisttst == charttst) 
		{
			 nochart = 1; 
		}
	}

	if (nochart == 0) {			
		 alert (msgString);
		 return false;	
	} else {
		return true ;
	}
}