// The constructor function:  creates a cookie object for the specified
// document, with a specified name and optional attributes.
// Arguments
//    document:  The Document object that the cookie is stored for.  Required.
//    name:		A string that specifies a name for the cookie.  Required.
//    hours:		An optional number that specifies the number of hours from now that the cookies expires.
//    path:  		An optional string that specifies the cookie path attribute
//    domain:		An optional string that specifies the cookie domain attribute.
//    secure:		An optional Boolean value that, if true, requests a secure cookie.
//
function Cookie(document, name, hours, path, domain, secure)
{
	// All the predefined properties of this object begin with '$'
	// to distinguish them from other properties which are the values to
	// be stored in the cookie.
	this.$document = document;
	this.$name = name;
	if (hours)
		this.$expiration = new Date((new Date()).getTime() + hours*10800000);
	else this.$expiration = null;
	if (path) this.$path = path; else this.$path = null;
	if (secure) this.$secure = true; else this.$secure = false;
}

// This function is the store() method of the cookie object.
function _Cookie_store()
{
	// First, loop through the properties of the Cookie object and
	// put together the value of the cookie.  Since cookies use the
	// equals sign and semicolons as separators, we'll use colons
	// and ampersands for the individual state variables we store
	// within a single cookie value.  Note that we escape the value
	// of each state variable, in case it contains punctuation or other
	// illegal characters.
	var cookieval = "";
	for (var prop in this) {
		// Ignore properties with names that begin with '$' and also methods.
		if ((prop.charAt(0) == '$') || ((typeof this[prop]) == 'function'))
			continue;
		if (cookieval != "") cookieval += '&';
		cookieval += prop + ':' + escape(this[prop]);
	}
	
	// Now that we have the value of the cookie, put together the 
	// complete cookie string, which includes the name and the various
	// attributes specified when the Cookie object was created.
	var cookie = this.$name + '=' + cookieval;
	if (this.$expiration)
		cookie += '; expires= ' + this.$expiration.toGMTString();
	if (this.$path) cookie += '; path=' + this.$path;
	if (this.$domain) cookie += '; domain=' + this.$domain;
	if (this.$secure) cookie += '; secure';
	
	// Now store the cookie by setting the magic Document.cookie property.
	this.$document.cookie = cookie;
}
	
	// This function is the load() method of the Cookie object.
function _Cookie_load()
	{
		// First, get a list of all cookies that pertain to this document.
		// We do this by reading the magic Document.cookie property.
		var allcookies = this.$document.cookie;
		if (allcookies == "") return false;
		
		// Now extract just the named cookie from that list.
		var start = allcookies.indexOf(this.$name + '=');
		if (start == -1) return false;  //Cookie not defined for this page.
		start += this.$name.length + 1;  //Skip name and equals sign.
		var end = allcookies.indexOf(';', start);
		if (end == -1) end = allcookies.length;
		var cookieval = allcookies.substring(start, end);
		
		// Now that we've extracted the value of the named cookie, we've
		// got to break that value down into individual state variable
		// names and values.  The name/value pairs are separated from each
		// other by ampersands, and the individual names and values are
		// sepearated from each other by colons,.  We use the split method
		// to parse everything.
		var a = cookieval.split('&');		// Break it into an array of name/value pairs.
		for (var i = 0; i < a.length; i++)	// Break each pair into an array.
			a[i] = a[i].split(':');
		
		// Now that we've parsed the cookie value, set all the names and values
		// of the state variables in this Cookie object.  Note that we unescape()
		// the property value, because we called escape() when we stored it.
		for (var i = 0; i < a.length; i++) {
			this[a[i][0]] = unescape(a[i][1]);
			
 	}
		// We are done, so return the success code.
		return true;
	}
	
	// This function is the remove() method of the Cookie object.
function _Cookie_remove()
	{
		var cookie;
 		cookie = this.$name + '=';
//line 100
		if (this.$path) cookie += '; path=' + this.$path;
		if (this.$domain) cookie += '; domain=' + this.$domain;
		cookie += '; expires=Fri, 02-Jan-1970 00:00:00 GMT';
		
		this.$document.cookie = cookie;
	}
	
	//**************************************************************************************
	// demonstrating how to use an image as a "button" for a hyperlink
	// in the img, you need to call the three subs as follows
	//		 onMouseover="ChangePicture(this, 'NEW IMAGE TO REPLACE');"
	//		 onMouseout="ChangeBack(this, 'OLD image to PUT BACK');"
	//		 onClick="GetIt('http://name of the web site to link to',);"

function ChangePicture(myName, NewImage) 
		{
		myName.src=NewImage
		}
	function ChangeBack(myName, OldImage)
		{
		myName.src=OldImage
		}
	function GetIt(myName)
		{
		window.open(myName, "MyWindow");
		}

	// end of the three subs to accomplish the image "button"

function CheckForGarbage()
	{
	//Check to see if there is garbage in the data fields
		var j=0
		//a list of the combination of letters to look for when validating the information in the forms
		var BadWords = new Array("asd", "jkl", "qwe", "yui", "1234", "aaa", "bbb", "ccc", "ddd", "eee", "fff", "ggg", "hhh", "iii", "jjj", "kkk", "lll", "mmm", "nnn", "ooo", "qqq", "rrr", "sss", "ppp", "xxx", "yyy", "zzz")
		MySwitch = -1
		for(var i=1; i<document.Form1.elements.length; i++)
		{
			for (j=0; j<BadWords.length; j++) {
				var CheckThis = BadWords[j]
				if (document.Form1.elements[i].value.indexOf(BadWords[j]) != -1) {alert("Input data in error in " + document.Form1.elements[i].name); MySwitch=1; return}
			}
//			if (document.Form1.elements[i].value.length == 1) {alert("Input data in error in " + document.Form1.elements[i].name + " = " + document.Form1.elements[i].value); MySwitch=1; return}
//			alert(document.Form1.elements[i].name + " = " + document.Form1.elements[i].value + ", Length = " + document.Form1.elements[i].value.length)
		}
			if (document.Form1.FirstName.value == "" || document.Form1.LastName.value == "" || document.Form1.City.value == "" || document.Form1.State.value == "" || document.Form1.DayPhone.value == "" || document.Form1.EveningPhone.value == "" || document.Form1.Email.value == "" || document.Form1.State.value == "" || document.Form1.CodeNumber.value == "")
				{alert("Information in red must be entered."); MySwitch = 1;return}
			if (document.Form1.CodeNumber.value.length < 6) {MySwitch = 1; alert("CodeNumber must be six digits minimum"); return}
	}
//line 147	
	// This function is performed at the click of the submit button.  It saves the information from the
	//for to the cookie
function mySubmit()
	{
		visitordata.firstname = document.Form1.FirstName.value;
		visitordata.lastname = document.Form1.LastName.value;
		visitordata.codenumber = document.Form1.CodeNumber.value;
		visitordata.city = document.Form1.City.value;
		visitordata.state = document.Form1.State.value;
		visitordata.dayphone = document.Form1.DayPhone.value;
		visitordata.EveningPhone = document.Form1.EveningPhone.value;
		visitordata.email = document.Form1.Email.value;
		visitordata.store();
		CheckForGarbage();
		if (MySwitch == 1) {
			alert("I did not submit your form because of errors in the information you entered.");
		    }
		  else
			{
			document.Form1.submit();
			window.status="Your form has been submitted successfully";
			}
	}
	
function myFillfunction()
	//loads the form with the information retrieved from the Cookie
	{
		if (visitordata.load())
		{
			document.Form1.FirstName.value = visitordata.firstname;
			document.Form1.LastName.value = visitordata.lastname;
			document.Form1.CodeNumber.value = visitordata.codenumber;
			document.Form1.City.value = visitordata.city;
			document.Form1.State.value = visitordata.state;
			document.Form1.DayPhone.value = visitordata.dayphone;
			document.Form1.EveningPhone.value = visitordata.EveningPhone;
			document.Form1.Email.value = visitordata.email;
		}
	}
	//******************************************************************************************
	// Create the cookie we'll use to save state for this web page.
	// Since we are using the default path, this cookie will be accessible
	// to all web pages in the same directory as this file or "below" it.
	// Therefore, it should have a name that is unique among those pages.
	// Note that we set the expiration to 10 days in the future.
	var visitordata = new Cookie(document, "name_color_count_state", 240);
	
	// Create a dummy Cookie object, so we can use the prototype object to make
	// the functions above into methods.
	new Cookie();
	Cookie.prototype.store = _Cookie_store;
	Cookie.prototype.load = _Cookie_load;
	Cookie.prototype.remove = _Cookie_remove;
	var MySwitch = 0;
	
	// Keep track of how many times this user has visited the page:
	if (visitordata.visits == null) visitordata.visits = 0;
	visitordata.visits++;
	

