window.onload=function()
{
	//loadMenu();
}

function loadMenu()
{
	if (document.getElementById('top_nav'))
	{
		var tds=document.getElementById('top_nav').getElementsByTagName('td');
		var strHref = window.location.href;
		for(var i=0;i<tds.length;i++)
		{
			if (tds[i].className=='TDHover' || tds[i].className=='TDout')
			{
				var aTags=tds[i].getElementsByTagName("a");
				
				tds[i].onmouseout=function()
				{
					this.className='TDout';
				}
				tds[i].onmouseover=function()
				{
					this.className='TDHover';
				}
				
				if (aTags.length > 0)
				{
					if (strHref.match(aTags[0].getAttribute('href')) != null){
						tds[i].className='TDHover';
						tds[i].id = "current";
					}
					else
					{
						tds[i].id = "tabID";
					}
				}

			}
		}
		//document.getElementById('content').style.backgroundImage="url(images/<%=request("img")%>)";	
		//document.getElementById('content').style.backgroundRepeat='no-repeat';
	}
}
function showMenu(obj)
{
	var lis=obj.getElementsByTagName('li');
	var len=lis.length;
	for(var i=0;i<len;i++)
	{
		lis[i].style.display='block';
		lis[i].style.margin="0px";
		lis[i].firstChild.onmouseover=function(){
			showMenu(this.parentNode.parentNode);	
		}
	}
}
function hideMenu(obj)
{
	var lis=obj.getElementsByTagName('li');
	var len=lis.length;
	for(var i=1;i<len;i++)
	{
		lis[i].style.display='none';
	}	
}

function rollOver(imgName, sfx)
{
	document.images[imgName].src = "images/" + "nav_" + imgName + "_" + sfx + ".gif";
}

var aobjPopupWindows = new Array();

function WindowOpener(strURL, strName, strArguments)
{
    
	if ((typeof(aobjPopupWindows[strName]) != "object") || (aobjPopupWindows[strName].closed) || ((aobjPopupWindows[strName].location.pathname + aobjPopupWindows[strName].location.search).replace(/^(\/)?.*(\/)/, "") != strURL.replace(/^(\/)?.*(\/)/, "")))
	{	    
		aobjPopupWindows[strName] = window.open(strURL, strName, strArguments);
	}
	
	aobjPopupWindows[strName].focus();
}

String.prototype.trim = function()
{
	return this.replace(/^\s+|\s+$/, "");
}

Array.prototype.indexOf = function(vntValue)
{
	for (var i = 0; i < this.length; i++)
	{
		if (this[i] == vntValue)
		{
			return i;
		}
	}
	
	return -1;
}

function blnValidateEmail(strEmailAddress)
{
	var objRegExp = /^([a-z0-9_\-\+\.]+)@([a-z0-9_\-\+\.]+)\.([a-z]{2,4}|store|museum)$/i;
	return objRegExp.test(strEmailAddress);
}

function blnValidatePhone(strPhoneNumber)
{
	var objRegExp = /^(1[\-\s\.]?)?(\([1-9]\d{2}\)\s?|[1-9]\d{2}[\-\s\.]?)\d{3}[\-\s\.]?\d{4}(\s?(x|ext\.?|extension)\s?\d{1,9})?$/i;
	return objRegExp.test(strPhoneNumber);
}

function blnValidateZipCode(strZipCode)
{
	var objRegExp  = /^\d{5}(-?\d{4})?$/;
	return objRegExp.test(strZipCode);
}

function blnValidatePostalCode(strPostalCode)
{
	var objRegExp  = /^[a-zA-Z]\d[a-zA-Z](\-|\s)?\d[a-zA-Z]\d$/;
	return objRegExp.test(strPostalCode);
}

function blnValidateURL(strURL)
{
	var objRegExp = /^http(s)?:(\/){2}[a-z0-9\-&_+](([a-z0-9\-&_+]{0,61}[a-z0-9\-&_+])?\.)+([a-z]{2,4}|store|museum)(\:\d+)*(\/([a-z0-9\.\+\?\-&_~=#$%]+\/?)*)?$/i;
	return objRegExp.test(strURL);
}

function blnValidatePlanNum(strPlanNum)
{
	var objRegExp = /^\d+\-\d+$/i;
	return objRegExp.test(strPlanNum);
}

function blnValidateTaxID(strTaxID) {
	var matchArr = strTaxID.match(/^(\d{3})-?\d{2}-?\d{4}$/);
	var matchArr2 = strTaxID.match(/^(\d{2})-?\d{7}$/);
	var numDashes = strTaxID.split('-').length - 1;
	if (matchArr == null || numDashes == 1) {
		if (matchArr2 == null || numDashes == 0)
			alert('Invalid Tax Id number. Must be 9 digits or in the form ###-##-####\n or ##-####### for corporation.');
		else
		{
			if (parseInt(matchArr2[1],10)==0) {
				alert("Invalid strTaxID: strTaxID's can't start with 000.");
			}
			else {
				return true;
			}
		}
	}
	else 
	{
		if (parseInt(matchArr[1],10)==0) {
			alert("Invalid strTaxID: strTaxID's can't start with 000.");
		}
		else {
			return true;
		}
	}
	return false;
}

function SubmitForm()
{
	if (blnVerifyForm())
	{
		document.frmSubscribe.submit();
	}
}

function blnVerifyForm()
{		
	var strErrorMsg = "";
	
	with (document.frmSubscribe)
	{
		email.value = email.value.trim();
		
		if (email.value.length == 0)
		{
			if (strErrorMsg.length == 0)
			{
				email.focus();
			}
			
			strErrorMsg += "Please enter your email address.\n"
		}
		else if (! blnValidateEmail(email.value))
		{
			if (strErrorMsg.length == 0)
			{
				email.focus();
			}
			
			strErrorMsg += "Please enter a valid email address.\n"
		}
	}
	
	if (strErrorMsg.length == 0)
	{
		return true;
	}
	else
	{
		alert(strErrorMsg);
		return false;
	}
}

function setClassName(objId, className) {
	var ele= document.getElementById(objId);
	if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) != -1))
		return;
	ele.className += (ele.className ? " " : "") + className;
}

function removeClassName(objId, className) {
	var ele= document.getElementById(objId);
	if (!ele || !className || (ele.className && ele.className.search(new RegExp("\\b" + className + "\\b")) == -1))
		return;
	ele.className = ele.className.replace(new RegExp("\\s*\\b" + className + "\\b", "g"), "");	
}

function validateReqFields(formName,oldClassName,newClassName){
	var errormsg="";
	var allReqStr="";
	formObj=document.getElementById(formName);
	
	for (var i=0; i < formObj.elements.length; i++){		
		if (formObj.elements[i].getAttribute("label")=="req"){
			if (formObj.elements[i].type == "radio")
			{						
				myOption = 0;
				
				currentName = formObj.elements[i].name;
				currentField = formObj.elements[currentName];
				
				for (a=0;a<currentField.length;a++) 
				{
					//alert(a + currentField[a].checked);
					if (currentField[a].checked) 
					{
						myOption = myOption + 1;
					}
				}
				if (myOption == 0)
				{	
					errormsg = "Please Enter all the required information with *"
				}									
			}
		
			if(formObj.elements[i].name == "email" || formObj.elements[i].name == "emailAddress" ){
				if (!blnValidateEmail(formObj.elements[i].value)){
					removeClassName(formObj.elements[i].name,formObj.elements[i].className)
					setClassName(formObj.elements[i].name,newClassName)
					errormsg="Invalid Email Address";				
				}
			}
			if(formObj.elements[i].name == "estStartDate")
			{
			    if(!blnValidateDate(formObj.elements[i])){
					removeClassName(formObj.elements[i].name,formObj.elements[i].className)
					setClassName(formObj.elements[i].name,newClassName)
					errormsg="Invalid Date";				
			    }
			}
			if(formName == "QuickQuote_Form"){
				if(formObj.elements[i].name == "InteriorChanges" || formObj.elements[i].name == "exteriorChanges")
				{
					allReqStr=allReqStr+formObj.elements[i].value;
					allReqStr=allReqStr.replace(/\n/g,"");
				}
				if(formObj.elements[i].name == "phone"){
					if(formObj.elements[i].value == "" ){
						errormsg="Please enter Contact Phone Number";
					}
					else{
						if (!blnValidatePhone(formObj.elements[i].value)){
							errormsg="Please enter a valid Contact Phone Number";
						}
					}
				}
				if(formObj.elements[i].name == "cfullname"){
					if(formObj.elements[i].value == "" ){
						errormsg="Please enter Contact Name";
					}
				}
			}
			else{
								
				if(formObj.elements[i].value == "" ){
					removeClassName(formObj.elements[i].name,formObj.elements[i].className)
					setClassName(formObj.elements[i].name,newClassName)
					errormsg="Please Enter all the required information with *";
				}
				else{
					removeClassName(formObj.elements[i].name,formObj.elements[i].className);
				}				
			}
		}
	}

	/*if(formName == "QuickQuote_Form" && (allReqStr.replace(/ /g,"")).length == 0){
		errormsg="Please enter modifications";
	}*/
	
	if(errormsg != "")
	{
		alert(errormsg);
		return false;
	}
	else
	{
		formObj.submit();
	}
}

function submitFinal(formName) {
	formObj=document.getElementById(formName);
	if (confirm("Are you sure you want to submit your Custom Plan QuickQuote now?")){
		formObj.submit();
	}
}

function framePrint(whichFrame){
	parent[whichFrame].focus();
	parent[whichFrame].print();
}

function blnValidatePlanNum2(strPlanNum)
{
	var objRegExp = /^\d{1,4}-\d{0,4}$/
	return objRegExp.test(strPlanNum);
}

function ValidatePlanNum(PlanID,formID)
{
	var strPlanNum=document.getElementById(PlanID).value;
	var formObj=document.getElementById(formID);
	if (blnValidatePlanNum2(strPlanNum))
	{
		formObj.submit();
	}
	else
	{
		alert("Please enter Plan Number in the following format:\n##-###");
	}
}

function validateText() {
	var textareas=document.getElementsByTagName('textarea');
	for(var i=0; i < textareas.length;i++){
		textareas[i].value = (textareas[i].value).replace(/'/g, "*ap*");
		textareas[i].innerHTML = (textareas[i].innerHTML).replace(/'/g, "*ap*");
	}
	/*
	for(var i = 1; i <= 9; i++){
		if (document.getElementById("planNo"+i) != null){
			document.getElementById("planNo"+i).value = (document.getElementById("planNo"+i).value).replace(/'/g, "");
		}
	}
	*/
	var inputs=document.getElementsByTagName('input');
	for(var i=0;i<inputs.length;i++){
		if ((inputs[i].getAttribute('name')).match("planNo") != null){
			inputs[i].value = (inputs[i].value).replace(/'/g, "");
		}
	}
	
	return true;
}

function submitThisForm(formId,formMethod){
	formObj=document.getElementById(formId);
	document.getElementById("strMethod").value = formMethod;
	if(validateText()){
		formObj.submit();
	}
}

function showDiv(divID)
{
	if (document.getElementById(divID))
	{
		divObj = document.getElementById(divID);
		divObj.style.visibility="visible";
		divObj.style.display="block";
	}
}

function hideDiv(divID)
{
	if (document.getElementById(divID))
	{
		divObj = document.getElementById(divID);
		divObj.style.visibility="hidden";
		divObj.style.display="none";
	}
}


//*******************************************************
// Builds a querystring of of the child form elements of the 
// object passed to the function. 
//*******************************************************
function formPost(top_element,joinChar){
	noQuote(top_element);
	var inputs=top_element.getElementsByTagName('*');
	var qstring = "";
	var f_sring=new Array();
	var fo_sring=new Array();	
	var planNumStr="";
	var planNumOnly="";
	var empty_kStr="";
	var qs_str="";
	var add_qs_str="";
	for(var i=0;i<inputs.length;i++){
		add_qs_str="";
			
		if(!inputs[i].disabled&&inputs[i].getAttribute('name')!=""&&inputs[i].getAttribute('name') && inputs[i].getAttribute('name')!="max_sqft" && inputs[i].getAttribute('name')!="Tmin_sqft" && inputs[i].getAttribute('name')!="Tmax_sqft" && inputs[i].getAttribute('name')!="freeWidth" && inputs[i].getAttribute('name')!="freeDepth"){
			qs_str=get_qsPair(inputs[i].getAttribute('name'),joinChar);
			
			if (inputs[i].getAttribute('name')=="planNum" && encodeURIComponent(inputs[i].value) != ""){
				planNumStr=inputs[i].getAttribute('name') + ":" +encodeURIComponent(inputs[i].value);
				planNumOnly=encodeURIComponent(inputs[i].value);
			}
			else{
				if (qs_str=="" && encodeURIComponent(inputs[i].value) != "" || inputs[i].getAttribute('name')=="_k"){
					if (inputs[i].getAttribute('name')=="_k"){
						
						if (inputs[i].value == ""){
							empty_kStr="";
						}
						else{
							empty_kStr="_k="+encodeURIComponent(inputs[i].value);							
						}
					}
					else{
						qs_str="";
					}
				}
			}			
			switch(inputs[i].tagName.toLowerCase()){
				case "input":
					if (inputs[i].getAttribute("type"))
					{
						switch(inputs[i].getAttribute("type").toLowerCase()){	
							case "radio":
								if(inputs[i].checked){
									if (qs_str != ""){
										if(inputs[i].value == 1){
											add_qs_str = inputs[i].getAttribute('name')+":true";	
										}
										else{
											add_qs_str = inputs[i].getAttribute('name')+":false";	
										}
										
									}
								}
							break;
							case "checkbox":
								if(inputs[i].value!=""){
									if(inputs[i].checked){
										if (qs_str != ""){
											add_qs_str = qs_str;	
										}
									}
								}
							break;	
							default:
								if (qs_str != ""){
									add_qs_str = qs_str;	
								}
						}
					}else
						alert(inputs[i].getAttribute('name'));
				break;
				default:
					if (qs_str != ""){
						add_qs_str = qs_str;	
					}
			}

			if(add_qs_str != "")
			{
				if(add_qs_str.match("AND ") != null)
				{
					f_sring[f_sring.length] = add_qs_str;
				}
				else
				{
					fo_sring[fo_sring.length] = add_qs_str;
				}
			}
		}
	}
	if (f_sring.join(joinChar) == "" && fo_sring.join(joinChar) == "")
	{
		qstring = "";	
	}
	else
	{
		qstring = "_f=type:plan " + f_sring.join(joinChar) + "&_fo=" + fo_sring.join(joinChar)
	}
	//alert(qstring);
	
	if (planNumStr != ""){
		if (planNumStr.match(/\*/) != null)
		{
			window.location = "results.asp?_f="+planNumStr + "&_s=score:D";
		}
		else
		{
			//alert("asearch.asp?planNum="+planNumOnly+ "&searchMode=4");
			window.location = "asearch.asp?planNum="+planNumOnly+ "&searchMode=4";
		}
	}
	else{
		if (empty_kStr != ""){
			window.location = "results.asp?"+empty_kStr+"&" + qstring + "&_s=score:D";
		}
		else{
			if (qstring == ""){
				window.location = "results.asp?_f=type:plan" + "&_s=score:D";
			}
			else{
				window.location = "results.asp?" + qstring + "&_s=score:D";
			}
		}
	}
}

function get_qsPair(varName,joinChar)
{
	var rtn_str="";
	
	for (var i=1;i <50; i++)
	{
		var varComp="sty"+i;
		if (varName==varComp)
		{
			rtn_str="AND style:"+i;	
		}
	}

	if (varName=="Bd1" || varName=="Bd2" || varName=="Bd3" || varName=="Bd4" || varName=="Bd5")
	{
		if (varName == "Bd5")
		{
			rtn_str = "bed:5"+joinChar+"bed:6";
		}
		else
		{
			rtn_str = "bed:"+varName.substr(2);
		}
	}
	
	if (varName=="st1" || varName=="st2" || varName=="st3" || varName=="st4")
	{
		var n = varName.substr(2);
		switch(n)
		{
			case "4":
				rtn_str="level:4"+joinChar+"level:5"+joinChar+"level:6";
			break;	
			default:
				rtn_str="level:"+n;
		}
	}
	
	if (varName=="Bh1" || varName=="Bh2" || varName=="Bh3" || varName=="Bh4") 
	{
		var n = varName.substr(2);
		switch(n)
		{
			case "1":
				rtn_str="bath:1.0";
			break;    
			case "2":
				rtn_str="bath:1.5"+joinChar+"bath:2.0";
			break;
			case "3":
				rtn_str="bath:2.5"+joinChar+"bath:3.0";
			break;
			case "4":
				rtn_str="bath:3.5"+joinChar+"bath:4.0"+joinChar+"bath:4.5"+joinChar+"bath:5.0"+joinChar+"bath:5.5"+joinChar+"bath:6.0";
			break;				
			default:
				alert("baths");

		}
	}
	
	if (varName=="G0" || varName=="G1" || varName=="G2" || varName=="G3") 
	{
		var n = varName.substr(1);
		switch(n)
		{
			case "3":
				rtn_str="gar:3"+joinChar+"gar:4"+joinChar+"gar:5"+joinChar+"gar:6";
			break;	
			default:
				rtn_str="gar:"+n;
		}
	}

	if (varName=="planType1" || varName=="planType2" || varName=="planType3" || varName=="planType4" || varName=="planType5" || varName=="planType6" || varName=="planType7" || varName=="planType10" || varName=="planType14")
	{
		return "planType:"+varName.substr(8);
	}
	
	if (varName=="ddType")
	{
		if (document.getElementById(varName).value > 0)
		{
			return "planType:"+document.getElementById(varName).value;
		}
	}
	
	for (var i=1;i <= 84; i++)
	{
		var varComp="feat"+i;
		if (varName==varComp)
		{
			rtn_str="AND fx:"+i;	
		}
	}
	
	if (varName=="min_sqft" || varName=="max_sqft" || varName=="Tmin_sqft" || varName=="Tmax_sqft")
	{
		var minSqFt = 0;
		var maxSqFt = 0;
		
		if(document.getElementById("Tmin_sqft") && document.getElementById("Tmax_sqft"))
		{
			if(document.getElementById("Tmin_sqft").value != 0 || document.getElementById("Tmax_sqft").value != 0)
			{
				minSqFt = document.getElementById("Tmin_sqft").value;
				maxSqFt = document.getElementById("Tmax_sqft").value;
			}
			else
			{
				minSqFt = document.getElementById("min_sqft").value;
				maxSqFt = document.getElementById("max_sqft").value;
			}
		}
		else
		{
			minSqFt = document.getElementById("min_sqft").value;
			maxSqFt = document.getElementById("max_sqft").value;
		}

		rtn_str = "sq:longRange:";
		
		if(minSqFt == "")
		{
			minSqFt = 0;
		}
		
		var int_minSqFt = parseInt(minSqFt)
		var int_maxSqFt = parseInt(maxSqFt)
		
		rtn_str = rtn_str + int_minSqFt + ":";
		
		
		if(int_maxSqFt >= int_minSqFt && int_maxSqFt != 0)
		{
			rtn_str = rtn_str + int_maxSqFt;
			if(int_maxSqFt == 130000 && int_minSqFt == 0)
			{
				rtn_str="";			
			}
		}
		else
		{
			if (int_minSqFt == 0){
				rtn_str="";
			}
			else{
				rtn_str = rtn_str + "990000";			
			}
		}	
	}
	
	if (varName=="width")
	{
		var w = 0;
		var intw = 0;
		
		if(document.getElementById("freeWidth").value > 0)
		{
			w = document.getElementById("freeWidth").value;	
			intw = parseInt(w);
			
			rtn_str = "w:longRange:0:" + intw;
						
		}
		else
		{
			w = document.getElementById("width").value;		

			intw = parseInt(w);
			var lowintw = intw-4;
			
			if (w == 0)
			{
				rtn_str = "";
			}
			else
			{
				if (intw == 20)
				{
					rtn_str = "w:longRange:0:" + intw;
				}
				else
				{
					if (intw == 75)
					{
						rtn_str = "w:longRange:51:" + intw;
					}
					else
					{
						if (intw == 1000)
						{
							rtn_str = "w:longRange:76:" + intw;
						}
						else
						{
							rtn_str = "w:longRange:" + lowintw + ":" + intw;
						}
					}
				}
			}
		}
	}
	
	if (varName=="depth")
	{
		var d = 0;
		var intd = 0;
		
		if(document.getElementById("freeDepth").value > 0)
		{
			d = document.getElementById("freeDepth").value;	
			intd = parseInt(d);
			
			rtn_str = "d:longRange:0:" + intd;
						
		}
		else
		{		
			d = document.getElementById("depth").value;
		
			intd = parseInt(d);
			var lowintd = intd-4;
			
			if (d == 0)
			{
				rtn_str = "";
			}
			else
			{
				if (intd == 20)
				{
					rtn_str = "d:longRange:0:" + intd;
				}
				else
				{
					if (intd == 75)
					{
						rtn_str = "d:longRange:51:" + intd;
					}
					else
					{
						if (intd == 1000)
						{
							rtn_str = "d:longRange:76:" + intd;
						}
						else
						{
							rtn_str = "d:longRange:" + lowintd + ":" + intd;
						}
					}
				}
			}
		}
	}
	
	if (varName=="Slab" || varName=="Crawlspace" || varName=="Pier" || varName=="Basement" || varName=="DayBasement" ||  varName=="WalkoutBasement")
	{
		rtn_str = "AND " + varName + ":true";
	}
	
	if (varName=="FinishedBasement")
	{
		rtn_str = varName + ":true";	
	}
	
	if (varName=="MAT")
	{
		rtn_str = "AND matList:y";
	}
	
	if (varName=="CAD")
	{
		rtn_str = "AND CAD:y";
	}
	if (varName=="isExc")
	{
		rtn_str = "AND bExc:true";
	}
	
	return rtn_str;
}

function noQuote(top_element){
	var inputs=top_element.getElementsByTagName('*');
	for(var i=0;i<inputs.length;i++){
		if(!inputs[i].disabled&&inputs[i].getAttribute('name')!=""&&inputs[i].getAttribute('name')){
					inputs[i].value;

			switch(inputs[i].tagName.toLowerCase()){
				case "textarea":
					if (inputs[i].value != ""){
						inputs[i].value = (inputs[i].value).replace(/'/g,"");	
					}
				break;
				case "input":
					if (inputs[i].getAttribute("type"))
					{
						switch(inputs[i].getAttribute("type").toLowerCase()){	
							case "text":
								if (inputs[i].value != ""){
									inputs[i].value = (inputs[i].value).replace(/'/g,"");	
								}
							break;
							case "password":
								if (inputs[i].value != ""){
									inputs[i].value = (inputs[i].value).replace(/'/g,"");	
								}
							break;
						}
					}
				break;	
			}
		}
	}
}

function validateForm(strFormName)
{
	var objForm = document.getElementById(strFormName);

	for (var i=0; i < objForm.elements.length; i++)		
	{
		if(objForm.elements[i].getAttribute("label"))
		{
			switch(objForm.elements[i].getAttribute("label"))
			{
				case "req":
					if(objForm.elements[i].value == "")
					{
						alert("Invalid Entry");
						return false;
					}
					break;    
				case "email":
					if(!blnValidateEmail(objForm.elements[i].value))
					{
						alert("Invalid Email Adress");
						return false;
					}
					break;
				case "phone":
					if(!blnValidatePhone(objForm.elements[i].value))
					{
						alert("Invalid Phone");
						return false;
					}			
					break;
				case "planno":
					if(!blnValidatePlanNum2(objForm.elements[i].value))
					{
						alert("Invalid Plan#");
						return false;
					}			
					break;
			}		
		}
	}
	return true;
}

function openLibraryOfIdeas(strImageSrc,intPlanID)
{
	WindowOpener("saveToLibraryofideas.asp?intPlanId=" + intPlanID + "&imgSrc=" + strImageSrc, "Ideas", "width=600,height=530,toolbar=no,resizable=no,scrollbars=yes,screenX=50,ScreenY=50,left=200,top=200");
}

function financing_options(formName)
{
	var formObj = document.getElementById(formName);
	var strGotoPage = "construction_loan_financing.asp";
	for (var i=0; i < formObj.elements.length; i++)
	{
		if(formObj.elements[i].name == "finance_opt" && formObj.elements[i].checked == true)
		{
			switch (formObj.elements[i].value){	
				case "1":
					strGotoPage = "wf-construction.asp?fOpt=1";
					break;
				case "2":
					strGotoPage = "wf-refinance.asp?fOpt=2";				
					break;
				case "3":
					strGotoPage = "wf-home-purchase.asp?fOpt=3";				
					break;
				default:
					strGotoPage = "construction_loan_financing.asp";
			}
		}
	}
	window.location = strGotoPage; 
}

function blnValidateDate(dat)
{

  var dt = dat.value ;
  var a = new Array() ;
  var yr ;
  var mm ;
  var dd ;
  
  //First make sure the date is formatted correctly
  dt_pat = /\d{1}\d?\/\d{1}\d?\/\d{4}|\d{2}/ ;
  var dt_check = dt.search(dt_pat) ;
  if(dt_check == -1) {
    alert("Date must be in a mm/dd/yyyy format") ;
    return false;
  }

  //Extract the month, day and year
  b = dt.split("/",3);
  mm = b[0];
  //mm= parseInt(mon);
  dd = b[1];
  yr = b[2];
  
	//Allow numbers only
	if(isNaN(mm) || isNaN(dd) || isNaN(yr)) {
   	alert("Invalid Date");
    	dat.value = "";
    return false;
  }
  
  //February has 29 days in years divisible by 4
  if (yr%4 == 0) {
    var feb_days = 29;
  } else {
    feb_days = 28;
  }

  //Populate the array with number of days in each month
  for (var i = 1; i <= 12; i++) {
    if(i==4 || i==6 || i==9 || i==11) {
      a[i] = 30
    } else if (i==2) {
      a[i] = feb_days ;
    } else {
      a[i] = 31 ;
    }
  }

  //Check validity of month, day, and year
  if(mm<=0 || mm>12) {
    alert("The month entered is not valid") ;
    return false ;
  }
  if(dd > a[mm]) {
    alert("The day entered is not valid");
    return false;
  }
	if(!(yr.length == 4 || yr.length == 2)) {
		alert("The year is not valid");
		return false;
  }
  return true;
}