
function setColor(el, bg) {
  if (el.style) el.style.backgroundColor = bg;
}

function checkCatalog() {

  var bgBad = "#FFCCCC";
  var bgGood = "white";

if(document.catalog.email.value=="")
{
  alert("Please enter a value for the \"e-mail\" field");
    setColor(document.catalog.email, bgBad);
  document.catalog.email.focus();
  return false;
} else {setColor(document.catalog.email, bgGood);}

    var vEMailID=document.catalog.email.value;
    var atPos= vEMailID.indexOf("@") + 1
    var lastDotPos= vEMailID.lastIndexOf(".") + 1
    var firstDotPos = vEMailID.indexOf(".") + 1
    var atInstances=0
    var dotInstances=0
    var inValid = new Array()
    var errorMessages = new Array()
    var errNo = 0

    for(var i=0;i<vEMailID.length;i++)
    {
        if(vEMailID.charAt(i)=="@" )
           atInstances+=1
        else if(vEMailID.charAt(i)==".")
           dotInstances=1
    }

    inValid[errNo] = (atInstances==0)
    errorMessages[errNo] = "@ symbol is missing"
    errNo++

    inValid[errNo] = (dotInstances==0)
    errorMessages[errNo] = ". symbol is missing"
    errNo++

    inValid[errNo] = (atInstances>1)
    errorMessages[errNo] = "@ symbol should not repeat"
    errNo++

    inValid[errNo] = (Math.abs(firstDotPos-atPos)==1)
    errorMessages[errNo] = "@ and . symbols can't come together"
    errNo++

    inValid[errNo] = ((lastDotPos-atPos)<=1)
    errorMessages[errNo] = ". symbol can't come before @ symbol"
    errNo++

    inValid[errNo] = (atPos==vEMailID.length)
    errorMessages[errNo] = "@ symbol can't appear at end"
    errNo++

    inValid[errNo] = (lastDotPos==vEMailID.length)
    errorMessages[errNo] = ". symbol can't appear at end"
    errNo++

    inValid[errNo] = (atPos==1)
    errorMessages[errNo] = "@ symbol should not appear at first position"
    errNo++

    inValid[errNo] = (firstDotPos==1)
    errorMessages[errNo] = ". symbol should not appear at first position"
    errNo++

    inValid[errNo] = (vEMailID.indexOf(" ")>=0)
    errorMessages[errNo] = "E-mail can't contain blank spaces."
    errNo++

    inValid[errNo] = (vEMailID.indexOf("/")>=0) || (vEMailID.indexOf("\\")>=0)
    errorMessages[errNo] = "E-mail can't contain \\ or /"
    errNo++

    var fullErrorMessage = "Invalid email address.\n"
    for(var ind=0; ind<errNo; ind++)
    {
        if(inValid[ind])
        {
            fullErrorMessage += errorMessages[ind] + "\n"
        }
    }
    if (fullErrorMessage.length>30) {
            alert(fullErrorMessage)
            setColor(document.catalog.email, bgBad);
            document.catalog.email.focus()
            return false;
    } else {
            setColor(document.catalog.email, bgGood);
    }


if(document.catalog.realname.value=="")
{
  alert("Please enter your Real Name");
            setColor(document.catalog.realname, bgBad);
  document.catalog.realname.focus();
  return false;
} else {
            setColor(document.catalog.realname, bgGood);
    }

if(document.catalog.address.value=="")
{
  alert("Please enter your Address");
            setColor(document.catalog.address, bgBad);
  document.catalog.address.focus();
  return false;
} else {
            setColor(document.catalog.address, bgGood);
    }

if(document.catalog.city.value=="")
{
  alert("Please enter your City");
            setColor(document.catalog.city, bgBad);
  document.catalog.city.focus();
  return false;
} else {
            setColor(document.catalog.city, bgGood);
    }

if(document.catalog.state.value=="")
{
  alert("Please enter your State");
            setColor(document.catalog.state, bgBad);
  document.catalog.state.focus();
  return false;
} else {
            setColor(document.catalog.state, bgGood);
    }

if(document.catalog.zip.value=="")
{
  alert("Please enter your Zip Code");
            setColor(document.catalog.zip, bgBad);
  document.catalog.zip.focus();
  return false;
} else {
            setColor(document.catalog.zip, bgGood);
    }

return true;

}
