//global error array
var debugArray = [];

function addMsg(msg) {
	debugArray.push(msg);
}

function debugIE()
{
	var str = debugArray.join(' : ');
	alert(str);
}

// ESP Signup validation
function validateSignup() {

  // Setup
  var result = true;
  var form = document.getElementById('sun');
  var errmsg = "Required information:\n\n";
   
  // Field by Field
  if (document.getElementById('company').value == "") {
    result = false;
    errmsg += "Organization\n"
  }

  if (document.getElementById('first_name').value == "") {
    result = false;
    errmsg += "First Name\n"
  }

  if (document.getElementById('last_name').value == "") {
    result = false;
    errmsg += "Last Name\n"
  }

  if (document.getElementById('street').value == "") {
    result = false;
    errmsg += "Street Address\n"
  }
  
  	 if (document.getElementById('city').value == "") {
    result = false;
    errmsg += "City\n"
  }

  	 if (document.getElementById('00N30000000sd7K').options[document.getElementById('00N30000000sd7K').selectedIndex].value == "" && document.getElementById('country').options[document.getElementById('country').selectedIndex].value == "USA") {
    result = false;
    errmsg += "State\n"
  }
   if (document.getElementById('country').options[document.getElementById('country').selectedIndex].value == "") {
    result = false;
    errmsg += "Country\n"
  }

  if (document.getElementById('zip').value == "") {
    result = false;
    errmsg += "ZIP\n"
  }

  if (document.getElementById('phone').value == "") {
    result = false;
    errmsg += "Phone\n"
  }
  
  if (!validatePhone(document.getElementById('phone').value)) {
		result = false;
		errmsg += "Not a valid phone number\n"
	}
  
  if (document.getElementById('email').value == "") {
    result = false;
    errmsg += "Email\n"
  }
  
  if (!checkEmail(document.getElementById('email').value,0)) {
    result = false;
    errmsg += "Email is Invalid\n"
  }

  if (document.getElementById('00N30000000sd7J').value == "") {
    result = false;
    errmsg += "Avg. Monthly Bill\n"
  }

  if (document.getElementById('ta_description').value == "") {
    result = false;
    errmsg += "Project Description\n"
  }

  if (document.getElementById('lead_source').value == "") {
    result = false;
    errmsg += "How did you hear?\n"
  }
  
  
  
  

  // return true or false + error
  if (result) {
    return true;
  } else {
    alert(errmsg);
    return false;
  }
}
//globals
var validStatesCVAR = new Array('AL', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FL', 'GA', 'HI', 'ID', 'IL', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI', 'MN', 'MS', 'MT', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC', 'OH', 'OK', 'OR', 'PA', 'PR', 'RI', 'SC', 'TN', 'TX', 'UT', 'VT', 'VA', 'WI', 'WY', '');
  var validStatesSystems = new Array('AZ', 'CA', 'CO', 'CT', 'FL', 'GA', 'HI', 'MD', 'MA', 'NV', 'NJ', 'NM', 'NY', 'NC', 'OR', 'PA', 'PR', 'TX', '');
  var validStates = validStatesSystems;

// Misc utils

function checkEmail(emailStr,sprFlag) {
  // regex from http://xyfer.blogspot.com/2005/01/javascript-regexp-email-validator.html
  var reg =  /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i
  if(reg.test(emailStr) == false) {
    return false;
  } else if  (emailStr == "test@test.com") {
	return false;
  }
  return true;
}

function validatePhone(value)
    {
        if(value.search(/^[\#+\-\(\)0-9\ ]+$/) == -1)
        {
            return false;
        }       
        return true;
    }


function twiddleViz(target, state) {
  //alert(target+", "+state);
  elt = document.getElementById(target);
  elt.style.display = state;
}

// CheckState - display warning note if not in target state
function checkState(selected,noteDiv) {
  //alert(selected);
  //validStates = new Array('CA','CO','CT','HI','NV','NJ');
  var status = false;
  for (state in validStates) {
    //alert(selected+', '+validStates[state]);
    if (selected == validStates[state]) {
      status = true;
    }
  }
  //alert(status);
  if (!status) {
    //alert('activating '+noteDiv);
    document.getElementById('stateNote').style.display = 'block';
  } else {
    //alert('deactivating '+noteDiv);
    document.getElementById('stateNote').style.display = 'none';
  }
}
// CheckState - display warning note if not in target state
function fnCheckState(selectedOption,msgDivID) {
  //alert(selectedOption);
  var s = false;
  for (var i=0; i<validStates.length; i++) {
    //alert(selected+', '+validStates[state]);
    if (selectedOption == validStates[i]) {
      s = true;
    }
  }
  addMsg('debugging time');
  //alert(status);
  if (!s) {
    //alert('activating '+msgDivID);
	addMsg(msgDivID);
	 addMsg(document.getElementById(msgDivID).style.display);
    document.getElementById(msgDivID).style.display = 'block';
  } else {
    //alert('deactivating '+msgDivID);
    document.getElementById(msgDivID).style.display = 'none';
  }
}

// CheckMonthlyBill - set hidden salesforce campaign var based on deal value
function checkMonthlyBill(selected) {
  var cvarBills = new Array('0 to $1,000','$1000 to $3,000','$3000 to $5,000','$5,000 to $10,000');
  var campaign = 'systems';
  for (bill in cvarBills) {
    if (selected == cvarBills[bill]) {
      campaign = 'cvar';
    }
  }
  
  // Set Campaign
  if (campaign == 'systems') {
    document.getElementById('Campaign_ID').value = '7013000000036QM'; // Systems
	validStates = validStatesSystems;
	fnCheckState(document.getElementById('00N30000000sd7K').options[document.getElementById('00N30000000sd7K').selectedIndex].value,'stateNote');
	fnCheckState(document.getElementById('FacilityState').options[document.getElementById('FacilityState').selectedIndex].value,'stateNote2');
	document.getElementById('spotsbutton').style.display = "none";
	document.getElementById('salesforcebutton').style.display = "";
  } else {
    document.getElementById('Campaign_ID').value = '70140000000GvNy'; // CVAR
	validStates = validStatesCVAR;
	fnCheckState(document.getElementById('00N30000000sd7K').options[document.getElementById('00N30000000sd7K').selectedIndex].value,'stateNote');
	fnCheckState(document.getElementById('FacilityState').options[document.getElementById('FacilityState').selectedIndex].value,'stateNote2');
	document.getElementById('salesforcebutton').style.display = "none";
	document.getElementById('spotsbutton').style.display = "";
  }
  //alert(document.getElementById('Campaign_ID').value);
}

//check once on load since some browsers may save the last selected option
checkMonthlyBill(document.getElementById('00N30000000sd7J').options[document.getElementById('00N30000000sd7J').selectedIndex].value);

function toggleState() {
	if(document.getElementById('country').options[document.getElementById('country').selectedIndex].value != "USA") {
		document.getElementById('state').style.display = "none";
	} else {
		document.getElementById('state').style.display = "";
	}
}


