/***********************************************
 * forms-library                               *
 *   - check for valid answers                 *
 *   - display a date chooser                  *
 *   - display a time chooser                  *
 ***********************************************/

var stTitle = "Form Help";
var stHelp  = "The following fields were not filled in correctly:";
var stClose = "Close";
var stCalN  = "Calendar";
var stTime  = "Time of Day";
var stDay   = "Day";
var stNight = "Night";

var stFieldEmpty   = "The field '%field%' is empty.";
var stFieldChecked = "The field '%field%' has to be checked.";
var stFieldLen     = "Too many characters in '%field%' (max. %maxlen%).";
var stFieldRegex   = "The field '%field%' only accepts %explain%.";
var stFieldNum     = "The field '%field%' only accepts numbers.";
var stFieldNumMin  = "The field '%field%' only accepts numbers greater than or equal %min%.";
var stFieldNumMax  = "The field '%field%' only accepts numbers less than or equal %max%.";
var stFieldNumInt  = "The field '%field%' only accepts integer numbers.";
var stFieldDat     = "The field '%field%' only accepts valid dates.";
var stFieldDatMin  = "The date in the field '%field%' is before %min%.";
var stFieldDatMax  = "The date in the field '%field%' is after %max%.";

var monthSLC = new Array(
		'jan','feb','mar','apr','may','jun',
		'jul','aug','sep','oct','nov','dec'
);
var monthS = new Array(
		"Jan","Feb","Mar","Apr","May","Jun",
		"Jul","Aug","Sep","Oct","Nov","Dec"
);
var monthName = new Array(
		"January","February","March","April","May","June",
		"July","August","September","October","November","December"
);
var daysS = new Array(
		"Mo","Tu","We","Th","Fr","Sa","Su"
);

// main function to test for valid entries in form fields
// 1st argument is the form to be checked
// 2nd argument is the list of checks to be run on the form
function testForm( form, list ) {
	var errors = '', tests, test, args, tmp, tVal;

	for( i = 0; i < list.length; i++ ) {
		if( form.elements[list[i].elmt].length > 1 ) {
			// radio buttons
			if( list[i].noEmpty ) {
				tmp = testRadioEmpty( form.elements[list[i].elmt], list[i].name );
				if( tmp ) errors += tmp;
			}
		} else {
			// text, password, textarea
			if( list[i].noEmpty ) {
			    tmp = testStringEmpty( form.elements[list[i].elmt], list[i].name );
				if( tmp ) errors += tmp;
			}

			if( list[i].checked ) {
			    tmp = testChecked( form.elements[list[i].elmt], list[i].name );
				if( tmp ) errors += tmp;
			}

			if( form.elements[list[i].elmt].value.length ) {
				if( list[i].len ) {
					tmp = testStringLength( form.elements[list[i].elmt], list[i].name, list[i].len );
					if( tmp ) errors += tmp;
				}

				if( list[i].regEx ) {
					tmp = testStringRegEx( form.elements[list[i].elmt], list[i].name, list[i].regEx, list[i].regExExplain ? list[i].regExExplain : list[i].regEx );
					if( tmp ) errors += tmp;
				}

				if( list[i].num ) {
					tVal = convNumber( form.elements[list[i].elmt] );

					tmp = testNumeric( tVal, list[i].name, tVal );
					if( tmp ) errors += tmp;

					if( !tmp && list[i].numInt ) {
						tmp = testNumericInt( tVal, list[i].name );
						if( tmp ) errors += tmp;
					}

					if( !( isNaN( list[i].numMin ) || tmp ) ) {
						tmp = testNumericMin( tVal, list[i].name, list[i].numMin );
						if( tmp ) errors += tmp;
					}
					if( !( isNaN( list[i].numMax ) || tmp ) ) {
						tmp = testNumericMax( tVal, list[i].name, list[i].numMax );
						if( tmp ) errors += tmp;
					}
				}

				if( list[i].date ) {
					tVal = convDate( form.elements[list[i].elmt] );

					tmp = testDate( tVal, list[i].name, tVal );
					if( tmp ) errors += tmp;

					if( list[i].dateMin && !tmp ) {
						tmp = testDateMin( tVal, list[i].name, list[i].dateMin );
						if( tmp ) errors += tmp;
					}
					if( list[i].dateMax && !tmp ) {
						tmp = testDateMax( tVal, list[i].name, list[i].dateMax );
						if( tmp ) errors += tmp;
					}
				}
			}
		}
	}
	
	if( errors ) {
		win = window.open("", "", "width=400,height=400,scrollbars=yes,resizable=yes");
		with( win.document ) {
			open();
			writeln( "<HEAD>\n"
				+"<TITLE>"+stTitle+"</TITLE>\n"
				+"<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"css/styles.css\">\n"
				+"</HEAD>\n"
				+"<BODY OnBlur='window.close();'>\n"
				+"<TABLE BORDER=0 CELLPADDING=2 CELLSPACING=2 WIDTH=\"360\">\n"
				+"<TR><TD CLASS=\"h1\" COLSPAN=\"3\"><TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=\"100%\">\n"
				+"<TR><TD CLASS=\"h1\" VALIGN=\"bottom\"><span class=\"h1\">"+stTitle+"</span></TD>\n"
				+"<TD CLASS=\"h1\" VALIGN=\"bottom\" ALIGN=\"right\"><span class=\"h2\">&nbsp;</span></TD></TR>\n"
				+"</TABLE></TD></TR>\n"
				+"<TR><TD CLASS=\"form\">&nbsp;</TD>\n"
				+"<TD CLASS=\"form\">"+stHelp+":\n"
				+"<UL>\n" );
			writeln( errors );
			writeln( "</UL></TD>"
				+"<TD CLASS=\"form\">&nbsp;</TD></TR>\n"
				+"<TR><TD CLASS=\"form\" COLSPAN=\"3\" ALIGN=\"center\"><INPUT type=\"button\" value=\""+stClose+"\" OnClick='window.close();'>"
				+"</TD></TR></TABLE>\n"
				+"</BODY>\n"
				+"</HTML>" );
			close();
		}
		win.focus();
		return false;
	} else {
		return true;
	}
}		

function testRadioEmpty( elmt, name ) {
	for( var i = 0; i < elmt.length; i++ ) {
		if( elmt[i].checked ) return false;
	}
	return "<LI>"+stFieldEmpty.replace( "%field%", name )+"</LI>";
}

function testStringEmpty( elmt, name ) {
	if( elmt.value.length > 0 ) {
		return false;
	} else {
		return "<LI>"+stFieldEmpty.replace( "%field%", name )+"</LI>";
	}
}

function testChecked( elmt, name ) {
	if( elmt.checked ) {
		return false;
	} else {
		return "<LI>"+stFieldChecked.replace( "%field%", name )+"</LI>";
	}
}

function testStringLength( elmt, name, maxLen ) {
	if( elmt.value.length > maxLen ) {
		return "<LI>"+stFieldLen.replace( "%field%", name ).replace( "%maxlen%", maxLen )+"</LI>";
	} else {
		return false;
	}
}

function testStringRegEx( elmt, name, regEx, regExExplain ) {
	if( regEx.test( elmt.value )) {
		return false;
	} else {
		return "<LI>"+stFieldRegex.replace( "%field%", name ).replace( "%explain%", regExExplain )+"</LI>";
	}
}

function convNumber( elmt ) {
	var t='', test='', test2='', i=0;
	
	for( i = 0; i < elmt.value.length; i++ ) {
		t = elmt.value.charAt(i);
		if( t == ' ' ) {
		} else if( t == '.' ) {
			test += '.';
		} else if( t == ',' ) {
			test2 += '.';
		} else {
			test += t;
			test2 += t;
		}
	}

	if( elmt.value.indexOf(',') >= 0 ) {
		if( elmt.value.indexOf('.') <= elmt.value.indexOf('.') ) {
			t = test2;
			test = test2;
			test2 = t;
		}
	} else {
		test2 = NaN;
	}
	
	if( isNaN( test ) ) {
		if( isNaN( test2 ) ) {
			return NaN;
		} else {
			elmt.value = test2;
			return parseFloat( test2 );
		}
	} else {
		elmt.value = test;
		return parseFloat( test );
	}
}

function testNumeric( tNum, name, tNum ) {
	if( isNaN( tNum ) ) {
		return "<LI>"+stFieldNum.replace( "%field%", name )+"</LI>";
	} else {
		return false;
	}
}

function testNumericMin( tNum, name, min ) {
	if( tNum < min ) {
		return "<LI>"+stFieldNumMin.replace( "%field%", name ).replace( "%min%", min )+"</LI>";
	} else {
		return false;
	}
}

function testNumericMax( tNum, name, max ) {
	if( parseFloat( tNum ) > max ) {
		return "<LI>"+stFieldNumMax.replace( "%field%", name ).replace( "%max%", max )+"</LI>";
	} else {
		return false;
	}
}

function testNumericInt( tNum, name ) {
	if( parseFloat( tNum ) !=  parseInt( tNum ) ) {
		return "<LI>"+stFieldNumInt.replace( "%field%", name )+"</LI>";
	} else {
		return false;
	}
}

function convDate( elmt ) {
	var f=Array('','',''), i=0, j=0, t='', fx=false, mpos=-1,
		dd=0, mm=0, yy=0, ok=false, tmp=false;

	for( i = 0; i < elmt.value.length; i++ ) {
		t = elmt.value.charAt( i );
		if( t == "/" || t == "-" || t == "," || t == "." || t == " " ) {
			if( fx ) {
				fx = false;
				j++;
				if( j > 2 ) break;
			}
		} else {
			fx = true;
			f[j] += t;
		}
	}
	
	if( j == 2 ) {
		for( i = 0; i < 3; i++ ) {
			if( isNaN( f[i] ) ) {
				switch( f[i].substr( 0, 3 ).toLowerCase() ) {
					case 'jan':
					case monthSLC[0]:
						f[i] = 1;
						break;
					case 'feb':
					case monthSLC[1]:
						f[i] = 2;
						break;
					case 'mar':
					case monthSLC[2]:
						f[i] = 3;
						break;
					case 'apr':
					case monthSLC[3]:
						f[i] = 4;
						break;
					case 'may':
					case monthSLC[4]:
						f[i] = 5;
						break;
					case 'jun':
					case monthSLC[5]:
						f[i] = 6;
						break;
					case 'jul':
					case monthSLC[6]:
						f[i] = 7;
						break;
					case 'aug':
					case monthSLC[7]:
						f[i] = 8;
						break;
					case 'sep':
					case monthSLC[8]:
						f[i] = 9;
						break;
					case 'oct':
					case monthSLC[9]:
						f[i] = 10;
						break;
					case 'nov':
					case monthSLC[10]:
						f[i] = 11;
						break;
					case 'dec':
					case monthSLC[11]:
						f[i] = 12;
						break;
					default:
						f[i] = 0;
				}
				mpos = i;
			} else {
				while( f[i].substr( 0, 1 ) == "0" ) f[i] = f[i].substr( 1, f[i].length - 1 );
				f[i] = parseInt( f[i] );
			}
		}
	
		if( 0 < f[0] && f[0] < 32 && 0 < f[1] && f[1] < 13 && ( mpos == -1 || mpos == 1 ) ) {
			dd = f[0];
			mm = f[1]-1;
			yy = f[2];
			ok = true;
		} else if( 0 < f[0] && f[0] < 13 && 0 < f[1] && f[1] < 32 && ( mpos == -1 || mpos == 0 ) ) {
			dd = f[0];
			mm = f[1]-1;
			yy = f[2];
			ok = true;
		} else if( 0 < f[1] && f[1] < 13 && 0 < f[2] && f[2] < 32 && ( mpos == -1 || mpos == 1 ) ) {
			dd = f[2];
			mm = f[1]-1;
			yy = f[0];
			ok = true;
		} else if( 0 < f[1] && f[1] < 32 &&  0 < f[2] && f[2] < 13 &&( mpos == -1 || mpos == 2 ) ) {
			dd = f[2];
			mm = f[1]-1;
			yy = f[0];
			ok = true;
		}
		
		if( yy < 30 ) yy += 2000
		else if( yy < 100 ) yy += 1900
		else if( yy < 1800 ) ok = false
		else if( yy > 2200 ) ok = false;
		
		if( ok ) {
			tmp = new Date( yy, mm, dd );
			ok = tmp.getFullYear() == yy && tmp.getMonth() == mm && tmp.getDate() == dd;
		}
	}
	
	if( ok ) {
		elmt.value = ( dd < 10 ? '0' : '' ) + dd
			+ ( mm < 9 ? '. 0' : '. ' ) + ( mm + 1 ) + '. ' + yy;
		return tmp;
	} else {
		return false;
	}
}

function testDate( tDate, name ) {
	if( tDate.getYear ) {
		return false;
	} else {
		return "<LI>"+stFieldDat.replace( "%field%", name )+"</LI>";
	}
}

function testDateMin( tDate, name, min ) {
	var yy=min.getFullYear(), mm=min.getMonth(), dd=min.getDate();
	
	if( tDate < min ) {
		return "<LI>"+stFieldDatMin.replace( "%field%", name ).replace( "%min%", 
			( dd < 10 ? '0' : '' ) + dd + ( mm < 9 ? '. 0' : '. ' ) + ( mm + 1 ) + '. ' + yy )+"</LI>";
	} else {
		return false;
	}
}

function testDateMax( tDate, name, max ) {
	var yy=max.getFullYear(), mm=max.getMonth(), dd=max.getDate();
	
	if( tDate > max ) {
		return "<LI>"+stFieldDatMax.replace( "%field%", name ).replace( "%min%", 
			( dd < 10 ? '0' : '' ) + dd + ( mm < 9 ? '. 0' : '. ' ) + ( mm + 1 ) + '. ' + yy )+"</LI>";
	} else {
		return false;
	}
}

var calWindow;
var calElement;
var calCurDate;

// function to chow a calendar for choosing a day
// 1st argument is the form.element where the date is to be written to
function showCal( elmt )
{
	calElement = elmt;
	
	calCurDate = convDate( calElement );
	if( ! calCurDate ) calCurDate = new Date;

	calWindow = window.open("","calendar","width=300,height=234,left=0,top=0");
	drawCal( calWindow, calCurDate );
}

function prevClick() {
    calCurDate.setDate( 1 );
    calCurDate.setMonth( calCurDate.getMonth() - 1 );
	drawCal( calWindow, calCurDate );
}

function nextClick() {
    calCurDate.setMonth( calCurDate.getMonth() + 1 );
	drawCal( calWindow, calCurDate );
}

function dateClick( val )
{
    calCurDate.setDate( val );
	calElement.value=""+val+". " +monthS[calCurDate.getMonth()]+". "+calCurDate.getFullYear();
}

function drawCal( wind, date )
{
	var today = new Date();
	var thisDay = -1;
	if( date.getFullYear() == today.getFullYear() && date.getMonth() == today.getMonth())
		thisDay = today.getDate();
		
	var myDate = new Date( date.getFullYear(), date.getMonth(), 1 );
	var firstOfMonth = myDate.getDay();

	var myDate = new Date( date.getFullYear(), date.getMonth() + 1, 0 );
	var lengthOfMonth = myDate.getDate();
	
	with( wind.document )
	{
		open();
		write( "<HTML>\n"
			+ "<HEAD>\n"
			+ "<TITLE>"+stCalN+"</TITLE>\n"
			+ "<sCRIPT LANGUAGE=\"JavaScript\">\n"
			+ "<!--\n"
			+ "var wParent=0;\n"
			+ "function prevClick() {\n"
			+ "wParent.prevClick();\n"
			+ "}\n"
			+ "function nextClick() {\n"
			+ "wParent.nextClick();\n"
			+ "}\n"
			+ "function dateClick(val) {\n"
			+ "wParent.dateClick(val);\n"
			+ "window.close();\n"
			+ "}\n"
			+ "//-"+"->\n"
			+ "</SCRIPT>\n"
			+"<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"css/styles.css\">\n"
			+ "</HEAD>\n"
			+ "<BODY><DIV CLASS=\"calendar\">\n"
			+ "<TABLE BORDER=\"0\" CELLPADDING=\"2\" CELLSPACING=\"2\" WIDTH=\"100%\">\n<TR>\n"
			+ "<TD CLASS=\"calendar\"><INPUT TYPE=\"button\" onClick=\"prevClick()\" VALUE=\"&lt;\"></TD>\n"
			+ "<TD CLASS=\"calendar\" COLSPAN=5>"+monthName[date.getMonth()]+"/"+date.getFullYear()+"</TD>\n"
			+ "<TD CLASS=\"calendar\"><INPUT TYPE=\"button\" onClick=\"nextClick()\" VALUE=\"&gt;\"></TD>\n"
			+ "</TR><TR>\n"
			+ "<TD CLASS=\"calendar\">"+daysS[0]+"</TD>\n"
			+ "<TD CLASS=\"calendar\">"+daysS[1]+"</TD>\n"
			+ "<TD CLASS=\"calendar\">"+daysS[2]+"</TD>\n"
			+ "<TD CLASS=\"calendar\">"+daysS[3]+"</TD>\n"
			+ "<TD CLASS=\"calendar\">"+daysS[4]+"</TD>\n"
			+ "<TD CLASS=\"calendar\">"+daysS[5]+"</TD>\n"
			+ "<TD CLASS=\"calendar\">"+daysS[6]+"</TD>\n"
			+ "</TR><TR>\n"
		);

		for( i = 0; i < ( firstOfMonth + 6 ) % 7; i++ )
			write( "<TD></TD>\n" );

		for( j = 1; j <= lengthOfMonth; j++ )
		{
			if( i == 7 )
			{
				write( "</TR><TR>\n" );
				i = 1;
			}
			else
			{
				i++;
			}

			if( thisDay == j )
			{
				write( "<TD CLASS=\"caltoday\">" );
			}
			else
			{
				write( "<TD CLASS=\"calendar\">" );
			}
			write( "<INPUT TYPE=\"button\" CLASS=\"calendar\" VALUE=\"" + ( j < 10 ? "0" : "" )
				+ j + "\" onClick=\"dateClick(" + j +")\"></TD>\n" );
		}

		for( ; i < 7; i++ )
			write( "<TD></TD>\n" );
		
		write( "</TR>\n</TABLE></DIV>\n</BODY>\n</HTML>\n" );
		close();
	}
	wind.wParent=window;
}

var clockAMPM = 1;
var clockElement;
var clockWindow;

// function to chow a calendar for choosing a day
// 1st argument is the form.element where the date is to be written to
function showClock( elmt )
{
	clockElement = elmt;
	
	var hour = 12;
	
	var regEx = /^(1[0-9]|2[0-3]):[0-5][0-9]$/;
	if( regEx.test( elmt.value )) hour = parseInt( elmt.value );

	var regEx = /^[ 0]?[0-9]:[0-5][0-9]$/;
	if( regEx.test( elmt.value )) hour = parseInt( elmt.value.substr( 1 ));

	clockAMPM = (( hour >= 9 ) && ( hour < 21 )) ? 0 : 1; 

	clockWindow = window.open("","clock","width=400,height=236,left=0,top=0");
	drawClock( clockWindow, clockAMPM );
}

function dayClick() {
    clockAMPM = 0;
	drawClock( clockWindow, clockAMPM );
}

function nightClick() {
    clockAMPM = 1;
	drawClock( clockWindow, clockAMPM );
}

function clockClick( val )
{
	clockElement.value=val;
}

function drawClock( wind, AMPM )
{
	var today = new Date();

	if( AMPM )
	{
		var times = Array(
			"21:00", "21:30", "22:00", "22:30", "23:00", "23:30",
			"00:00", "00:30", "01:00", "01:30", "02:00", "02:30",
			"03:00", "03:30", "04:00", "04:30", "05:00", "05:30",
			"06:00", "06:30", "07:00", "07:30", "08:00", "08:30"
		);
		var otherV = stDay;
		var other = "day";
	}
	else
	{
		var times = Array(
			"09:00", "09:30", "10:00", "10:30", "11:00", "11:30",
			"12:00", "12:30", "13:00", "13:30", "14:00", "14:30",
			"15:00", "15:30", "16:00", "16:30", "17:00", "17:30",
			"18:00", "18:30", "19:00", "19:30", "20:00", "20:30"
		);
		var otherV = stNight;
		var other = "night";
	}
	
	with( wind.document )
	{
		open();
		write( "<HTML>\n"
			+ "<HEAD>\n"
			+ "<TITLE>"+stTime+"</TITLE>\n"
			+ "<sCRIPT LANGUAGE=\"JavaScript\">\n"
			+ "<!--\n"
			+ "var wParent=0;\n"
			+ "function dayClick() {\n"
			+ "wParent.dayClick();\n"
			+ "}\n"
			+ "function nightClick() {\n"
			+ "wParent.nightClick();\n"
			+ "}\n"
			+ "function clockClick(val) {\n"
			+ "wParent.clockClick(val);\n"
			+ "window.close();\n"
			+ "}\n"
			+ "//-"+"->\n"
			+ "</SCRIPT>\n"
			+"<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"css/styles.css\">\n"
			+ "</HEAD>\n"
			+ "<BODY><DIV>\n"
			+ "<TABLE BORDER=\"0\" CELLPADDING=\"2\" CELLSPACING=\"2\" WIDTH=\"100%\">\n<TR>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[05]+"\" onClick=\"clockClick('"+times[05]+"')\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[06]+"\" onClick=\"clockClick('"+times[06]+"')\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[07]+"\" onClick=\"clockClick('"+times[07]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "</TR><TR>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[03]+"\" onClick=\"clockClick('"+times[03]+"')\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[04]+"\" onClick=\"clockClick('"+times[04]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[08]+"\" onClick=\"clockClick('"+times[08]+"')\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[09]+"\" onClick=\"clockClick('"+times[09]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "</TR><TR>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[02]+"\" onClick=\"clockClick('"+times[02]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[10]+"\" onClick=\"clockClick('"+times[10]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "</TR><TR>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[01]+"\" onClick=\"clockClick('"+times[01]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[11]+"\" onClick=\"clockClick('"+times[11]+"')\"></TD>\n"
			+ "</TR><TR>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[00]+"\" onClick=\"clockClick('"+times[00]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\" COLSPAN=\"3\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+otherV+"\" onClick=\""+other+"Click()\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[12]+"\" onClick=\"clockClick('"+times[12]+"')\"></TD>\n"
			+ "</TR><TR>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[23]+"\" onClick=\"clockClick('"+times[23]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[13]+"\" onClick=\"clockClick('"+times[13]+"')\"></TD>\n"
			+ "</TR><TR>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[22]+"\" onClick=\"clockClick('"+times[22]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[14]+"\" onClick=\"clockClick('"+times[14]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "</TR><TR>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[21]+"\" onClick=\"clockClick('"+times[21]+"')\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[20]+"\" onClick=\"clockClick('"+times[20]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[16]+"\" onClick=\"clockClick('"+times[16]+"')\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[15]+"\" onClick=\"clockClick('"+times[15]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "</TR><TR>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[19]+"\" onClick=\"clockClick('"+times[19]+"')\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[18]+"\" onClick=\"clockClick('"+times[18]+"')\"></TD>\n"
			+ "<TD CLASS=\"clock\"><INPUT TYPE=\"button\" CLASS=\"clock\" VALUE=\""+times[17]+"\" onClick=\"clockClick('"+times[17]+"')\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "<TD CLASS=\"clocke\"></TD>\n"
			+ "</TR>\n</TABLE></DIV>\n</BODY>\n</HTML>\n" );
		close();
	}
	wind.wParent=window;
}

