function checkTextAreaLength(ta) {
	if (ta.value.length > 3900) {alert('This field is limited to 3900 characters.'); ta.value = (ta.value).substring(0,3900);}
}

function isLeapYear(y) {
	if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0)) {
		return true;
	} else {
		return false;
	}
}

function resetDateByMonth(m, y, daydd) {
	switch(m) {
		case 'FEB':
			if(isLeapYear(y)) {
				rebuildDayDD(daydd,29,daydd.selectedIndex);
			} else {
				rebuildDayDD(daydd,28,daydd.selectedIndex);				
			}
			break;
		case 'JAN': 
		case 'MAR':
		case 'MAY':
		case 'JUL':
		case 'AUG':
		case 'OCT':
		case 'DEC':
			rebuildDayDD(daydd, 31, daydd.selectedIndex);
			break;
		case 'APR':
		case 'JUN':
		case 'SEP':
		case 'NOV':
			rebuildDayDD(daydd, 30, daydd.selectedIndex);
			break;
	}
}

function rebuildDayDD(daydd,maxday,si) {
	clearALLdd(daydd);
	for(var ddi = 1; ddi <= maxday; ddi++) {
		var opt;
		opt = document.createElement("OPTION");
		opt.text = ddi;
		opt.value = ddi;
		daydd.options.add(opt,ddi-1);
	}
	(si<maxday) ? daydd.selectedIndex = si : daydd.selectedIndex = 0;
}

function geti(cname) {
	ival=-1;
	tmax = arr_name.length;
	var xpress = /-/gi;
	var xpress2 = /(\s|\&|\/)/gi;
	for(ti = 0; ti < tmax; ti++) {		
		cname = (cname).replace(xpress,"_").replace(xpress2,"");
		if((("" + arr_name[ti]).toUpperCase()) == (("" + cname).toUpperCase())) ival=ti;
	}
	return ival;
}

function configureForm(doit,varlist) {
	arr_varname = varlist.split(",")
	maxlist = arr_varname.length
	for(var tcnt = 0; tcnt < maxlist; tcnt++) {
		var f = window.document.forms['serviceform'];
		varname = arr_varname[tcnt];
		switch(doit) {
			case 'usedyear':
				txtdd('dd',varname);
				f.elements[varname + "_modeltext"].value = '';
				f.elements[varname + "_modeltext"].disabled = true;
				cleardd(f.elements[varname+ "_modeldd"]);
				f.elements[varname + "_modeldd"].disabled = true;
				cleardd(f.elements[varname + "_make"]);
				f.elements[varname + "_make"].disabled = true;
				setupUsedYear(f.elements[varname + "_year"],"AN",varname)
				break;
			case 'year':
				txtdd('dd',varname);
				f.elements[varname + "_modeltext"].value = '';
				f.elements[varname + "_modeltext"].disabled = true;
				cleardd(f.elements[varname+ "_modeldd"]);
				f.elements[varname + "_modeldd"].disabled = true;
				cleardd(f.elements[varname + "_make"]);
				f.elements[varname + "_make"].disabled = true;
				break;
			case 'make':
				txtdd('dd',varname);
				f.elements[varname + "_modeltext"].value = '';
				f.elements[varname + "_modeltext"].disabled = true;
				cleardd(f.elements[varname + "_modeldd"]);
				f.elements[varname + "_modeldd"].disabled = true;
				break;
			default:
				txtdd('dd',varname);
				f.elements[varname + "_modeltext"].value = '';
				f.elements[varname + "_modeltext"].disabled = true;
				cleardd(f.elements[varname + "_modeldd"]);
				f.elements[varname + "_modeldd"].disabled = true;
				cleardd(f.elements[varname + "_make"]);
				f.elements[varname + "_make"].disabled = true;
				cleardd(f.elements[varname + "_year"]);
				f.elements[varname + "_year"].disabled = true;
				defaultTypeValue = f.elements['ref_' + varname + '_type'].value
				if(defaultTypeValue.value != '') {
					ddTypeObj = f.elements[varname + '_type']
					typeMax = ddTypeObj.length;
					typeSI = -1;
					for(var tloop = 1; tloop < typeMax; tloop++) {
						if(ddTypeObj[tloop].value == defaultTypeValue) typeSI = tloop;											
					}
					if(typeSI!=-1) {
						f.elements[varname + '_type'].selectedIndex=typeSI;
						populateYear(f.elements[varname + '_year'],ddTypeObj,varname);
					}
					f.elements['ref_' + varname + '_type'].value='';
				}
				break;
		}
	}
}

function txtdd(v, varname) {
	var tmpObText;
	if(v == 'text') {
		node = document.getElementById(varname + '_modeltext_div').style.display = 'block';
		node = document.getElementById(varname + '_modeldd_div').style.display = 'none';
		//node = document.getElementById(varname + '_modeldd').style.display = 'none';
	} else {
		if(document.getElementById(varname + '_modeltext_div')) {
			node = document.getElementById(varname + '_modeltext_div').style.display = 'none';
		}
		if(document.getElementById(varname + '_modeldd_div')) {
			node = document.getElementById(varname + '_modeldd_div').style.display = 'block';
		}
		//if(document.getElementById(varname + '_modeldd')) {
			//node = document.getElementById(varname + '_modeldd').style.display = 'none';
		//}
	}
}

function cleardd(templist) {
	for (var y = templist.length; y > 0; y--) {
		templist.remove(y);
	}

}

function clearALLdd(templist) {
	for (var y = templist.length; y > -1; y--){
		templist.remove(y);
	}
}


function setupUsedYear(ddObj,ddStyle,varname) {
	var defaulti = -1;
	var f = window.document.forms['serviceform'];
	ddSelected = f.elements['ref_' + varname + '_year'].value;
	cleardd(ddObj);
	si = 1;
	for(var yyyy = 2007; yyyy > 1930; yyyy--) {
		si = si + 1;
		var NewOpt;
		NewOpt = document.createElement("OPTION");
		NewOpt.text = yyyy;
		NewOpt.value = yyyy;
		ddObj.options.add(NewOpt, si);
		if(ddSelected == yyyy) defaulti = si-1;
	}
	if(defaulti != -1) {
		ddObj.selectedIndex = defaulti;
		populateMake(f.elements[varname + '_make'], ddStyle, varname);
	}
	ddObj.disabled = false;
	f.elements['ref_' + varname + '_year'].value = '';
}

function populateYear(ddObj,ddStyle,varname) {
	var f = window.document.forms['serviceform'];
	ddSelected = f.elements['ref_' + varname + '_year'].value;
	var defaulti = -1;
	cleardd(ddObj);
	if(ddStyle == 'N') {
		si = 1
		for(var yyyy = 2007; yyyy > 2002; yyyy--) {
			si = si + 1;
			var NewOpt;
			NewOpt = document.createElement("OPTION");
			NewOpt.text = yyyy;
			NewOpt.value = yyyy;
			ddObj.options.add(NewOpt, si);
			if(ddSelected == yyyy) defaulti = si-1;
		}
	} else {
		si = 1
		for(var yyyy = 2007; yyyy > 1930; yyyy--) {
			si = si + 1;
			var NewOpt;
			NewOpt = document.createElement("OPTION");
			NewOpt.text = yyyy;
			NewOpt.value = yyyy;
			ddObj.options.add(NewOpt, si);
			if(ddSelected == yyyy) defaulti = si-1;
		}
	}
	if(defaulti != -1) {
		ddObj.selectedIndex = defaulti;
		populateMake(f.elements[varname + '_make'], ddStyle, varname);
	} else {
		configureForm('year', varname);
	}
	ddObj.disabled = false;
	f.elements['ref_' + varname + '_year'].value = '';
}

function populateMake(ddObj, ddStyle, varname) {
	var f = window.document.forms['serviceform'];
	ddSelected = f.elements['ref_' + varname + '_make'].value;
	var defaultmakei = -1;
	var ddList;
	(ddStyle == 'N') ? ddList = newMakeDD : ddList = usedMakeDD;
	cleardd(ddObj);
	makelist = ddList.split(",");
	maxdd = makelist.length;
	for(var cnt = 0; cnt < maxdd; cnt = cnt + 1) {
		var NewOpt;
		NewOpt = document.createElement("OPTION");
		NewOpt.text = makelist[cnt];
		NewOpt.value = makelist[cnt];
		ddObj.options.add(NewOpt, cnt + 1);
		if(ddSelected == makelist[cnt]) defaultmakei = cnt + 1;
	}
	if(defaultmakei != -1) {
		ddObj.selectedIndex = defaultmakei;
		populateModel(f.elements[varname + '_modeldd'], f.elements[varname + '_modeltext'], f.elements[varname + '_make'][f.elements[varname + '_make'].selectedIndex].value, f.elements[varname + '_year'][f.elements[varname + '_year'].selectedIndex].value, varname)
	} else {
		configureForm('make', varname);				
	}
	ddObj.disabled = false;
	f.elements['ref_' + varname + '_make'].value = '';
}

function populateModel(ddObj, txtObj, ddMakeValue, ddYearValue, varname) {
	f = window.document.forms['serviceform'];
	ddSelected = f.elements['ref_' + varname + '_modeldd'].value;
	txtValue = f.elements['ref_' + varname + '_modeltext'].value;
	var aid, ml;
	aid = geti(ddMakeValue + ddYearValue);
	if (aid == -1) {
		txtdd('text', varname);
		cleardd(ddObj);
		if(txtValue	!=	'') f.elements[varname + '_modeltext'].value = txtValue;
	} else {
		txtdd('dd', varname);
		cleardd(ddObj);
		modellist = arr_list[aid];
		maxdd = modellist.length;
		modelDefaultI = -1;
		for(var cnt = 0; cnt < maxdd; cnt = cnt + 1) {
			var NewOpt;
			NewOpt = document.createElement("OPTION");
			NewOpt.text = modellist[cnt];
			NewOpt.value = modellist[cnt];
			ddObj.options.add(NewOpt, cnt + 1);
			if(modellist[cnt] == ddSelected) modelDefaultI = cnt + 1;
		}

		if(modelDefaultI!=-1) f.elements[varname + '_modeldd'].selectedIndex = modelDefaultI;
	}
	ddObj.disabled = false;
	txtObj.disabled = false;
	f.elements['ref_' + varname + '_modeldd'].value = '';
	f.elements['ref_' + varname + '_modeltext'].value = '';
}

function validateForm()
{
	if (document.getElementById('FirstName').value == '')
	{
		alert('You must provide a value for FirstName!');
		return false;
	}
	
	if (document.getElementById('LastName').value == '')
	{
		alert('You must provide a value for LastName!');
		return false;
	}
	
	if (document.getElementById('Email').value == '')
	{
		alert('You must provide a value for Email!');
		return false;
	}
	
	if (document.getElementById('ZipCode').value == '')
	{
		alert('You must provide a value for ZipCode!');
		return false;
	}
	
	if (document.getElementById('UserVehicleInfo_Year').value == '')
	{
		alert('You must provide a value for Boat Year!');
		return false;
	}
	
	if (document.getElementById('UserVehicleInfo_Make').value == '')
	{
		alert('You must provide a value for Boat Make!');
		return false;
	}
	
	if (document.getElementById('UserVehicleInfo_Model').value == '')
	{
		alert('You must provide a value for Boat Model!');
		return false;
	}
};
