var costsub=0;
//to hinder the enter button from submitting form, to force them to click submit
var submitclicked=false;
var unitprice=15;

function trim(str){
return str.replace(/^\s+|\s+$/g,'');
}

function calccost(num){
	var total=0;
	//if updating price, update calccost algorith in the php
	total=unitprice*num;
	
	costsub=total.toFixed(2);
}

//keith on the web wrote this, thanks dude
function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function validateall(){
	var ret=true;
	//goes till validate returns false if all statements are like 
	r=validate(document.f1.emailsrc);
	ret=r&&ret;
	r=validate(document.f1.emaildst);
	ret=r&&ret;
	if(document.f1.referreremailaddress){
		r=validate(document.f1.referreremailaddress);
		ret=r&&ret;
	}
	
	//ret needs help so that the form will interpret the false correctly
	if (ret) {
		ret=true; 
	} else {
		ret=false;
		if (submitclicked==true) { 
			document.getElementById('update_msg').innerHTML='<span class=error>Information is not complete or correct.  Please correct the items in pink.</span>';
			submitclicked=false;
		}
	}
	return ret;
}

//check field value against a rule, a max length and anything else special
//all in order to provide an appropriate error message
var rules = new Array;
rules['emailsrc']=/^[0-9a-z][0-9a-z-_\.]*$/i;
rules['emailstop']=/^[0-9a-z][0-9a-z-_\.]*$/i;
//do not allow fami.ly emails
rules['emaildst']=/^[a-z0-9-][_a-z0-9-\.]*@[0-9a-z][0-9a-z-\._]*[\.][a-z]{2}([zmuvtg]|fo|me)?$/i;
rules['referreremailaddress']=/^.{0}$|^[a-z0-9-][_a-z0-9-\.]*@[0-9a-z][0-9a-z-\.]*[\.][a-z]{2}([zmuvtg]|fo|me)?$/i;
function validate(field){
	//rules - regexpresion, maxlength
	var pass=true;
	var style='';

	//check against regular expression
	pass=rules[field.name].exec(field.value);

	if (pass) {
		var rvalue='';
		switch (field.name){
			case 'referreremailaddress':
				writeAffiliate(field.value);
			break;
			default:
				rvalue=field.value;
				document.getElementById(field.name+'_r').innerHTML=rvalue;
			break;
		}
	} else {
		style='error'; //color text if error 

		var rvalue='';
		switch (field.name){
			case 'emailsrc':
				document.getElementById('emailsrc_r').innerHTML='?';
				document.getElementById('emaildst_r').innerHTML='';
			break;
			case 'emailstop':
				document.getElementById('emailstop_r').innerHTML='?';
			break;
		}
	}

	document.getElementById(field.name+'_t').className=style;

	return pass;
}

function submitready(){
	var ret=false;
	if (submitclicked==true)
		if (validateall()==true && available){
			ret=true;
			//copy right email to hidden post val affiliate
			if (affiliate!=undefined)
				document.f1.affiliate.value=affiliate;
			else
				if(document.f1.referreremailaddress)
					document.f1.affiliate.value=document.f1.referreremailaddress.value;
			//alert(document.f1.affiliate.value);
		}
	return ret;
}

var submitf2clicked=false;
function submitf2(){
	var ret=false;
	if (submitf2clicked){
		if(validate(document.f2.emailstop))
			ret=true;
		else
			submitf2clicked=false;
	}
	return ret;
}

//ajax parts by bill bercik, thanks man
var ltime=new Date();
var scheduled=false;
var available=false;
function emailsrckeyup(){
	ltime=new Date();
	if (!scheduled){
		scheduled=true;
		available=false;
		document.getElementById('emailsrcresult_r').innerHTML='<span style="font-size:8pt">checking...</span>';
		setTimeout('checkemailsrckeyuplast()',2000);
	}
}

function checkemailsrckeyuplast(){
	var ctime=new Date();
	var diff=ctime.getTime()-ltime.getTime();
	if (diff>450){
		checkEmailsrcAvailable();
		scheduled=false;
	}else{
		setTimeout('checkemailsrckeyuplast()',2000);
	}
}

function checkEmailsrcAvailableResponse() { 
	var rvalue;
	if (http.readyState == 4) { 
		switch (http.responseText){
			case '0':
				rvalue='<span style="color:red">unavailable</span>';
				available=false;
			break;
			case '1':
				rvalue='<span style="color:green">available</span>';
				available=true;
			break;
			default:
				rvalue='<span style="color:orange">**unknown**</span> - <br>(unable to connect)</span>';
				available=false;
		}
		document.getElementById('emailsrcresult_r').innerHTML=rvalue;
	} 
}

function checkEmailsrcAvailable(){
	document.getElementById('emailsrcresult_r').innerHTML='<span style="font-size:8pt">checking...</span>';
	sendHttpRequest("emails.php?fe="+escape(document.f1.emailsrc.value),checkEmailsrcAvailableResponse);
}

function sendHttpRequest(url,callback) {
	http.open("GET", url, true); 
	http.onreadystatechange = callback;
	http.send(null);
}

function getHTTPObject() {
  var xmlhttp;

 /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/

  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

var http = getHTTPObject(); // We create the HTTP Object
