function display(obj,id1,id2) 
{
   txt = obj.options[obj.selectedIndex].value;
   document.getElementById(id1).style.display = 'none';
   document.getElementById(id2).style.display = 'none';
   
   if ( txt.match(id1) ) 
      {
      document.getElementById(id1).style.display = 'block';
      }

   if ( txt.match(id2) ) 
      {
      document.getElementById(id2).style.display = 'block';
      }
}


function checkR4EFields() 
{
   // Check the following fields 
   missinginfo = "";

   /*  1) Firstname  */  if (document.registrant.reg_firstname.value == "")   missinginfo += "\n     -  First Name";
   /*  2) Lastname   */  if (document.registrant.reg_lastname.value == "")    missinginfo += "\n     -  Last Name";
   /*  3) Company    */  if (document.registrant.reg_company.value == "")     missinginfo += "\n     -  Company";
   /*  4) Title      */  if (document.registrant.reg_title.value == "")       missinginfo += "\n     -  Title";
   /*  5) Phone      */  if (document.registrant.reg_phone.value == "")       missinginfo += "\n     -  Phone";
   /*  6) Address    */  if (document.registrant.reg_addr.value == "")        missinginfo += "\n     -  Address";
   /*  7) City       */  if (document.registrant.reg_city.value == "")        missinginfo += "\n     -  City";
   /*  8) State      */  if (document.registrant.reg_state.value == "")       missinginfo += "\n     -  State";
   /*  9) Zip        */  if (document.registrant.reg_zip.value == "")         missinginfo += "\n     -  Zip";
   
   /* 10) Email      */  
   // Check for Valid Email format
   if (document.registrant.reg_email.value == "")
      missinginfo += "\n     -  Your Email address";
   else
      if (!validateformemail(registrant))
         missinginfo += "\n     -  Not a valid Email address";

   // Show Result
   if (missinginfo != "") 
      {
      missinginfo ="_____________________________\n" +
                   "You failed to correctly fill in your:\n" +
                   missinginfo + 
                   "\n_____________________________" +
                   "\nPlease re-enter and submit again!";
      alert(missinginfo);
      return false;
      }
   else 
      return true;
}




function checkFields() 
{
   missinginfo = "";

   if (document.urlinfo.name.value == "") 
      {
      missinginfo += "\n     -  Name";
      }

   // Check for Valid Email format
   if (document.urlinfo.email.value == "")
      {
      missinginfo += "\n     -  Your Email address";
      }
   else
      if (!validateformemail(urlinfo))
         {
         missinginfo += "\n     -  Not a valid Email address";
         }
	      
   if (document.urlinfo.url.value == "") 
      {
      missinginfo += "\n     -  URL of site";
      }

   if (document.getElementById('lrl').selectedIndex == 0) 
      {
      missinginfo += "\n     -  Launch/Re-Launch";
      }

   if (document.urlinfo.date.value == "") 
      {
      missinginfo += "\n     -  Date";
      }
   else
      {
	  errStr = ValidateDate('date');
      if (errStr != "")
         missinginfo += errStr;
	  }

   if (document.urlinfo.desc.value == "" && document.getElementById('lrl').selectedIndex == 1) 
      {
      missinginfo += "\n     -  Description";
      }

   if (document.getElementById('lrl').selectedIndex == 2)
      {
      if (document.urlinfo.origldate.value == "") 
         {
         missinginfo += "\n     -  Original Date Launched";
         }
      else
         {
     	  errStr = ValidateDate('origldate');
         if (errStr != "")
            missinginfo += errStr;
     	  }
	  }

   if (missinginfo != "") 
      {
      missinginfo ="_____________________________\n" +
                   "You failed to correctly fill in your:\n" +
                   missinginfo + 
                   "\n_____________________________" +
                   "\nPlease re-enter and submit again!";
      alert(missinginfo);
      return false;
      }
   else 
      return true;
}


//==============================================
// VALIDATION OF EMAIL
//==============================================

function validateformemail(form)
{
  if (validateemail(form.email.value)==false)
     {
//     alert("Not a Valid Email Address")
     form.email.focus()
     return(false)
     }

  return(true);
}

function validateemail (emailStr) 
{
   var emailPat=/^(.+)@(.+)$/
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
   var validChars="\[^\\s" + specialChars + "\]"
   var quotedUser="(\"[^\"]*\")"
   var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
   var atom=validChars + '+'
   var word="(" + atom + "|" + quotedUser + ")"
   var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
   var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
   var matchArray=emailStr.match(emailPat)

   if (matchArray==null)
      return false

   var user=matchArray[1]
   var domain=matchArray[2]

   if (user.match(userPat)==null)
      return false
   var IPArray=domain.match(ipDomainPat)

   if (IPArray!=null) 
      {
      for (var i=1;i<=4;i++)
          {
          if (IPArray[i]>255)
             return false
          } 
      return true
      }

   var domainArray=domain.match(domainPat)

   if (domainArray==null)
      return false

   var atomPat=new RegExp(atom,"g")
   var domArr=domain.match(atomPat)
   var len=domArr.length

   if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>4)
      return false

   if (len<2)
      return false

   return true;
}

//==================================================================
// VALIDATE DATE
//------------------------------------------------------------------
// Declaring valid date character, minimum year and maximum year
//==================================================================

var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function isInteger(s)
{
	var i;
    for (i = 0; i < s.length; i++)
	    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) 
           return false;
        }

    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{
	var i;
    var returnString = "";

    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
	    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) 
           returnString += c;
        }

    return returnString;
}

function daysInFebruary (year)
{
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

function DaysArray(n) 
{
	for (var i = 1; i <= n; i++) 
	    {
		this[i] = 31;

		if (i==4 || i==6 || i==9 || i==11) 
		   {
		   this[i] = 30;
		   }

		if (i==2) 
		   {
		   this[i] = 29;
		   }
        } 

   return this;
}

function isDate(dtStr)
{
    var errStr = "";
	var daysInMonth = DaysArray(12);
	// Find first dash
	var pos1=dtStr.indexOf(dtCh);

	// Find second dash
	var pos2=dtStr.indexOf(dtCh,pos1+1);

    // parse out and save year
	var strYear=dtStr.substring(0,pos1);

    // parse out and save month
	var strMonth=dtStr.substring(pos1+1,pos2);

    // parse out and save day
	var strDay=dtStr.substring(pos2+1);

	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) 
	   strDay=strDay.substring(1);

	if (strMonth.charAt(0)=="0" && strMonth.length>1) 
	   strMonth=strMonth.substring(1);

	for (var i = 1; i <= 3; i++) 
	    {
		if (strYr.charAt(0)=="0" && strYr.length>1) 
		   strYr=strYr.substring(1);
	    }
		
	month=parseInt(strMonth);
	day=parseInt(strDay);
	year=parseInt(strYr);

	if (pos1==-1 || pos2==-1)
	   {
	   return "\n     -  The date format should be : yyyy-mm-dd";
	   }
	   
	if (strMonth.length<1 || month<1 || month>12)
	   {
       errStr += "\n     -  Please enter a valid month";
	   }
	   
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
	   {
       errStr += "\n     -  Please enter a valid day";
	   }
	   
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
	   {
	   errStr += "\n     -  Please enter a valid 4 digit year between "+minYear+" and "+maxYear;
	   }
	   
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
	   {
	   errStr += "\n     -  Please enter a valid date";
	   }
	   
   return errStr;
}

function ValidateDate(idDate)
{
   var dt=document.getElementById(idDate);

   var errStr = isDate(dt.value);
   if (errStr == "")
      return "";
   
   return errStr;
 }


