function winPopup(url, name, width, height)
{
  var args = "toolbar=no,status=no,scrollbars=no,location=no,menubar=no,directories=no,width="+width+",height="+height;
  hp=window.open(url, name, args);
  hp.focus();
  return false;
}

function validatecontact()
{
  var firstname = document.getElementById('firstname');
  var lastname  = document.getElementById('lastname');
  var email     = document.getElementById('email');
  var phone     = document.getElementById('phone');
  var company   = document.getElementById('company');
  var form      = document.getElementById('contactform');

  var reg = new RegExp(/^[a-zA-Z0-9]+([\_\-\.]*[a-zA-Z0-9]+[\_\-]?)*@[a-zA-Z0-9]+([\_\-]?[a-zA-Z0-9]+)*\.+([\-\_]?[a-zA-Z0-9])+(\.?[a-zA-Z0-9]+)*$/)

  if (firstname.value.length == 0)
    alert('Please enter a valid first name.');
  else if (lastname.value.length == 0)
    alert('Please enter a valid last name.');
  else if(reg.test(email.value) == false)
    alert('Please enter a valid email address.');
  else if ((email.value.indexOf("gmail") != -1) || (email.value.indexOf("hotmail") != -1) ||
           (email.value.indexOf("yahoo") != -1))
    alert('We do not accept email from public email ids, please use a corporate email id.');
  else if (phone.value.length == 0)
    alert('Please enter a valid phone number.');
  else if (company.value.length == 0)
    alert('Please enter a valid company name.');
  else
    form.submit();
}

function CommaFormatted(amount)
{
  var delimiter = ","; // replace comma if desired
  var a = amount.split('.',2)
  var d = a[1];
  var i = parseInt(a[0]);
  if(isNaN(i)) { return ''; }
  var minus = '';
  if(i < 0) { minus = '-'; }
  i = Math.abs(i);
  var n = new String(i);
  var a = [];
  while(n.length > 3)
  {
    var nn = n.substr(n.length-3);
    a.unshift(nn);
    n = n.substr(0,n.length-3);
  }
  if(n.length > 0) { a.unshift(n); }
  n = a.join(delimiter);
  if(d.length < 1) { amount = n; }
  else { amount = n + '.' + d; }
  amount = minus + amount;
  return "$  " + amount;
}

function calculateroi()
{
  var vspscal = 99;
  var vspscalhosted = 9.9;
  var vspsinstall = 499;
  var vspsinstallhosted = 0;
  var mspscal = 300;
  var sharepointcal = 79;
  var ms2008server = 2995;
  var ms2008servercal = 40;
  var sqlstandard = 4995;
  var mspscalhosted = 39.95;
  var mspshostedbasic = 175;
  var mspsinstallhosted = 0;
  var centos = 0;

  var pmcount = document.getElementById('pmcount').value;
  if (pmcount == '')
  {
    alert("ERROR: Please enter number of Project Managers.");
    return;
  }

  if (isNaN(pmcount))
  {
    alert("ERROR: Number of Project Managers must be a numeric.");
    return;
  }
  pmcount = Math.round(pmcount);

  var tmcount = document.getElementById('tmcount').value;
  if (tmcount == '')
  {
    alert("ERROR: Please enter number of Team Members.");
    return;
  }

  if (isNaN(tmcount))
  {
    alert("ERROR: Number of Team Members must be a numeric.");
    return;
  }
  tmcount = Math.round(tmcount);

  var pmrate = document.getElementById('pmrate').value;
  if (pmrate == '')
  {
    alert("ERROR: Please enter Hourly Rate for Project Managers.");
    return;
  }

  if (isNaN(pmrate))
  {
    alert("ERROR: Hourly Rate for Project Managers must be a number. Example: 45.50");
    return;
  }
  pmrate = (Math.round(pmrate * 100))/100;

  var tmrate = document.getElementById('tmrate').value;
  if (tmrate == '')
  {
    alert("ERROR: Please enter Hourly Rate for Team Members.");
    return;
  }

  if (isNaN(tmrate))
  {
    alert("ERROR: Hourly Rate for Project Managers must be a number. Example: 45.50");
    return;
  }
  tmrate = (Math.round(tmrate * 100))/100;

  var itrate = document.getElementById('itrate').value;
  if (itrate == '')
  {
    alert("ERROR: Please enter Hourly Rate for IT/Support Staff.");
    return;
  }

  if (isNaN(itrate))
  {
    alert("ERROR: Hourly Rate for Project Managers must be a number. Example: 45.50");
    return;
  }
  itrate = (Math.round(itrate * 100))/100;

  
  // var msprojstandard = 495;
  var msprojstandard = document.getElementById('mspstd').value;
  if (msprojstandard == '')
  {
    alert("ERROR: Please enter the cost of Microsoft Project Standard.");
    return;
  }
  if (isNaN(msprojstandard))
  {
    alert("ERROR: Cost of Microsoft Project Standard must be a number. Example: 495.00");
    return;
  }
  msprojstandard = (Math.round(msprojstandard * 100))/100;

  // var msprojprofessional = 995;
  var msprojprofessional = document.getElementById('mspro').value;
  if (msprojprofessional == '')
  {
    alert("ERROR: Please enter the cost of Microsoft Project Professional.");
    return;
  }
  if (isNaN(msprojprofessional))
  {
    alert("ERROR: Cost of Microsoft Project Professional must be a number. Example: 995.00");
    return;
  }
  msprojprofessional = (Math.round(msprojprofessional * 100))/100;

  // var win2k = 1199;
  var win2k = document.getElementById('win2k').value;
  if (win2k == '')
  {
    alert("Error: Please enter the cost of Windows Server 2000.");
    return;
  }
  if (isNaN(win2k))
  {
    alert("ERROR: Cost of Windows Server 2000 must be a number. Example: 1199.00");
    return;
  }
  win2k = (Math.round(win2k * 100))/100;

  // var sql = 4999;
  var sql = document.getElementById('mssql').value;
  if (sql == '')
  {
    alert("ERROR: Please enter the cost of MSSQL Server.");
    return;
  }
  if (isNaN(sql))
  {
    alert("ERROR: Cost of MSSQL Server must be a number. Example: 4999.00");
    return;
  }
  sql = (Math.round(sql * 100))/100;

  // var mspsclient = 599;
  var mspsclient = document.getElementById('mspsclient').value;
  if (mspsclient == '')
  {
    alert("ERROR: Please enter the cost of Microsoft Project Server Client License.");
    return;
  }
  if (isNaN(mspsclient))
  {
    alert("ERROR: Cost of Microsoft Project Server Client License has to be a number. Example 599.00");
    return;
  }
  mspsclient = (Math.round(mspsclient * 100))/100;

  // var mspclient = 300;
  var mspclient = document.getElementById('msplicense').value;
  if (mspclient == '')
  {
    alert("ERROR: Please enter the cost of Microsoft Project User License.");
    return;
  }
  if (isNaN(mspclient))
  {
    alert("ERROR: Cost of Microsoft Project Server User License has to be a number. Example 300.00");
    return;
  }
  mspclient = (Math.round(mspclient * 100))/100;

  //var sharepointclient = 71;
  var sharepointclient = document.getElementById('sharepoint').value;
  if (sharepointclient == '')
  {
    alert("ERROR: Please enter the cost of Sharepoint Server User License.");
    return;
  }
  if (isNaN(sharepointclient))
  {
    alert("ERROR: Cost of Sharepoint Server User License has to be a number. Example 71.00");
    return;
  }
  sharepointclient = (Math.round(sharepointclient * 100))/100;

  //var mspreader = 30;
  var mspreader = document.getElementById('mspreader').value;
  if (mspreader == '')
  {
    alert("ERROR: Please enter the cost of Microsoft Project Reader User License.");
    return;
  }
  if (isNaN(mspreader))
  {
    alert("ERROR: Cost of Microsoft Project Reaser User License has to be a number. Example 71.00");
    return;
  }
  mspreader = (Math.round(mspreader * 100))/100;

  // var sharepoint = 3995;
  var sharepoint = document.getElementById('sharepointserver').value;
  if (sharepoint == '')
  {
    alert("ERROR: Please enter the cost of Sharepoint Server.");
    return;
  }
  if (isNaN(sharepoint))
  {
    alert("ERROR: Cost of Sharepiont Server has to be a number. Example 3995.00");
    return;
  }
  sharepoint = (Math.round(sharepoint * 100))/100;

  // var mspsbasic = 10000;
  var mspsbasic = document.getElementById('mspsbasic').value;
  if (mspsbasic == '')
  {
    alert("ERROR: Please enter the cost of Microsoft Project Server.");
    return;
  }
  if (isNaN(mspsbasic))
  {
    alert("ERROR: Cost of Microsoft Project Server has to be a number. Example 10000.00");
    return;
  }
  mspsbasic = (Math.round(mspsbasic * 100))/100;

  // Case 1 - Using Microsoft Project for team members.
  var msp1value = (pmcount + tmcount) * msprojstandard;
  var msp1 = document.getElementById('msp1');
  msp1.value = CommaFormatted(msp1value.toFixed(2));

  var msp1installvalue = (pmcount + tmcount) * itrate * 0.33;
  var msp1install = document.getElementById('msp1install');
  msp1install.value = CommaFormatted(msp1installvalue.toFixed(2));

  var msp1totalvalue = msp1value + msp1installvalue;
  var msp1total = document.getElementById('msp1total');
  msp1total.value = CommaFormatted(msp1totalvalue.toFixed(2));

  // Case 2 - Using Microsoft Project readers.
  var msp2value = pmcount * msprojstandard;
  var msp2 = document.getElementById('msp2');
  msp2.value = CommaFormatted(msp2value.toFixed(2));

  var mspr2value = tmcount * mspreader;
  var mspr2 = document.getElementById('mspr2');
  mspr2.value = CommaFormatted(mspr2value.toFixed(2));

  var mspr2installvalue = (pmcount * itrate * 0.33) + (tmcount * itrate * 0.33);
  var mspr2install = document.getElementById('mspr2install');
  mspr2install.value = CommaFormatted(mspr2installvalue.toFixed(2));

  var mspr2totalvalue = msp2value + mspr2value + mspr2installvalue;
  var mspr2total = document.getElementById('mspr2total');
  mspr2total.value = CommaFormatted(mspr2totalvalue.toFixed(2));

  // Case 3 - Using Microsoft Project Server - On Site
  var msp3value = pmcount * msprojprofessional;
  var msp3 = document.getElementById('msp3');
  msp3.value = CommaFormatted(msp3value.toFixed(2));

  var msps3value = (pmcount + tmcount) * (mspsclient + mspclient + sharepointclient);
  var msps3 = document.getElementById('msps3');
  msps3.value = CommaFormatted(msps3value.toFixed(2));

  var os3value = win2k + sql + sharepoint + mspsbasic;
  var os3 = document.getElementById('os3');
  os3.value = CommaFormatted(os3value.toFixed(2));

  var msps3installvalue = mspsbasic;
  var msps3install = document.getElementById('msps3install');
  msps3install.value = CommaFormatted(msps3installvalue.toFixed(2));

  var msps3totalvalue = msp3value + msps3value + os3value + msps3installvalue;
  var msps3total = document.getElementById('msps3total');
  msps3total.value = CommaFormatted(msps3totalvalue.toFixed(2));

  // Case 4 - Using ValleySpeak Project Server - On Site
  var msp4value = pmcount * msprojstandard;
  var msp4 = document.getElementById('msp4');
  msp4.value = CommaFormatted(msp4value.toFixed(2));

  var vsps4value = (pmcount + tmcount) * vspscal;
  var vsps4 = document.getElementById('vsps4');
  vsps4.value = CommaFormatted(vsps4value.toFixed(2));

  var os4value = centos;
  var os4 = document.getElementById('os4');
  os4.value = CommaFormatted(os4value.toFixed(2));

  var vsps4install = document.getElementById('vsps4install');
  vsps4install.value = CommaFormatted(vspsinstall.toFixed(2));

  var vsps4totalvalue = msp4value + vsps4value + vspsinstall;
  var vsps4total = document.getElementById('vsps4total');
  vsps4total.value = CommaFormatted(vsps4totalvalue.toFixed(2));

  // Case 5 - Using Microsoft Project Server - Hosted
  var msp5value = pmcount * msprojprofessional;
  var msp5 = document.getElementById('msp5');
  msp5.value = CommaFormatted(msp5value.toFixed(2));

  var msps5value = (pmcount + tmcount) * (mspscalhosted + mspshostedbasic);
  var msps5 = document.getElementById('msps5');
  msps5.value = CommaFormatted(msps5value.toFixed(2));

  var msps5install = document.getElementById('msps5install');
  msps5install.value = CommaFormatted(mspsinstallhosted.toFixed(2));

  var msps5totalvalue = msp5value + msps5value + mspsinstallhosted;
  var msps5total = document.getElementById('msps5total');
  msps5total.value = CommaFormatted(msps5totalvalue.toFixed(2)) + " /mo";

  // Case 6 - Using ValleySpeak Project Server - Hosted
  var msp6value = pmcount * msprojstandard;
  var msp6 = document.getElementById('msp6');
  msp6.value = CommaFormatted(msp6value.toFixed(2));

  var vsps6value = (pmcount + tmcount) * vspscalhosted;
  var vsps6 = document.getElementById('vsps6');
  vsps6.value = CommaFormatted(vsps6value.toFixed(2));

  var vsps6install = document.getElementById('vsps6install');
  vsps6install.value = CommaFormatted(vspsinstallhosted.toFixed(2));

  var vsps6totalvalue = msp6value + vsps6value + vspsinstallhosted;
  var vsps6total = document.getElementById('vsps6total');
  vsps6total.value = CommaFormatted(vsps6totalvalue.toFixed(2)) + " /mo";

}
