String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}


//var ORCHID_BAY_REF="ORCHID_BAY_REF";
function setLeadSourceDetailsToReferrer(obj) {
	var c=getCookie(ORCHID_BAY_REF);
	if(c!=null && c!="") {
		obj.value = c;
//		alert("SETTING SALESFORCE FORM ELEMENT TO "+c);
	}
}



function capitalizeFirstChar(obj) {
        val = obj.value;
        newVal = '';
        val = val.split(' ');
        for(var c=0; c < val.length; c++) {
                newVal += val[c].substring(0,1).toUpperCase() + val[c].substring(1,val[c].length) + ' ';
        }
        obj.value = newVal;
}


function capitalizeString(obj) {
  var ValueString = obj.value;
  ValueString = ValueString.replace(/ +/g,' ');
  var names = ValueString.split(' ');
  for(var i = 0; i < names.length; i++) {
	  var subnames=names[i].split('-');
	  for (var j = 0; j<subnames.length; j++) {
		  	if(subnames[j].length > 1) {
			  	subnames[j] = subnames[j].toLowerCase();
			  	letters = subnames[j].split('');
			  	letters[0] = letters[0].toUpperCase();
			  	subnames[j] = letters.join('');
			} else { 
				subnames[j] = subnames[j].toUpperCase(); 
			}
	  }
	  names[i] = subnames.join('-');
  }
  ValueString = names.join(' ');
  obj.value = ValueString;
}



function setCompany() {
	company=document.getElementById("company");
	first=""+document.getElementById("first_name").value;
	last=""+document.getElementById("last_name").value;
		first=first.trim();
		last=last.trim();
	company.value = first + ' ' + last;	
}

function getTimeAndDate() {
	var currentTime = new Date();
	var h=currentTime.getHours();
	var m=currentTime.getMinutes(); if (m<10) m+="0";
	var ampm=""; if (h>11) {ampm="PM";h=h-12;} else {ampm="AM";} if (h==0) h=12;
	var d=currentTime.getDay();
	var t=h+":"+m+" "+ampm+" "+days[d];
	return t;
}
function setBestTimeToCall(obj) {
//	return; //Better off leaving the field blank so sales rep does not procrastinate calling
	obj.value="Registered at "+getTimeAndDate();
}

function setDefaultsIfLoggedIn() {
	if(isUserLoggedIn()) {
		document.getElementById("salutation").value=getSalutation();
		document.getElementById("first_name").value=getFirstName();
		document.getElementById("last_name").value=getLastName();
		document.getElementById("phone").value=getPhone();
		document.getElementById("email").value=getEmail();
	}
}
function setDefaultsIfLoggedInX() {
	alert("User is logged in "+isUserLoggedIn());
	if(isUserLoggedIn()) {
		alert("Sal = "+getSalutation());
		document.getElementById("salutation").value=getSalutation();
		document.getElementById("first_name").value=getFirstName();
		document.getElementById("last_name").value=getLastName();
		document.getElementById("phone").value=getPhone();
		document.getElementById("email").value=getEmail();
	}
}


function inspectString() {
	var str=document.getElementById("email").value.trim().toUpperCase(); //Simplify RegEx by requiring uppercase
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	var rat=str.lastIndexOf(at);
	var rdot=str.lastIndexOf(dot);
	var multiple_at=(str.indexOf(at, lat+1) != -1);
	var filter=/^([A-Z0-9_\.\-])+\@(([A-Z0-9\-])+\.)+([A-Z0-9]{2,4})+$/; //Simplify RegEx by requiring uppercase
	alert("lat = "+lat+"\rldot = "+ldot+"\rrat = "+rat+"\rrdot = "+rdot+"\rmultiple_at = "+multiple_at+"\rlstr = "+lstr+"\rfilter = "+filter.test(str));
	
	if (lat==-1 || lat==0 || lat==lstr){
		alert("No @, first character is @, or last character is @");
	}
	
	if (ldot==-1 || ldot==0 || ldot==lstr){
		alert("No dot, first character is dot, or last character is dot");
	}
	
	if (rdot >= lstr-2){
		alert("Less than 2 character from end of string (domain suffix is only 0 or 1 character");
	}
	
	if (multiple_at){
		alert("two @ "+multiple_at);
	}
	
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		alert("dot immediately before or after @");
	}
	
	if (str.indexOf(dot,(lat+2))==-1){
		alert("No dot after second character past @");
	}
	
	if (str.indexOf(" ")!=-1){
		alert("blanks");
	}
	
	if (!filter.test(str)){
		alert("RegEx filter found error");
	}

	
}



function isValidEmail(email) {
	var str=document.getElementById("email").value.trim().toUpperCase(); //Simplify RegEx by requiring uppercase
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	var rat=str.lastIndexOf(at);
	var rdot=str.lastIndexOf(dot);
	var multiple_at=(str.indexOf(at, lat+1) != -1);
	var filter=/^([A-Z0-9_\.\-])+\@(([A-Z0-9\-])+\.)+([A-Z0-9]{2,4})+$/; //Simplify RegEx by requiring uppercase
	
	if (lat==-1 || lat==0 || lat==lstr){
		//No @, first character is @, or last character is @
		return false;
	}
	
	if (ldot==-1 || ldot==0 || ldot==lstr){
		//No dot, first character is dot, or last character is dot
		return false;
	}
	
	if (rdot >= lstr-2){
		//Less than 2 character from end of string (domain suffix is only 0 character)
		return false;
	}
	
	if (multiple_at){
		//two @ 
		return false;
	}
	
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		//dot immediately before or after @
		return false;
	}
	
	if (str.indexOf(dot,(lat+2))==-1){
		//No dot after second character past @
		return false;
	}
	
	if (str.indexOf(" ")!=-1){
		//blanks
		return false;
	}
	
	if (!filter.test(str)){
		//Incomprehensible RegEx filter found online
		return false;
	}
	return true;					
}

function submitForm() {
		email=document.getElementById("email").value.trim();
	    if (!isValidEmail(email))
      	{
      		alert("Please enter a valid email address.\rDetails will be sent via email.");
			return;
      	}
		setCompany();
		setStateAndCountry();
 		updateLoggedInUserForForm();
     	document.forms[0].onsubmit();
      	document.forms[0].submit();
}
function updateLoggedInUserForForm() {
	updateLoggedInUser(document.getElementById("salutation").value, document.getElementById("first_name").value, document.getElementById("last_name").value, document.getElementById("phone").value, document.getElementById("email").value);
}
var days=['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];

var AreaCodes= ['907', '205', '251', '256', '938', '334', '479', '501', '870', '327', '684', '480', '520', '602', '623', '928', '209', '213', '310', '424', '323', '408', '415', '510', '530', '559', '562', '619', '626', '650', '661', '707', '714', '657', '760', '442', '805', '818', '747', '831', '858', '909', '916', '925', '949', '951', '670', '303', '720', '719', '970', '203', '475', '860', '959', '202', '302', '239', '305', '786', '352', '386', '407', '321', '321', '561', '727', '772', '813', '850', '863', '904', '941', '954', '754', '229', '404', '678', '478', '770', '678', '706', '762', '912', '671', '808', '319', '515', '563', '641', '712', '208', '217', '447', '309', '312', '872', '618', '730', '630', '331', '708', '773', '872', '815', '779', '847', '224', '219', '260', '317', '574', '765', '812', '316', '620', '785', '913', '270', '364', '502', '606', '859', '225', '318', '337', '504', '985', '413', '508', '774', '617', '857', '781', '339', '978', '351', '301', '240', '410', '443', '207', '231', '248', '947', '269', '313', '517', '586', '616', '734', '810', '906', '989', '218', '320', '507', '612', '651', '763', '952', '314', '417', '573', '636', '660', '816', '670', '228', '601', '769', '662', '406', '252', '336', '704', '980', '828', '910', '919', '701', '308', '402', '531', '603', '201', '551', '609', '732', '848', '856', '908', '973', '862', '505', '575', '702', '775', '212', '646', '315', '516', '518', '585', '607', '631', '716', '718', '347', '929', '845', '914', '917', '216', '330', '234', '419', '567', '440', '513', '614', '740', '937', '405', '580', '918', '503', '971', '541', '458', '215', '267', '412', '878', '570', '610', '484', '717', '724', '878', '814', '878', '787', '939', '401', '684', '803', '843', '864', '605', '423', '615', '731', '865', '901', '931', '210', '214', '972', '469', '254', '281', '325', '361', '409', '430', '432', '469', '512', '682', '713', '281', '832', '806', '817', '682', '830', '832', '903', '430', '915', '936', '940', '956', '972', '979', '435', '801', '385', '340', '276', '434', '540', '703', '571', '757', '804', '802', '206', '253', '360', '425', '509', '262', '414', '608', '715', '534', '920', '274', '304', '681', '307', '250', '778', '604', '778', '403', '587', '780', '587', '306', '204', '416', '647', '519', '226', '613', '343', '705', '249', '807', '905', '289', '418', '581', '450', '579', '514', '438', '819', '506', '902', '902', '709', '867', '867', '867'];
var States = ['AK', 'AL', 'AL', 'AL', 'AL', 'AL', 'AR', 'AR', 'AR', 'AR', 'AS', 'AZ', 'AZ', 'AZ', 'AZ', 'AZ', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CA', 'CNMI', 'CO', 'CO', 'CO', 'CO', 'CT', 'CT', 'CT', 'CT', 'DC', 'DE', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'FL', 'GA', 'GA', 'GA', 'GA', 'GA', 'GA', 'GA', 'GA', 'GA', 'GU', 'HI', 'IA', 'IA', 'IA', 'IA', 'IA', 'ID', 'IL', 'IL', 'IL', 'IL', 'IL', 'IL', 'IL', 'IL', 'IL', 'IL', 'IL', 'IL', 'IL', 'IL', 'IL', 'IL', 'IN', 'IN', 'IN', 'IN', 'IN', 'IN', 'KS', 'KS', 'KS', 'KS', 'KY', 'KY', 'KY', 'KY', 'KY', 'LA', 'LA', 'LA', 'LA', 'LA', 'MA', 'MA', 'MA', 'MA', 'MA', 'MA', 'MA', 'MA', 'MA', 'MD', 'MD', 'MD', 'MD', 'ME', 'MI', 'MI', 'MI', 'MI', 'MI', 'MI', 'MI', 'MI', 'MI', 'MI', 'MI', 'MI', 'MN', 'MN', 'MN', 'MN', 'MN', 'MN', 'MN', 'MO', 'MO', 'MO', 'MO', 'MO', 'MO', 'MP', 'MS', 'MS', 'MS', 'MS', 'MT', 'NC', 'NC', 'NC', 'NC', 'NC', 'NC', 'NC', 'ND', 'NE', 'NE', 'NE', 'NH', 'NJ', 'NJ', 'NJ', 'NJ', 'NJ', 'NJ', 'NJ', 'NJ', 'NJ', 'NM', 'NM', 'NV', 'NV', 'NY', 'NY', 'NY', 'NY', 'NY', 'NY', 'NY', 'NY', 'NY', 'NY', 'NY', 'NY', 'NY', 'NY', 'NY', 'OH', 'OH', 'OH', 'OH', 'OH', 'OH', 'OH', 'OH', 'OH', 'OH', 'OK', 'OK', 'OK', 'OR', 'OR', 'OR', 'OR', 'PA', 'PA', 'PA', 'PA', 'PA', 'PA', 'PA', 'PA', 'PA', 'PA', 'PA', 'PA', 'PR', 'PR', 'RI', 'AS', 'SC', 'SC', 'SC', 'SD', 'TN', 'TN', 'TN', 'TN', 'TN', 'TN', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'TX', 'UT', 'UT', 'UT', 'VI', 'VA', 'VA', 'VA', 'VA', 'VA', 'VA', 'VA', 'VT', 'WA', 'WA', 'WA', 'WA', 'WA', 'WI', 'WI', 'WI', 'WI', 'WI', 'WI', 'WI', 'WV', 'WV', 'WV', 'BC', 'BC', 'BC', 'BC', 'AB', 'AB', 'AB', 'AB', 'SK', 'MB', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'ON', 'QC', 'QC', 'QC', 'QC', 'QC', 'QC', 'QC', 'NB', 'NS', 'PEI', 'NL', 'YT', 'NT', 'NU'];
var Countries = ['USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'USA', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada', 'Canada'];

function setStateAndCountry ()
{
	   var sPhone=document.getElementById("phone").value;
	   var ValidChars = "0123456789.";
	   var len = sPhone.length;
	   var sNumber = "";
//	   alert("Phone = "+sPhone);
	   // Remove all non-numeric values
	   for (i = 0; i < len; i++) {
	       var Char = sPhone.charAt(i);
		   if (ValidChars.indexOf(Char) != -1)
			   sNumber = sNumber + Char;
	   }
//	   alert("First Number = "+sNumber.charAt(0));
	   if(sNumber.charAt(0)=='1') {
//		   alert("removing leading 1");
		   sNumber=sNumber.substr(1,sNumber.length);
	   }
//	   alert("Number = "+sNumber);
	   if (sNumber.length >= 3) {
	   	   var sAreaCode = sNumber.substring(0,3);
//		   alert("Area Code = "+sAreaCode);
		   for (i = 0; i < AreaCodes.length; i++) {
			   if (AreaCodes[i] == sAreaCode) {
//				   alert("State and Country is "+States[i] + ", " + Countries[i]);
				   document.getElementById("state").value = States[i];
	   			   document.getElementById("country").value = Countries[i];

			   }
		   }
	   }
}



