function quickForm(){
	if(!document.forms["quick_contact"]) return false;
	var quickform = document.forms["quick_contact"];
	var quickfields = quickform.elements;
	for(var i=0; i<quickfields.length; i++){
		if(quickfields[i].name != "quick_sub"){
			quickfields[i].setAttribute("class","isdefault");
			quickfields[i].onfocus = function(){
				if((this.type == "text" || this.type == "textarea") && this.getAttribute("class") == "isdefault"){
					clearField(this);
					return false;
				}
			}
		}
	}
	/*
	quickform.onsubmit = function(){
		if(params = validateQuickForm(this)){
			sendForm(params, this);
		}else{
			// error display
			document.getElementById("forminfo").innerHTML = "Please fix the errors highlighted below.";
		}
		return false;
	}
	*/
}

function prepNewsForm(){
	if(!document.forms["news"]) return false;
	var myform = document.forms["news"];
	var myfield = myform.elements;
	for(var i=0; i<myfield.length; i++){
		if(myfield[i].value = "E-Mail:"){
			myfield[i].onfocus = function(){
				this.value = "";
			}
		}
	}
}

function clearField(myfield){
	if(myfield.getAttribute("class") == "highlight"){
		myfield.setAttribute("class","nohighlight");
		myfield.value = "";
	}
	else if(myfield.getAttribute("class") == "isdefault"){
		myfield.setAttribute("class","nohighlight");
		myfield.value = "";
	}
	return false;
}

function validateQuickForm(myform){
	var form_fields = myform.elements;
	var params = "";
	var errors = false;
	for(var i=0; i<form_fields.length; i++){
			if(form_fields[i].name == "name" && (form_fields[i].value == "Name*:" || form_fields[i].value == "" || form_fields[i].value == null)){
				errors = true;
				highlight_field(form_fields[i]);
				form_fields[i].value = "Name*:";																										 
			}
			else if(form_fields[i].name == "add1" && (form_fields[i].value == "Address*:" || form_fields[i].value == "" || form_fields[i].value == null)){
				errors = true;
				highlight_field(form_fields[i]);
				form_fields[i].value = "Address*:";
			}
			else if(form_fields[i].name == "add2" && (form_fields[i].value == "City, State, Zip*:" || form_fields[i].value == "" || form_fields[i].value == null)){
				errors = true;
				highlight_field(form_fields[i]);
				form_fields[i].value = "City, State, Zip*:";
			}
			else if(form_fields[i].name == "email" && (form_fields[i].value == "E-Mail*:" || form_fields[i].value == "" || form_fields[i].value == null)){
				errors = true;
				highlight_field(form_fields[i]);
				form_fields[i].value ="E-Mail*:";
			}
			else if(form_fields[i].getAttribute("class") != "isdefault"){
				params += form_fields[i].name + "=" + form_fields[i].value + "&";
			}
	}
	var temp = params.length - 1;
	if(errors == true) params = false;
	if (params) params = params.substring(0, temp);
	// alert (params);
	return params;
}

function highlight_field(myfield){
	myfield.setAttribute("class","highlight");
	myfield.onfocus = function(){
		clearField(myfield);
		return false;
	}
}

function sendForm(params, myform){
	var informer = document.getElementById("forminfo");
	var request = getHTTPObject();
	if (request) {
		request.onreadystatechange = function() {
			if(request.readyState < 4){
				informer.innerHTML = "Processing your request.";
			}
			if(request.readyState == 4){
				var data = request.responseText;
				if(data){
					var res = data.split("&");
					if(res[0] == "sent=TRUE"){
						var disp = res[1].split("=");
						informer.innerHTML =disp[1];
						myform.reset();
						return false;
					}else{
						var disp = res[1].split("=");
						informer.innerHTML =disp[1];
						for(var i=2; i<res.length; i++){
							var err = res[i].split("=");
							var myfield = err[0];
							var mydata = err[1];
							var allfields = myform.elements;
							for(var k=0; k<allfields.length; k++){
								if(allfields[k].name == myfield){
									allfields[k].value = mydata;
									highlight_field(allfields[k]);
									k = allfields.length;
								}
							}
						}
						return false;
					}
				}else{
					informer.innerHTML = "Your comments could not be sent. Please try again.";
				}
			}
		};
		request.open( "GET", "assets/scripts/submitform.php?"+params, true );
		request.send(null);
	}
}

function prepare_show_elements(){
	if(!document.getElementsByTagName("a")) return false;
	var mylinks = document.getElementsByTagName("a");
	for(var i=0; i<mylinks.length; i++){
		if (mylinks[i].getAttribute("class") == "show_element"){
			mylinks[i].onclick = function(){
				var myhref = this.getAttribute("href");
				var show = myhref.split("show=");
				var elem = show[1];
				
				return show_element(elem);
			}
		}
		if (mylinks[i].getAttribute("class") == "hide_element"){
			mylinks[i].onclick = function(){
				var myhref = this.getAttribute("href");
				var show = myhref.split("hide=");
				var elem = show[1];
				
				return hide_element(elem);
			}
		}
	}
}

function show_element(my_element){
	if(!document.getElementById) return false;
	if(!document.getElementById(my_element)) return false;
	var elem = document.getElementById(my_element);
	elem.style.display = "block";
	return false;
}
function hide_element(my_element){
	if(!document.getElementById) return false;
	if(!document.getElementById(my_element)) return false;
	var elem = document.getElementById(my_element);
	elem.style.display = "none";
	return false;
}

function consultForm(){
	if(!document.forms["consult_form"]) return false;
	var consult = document.forms["consult_form"];
	var consultfields = consult.elements;
	for(var i=0; i<consultfields.length; i++){
		if(consultfields[i].name != "consult_sub" && consultfields[i].type == "text" && (consultfields[i].value != null || consultfields[i].value != "")){
			consultfields[i].setAttribute("class","isdefault");
			consultfields[i].onfocus = function(){
				if((this.type == "text" || this.type == "textarea") && this.getAttribute("class") == "isdefault"){
					clearField(this);
					return false;
				}
			}
		}
	}
	consult.onsubmit = function(){
		if(params = validateConsult(this)){
			submitConsult(params, this);
		}else{
			// error display
			document.getElementById("forminfo").innerHTML = "Please fix the errors highlighted below.";
			document.getElementById("forminfo").setAttribute("class", "error");
		}
		return false;
	}
}

function validateConsult(myform){
	var form_fields = myform.elements;
	var params = "";
	var errors = false;
	for(var i=0; i<form_fields.length; i++){
		// (form_fields[i].getAttribute("class") == "isdefault" || 
		if(form_fields[i].value == "" || form_fields[i].value == null){
			if(form_fields[i].name == "fn" || form_fields[i].name == "p" || form_fields[i].name == "e" || form_fields[i].name == "a1" || form_fields[i].name == "c" || form_fields[i].name == "z") {
				errors = true;
				highlight_field(form_fields[i]);
			}
			else if(form_fields[i].name == "consult_sub" || form_fields[i].name == "s"){
				params += form_fields[i].name + "=" + form_fields[i].value + "&";
			}
		}
		else if(form_fields[i].type == "checkbox" && form_fields[i].checked == true){
			params += form_fields[i].name + "=" + form_fields[i].value + "&";
		}
		else if(form_fields[i].type != "checkbox"){
			params += form_fields[i].name + "=" + form_fields[i].value + "&";
		}
	}
	var temp = params.length - 1;
	if(errors == true){ 
		params = false; 
	}
	if (params) {
		params = params.substring(0, temp);
	}
	// alert (params);
	return params;
}

function submitConsult(params, myform){
	// alert(params);
	var informer = document.getElementById("forminfo");
	var conterr =  document.getElementById("contacterror");
	var request = getHTTPObject();
	if (request) {
		request.onreadystatechange = function() {
			if(request.readyState < 4){
				informer.innerHTML = "Processing your request.";
				informer.setAttribute("class", "");
			}
			if(request.readyState == 4){
				var data = request.responseText;
				// alert(data);
				if(data){
					var res = data.split("&");
					if(res[0] == "sent=TRUE"){
						var disp = res[1].split("=");
						if(res[2] == "submit=Subscribe"){
							var newsparams = res[2] + "&" + res[3];
							// alert (newsparams);
							addNewsLetter(newsparams);
						}
						informer.innerHTML =disp[1];
						informer.setAttribute("class", "error");
						conterr.innerHTML = "";	
						myform.reset();
						return false;
					}else{
						var disp = res[1].split("=");
						informer.innerHTML =disp[1];
						informer.setAttribute("class", "error");
						for(var i=2; i<res.length; i++){
							var err = res[i].split("=");
							var myfield = err[0];
							var mydata = err[1];
							if(myfield == "contacterr"){
								conterr.innerHTML = mydata;	
								conterr.setAttribute("class","error");
							}
							var allfields = myform.elements;
							for(var k=0; k<allfields.length; k++){
								if(allfields[k].name == myfield){
									allfields[k].value = mydata;
									highlight_field(allfields[k]);
									k = allfields.length;
								}
							}
						}
						return false;
					}
				}else{
					informer.innerHTML = "Your comments could not be sent. Please try again.";
					informer.setAttribute("class", "error");
				}
			}
		};
		request.open( "GET", "assets/scripts/consultform.php?"+params, true );
		request.send(null);
	}
}

function addNewsLetter(params){
	var myvars = params.split("&")
	var subval = myvars[0].split("=");
	var email = myvars[1].split("=");
	
	var myform = document.createElement("form");
	myform.setAttribute("action","http://drvanek.cmail1.com/s/275370/");
	myform.setAttribute("method","POST");
	myform.setAttribute("name","newsform");
	myform.style.visibility = "hidden";
	
	var myinput = document.createElement("input");
	myinput.setAttribute("type","text");
	myinput.setAttribute("value",email[1]);
	myinput.setAttribute("name",email[0]);
	
	var mysubmit = document.createElement("input");
	mysubmit.setAttribute("type","submit");
	mysubmit.setAttribute("value",subval[1]);
	
	myform.appendChild(myinput);
	myform.appendChild(mysubmit);
	
	var elem = document.getElementById("newsletterform");
	elem.appendChild(myform);
	
	myform.submit();
	// newWindow.onload = newWindow.close();
}

addLoadEvent(prepare_show_elements);
addLoadEvent(quickForm);
// addLoadEvent(consultForm);
addLoadEvent(prepNewsForm);