var objScript = {
	
	fctOpenSubmenu: function() {
		
		$("div.submenu").hide();
		strWhich = $(this).attr("submenu");
		objOffset = $(this).offset();
		intLeft = objOffset.left;
		intTop = objOffset.top;
		intHeight = $(this).outerHeight();		
		$("#" + strWhich).css("left",intLeft+"px").css("top",intTop+intHeight+"px").show();
	},
	
	fctConfigureContextMenu: function() {
	
		strWhich = $(this).attr("menu");
		$("a[@submenu="+strWhich+"]").addClass("current");
		if ($("#" + strWhich).size()==0) return false;
		strHTML = $("#" + strWhich).html();
		$(this).html("<h3>M&aacute;s</h3><hr>"+strHTML).show();		
	},
	
	fctConfigureAnchors: function() {
		
		// fetch the current filename
		var strPath = location.pathname;
		strPath = strPath.substr(1,strPath.length);
		objArray = strPath.split("/");
		strFile = objArray[1] ? objArray[1] : 'index.php';
		// now conduct a search, add the focus class and disable the anchor
		$("a[@href="+strFile+"]").addClass("focus")
			.click(function() { return false; });
	},
	
	fctFireTriggers: function() {
	
		$("a.menu").mouseover(objScript.fctOpenSubmenu);
		$(document).click(function() {$("div.submenu").hide();});
		$("div.context_menu").each(objScript.fctConfigureContextMenu);
		objScript.fctConfigureAnchors();
	},
	
	fctValidateContactForm: function() {
		$(this).validate({
			event: "submit",
			rules: {
				email: {required:true, email:true },
				comments: {required:true }
			},
			messages: {
				email: {required:'Correo-e Se require', email:'No esta en el formato correcto'},
				comments: {required:'Comentarios Se requiren' }
			}
		});
	},
	
	fctValidateInsuranceForm: function() {
		$(this).validate({
			event: "submit",
			rules: {
				name: {required:true, letterswithbasicpunc:true},
				email: {required:true, email:true},
				contactphone: {required:true, phone:true},
				clientname2: {required:true, letterswithbasicpunc:true},
				clientaddress: {required:true},
				clientcity: {required:true, letterswithbasicpunc:true},
				state: {required:true},
				zipcode: {required:true, numeric:true},
				birthday: {required:true, date:true},
				clientss: {required:true, numeric:true},
				insurancecompany: {required:true, date:true},
				benefitsphone: {required:true, phone:true},
				insuredname: {required:true, letterswithbasicpunc:true},
				birthday2: {required:true, date:true},
				ss2: {required:true, numeric:true},
				insuranceID: {required:true},
				GroupID: {required:true},
				insurecompany: {required:true}
			},
			messages: {
				name: {required:'Nombre Se require', letterswithbasicpunc:'No esta en el formato correcto'},
				email: {required:'Correo-e Se require', email:'No esta en el formato correcto'},
				contactphone: {required:'Tel&eacute;fono Se require', phone:'No esta en el formato correcto'},
				clientname2: {required:'Nombre Se require', letterswithbasicpunc:'No esta en el formato correcto'},
				clientaddress: {required:'Direcci&oacute;n Se require'},
				clientcity: {required:'Ciudad Se require', letterswithbasicpunc:'No esta en el formato correcto'},
				state: {required:'Estado Se require'},
				zipcode: {required:'C&oacute;digo Postal Se require', numeric:'No esta en el formato correcto'},
				birthday: {required:'Fecha de Nacimiento Se require', date:'No esta en el formato correcto'},
				clientss: {required:'N&uacute;mero de Seguro Social Se require', numeric:'No esta en el formato correcto'},
				insurancecompany: {required:'Compa&ntilde;&iacute;a de seguros Se require', date:'No esta en el formato correcto'},
				benefitsphone: {required:'Tel&eacute;fono Se require', phone:'No esta en el formato correcto'},
				insuredname: {required:'Nombre del que tiene seguro m&eacute;dico Se require', letterswithbasicpunc:'No esta en el formato correcto'},
				birthday2: {required:'Fecha de Nacimiento Se require', date:'No esta en el formato correcto'},
				ss2: {required:'N&uacute;mero de Seguro Social Se require', numeric:'No esta en el formato correcto'},
				insuranceID: {required:'N&uacute;mero de la Poliza de Seguro Se require'},
				GroupID: {required:'N&uacute;mero del Grupo Se require'},
				insurecompany: {required:'Compa&ntilde;&iacute;a de seguros Se require'}
			}
		});
	},
	
	fctValidateAssessmentForm: function() {
		$(this).validate({
			event: "submit",
			rules: {
				name2: {required:true, letterswithbasicpunc:true},
				email2: {required:true, email:true},
				phone2: {required:true, phone:true},
				suject2: {required:true},
				comments2: {required:true}
			}
		});	
	}

};

$(document).ready(function() {
	objScript.fctFireTriggers();
	$("#contact_form").each(objScript.fctValidateContactForm);
	$("#frmInsurance").each(objScript.fctValidateInsuranceForm);
	$("#frmAssessment").each(objScript.fctValidateAssessmentForm);
});