// JavaScript Document

function isEmailAddr(ContactEmail)
{
  var result = false
  var theStr = new String(ContactEmail)
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function FormValidator(form1)
{

	if (form1.CompanyName.value == "")
	{
		alert("Please enter your company name.");
		form1.CompanyName.focus();
		return (false);
	}

	if (form1.CompanyType.selectedIndex == 0)
	{
		alert("Please select the Company Type.");
		form1.CompanyType.focus();
		return (false);
	}

	if (form1.ProductName.value == "")
	{
		alert("Please enter a product name.");
		form1.ProductName.focus();
		return (false);
	}

	if (form1.ProductDescription.value == "")
	{
		alert("Please enter a product description.");
		form1.ProductDescription.focus();
		return (false);
	}

	if (form1.MarketSegment.value == "")
	{
		alert("Please enter a market segment.");
		form1.MarketSegment.focus();
		return (false);
	}

	if (form1.Competitors.value == "")
	{
		alert("Please list your competitors.");
		form1.Competitors.focus();
		return (false);
	}

	if (form1.SearchTags.value == "")
	{
		alert("Please provide at least one Search Tag.");
		form1.SearchTags.focus();
		return (false);
	}

	if (form1.MarketOpportunity.value == "")
	{
		alert("Please enter a market opportunity description.");
		form1.MarketOpportunity.focus();
		return (false);
	}

	if (form1.FundingAmount.selectedIndex == 0)
	{
		alert("Please choose a Funding Amount from the list provided.");
		form1.FundingAmount.focus();
		return (false);
	}

	if (form1.FundingRound.selectedIndex == 0)
	{
		alert("Please choose a Funding Round from the list provided.");
		form1.FundingRound.focus();
		return (false);
	}

	if (form1.FundingDetails.value == "")
	{
		alert("Please provide the funding details.");
		form1.FundingDetails.focus();
		return (false);
	}

	if (form1.ContactName.value == "")
	{
		alert("Please enter a contact name.");
		form1.ContactName.focus();
		return (false);
	}

	if (form1.ContactEmail.value == "")
	{
		alert("Please enter the contact person's e-mail address.");
		form1.ContactEmail.focus();
		return (false);
	}

	if (!isEmailAddr(form1.ContactEmail.value))
	{
		alert("Please enter a complete email address in the form: yourname@yourdomain.com");
		form1.ContactEmail.focus();
		return (false);
	}

	if (form1.ContactEmail.value.length < 3)
	{
		alert("Please enter at least 3 characters in the \"email\" field.");
		form1.ContactEmail.focus();
		return (false);
	}

	if (form1.CompanyAddress.value == "")
	{
		alert("Please enter your company's address.");
		form1.CompanyAddress.focus();
		return (false);
	}

	if (form1.City.value == "")
	{
		alert("Please enter your company's city.");
		form1.City.focus();
		return (false);
	}

	if (form1.Zip.value == "")
	{
		alert("Please enter your company's zip/country code.");
		form1.Zip.focus();
		return (false);
	}

	if (form1.PrimaryPhone.value == "")
	{
		alert("Please enter a primary phone number.");
		form1.PrimaryPhone.focus();
		return (false);
	}

	if (form1.WebAddress.value == "")
	{
		alert("Please enter your company's url.");
		form1.WebAddress.focus();
		return (false);
	}

	if (form1.OfficerOne.value == "")
	{
		alert("Please enter at least one company officer's name.");
		form1.OfficerOne.focus();
		return (false);
	}

	if (form1.OfficerOneTitle.value == "")
	{
		alert("Please enter company officer's title.");
		form1.OfficerOneTitle.focus();
		return (false);
	}

	if (getWordCount( document.getElementById("ProductDescription") ) > 75)
	{
		alert("\"Product Description\" exceeds 75 words. Please edit for length.");
		form1.ProductDescription.focus();
		return false;
	}

	if (getWordCount( document.getElementById("MarketOpportunity") ) > 50)
	{
		alert("\"Market Opportunity\" exceeds 50 words. Please edit for length.");
		form1.MarketOpportunity.focus();
		return false;
	}

	return (true);
}

var gDscTrp = 0;
var gMktTrp = 0;

$(document).ready( function()
{
	// Initialize word counters
	$("#tbPrdDsc").val( getWordCount( document.getElementById("ProductDescription") ) );
	$("#tbMktOpp").val( getWordCount( document.getElementById("MarketOpportunity") ) );

	$("#ProductDescription").keyup( function()
	{
		iRem = getWordCount( document.getElementById("ProductDescription") );
		$("#tbPrdDsc").val( iRem );
		if (iRem <= 75)
			gDscTrp = 0;
		else
		{
			if (gDscTrp == 0)
			{
				alert("You have exceeded 75 words for the product description.\n\nPlease edit the field for length.");
				gDscTrp = 1;
			}
		}
	});

	$("#MarketOpportunity").keyup( function()
	{
		iRem = getWordCount( document.getElementById("MarketOpportunity") );
		$("#tbMktOpp").val( iRem );
		if (iRem <= 50)
			gMktTrp = 0;
		else
		{
			if (gMktTrp == 0)
			{
				alert("You have exceeded 50 words for the market opportunity.\n\nPlease edit the field for length.");
				gMktTrp = 1;
			}
		}
	});
});

function getWordCount( oFld )
{
	var char_count = oFld.value.length;
	var fullStr = oFld.value + " ";
	var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
	var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
	var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
	var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
	var splitString = cleanedStr.split(" ");
	var word_count = splitString.length -1;
	if (fullStr.length <2) 
		word_count = 0;
	return word_count;
}
