var geocoder;
var map;
var course;
var mSubCourseNum=1;
var mHoleNum=1;
var mFeatureNum=1;
var totalHoles=0;
var mappedHoles=0;


function increaseHole() {
	if((mHoleNum+1)<=eval("course.subCourse"+mSubCourseNum+".numHoles")) {
		mHoleNum=mHoleNum+1;
		mFeatureNum=1;
		displayCourseHole(mSubCourseNum,mHoleNum);
	}
}

function decreaseHole() {
	if((mHoleNum-1)>0) {
		mHoleNum=mHoleNum-1;
		mFeatureNum=1;
		displayCourseHole(mSubCourseNum,mHoleNum);
	}
}

function increaseFeature() {
	mFeatureNum++;
	displayCourseHole(mSubCourseNum,mHoleNum);
}

function decreaseFeature() {
	mFeatureNum--;
	displayCourseHole(mSubCourseNum,mHoleNum);
}

function increaseSub() {
	if((mSubCourseNum+1)<6 && course.getSubCourse(mSubCourseNum+1)!=null) {
		mSubCourseNum++;
		mHoleNum=1;
		mFeatureNum=1;
		displayCourseHole(mSubCourseNum,mHoleNum);
	} else {
		alert('No more segments');
	}
}

function decreaseSub() {
	if((mSubCourseNum-1)>0) {
		mSubCourseNum--;
		mHoleNum=1;
		mFeatureNum=1;
		displayCourseHole(mSubCourseNum,mHoleNum);
	} else {
		alert('First Segment');
	}
}


  function initialize() {
    geocoder = new google.maps.Geocoder();   
    var latlng = new google.maps.LatLng(33.500649,-82.023951);
    var myOptions = {
      zoom: 15,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.SATELLITE
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    document.getElementById("map_canvas").style.width="50%";
    document.getElementById("map_canvas").style.height="80%";
    document.getElementById("map_canvas").style.visibility="visible";
  }


  function initParts() {
  	codeAddress(1);
  	hideshow(1);
  }

  function initializeAll() {
   	hideshow(2);
  	initialize(2);
  	codeAddress(2);
  	initObjects();
  	displayCourseHole(1,1);
	document.body.scrollTop = 0;
  }

  function hideSections() {
  	document.getElementById("instructions1").style.visibility="hidden";
  	document.getElementById("instructions1").style.height="0%";
  	document.getElementById("instructions1").style.width="0%";
  	  	document.getElementById("parts").style.visibility="hidden";
	  	document.getElementById("parts").style.height="0%";
  	document.getElementById("parts").style.width="0%";
  	document.getElementById("setup").style.visibility="hidden";
  }

  function hideshow(tab) {
  	if(tab==1) {
  		document.getElementById("instructions1").style.visibility="hidden";
  		document.getElementById("setup").style.visibility="hidden";

  		document.getElementById("parts").style.visibility="visible";
  		return;
  	}
  	if(tab==2) {
  		document.getElementById("parts").style.visibility="hidden";

  		document.getElementById("instructions3").style.visibility="visible";
  		document.getElementById("map_data").style.visibility="visible";
  		document.getElementById("add_feature").style.visibility="visible";
  		document.getElementById("mapping_complete").style.visibility="visible";

  	}

  }

function codeAddress(screenNum) {

  var address = document.getElementsByName("course_name")[0].value+","+document.getElementsByName("course_street")[0].value+","+document.getElementsByName("course_city")[0].value+","+document.getElementsByName("course_state")[0].value;
  if (geocoder) {
	geocoder.geocode( { 'address': address}, function(results, status) {
	  if (status == google.maps.GeocoderStatus.OK) {
		map.setCenter(results[0].geometry.location);
	  } else {
	  	//try with state name instead of value
	  	var idx=document.getElementsByName("course_state")[0].selectedIndex;
	  	address=document.getElementsByName("course_name")[0].value+","+document.getElementsByName("course_street")[0].value+","+document.getElementsByName("course_city")[0].value+","+document.getElementsByName("course_state")[0].options[idx].text;
	  	geocoder.geocode( { 'address': address}, function(results, status) {
	  	    if (status == google.maps.GeocoderStatus.OK) {
		    	map.setCenter(results[0].geometry.location);
		    } else {
		    	if(screenNum==2) {
			    	alert("Had trouble centering the map over the course. You may need to zoom out and pan the map to find your course.");
			    } else {
			   		alert("Couldn't center the map over that address.");
			    }
		   }
	    });
	  }
	});
  }
}

function checkAddress() {
	var geo2=new google.maps.Geocoder();
	var name=document.getElementsByName("course_name")[0].value;
	var street=document.getElementsByName("course_street")[0].value;
	var city=document.getElementsByName("course_city")[0].value;
	var state=document.getElementsByName("course_state")[0].value;
  	var phone=document.getElementsByName("course_street")[0].value;

  	var address=name+","+street+","+city+","+state+","+phone;
  	var result=false;
	geo2.geocode({'address':address}, function(results,status) {
			if(status==google.maps.GeocoderStatus.OK) {
				//document.getElementById("checkAddressResults").innerHTML="Address is good";

			} else {
			//	alert(document.getElementById("checkAddressResults"));
				document.getElementById("checkAddressResults").innerHTML="There was trouble finding a location for this address, you may have to position the map yourself after clicking 'Create All' below";
			}
		});
}


function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}


function ltrim(stringToTrim) {
	return stringToTrim.replace(/^\s+/,"");
}

function rtrim(stringToTrim) {
	return stringToTrim.replace(/\s+$/,"");
}


function initObjects() {


  	var name=document.getElementsByName("course_name")[0].value;
  	var street=document.getElementsByName("course_street")[0].value;
  	var city=document.getElementsByName("course_city")[0].value;
  	var state=document.getElementsByName("course_state")[0].value;
  	var phone=document.getElementsByName("course_phone")[0].value;

  	course=new Course(name,street,city,state,phone);

  	if(document.getElementsByName("sub_course1_name")[0].value.length>0 && document.getElementsByName("sub_course1_type")[0].value !=null) {
  		course.subCourse1=new SubCourse(document.getElementsByName("sub_course1_name")[0].value,document.getElementsByName("sub_course1_type")[0].value);
  		course.numSubs=course.numSubs+1;
  	}

  	if(document.getElementsByName("sub_course2_name")[0].value.length>0 && document.getElementsByName("sub_course2_type")[0].value !=null) {
	  		course.subCourse2=new SubCourse(document.getElementsByName("sub_course2_name")[0].value,document.getElementsByName("sub_course2_type")[0].value);
	  		course.numSubs=course.numSubs+1;
  	}

  	if(document.getElementsByName("sub_course3_name")[0].value.length>0 && document.getElementsByName("sub_course3_type")[0].value !=null) {
	  		course.subCourse3=new SubCourse(document.getElementsByName("sub_course3_name")[0].value,document.getElementsByName("sub_course3_type")[0].value);
	  		course.numSubs=course.numSubs+1;
  	}

	if(document.getElementsByName("sub_course4_name")[0].value.length>0 && document.getElementsByName("sub_course4_type")[0].value !=null) {
			course.subCourse4=new SubCourse(document.getElementsByName("sub_course4_name")[0].value,document.getElementsByName("sub_course4_type")[0].value);
			course.numSubs=course.numSubs+1;
	}


  	if(document.getElementsByName("sub_course5_name")[0].value.length>0 && document.getElementsByName("sub_course5_type")[0].value !=null) {
	  		course.subCourse5=new SubCourse(document.getElementsByName("sub_course5_name")[0].value,document.getElementsByName("sub_course5_type")[0].value);
	  		course.numSubs=course.numSubs+1;
  	}


  	if(document.getElementsByName("sub_course6_name")[0].value.length>0 && document.getElementsByName("sub_course6_type")[0].value !=null) {
	  		course.subCourse6=new SubCourse(document.getElementsByName("sub_course6_name")[0].value,document.getElementsByName("sub_course6_type")[0].value);
	  		course.numSubs=course.numSubs+1;
  	}

}

function toggleFront(isChecked,subCourseNum,holeNum,featureNum) {
	var feature=course.getSubCourse(subCourseNum).getHole(holeNum).getFeature(featureNum);
	if(!isChecked) {
		if(feature.markerFront!=null) {
			feature.markerFront.setMap(null);
			feature.markerFront=null;
		}

	} else {
		if(feature.markerFront!=null) {
				feature.markerFront.setMap(null);
				feature.markerFront=null;
		}
		var iconFront=new google.maps.MarkerImage("images/front.png",
			      new google.maps.Size(44, 16),
			      new google.maps.Point(0,0),
	     		  new google.maps.Point(6, 5));

	    feature.markerFront=new google.maps.Marker({
				position:map.getCenter(),
				map: map,
				title: "Hole "+holeNum+" ("+feature.type+" "+feature.name+")",
				draggable: true,
				icon: iconFront,
				raiseOnDrag: false
		});

		google.maps.event.addListener(feature.markerFront,'dragend',function() {
			showData(featureNum,"front");
			});

	}
}

function toggleCenter(isChecked,subCourseNum,holeNum,featureNum) {
	var feature=course.getSubCourse(subCourseNum).getHole(holeNum).getFeature(featureNum);
	if(!isChecked) {
		if(feature.markerCenter!=null) {
			feature.markerCenter.setMap(null);
			feature.markerCenter=null;
		}

	} else {
		if(feature.markerCenter!=null) {
			feature.markerCenter.setMap(null);
			feature.markerCenter=null;
		}
		var iconCenter=new google.maps.MarkerImage("images/center.png",
			      new google.maps.Size(53, 16),
			      new google.maps.Point(0,0),
	     		  new google.maps.Point(6, 5));

	    feature.markerCenter=new google.maps.Marker({
				position:map.getCenter(),
				map: map,
				title: "Hole "+holeNum+" ("+feature.type+" "+feature.name+")",
				draggable: true,
				icon: iconCenter,
				raiseOnDrag:false
		});

		google.maps.event.addListener(feature.markerCenter,'dragend',function() {
			showData(featureNum,"center");
			});

	}
}

function toggleBack(isChecked,subCourseNum,holeNum,featureNum) {
	var feature=course.getSubCourse(subCourseNum).getHole(holeNum).getFeature(featureNum);
	if(!isChecked) {
		if(feature.markerBack!=null) {
			feature.markerBack.setMap(null);
			feature.markerBack=null;
		}

	} else {
		if(feature.markerBack!=null) {
				feature.markerBack.setMap(null);
				feature.markerBack=null;
		}
		var iconBack=new google.maps.MarkerImage("images/back.png",
			      new google.maps.Size(44, 16),
			      new google.maps.Point(0,0),
	     		  new google.maps.Point(6, 5));

	    feature.markerBack=new google.maps.Marker({
				position:map.getCenter(),
				map: map,
				title: "Hole "+holeNum+" ("+feature.type+" "+feature.name+")",
				draggable: true,
				icon: iconBack,
				raiseOnDrag: false
		});

		google.maps.event.addListener(feature.markerBack,'dragend',function() {
			showData(featureNum,"back");
			});

	}
}

function segmentName(name) {
	document.getElementById("seg_name").innerHTML=name;
}

function holeNumber(holeNum) {
	document.getElementById("hole_num").innerHTML="Hole #"+holeNum;
}

function courseName(name) {

}

function displayCourseHole(subCourseNum,holeNum) {
	document.getElementById("d_course_name").innerHTML="Course: "+course.name;
	var subCourse=course.getSubCourse(subCourseNum);
	if(subCourse!=null) {
		document.getElementById("hole_num").innerHTML="Hole #"+holeNum;
		document.getElementById("seg_name").innerHTML=subCourse.name;
		document.getElementById("d_course_part").innerHTML=""
				for(var i=1;i<(subCourse.getHole(holeNum).getNumFeatures()+1);i++) {
					if(subCourse.getHole(holeNum).getFeature(i).type=="green") {
						document.getElementById("d_course_part").innerHTML+='<div><table><tr><td><img width="77" height="35" style="vertical-align:middle" src="images/map_it_small.png" onclick="mapFeature('+i+');"></td><td  style="vertical-align:middle">'+friendlyType(subCourse.getHole(holeNum).getFeature(i).type)+'<br/>'+subCourse.getHole(holeNum).getFeature(i).name+'</td></tr></table></div>';
					} else {
						document.getElementById("d_course_part").innerHTML+='<div><table><tr><td><img width="77" height="35" style="vertical-align:middle" src="images/map_it_small.png" onclick="mapFeature('+i+');"></td><td colspan="2" style="vertical-align:middle">'+friendlyType(subCourse.getHole(holeNum).getFeature(i).type)+'<br/>'+subCourse.getHole(holeNum).getFeature(i).name+'</td></tr></table></div>';

						document.getElementById("d_course_part").innerHTML+='<tr width="100%"><td style="text-align:right;padding-right:4px">';

						if(!subCourse.getHole(holeNum).getFeature(i).beenMapped || subCourse.getHole(holeNum).getFeature(i).markerFront!=null) {
							document.getElementById("d_course_part").innerHTML+='<input style="vertical-align:middle" type="checkbox" name="useFront'+i+'" checked="true" onclick="toggleFront(this.checked,'+subCourseNum+','+holeNum+','+i+')">Front</td>';
						} else {
							document.getElementById("d_course_part").innerHTML+='<input style="vertical-align:middle" type="checkbox" name="useFront'+i+'" onclick="toggleFront(this.checked,'+subCourseNum+','+holeNum+','+i+')">Front</td>';
						}
						
						//no center
						
						if(!subCourse.getHole(holeNum).getFeature(i).beenMapped || subCourse.getHole(holeNum).getFeature(i).markerBack!=null) {
							document.getElementById("d_course_part").innerHTML+='<input style="vertical-align:middle" type="checkbox" name="useBack'+i+'" checked="true" onclick="toggleBack(this.checked,'+subCourseNum+','+holeNum+','+i+')">Back</td>';
						} else {
							document.getElementById("d_course_part").innerHTML+='<input style="vertical-align:middle" type="checkbox" name="useBack'+i+'" onclick="toggleBack(this.checked,'+subCourseNum+','+holeNum+','+i+')">Back</td>';
						}
						
						document.getElementById("d_course_part").innerHTML+='&nbsp;&nbsp;Delete -&gt;<img style="vertical-align:middle" src="images/delete_icon_small.jpg" onclick="deleteFeature('+subCourseNum+','+holeNum+','+i+')"></img>';
						
						document.getElementById("d_course_part").innerHTML+='</td></tr></table></div>';

					}
					document.getElementById("d_course_part").innerHTML+='<br/><br/>';

			}
	}

}

function deleteFeature(subCourseNum,holeNum,featureNum) {
	var subCourse=course.getSubCourse(subCourseNum);
	subCourse.getHole(holeNum).removeFeature(featureNum);
	displayCourseHole(subCourseNum,holeNum);
}

function mapFeature(featureNum) {
	var feature=course.getSubCourse(mSubCourseNum).getHole(mHoleNum).getFeature(featureNum);
	var answer=false;
	var firstTime=false;
	if(feature.markerFront!=null || feature.markerCenter!=null || feature.markerBack!=null) {
		doubleCheck=true;
		answer=confirm("You already mapped this feature!! Re-Map it?");
	} else {
		firstTime=true;
	}

	if(firstTime || answer ) {

		var checkF=document.getElementsByName("useFront"+featureNum)[0];
		//if(checkF!=null) checkF.checked=true;

		//var checkC=document.getElementsByName("useCenter"+featureNum)[0];
		//if(checkC!=null) checkC.checked=true;

		var checkB=document.getElementsByName("useBack"+featureNum)[0];
		//if(checkB!=null) checkB.checked=true;

		if(feature.markerFront!=null) {
			feature.markerFront.setMap(null);
		}

		if(feature.markerCenter!=null) {
			feature.markerCenter.setMap(null);
		}


		if(feature.markerBack!=null) {
			feature.markerBack.setMap(null);
		}

		var origCenter=map.getCenter();

		var iconFront=new google.maps.MarkerImage("images/front.png",
			  new google.maps.Size(44, 16),
			  new google.maps.Point(0,0),
			  new google.maps.Point(6, 5));

		var iconCenter=new google.maps.MarkerImage("images/center.png",
			  new google.maps.Size(53, 16),
			  new google.maps.Point(0,0),
			  new google.maps.Point(6, 5));



		var iconBack=new google.maps.MarkerImage("images/back.png",
			  new google.maps.Size(44, 16),
			  new google.maps.Point(0,0),
			  new google.maps.Point(6, 5));


		if(feature.type=="green" || checkF.checked) {
			feature.markerFront=new google.maps.Marker({
				position:map.getCenter(),
				map: map,
				title: "Hole "+mHoleNum+" ("+feature.type+" "+feature.name+")",
				draggable: true,
				icon: iconFront,
				raiseOnDrag:false
				});
		}



			var latlong=map.getCenter();
			var lat=latlong.lat();
			var lng=latlong.lng();

			map.setCenter(new google.maps.LatLng(lat+.0001,lng+.0001));

			if(feature.type=="green") {
				feature.markerCenter=new google.maps.Marker({
				position:map.getCenter(),
				map: map,
				title: "Hole "+mHoleNum+" ("+feature.type+" "+feature.name+")",
				draggable: true,
				icon: iconCenter,
				raiseOnDrag:false
				});
			}



			latlong=map.getCenter();
			lat=latlong.lat();
			lng=latlong.lng();


			map.setCenter(new google.maps.LatLng(lat+.0001,lng+.0001));

			if(feature.type=="green" || checkB.checked) {
				feature.markerBack=new google.maps.Marker({
					position:map.getCenter(),
					map: map,
					title: "Hole "+mHoleNum+" ("+feature.type+" "+feature.name+")",
					draggable: true,
					icon: iconBack,
					raiseOnDrag:false
					});
			}


			map.setCenter(origCenter);
			
			feature.beenMapped=true;
	}
}

function showData(featnum,markerLoc) {
}

function encodeXML(str) {
	str=str.replace(/&/g,"&amp;");
	str=str.replace(/"/g,"&quot;");
	str=str.replace(/'/g,"&apos;");
	str=str.replace(/</g,"&lt;");
	str=str.replace(/>/g,"&gt;");
	return str;
}

function output(postForm) {
	totalHoles=0;
	mappedHoles=0;
	var texta='<?xml version="1.0" encoding="utf-8"?>\n';

	texta+="<course>\n"
	texta+="\t<name>"+encodeXML(course.name)+"</name>\n";
	texta+="\t<street>"+encodeXML(course.street)+"</street>\n";
	texta+="\t<city>"+encodeXML(course.city)+"</city>\n";
	texta+="\t<state>"+encodeXML(course.state)+"</state>\n";
	texta+="\t<phone>"+encodeXML(course.phone)+"</phone>\n";

	texta+="\t<sub_courses>\n";
	for (var i=1;i<=course.numSubs;i++) {
		texta+="\t\t<sub_course>\n";
		texta+="\t\t\t<scname>"+encodeXML(course.getSubCourse(i).name)+"</scname>\n";
		for(var j=1;j<=course.getSubCourse(i).numHoles;j++) {
			totalHoles++;
			texta+="\t\t\t<hole>\n";
			texta+="\t\t\t\t<hnum>"+course.getSubCourse(i).getHole(j).number+"</hnum>\n";
			for(var q=1;q<=course.getSubCourse(i).getHole(j).getNumFeatures();q++) {
				if(course.getSubCourse(i).getHole(j).getFeature(q).type=="green" || course.getSubCourse(i).getHole(j).getFeature(q).markerFront!=null || course.getSubCourse(i).getHole(j).getFeature(q).markerCenter!=null || course.getSubCourse(i).getHole(j).getFeature(q).markerBack!=null) {
					texta+="\t\t\t\t<feature>\n";
					texta+="\t\t\t\t\t<fname>"+encodeXML(course.getSubCourse(i).getHole(j).getFeature(q).name)+"</fname>\n";
					texta+="\t\t\t\t\t<ftype>"+course.getSubCourse(i).getHole(j).getFeature(q).type+"</ftype>\n";
					if(course.getSubCourse(i).getHole(j).getFeature(q).markerFront!=null) {
						if(course.getSubCourse(i).getHole(j).getFeature(q).type=="green") {
							mappedHoles++;
							if(i==1 && j==9) {
								lat9th=course.getSubCourse(i).getHole(j).getFeature(q).markerFront.getPosition().lat();
								lon9th=course.getSubCourse(i).getHole(j).getFeature(q).markerFront.getPosition().lng();
							}
						}
						texta+="\t\t\t\t\t<frontPosition>"+course.getSubCourse(i).getHole(j).getFeature(q).markerFront.getPosition().toString()+"</frontPosition>\n";
					}
					if(course.getSubCourse(i).getHole(j).getFeature(q).markerCenter!=null) {
										texta+="\t\t\t\t\t<centerPosition>"+course.getSubCourse(i).getHole(j).getFeature(q).markerCenter.getPosition().toString()+"</centerPosition>\n";
					}
					if(course.getSubCourse(i).getHole(j).getFeature(q).markerBack!=null) {
										texta+="\t\t\t\t\t<backPosition>"+course.getSubCourse(i).getHole(j).getFeature(q).markerBack.getPosition().toString()+"</backPosition>\n";
					}
					texta+="\t\t\t\t</feature>\n";
				}
			}
			texta+="\t\t\t</hole>\n";
		}

		texta+="\t\t</sub_course>\n";

	}
	texta+="\t</sub_courses>\n";
	texta+="</course>";

	document.getElementsByName("outtext")[0].value=texta;
	document.getElementsByName("course_data")[0].value=texta;
	document.getElementsByName("lat9th")[0].value=lat9th;
	document.getElementsByName("lon9th")[0].value=lon9th;
	if(postForm) {
		//document.theForm.submit();
		talktoServer(texta);
	} else {
		document.getElementById("output").style.visibility="visible";
	}
}


function Hole(number) {
	this.number=number;
	var features=new Array();
	var featureIndex=0;



	this.addFeature=function(feature) {
		features[featureIndex]=feature;
		featureIndex++;
	};

	this.getFeature=function(feature) {
			return  features[feature-1];
		};

	this.getNumFeatures=function() {
			return featureIndex;
		};
		
	this.removeFeature=function (featureNum) {
		feature=features[featureNum-1];
		if(feature.markerFront!=null) {
			feature.markerFront.setMap(null);
		}
		if(feature.markerBack!=null) {
			feature.markerBack.setMap(null);
		}
		
		features.splice(featureNum-1,1);
		featureIndex--;	
	};
}

function Feature(type,name) {
	this.type=type;
	this.name=name;
	var beenMapped;
	var markerFront;
	var markerCenter;
	var markerBack;
}

function SubCourse(name,numHoles) {
	this.name=name;
	this.numHoles=numHoles;
	var holes=new Array();

	this.getName=function() {
					return this.name;
				};

	for(var i=0;i<numHoles;i++) {
		holes[i]=new Hole(i+1);
		holes[i].addFeature(new Feature("green","The Green"));
		//alert(holes[i].number);
	}

	this.getHole =function(holeNum) {
					return holes[holeNum-1];
				};

}

function Course(name,street, city, state, phone) {
	this.name=name;
	this.street=street;
	this.city=city;
	this.state=state;
	this.phone=phone;
	this.numSubs=0;
	this.test=	function(teststring) {
					return this.name+teststring;
				};
	var subCourse1;
	var subCourse2;
	var subCourse3;
	var subCourse4;
	var subCourse5;
	var subCourse6;

	this.getSubCourse =function (subCourseNum) {
		switch(subCourseNum) {
			case 1:
				return this.subCourse1;
				break;
			case 2:
				return this.subCourse2;
				break;
			case 2:
				return this.subCourse2;
				break;
			case 3:
				return this.subCourse3;
				break;
			case 4:
				return this.subCourse4;
				break;
			case 5:
				return this.subCourse5;
				break;
			case 6:
				return this.subCourse6;
				break;
		}
	}
}

function friendlyType(type) {
	if(type=="green") return "Green";
	if(type=="gsb") return "Green Side Bunker";
	if(type=="fwb") return "Fairway Bunker";
	if(type=="wh") return "Water Hazard";
	if(type=="target") return "Target/Point";
	if(type=="tree") return "Tree(s)";
	if(type=="woods") return "Woods";
	if(type=="brush") return "Brush";
	if(type=="outofbounds") return "Out of Bounds";
	if(type=="stream") return "Stream";
	if(type=="gully") return "Gully";
	if(type=="ravine") return "Ravine";
	if(type=="bridge") return "Bridge";
	return "Feature";

}


function addFeature() {
	var p_type=document.getElementsByName("feaType")[0].value;
	var p_name=document.getElementsByName("feaName")[0].value;
	if(p_name==null || p_name.length==0) {
		alert("Please enter a feature description");
		return;
	}
	var feature=new Feature(p_type,p_name);

	document.getElementsByName("feaName")[0].value="";

	course.getSubCourse(mSubCourseNum).getHole(mHoleNum).addFeature(feature);
	displayCourseHole(mSubCourseNum,mHoleNum);
}



