// Function to check the form for errors or omissions
function FormCheck()
{
	
	// The form
	var formobj = document.getElementById('ideaform');
	
	// The required field names
	var fieldRequired = Array("the_name","the_email","the_message");

	// The human-readable description of the required fields
	var fieldDescription = Array("Your Name","Your Email","Your Idea");
	
	// The beginning of the error message
	var alertMsg = "Please fill in all required fields, including:\n";
	var l_Msg = alertMsg.length; // Set this as the base length of the message to check against later

	// Check every required field, based on its type
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " * " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " * " + fieldDescription[i] + "\n";
				}
				break;
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " * " + fieldDescription[i] + "\n";
				}
				break;
			case "checkbox":
				if (!obj.checked){
					alertMsg += " * " + fieldDescription[i] + "\n";
				}
				break;
			default:
				if (obj.value == "" || obj.value == null){
					alertMsg += " * " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	// If there were no alerts beyond the base message, submit the form
	if (alertMsg.length == l_Msg) {
		document.ideaform.submit();
		return true;
		
	// Otherwise, don't submit the form
	} else {
		alert(alertMsg);
		return false;
	}
}





var btn = {
    init : function() {
        if (!document.getElementById || !document.createElement || !document.appendChild) return false;
        as = btn.getElementsByClassName('btn(.*)');
        for (i=0; i<as.length; i++) {
            if ( as[i].tagName == "INPUT" && ( as[i].type.toLowerCase() == "submit" || as[i].type.toLowerCase() == "button" ) ) {
                var a1 = document.createElement("a");
                a1.appendChild(document.createTextNode(as[i].value));
                a1.className = as[i].className;
                a1.id = as[i].id;
                as[i] = as[i].parentNode.replaceChild(a1, as[i]);
                as[i] = a1;
                as[i].style.cursor = "pointer";
            }
            else if (as[i].tagName == "A") {
                var tt = as[i].childNodes;
            }
            else { return false };
            var i1 = document.createElement('i');
            var i2 = document.createElement('i');
            var s1 = document.createElement('span');
            var s2 = document.createElement('span');
            s1.appendChild(i1);
            s1.appendChild(s2);
            while (as[i].firstChild) {
              s1.appendChild(as[i].firstChild);
            }
            as[i].appendChild(s1);
            as[i] = as[i].insertBefore(i2, s1);
        }
		
		
        // The following lines submits the form if the button id is "submit_btn"
		if (document.getElementById('submit')) {
        btn.addEvent(document.getElementById('submit'),'click',function() {
            var form = btn.findForm(this);
            document.commentform.submit();
        });
		}
		
		if (document.getElementById('sendidea')) {
        btn.addEvent(document.getElementById('sendidea'),'click',function() {
			return FormCheck();
            //var form = btn.findForm(this);
            //document.ideaform.submit();
        });
		}
		
		if (document.getElementById('searchsubmit')) {
        btn.addEvent(document.getElementById('searchsubmit'),'click',function() {
            var form = btn.findForm(this);
            document.searchform.submit();
        });
		}
		
		if (document.getElementById('searchsubmitpg')) {
        btn.addEvent(document.getElementById('searchsubmitpg'),'click',function() {
            var form = btn.findForm(this);
            document.searchpg.submit();
        });
		}
		
		if (document.getElementById('subscribeBT')) {
        btn.addEvent(document.getElementById('subscribeBT'),'click',function() {
            var form = btn.findForm(this);
            document.subscribeForm.submit();
        });
		}
		
        // The following lines resets the form if the button id is "reset_btn"
		if (document.getElementById('reset_btn')) {
        btn.addEvent(document.getElementById('reset_btn'),'click',function() {
            var form = btn.findForm(this);
            form.reset();
        });
		}
    },
	
	
    findForm : function(f) {
        while(f.tagName != "FORM") {
            f = f.parentNode;
        }
        return f;
    },
    addEvent : function(obj, type, fn) {
        if (obj.addEventListener) {
            obj.addEventListener(type, fn, false);
        }
        else if (obj.attachEvent) {
            obj["e"+type+fn] = fn;
            obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
            obj.attachEvent("on"+type, obj[type+fn]);
        }
    },
    getElementsByClassName : function(className, tag, elm) {
        var testClass = new RegExp("(^|\s)" + className + "(\s|$)");
        var tag = tag || "*";
        var elm = elm || document;
        var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
        var returnElements = [];
        var current;
        var length = elements.length;
        for(var i=0; i<length; i++){
            current = elements[i];
            if(testClass.test(current.className)){
                returnElements.push(current);
            }
        }
        return returnElements;
    }
}

btn.addEvent(window,'load', function() { btn.init();} );
