// JavaScript Document


function isEmptyField(field)
{
	var fieldValue=document.getElementById(field).value;
	if (fieldValue==""||fieldValue==null||!isNaN(fieldValue))
    {
		return false;
    }
	return true;
}
function version(field)
{
	var fieldValue=document.getElementById(field).value;
	if (fieldValue==""||fieldValue==null)
    {
		return false;
    }
	return true;

}

function isValidEmailField(emailfield){
/*  //validRegExp = /^[^@]+@[^@]+.[a-z]{2,}$/i;
  
   if (emailValue.search(validRegExp)==-1) 
   {
      return false;
    } 
    return true; */

 	emailValue=document.getElementById(emailfield).value;
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emailValue)){
		return (true)
	}
	return false
}


function isDate(field){
  var str=document.getElementById(field).value;
  var re = /^(\d{1,2})[\s\.\/-](\d{1,2})[\s\.\/-](\d{4})$/
  if (!re.test(str)) return false;
  var result = str.match(re);
  var m = parseInt(result[1]);
  var d = parseInt(result[2]);
  var y = parseInt(result[3]);
  if(m < 1 || m > 12 || y < 1900 || y > 2100) return false;
  if(m == 2){
          var days = ((y % 4) == 0) ? 29 : 28;
  }else if(m == 4 || m == 6 || m == 9 || m == 11){
          var days = 30;
  }else{
          var days = 31;
  }
  return (d >= 1 && d <= days);
}




function getDateObject(dateString,dateSeperator)
{
	//This function return a date object after accepting 
	//a date string ans dateseparator as arguments
	var curValue=dateString;
	var sepChar=dateSeperator;
	var curPos=0;
	var cDate,cMonth,cYear;
	
	//extract day portion
	curPos=dateString.indexOf(sepChar);
	cMonth=dateString.substring(0,curPos);
	
	//extract month portion 
	endPos=dateString.indexOf(sepChar,curPos+1); cDate=dateString.substring(curPos+1,endPos);
	
	//extract year portion 
	curPos=endPos;
	endPos=curPos+5; 
	cYear=curValue.substring(curPos+1,endPos);
	
	//Create Date Object
	dtObject=new Date(cYear,cMonth,cDate); 
	return dtObject;
}

function checkDate(dstart,dend)
{
	svalue=document.getElementById(dstart).value;
	evalue=document.getElementById(dend).value;
	var startDate = getDateObject(svalue,"-");
	var endDate = getDateObject(evalue,"-");
	if(startDate <= endDate)
	{
		//alert("startDate is less than endDate");
		return true;

	}
	
	if(startDate > endDate)
	{
		alert("Completion Date can't be earlier than Start Date");
		return false;
	}
}
function ischecked(cb1,cb2,cb3,cb4,cb5,txt)
{
	var c1c=document.getElementById(cb1).checked;
	var c2c=document.getElementById(cb2).checked;
	var c3c=document.getElementById(cb3).checked;
	var c4c=document.getElementById(cb4).checked;
	var c5c=document.getElementById(cb5).checked;
	if(!c1c && !c2c && !c3c && !c4c && !c5c && !isEmptyField(txt))
		return false;
	return true;	
}

function checkformDate(firstname,lastname,title,company,email,curVendor,curSoftware,curVersion,newVendor,newSoftware,newVersion,datestart,dateend,CurDB2,CurOracle,CurSybase,CurMicrosoft,CurInformix,CurOther,NewDB2,NewOracle,NewSybase,NewMicrosoft,NewInformix,NewOther){
	/*if (isEmptyField(firstname) && isEmptyField(lastname) && isEmptyField(company) && isValidEmailField(email) && isEmptyField(curVendor) && isEmptyField(curSoftware)&& isEmptyField(curVersion) && isEmptyField(newVendor) && isEmptyField(newSoftware)&& isEmptyField(newVersion) &&checkDate(datestart,dateend)){
			return true;
		}	*/
	var erstring="Please input the required fields:";	
	if (!isEmptyField(firstname)) erstring += "\n - First Name";
	if(!isEmptyField(lastname)) erstring += "\n - Last Name";
	if(!isEmptyField(title)) erstring += "\n - Title";
	if(!isEmptyField(company)) erstring += "\n - Company";
	if(!isValidEmailField(email)) erstring += "\n - Email";
	if(!isDate(datestart)) erstring +="\n - Conversion Start Date";
	if(!isDate(dateend)) erstring +="\n - Conversion Completion Date";
	if(!isEmptyField(curVendor)) erstring += "\n - Current System Vendor";
	if(!isEmptyField(curSoftware)) erstring += "\n - Current Software";
	if(!version(curVersion)) erstring += "\n - Current Version";
	if(!ischecked (CurDB2,CurOracle,CurSybase,CurMicrosoft,CurInformix,CurOther)) erstring += "\n - Current System Database";
	if(!isEmptyField(newVendor)) erstring += "\n - New System Vendor";
	if(!isEmptyField(newSoftware)) erstring += "\n - New Software";
	if(!version(newVersion)) erstring += "\n - New Version";	
	if(!ischecked (NewDB2,NewOracle,NewSybase,NewMicrosoft,NewInformix,NewOther)) erstring += "\n - New System Database";
	
	checkDate(datestart,dateend);
	
	if (erstring=="Please input the required fields:")
	{
		return true;
	}
	else
	{
		alert(erstring);
		erstring="Please input the required fields:";
		return false;hi
	}
}