//<script>
function showtime (){
	var now = new Date();
	mon_names = Array('JANUARY', 'FEBRUARY', 'MARCH', 'APRIL', 'MAY', 'JUNE', 'JULY', 'AUGUST', 'SEPTEMBER', 'OCTOBER', 'NOVEMBER', 'DECEMBER');
	document.write(mon_names[now.getMonth()] + ' ' + now.getDate() + ', ' + now.getFullYear());
}

function questionValidate(pForm) {
	var aFields = new Array();
	aFields[aFields.length]=new Array("FromName","Name",255,"text_string",1,null,null);
	aFields[aFields.length]=new Array("FromEmail","E-mail",255,"text_email",1,null,null);
	aFields[aFields.length]=new Array("MsgBody","Comment",255,"text_string",1,null,null);
	var bResult = commonvalidate(aFields,pForm);
	return bResult;
}

function commonvalidate(r,frm){
	//r[x][0] -field name
	//r[x][1] -field form name
	//r[x][2] -length
	//r[x][3] -datatype
	//r[x][4] -nullable
	//r[x][5] -diapason min (for int,float)
	//r[x][6] -diapason max (for int,float)

	var elt=frm.elements
	var i
	for(i=0;i<r.length;i++){
		if(typeof(elt[r[i][0]])!='undefined' || typeof(elt['mm_' + r[i][0]])!='undefined'){
			switch(r[i][3]){
				case 'radio_string':
				case 'text_string':
				case 'text_email':
				case 'text_filename':
					val = '';
					if(r[i][3]=='radio_string'){
						if(elt[r[i][0]].length>0){
							for(var j=0; j<elt[r[i][0]].length; ++j){
								if(elt[r[i][0]][j].checked){
									val = elt[r[i][0]][j].value;
									break;
								}
							}
						}
						else if(elt[r[i][0]].checked) val = elt[r[i][0]].value;
					} else val = elt[r[i][0]].value;
					if(val.length==0 && r[i][4]==1){
						alert(r[i][1] + ' cannot be empty');
						if(r[i][3]!='radio_string') elt[r[i][0]].focus();
						return false;
					}
					if(val.length>r[i][2]){
						alert(r[i][1] + ' cannot be more than ' + r[i][2] + ' символов');
						if(r[i][3]!='radio_string') elt[r[i][0]].focus();
						return false;
					}
					if(r[i][3]=='text_email' && val.length && !validEmail(val)){
						alert('Please enter a valid ' + r[i][1]);
						if(r[i][3]!='radio_string') elt[r[i][0]].focus();
						return false;
					}
					if(r[i][3]=='text_filename' && val.length && (val.indexOf(':',2)!=-1 || val.indexOf('*')!=-1 || val.indexOf('?')!=-1 || val.indexOf('"')!=-1 || val.indexOf('<')!=-1 || val.indexOf('>')!=-1 || val.indexOf('|')!=-1)){
						alert('Please enter a valid ' + r[i][1] + '\nA имя файла не может содержать символы: \\ / : * ? " < > | ');
						if(r[i][3]!='radio_string') elt[r[i][0]].focus();
						return false;
					}					
					break;
				case 'select_string':
					val = '';
					switch(elt[r[i][0]].type){
						case 'select-multiple':
							for(var j=0; j<elt[r[i][0]].options.length; ++j){
								if(elt[r[i][0]].options[j].selected){
									val = elt[r[i][0]].options[j].value;
									if(val=='') val = elt[r[i][0]].options[j].text;
									break;
								}	
							}
							break;
						case 'select-one':
							if(elt[r[i][0]].options.selectedIndex!=-1) val = elt[r[i][0]].options[elt[r[i][0]].options.selectedIndex].value;
							break;
					}					
					if(r[i][4]==1 && val==''){
						alert(r[i][1] + ' cannot be empty');
						elt[r[i][0]].focus();
						return false;
					}
					break;
				case 'text_float':
				case 'select_int':
				case 'text_int':
				case 'radio_int':
					val = '';
					if(r[i][3]=='select_int'){
						switch(elt[r[i][0]].type){
							case 'select-multiple':
								for(var j=0; j<elt[r[i][0]].options.length; ++j){
									if(elt[r[i][0]].options[j].selected){
										val = elt[r[i][0]].options[j].value;
										if(val=='') val = elt[r[i][0]].options[j].text;
										break;
									}	
								}
								break;
							case 'select-one':
								if(elt[r[i][0]].options.selectedIndex!=-1) val = elt[r[i][0]].options[elt[r[i][0]].options.selectedIndex].value;
								break;
						}					
					} 
					else if(r[i][3]=='text_float') val = elt[r[i][0]].value.replace(/,/g,'.');
					else if(r[i][3]=='text_int') val = elt[r[i][0]].value;
					else if(r[i][3]=='radio_int'){
						if(elt[r[i][0]].length>0){
							for(var j=0; j<elt[r[i][0]].length; ++j){
								if(elt[r[i][0]][j].checked){
									val = elt[r[i][0]][j].value;
									break;
								}
							}
						}
						else if(elt[r[i][0]].checked) val = elt[r[i][0]].value;
					}
					if(r[i][4]==1 && val==''){
						alert(r[i][1] + ' cannot be empty');
						if(r[i][3]!='radio_int' && !elt[r[i][0]].disabled) elt[r[i][0]].focus();
						return false;
					}else if(val=='') break;
					
					/*start parse string to float*/
					var digval=0;
					if(parseFloat(val)!=parseInt(val))	digval = parseFloat(val);
					else digval = parseInt(val);
					/*end parse string to float*/
					if(isNaN(digval)) {
						 digval=0;
//					if(String(digval)!=val){/*not a number*/
						alert(r[i][1] + ' must be a number. \nValue was corrected, please check.');
						elt[r[i][0]].value = digval;
						if(r[i][3]!='radio_int') elt[r[i][0]].focus();
						return false;
					}else{
						if(r[i][5]!=null && r[i][6]!=null && r[i][5]!=r[i][6]){
							if(digval<r[i][5] || digval>r[i][6]){//not in period
								alert(r[i][1] + ' must be between ' + r[i][5] + ' and ' + r[i][6]);
								if(r[i][3]!='radio_int') elt[r[i][0]].focus();
								return false;
							}
						}else if(r[i][5]!=null){
							if(digval<r[i][5]){
								alert(r[i][1] + ' must be >= ' + r[i][5]);
								if(r[i][3]!='radio_int') elt[r[i][0]].focus();
								return false;
							}
						}else if(r[i][6]!=null){
							if(digval>r[i][5]){
								alert(r[i][1] + ' must be <= ' + r[i][6]);
								if(r[i][3]!='radio_int') elt[r[i][0]].focus();
								return false;
							}
						}
					}
					break;
				case 'date':
					if(typeof(elt[r[i][0]])!='undefined'){
						var sDate = trim(elt[r[i][0]].value);
						if (sDate != '') {
							var dt;
							var isValid = 0;
							var sSep = '/';
							if (sDate.indexOf('.') != -1) sSep = '.';
							if (sDate.indexOf('-') != -1) sSep = '-';
							var a_dt = sDate.split(sSep);
							if (a_dt.length == 3 &&
								(trim(a_dt[2]).length == 2 ||
								 trim(a_dt[2]).length == 4)) {
								var mm		= parseInt(a_dt[0]);
								var dd		= parseInt(a_dt[1]);
								var yyyy	= parseInt(a_dt[2]);
								if (!isNaN(mm) && 
									!isNaN(dd) && 
									!isNaN(yyyy)){
									if(!yyyy) yyyy = 2000;
									var dt = new Date(yyyy,mm-1,dd);
									if(!isNaN(dt)){
										if (mm==(dt.getMonth()+1) &&
											dd==dt.getDate() &&
											yyyy==dt.getYear()){
											isValid = 1;
										}
									}	
								}	
							}
							if(!isValid){
								alert('Please enter a valid ' + r[i][1]);
								elt[r[i][0]].focus();
								return false;
							}
							if(dt.getYear()<=50) dt.setFullYear(2000+dt.getYear());
							else if(dt.getYear()<100) dt.setFullYear(1900+dt.getYear());
							elt[r[i][0]].value = (String(dt.getMonth() + 1)) + '/' + String(dt.getDate()) + '/' + (String(dt.getFullYear()).length == 4 ? String(dt.getFullYear()).substr(2,2) : String(dt.getFullYear()));
						}else if(r[i][4]==1){
							alert(r[i][1] + ' cannot be empty');
							elt[r[i][0]].focus();
							return false;
						}
					}else{ //date separated to three field mm_ dd_ yyyy_
						var mm		= elt['mm_' + r[i][0]].options[elt['mm_' + r[i][0]].options.selectedIndex].value;
						var dd		= elt['dd_' + r[i][0]].value;
						var yyyy	= elt['yyyy_' + r[i][0]].options[elt['yyyy_' + r[i][0]].options.selectedIndex].value;
						if(r[i][4]==1){
							if(mm==''){
								alert('Please choose month for ' + r[i][1]);
								elt['mm_' + r[i][0]].focus();
								return false;
							}else if(dd==''){
								alert('Please choose day for ' + r[i][1]);
								elt['dd_' + r[i][0]].focus();
								return false;
							}else if(yyyy==''){
								alert('Please choose year for ' + r[i][1]);
								elt['yyyy_' + r[i][0]].focus();
								return false;
							}else{}
						}else if((mm=='' && ' '+dd+yyyy!=' ') || (dd=='' && ' '+mm+yyyy!=' ') || (yyyy=='' && ' '+mm+dd!=' ') ){
							alert('Please complete ' + r[i][1]);
							elt['mm_' + r[i][0]].focus();
							return false;
						}
					}
					break;
				case 'datetime':
					if(typeof(elt[r[i][0]])!='undefined'){ //datetime in one field
					/* must be done	*/
					}else{ //date separated to three field mm_ dd_ yyyy_
						var mm		= elt['mm_' + r[i][0]].options[elt['mm_' + r[i][0]].options.selectedIndex].value;
						var dd		= elt['dd_' + r[i][0]].value;
						var yyyy	= elt['yyyy_' + r[i][0]].options[elt['yyyy_' + r[i][0]].options.selectedIndex].value;
						var h		= elt['h_' + r[i][0]].value;
						var m		= elt['m_' + r[i][0]].value;
						if(r[i][4]==1){
							if(mm==''){
								alert('Please choose month for ' + r[i][1]);
								elt['mm_' + r[i][0]].focus();
								return false;
							}else if(dd==''){
								alert('Please choose day for ' + r[i][1]);
								elt['dd_' + r[i][0]].focus();
								return false;
							}else if(yyyy==''){
								alert('Please choose year for ' + r[i][1]);
								elt['yyyy_' + r[i][0]].focus();
								return false;
							}else if(h==''){
								alert('Please choose hour for ' + r[i][1]);
								elt['h_' + r[i][0]].focus();
								return false;
							}else if(m==''){
								alert('Please choose minute for ' + r[i][1]);
								elt['m_' + r[i][0]].focus();
								return false;
							}else{}
						}else if((mm=='' && ' '+dd+yyyy!=' ') || 
								(dd=='' && ' '+mm+yyyy!=' ') || 
								(yyyy=='' && ' '+mm+dd!=' ') ){
							alert('Please complete ' + r[i][1]);
							elt['mm_' + r[i][0]].focus();
							return false;
						}
					}
					break;
			}
		}
	}
	return true;
}

function validEmail(sEmail){  
	return sEmail.match(/^[0-9A-Za-z._,-]+.*@([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)+)$/);
}
//</script>