
function onRegTypeChange(){
	var selectedRegType = document.forms['reg_form'].regtype.value;
	var selectedMemType = document.forms['reg_form'].memtype.value;
	switch(selectedRegType){
		case '':
			// nothing selected
			document.getElementById('companyInfo').style.display = 'none';
			document.getElementById('contactInfo').style.display = 'none';
			document.getElementById('attendeesInfo').style.display = 'none';
			document.getElementById('frm_submit').style.display = 'none';
			document.getElementById('memtype').style.display = 'none';
			document.getElementById('memtypeLabel').style.display = 'none';
			document.getElementById('cost').style.display = 'none';
			document.getElementById('tabletype').style.display = 'none';
			document.getElementById('tabletypeLabel').style.display = 'none';
			document.getElementById('sponsorNote').style.display = 'none';
			document.forms['reg_form'].memtype.options.length=3;
			break;
		case 'table':
			// vendor table
			/*
			updateTableTypeOptions(selectedMemType);
			if (selectedMemType != ""){
				document.getElementById('tabletype').style.display = 'inline';
				document.getElementById('tabletypeLabel').style.display = 'inline-block';
				document.getElementById('tabletypeNote').style.display = 'block';
			} else {
				document.getElementById('tabletype').style.display = 'none';
				document.getElementById('tabletypeLabel').style.display = 'none';
				document.getElementById('tabletypeNote').style.display = 'none';
			}
			document.forms['reg_form'].memtype.options.length=3;
			*/
			document.getElementById('tabletypeNote').style.display = 'block';
			document.getElementById('companyInfo').style.display = 'block';
			document.getElementById('attendeesInfo').style.display = 'block';
			document.getElementById('contactInfo').style.display = 'block';
			document.getElementById('frm_submit').style.display = 'block';
			document.getElementById('memtype').style.display = 'none';
			document.getElementById('memtypeLabel').style.display = 'none';
			document.getElementById('cost').style.display = 'block';
			document.getElementById('tabletype').style.display = 'none';
			document.getElementById('tabletypeLabel').style.display = 'none';
			
			
			document.forms['reg_form'].memtype.options.length=3;
			break;
		case 'attendee':
			// attendee
			if (selectedMemType != ""){
				document.getElementById('companyInfo').style.display = 'block';
				document.getElementById('contactInfo').style.display = 'block';
				document.getElementById('frm_submit').style.display = 'block';
				document.getElementById('attendeesInfo').style.display = 'block';
				document.getElementById('cost').style.display = 'block';
				
			} else {
				document.getElementById('companyInfo').style.display = 'none';
				document.getElementById('contactInfo').style.display = 'none';
				document.getElementById('attendeesInfo').style.display = 'none';
				document.getElementById('frm_submit').style.display = 'none';
				document.getElementById('cost').style.display = 'none';
			}
			if (selectedRegType == 3){
				document.getElementById('tabletype').style.display = 'none';
				document.getElementById('tabletypeLabel').style.display = 'none';
				document.getElementById('tabletypeNote').style.display = 'none';
				if (document.forms['reg_form'].memtype.options.length==3){
					document.forms['reg_form'].memtype.options[3] = new Option("Additional homes", "home");
				}
			}
			document.getElementById('memtype').style.display = 'inline';
			document.getElementById('memtypeLabel').style.display = 'inline-block';
			document.getElementById('sponsorNote').style.display = 'none';
			break;
		case 'sponsor':
			// sponsor
			document.getElementById('companyInfo').style.display = 'block';
			document.getElementById('attendeesInfo').style.display = 'block';
			document.getElementById('contactInfo').style.display = 'block';
			document.getElementById('frm_submit').style.display = 'block';
			document.getElementById('memtype').style.display = 'none';
			document.getElementById('memtypeLabel').style.display = 'none';
			document.getElementById('cost').style.display = 'block';
			document.getElementById('tabletype').style.display = 'none';
			document.getElementById('tabletypeLabel').style.display = 'none';
			document.getElementById('tabletypeNote').style.display = 'none';
			document.getElementById('sponsorNote').style.display = 'block';
			document.forms['reg_form'].memtype.options.length=3;
			break;
		
	}
	if (selectedMemType != "" || selectedRegType == 2){
		if (document.getElementById("attendeesInfo").childNodes.length < 6){
			//adAttendee();
		}
	}
	document.getElementById('frm_submit').style.display = 'block';
	rebuildAtendee();
	doCaculator();
}

function updateTableTypeOptions(selectedMemType){
	field = document.forms['reg_form'].tabletype;
	field.options.length = 0;
	priceDiff = " (+$100)";
	if (selectedMemType == "nonmember"){
		priceDiff = " (+$100)";
	}
	field.options[0] = new Option("Half Table", "half", "true", "true");
	field.options[1] = new Option("Full Table"+priceDiff, "full", "false", "false");
}

function onTableTypeChange(){
	rebuildAtendee();
	doCaculator();
}

function getAttendeeCount(){
	fieldset = document.getElementById("attendeesInfo");
	return ((fieldset.childNodes.length-2) / 4);
}

function adAttendee(value){
	var fieldset = document.getElementById("attendeesInfo");
	var button = document.getElementById("addAttendee");
	var count = getAttendeeCount();
	var label = document.createElement("label");
	label.setAttribute("for", "attendee_"+count);
	label.setAttribute("id", "attendee_"+count+"_label");
	var costAmt = getAttendeeCost(count);
	var costTxt = costAmt == 0 ? 'free' : "$"+costAmt.toFixed(2);
	var labelText = document.createTextNode((count+1) + '. ('+ costTxt + ')');
	label.appendChild(labelText);
	var input = document.createElement("input");
	input.setAttribute("id", "attendee_"+count);
	input.setAttribute("name", "attendee[]");
	if (value){
		input.setAttribute("value", value);
	}
	var rm_btn = document.createElement("a");
	rm_btn.setAttribute("id", "attendee_"+count+"_rm");
	rm_btn.setAttribute("href", "#");
	//rm_btn.setAttribute("onclick", "return onRemoveBtnClick(" + count + ")");
	rm_btn.onclick = function (e) {onRemoveBtnClick(count);};

	var rmText = document.createTextNode(' [remove]');
	rm_btn.appendChild(rmText);
	var br = document.createElement("br");
	br.setAttribute("id", "attendee_"+count+"_br");
	fieldset.insertBefore(label, button);
	fieldset.insertBefore(input, button);
	fieldset.insertBefore(rm_btn, button);
	fieldset.insertBefore(br, button);
	doCaculator();
}

function onRemoveBtnClick(btn){
	//alert("remove btn")
	//removeAttendee(btn);
	rebuildAtendee(btn);
	doCaculator();
}

function removeAttendee(i){
	//alert("remove");
	var field = document.getElementById("attendee_"+i);
	var label = document.getElementById("attendee_"+i+"_label");
	var br = document.getElementById("attendee_"+i+"_br");
	var btn = document.getElementById("attendee_"+i+"_rm");
	if (field){
		field.parentNode.removeChild(field);
	}
	if (label){
		label.parentNode.removeChild(label);
	}
	if (br){
		br.parentNode.removeChild(br);
	}
	if(btn){
		btn.parentNode.removeChild(btn);
	}
	//rebuildAtendee();
}

function rebuildAtendee(skip){
	var count = getAttendeeCount();
	attendString = new Array();
	for(var i=0; i<count; i++){
		field = document.getElementById("attendee_"+i);
		if (field && field.value != ''){
			attendString.push(escape(field.value));
		}
	}
	for(var i=0; i<count; i++){
		removeAttendee(i);
	}
	for(var i=0; i<attendString.length; i++){
		if (i == (skip)){
			continue;
		}
		adAttendee(unescape(attendString[i]));
	}
	var count = getAttendeeCount();
	if (count == 0  && attendString.length == 0){
		adAttendee();
	}
}




function getAttendeeCost(count){
	var selectedRegType = document.forms['reg_form'].regtype.value;
	var selectedMemType = document.forms['reg_form'].memtype.value;
	
	switch(selectedRegType){
		case 'table':
			//table
				if (count<2){
					return 0;
				} else {
					return 65;
				}
			break;
		case 'sponsor':
			//sponsor
			if (count<3){
				return 0;
			} else {
				return 65;
			}
		case 'attendee':
			// attendee
			switch(selectedMemType){
				case 'member':
					if (count<2){
						return 0;
					} else {
						return 65;
					}
					break;
				case 'home':
					if (count<1){
						return 0;
					} else {
						return 65;
					}
					break;
				default:
					return 75;
					break;
			}
			break;
		default: 
			return 0;
			break;
	}
}

function doCalculateAttendees(){
	attendeeCost = 0;
	count = getAttendeeCount();
	for(var i=0; i<count; i++){
		attendeeCost += getAttendeeCost(i);
	}
	return attendeeCost;
}

function doCaculator(){
	var calculatedCost = 0;
	var selectedRegType = document.forms['reg_form'].regtype.value;
	var selectedMemType = document.forms['reg_form'].memtype.value;
	var selectedTableType = document.forms['reg_form'].tabletype.value;
	switch(selectedRegType){
		case 'table':
			// table
			/*
			if (selectedMemType == "member"){
				if (selectedTableType == 'full'){
					calculatedCost += 100;
				}
			} else {
				calculatedCost += 395;
				if (selectedTableType == 'full'){
					calculatedCost += 100;
				}
			}
			*/
			calculatedCost += 350;
			break;
		case 'sponsor':
			// sponsor
			calculatedCost += 2500;
			break;
	}
	calculatedCost += doCalculateAttendees();
	costOnPage = document.getElementById('cost');
	p = costOnPage.getElementsByTagName('p')[0];
	costOnPage.removeChild(p);
	costP = document.createElement("p");
	costOnPage.appendChild(costP);
	costPText = document.createTextNode('$'+calculatedCost.toFixed(2));
	costP.appendChild(costPText);
}

function resetForm(){
	if (typeof(regtype_val) != 'undefined'){
		var len = document.forms['reg_form'].regtype.options.length;
		for(var i=0; i<len; i++){
			if (document.forms['reg_form'].regtype.options[i].value == regtype_val){
				//alert (regtype_val + " " + i);
				document.forms['reg_form'].regtype.selectedIndex = i;
				onRegTypeChange();
			}
		}
	}
	if (typeof(memtype_val) != 'undefined'){
		var len = document.forms['reg_form'].memtype.options.length;
		for(var i=0; i<len; i++){
			if (document.forms['reg_form'].memtype.options[i].value == memtype_val){
				//alert (regtype_val + " " + i);
				document.forms['reg_form'].memtype.selectedIndex = i;
				onRegTypeChange();
			}
		}
	}
	if (typeof(tabletype_val) != 'undefined'){
		var len = document.forms['reg_form'].tabletype.options.length;
		for(var i=0; i<len; i++){
			if (document.forms['reg_form'].tabletype.options[i].value == tabletype_val){
				//alert (regtype_val + " " + i);
				document.forms['reg_form'].tabletype.selectedIndex = i;
				onTableTypeChange();
			}
		}
	}
	if (typeof(attendee) != 'undefined'){
		removeAttendee(0);
		var len = attendee.length;
		
		for(var i=0; i<len; i++){
			if (attendee[i] != ''){
				adAttendee(attendee[i]);
			}
		}
	}
}

