var valid = 0;
var param = "testing";

// RUNS CODE WHEN THE PAGE IS FINISHED LOADING
jQuery(document).ready(function() {	
	
	
	//Fade in roll over state
	jQuery("#mainMenu .level-1").hoverIntent(function() {
		jQuery(this).find("ul").slideDown(300);
	},
	function() {
		jQuery(this).find("ul").slideUp(100);
	});
	

	// Scripts that don't work in IE
	if (!jQuery.browser.msie) {
	    jQuery("#mainMenu .level-1").blend({speed:300});
	} // END OF NON-IE Scripts
	
	
}); //close document.ready

// Test Class //
function Circle(radius) {
	this.radius = radius;
	this.getArea = function() {
		return (this.radius*this.radius*3.14);
	};
	this.work = function() {
		return this.radius;
	}
	this.getCircumference = function() {
		var diameter = this.radius*2;
		var circumference = diameter*3.14;
		return circumference;
	};
}

// Detect Browser: this.app; Detect OS: this.os //
function Browser() {
	this.app = function() {
		var inc;
		if (navigator.appName.indexOf('Microsoft')>=0) inc='ie';
		else if (navigator.appName.indexOf('Netscape')>=0) inc='firefox';
		return (inc);
	};
	this.version = function() {
		return (navigator.appVersion);
	};
	this.os = function() {
		return (navigator.platform);
	};
}

//Add Events
function AddEvents(elname,elevent,func,paramiter) {
	var browser = new Browser();
	var eventVar = "global?";
	this.elname = elname;
	this.elevent = elevent;
	this.func = func;
	this.paramiter = paramiter;
	param = this.paramiter;
	this.classElements = function() {
		var nodes = document.getElementsByClassName(elname);
		for(i=0;i<nodes.length;i++) {
			if(browser.app=='ie') nodes[i].attachEvent(this.elevent, eval(this.func));
			else nodes[i].addEventListener(this.elevent, validate, false);
		}
	};
	this.nameElements = function() {
		var nameNodes = document.getElementsByName(elname);
		for(i=0;i<nameNodes.length;i++) {
			if(browser.app=='ie') nameNodes[i].attachEvent(this.elevent, eval(this.func));
			else nameNodes[i].addEventListener(this.elevent, eval(this.func), false);
		}
	};
	this.idElements = function() {
		var dom = document.getElementById(elname);
		if(browser.app()=='ie') dom.attachEvent(this.elevent, eval(this.func));
		else dom.addEventListener(this.elevent, eval(this.func), false);
	};
}

function test() {
	alert("test function");
	//alert(window.AddEvents.eventVar);
}

//AJAX param[0]: url, param[1]: id of response field, 
function ajax(action) 
{		
	if(window.XMLHttpRequest)
	{
		request = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		request = new ActiveXObject("MSXML2.XMLHTTP");
	}
	
	sendRequest(action);
}

function sendRequest(action)
{
	var register = [document.getElementById('name').value,document.getElementById('email').value,document.getElementById('password').value,document.getElementById('address').value,document.getElementById('city').value,document.getElementById('state').value,document.getElementById('phone').value]; 
	alert(register);
	url = 'controller/controller.php?action='+action;
	request.onreadystatechange = onResponse;
	request.open("GET", url, true);
	request.send(null);
}

function checkReadyState(obj)
{
	if(obj.readyState == 0) { document.getElementById('submit').value = "sending..."; }
	if(obj.readyState == 1) { document.getElementById('submit').value = "sending..."; }
	if(obj.readyState == 2) { document.getElementById('submit').value = "sending..."; }
	if(obj.readyState == 3) { document.getElementById('submit').value = "sending..."; }
	if(obj.readyState == 4)
	{
		if(obj.status == 200)
		{
			document.getElementById('submit').value = "sending...";
			return true;
		}
		else if(obj.status == 404)
		{
			document.getElementById(param[1]).innerHTML = "File not found";
		}
		else
		{
			document.getElementById(param[1]).innerHTML = "There was a problem retrieving the content.";
		}
	}
}

function onResponse(id) 
{
	if(checkReadyState(request))
	{
		document.getElementById(param[1]).innerHTML = request.responseText;
	}
}
//End AJAX Object

//Validation
function validate(e) {
	var labelTxt1 = document.getElementById("lb_"+e.id).innerHTML;
	var alphaExpression = /^[a-zA-Z]+$/;
	var numericExpression = /^[0-9]+$/;
	var zipExpression = /b[0-9]{5}(?:-[0-9]{4})?\b/;
	var linkExpression = new RegExp('<a[^>]*>(.*?)');
	//var htmlExpression = new RegExp('<([a-zA-Z][a-zA-Z0-9]*)[^>]*>(.*?)</\1>');
	if (e.value.match(linkExpression) || e.value=='') {
		changeColor(e.id, e.type, "You must fill out this field", labelTxt1);
	}
			
	//Fullname
	else if (e.id.indexOf('name')>=0 || e.name.indexOf('name')>=0) {
		if (e.value.split(" ").length < 2) {
			changeColor(e.id, e.type, "Enter your fullname", labelTxt1);
		}
		else {
			validItem(e.id, labelTxt1);
		}
	}
	//Phone
	else if (e.id.indexOf('phone')>=0 || e.name.indexOf('phone')>=0) {
		if (e.value.match(alphaExpression)) {
			changeColor(e.id, e.type, "Enter a valid phone number", labelTxt1);
		}
		else {
			validItem(e.id, labelTxt1);
		}
	}
	//Zip
	else if (e.id.indexOf('zip')>=0 || e.name.indexOf('zip')>=0) {
		if (e.value.match(alphaExpression) || e.value.length != 5) {
			changeColor(e.id, e.type, "Enter a valid zip code", labelTxt1);
		}
		else {
			validItem(e.id, labelTxt1);
		}
	}
	//Email
	else if (e.id.indexOf('email')>=0 || e.name.indexOf('email')>=0) {
		var emailExpression = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (!emailExpression.test(document.getElementById(e.id).value)) {
			changeColor(e.id, e.type, "Enter a correct email address", labelTxt1);
		}
		else {
			validItem(e.id, labelTxt1)
		}
	}
	//Password
	else if (e.id.indexOf('password')>=0 || e.name.indexOf('password')>=0) {
		if (e.value.split(" ").length > 1) {
			changeColor(e.id, e.type, "Make sure there are no spaces", labelTxt1);
		}
		else {
			validItem(e.id, labelTxt1);
		}
	}
	//Address
	else if (e.id.indexOf('address')>=0 || e.name.indexOf('address')>=0) {
		var splitadd = document.getElementById('address').value.split(" ");
		if (splitadd.length < 2 || splitadd[0].match(alphaExpression)) {
			changeColor(e.id, e.type, "Your address is not correct", labelTxt1);
		}
		else {
			validItem(e.id, labelTxt1);
		}
	}
	//Link
	else if (e.id.indexOf('link')>=0 || e.name.indexOf('link')>=0) {
		if ((e.value.indexOf('http://') && e.value.indexOf('www.'))<0) {
			changeColor(e.id, e.type, "Enter a valid link", labelTxt1);
		}
		else {
			validItem(e.id, labelTxt1);
		}
	}
	//Textarea
	else if (e.type=='textarea') {
		if (e.value.match(linkExpression)) {
			changeColor(e.id, e.type, "Sorry, HTML is not allowed", labelTxt1);
		}
		else {
			validItem (e.id, labelTxt1);
		}
	}
	else {
		validItem (e.id, labelTxt1);
	}
	if (valid >= document.getElementsByClassName('formNode').length) {
		document.getElementById("submit").type = "submit";
		valid = 0;
	}
}

function formSubmit() {
	if (valid >= document.getElementsByClassName('formNode').length) {
		ajax('register');
		valid = 0;
	}
}

//Actions when the item is NOT VALID
function changeColor(elid, eltype, message, label2) {
	var alertLabel = label2.split("<i>");
	document.getElementById(elid).style.borderColor = "#E77776";
	document.getElementById(elid).style.backgroundColor = "#FEDEDE";
	document.getElementById("lb_"+elid).innerHTML = alertLabel[0] + " <i><b>- "+message+"</b></i>";
}

//Item IS VALID
function validItem(elemid, label) {
	var origLabel = label.split("-");
	document.getElementById(elemid).style.border="";
	document.getElementById(elemid).style.backgroundColor="";
	document.getElementById("lb_"+elemid).innerHTML = origLabel[0];
	valid++;
}

window.onload = loaditems;
function loaditems() {
	var currentPage = window.location;
	var smallURL = currentPage.toString().split("com/")[1];
	switch(smallURL) {
		case "index.php":
			document.getElementById("home").style.color = "#333";
			document.getElementById("home").style.backgroundColor = "#fff";
			break;
		case "about_bermel.php":
			document.getElementById("about").style.color = "#333";
			document.getElementById("about").style.backgroundColor = "#fff";
			break;
		case "faq.php":
			document.getElementById("faq").style.color = "#333";
			document.getElementById("faq").style.backgroundColor = "#fff";
			break;
		case "contact_us.php":
			document.getElementById("contact").style.color = "#333";
			document.getElementById("contact").style.backgroundColor = "#fff";
			break;
		case "broker.php":
			document.getElementById("broker").style.color = "#333";
			document.getElementById("broker").style.backgroundColor = "#fff";
			break;
		case "brokerindex.php":
			document.getElementById("broker").style.color = "#333";
			document.getElementById("broker").style.backgroundColor = "#fff";
			break;
		case "plans.php":
			document.getElementById("plans").style.color = "#333";
			document.getElementById("plans").style.backgroundColor = "#fff";
			break;
		case "item.php":
			document.getElementById("plans").style.color = "#333";
			document.getElementById("plans").style.backgroundColor = "#fff";
			break;
		case "medicare.php":
			document.getElementById("medicare").style.color = "#333";
			document.getElementById("medicare").style.backgroundColor = "#fff";
			break;
		case "medicareinfo.php":
			document.getElementById("medinfo").style.color = "#333";
			document.getElementById("medinfo").style.backgroundColor = "#fff";
			break;
	}
}