var req = createXMLHttpRequest();
var str = '';

function createXMLHttpRequest() 
{
  // will store the reference to the XMLHttpRequest object
  var xmlHttp;
  // this should work for all browsers except IE6 and older
  try
  {
    // try to create XMLHttpRequest object
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    // assume IE6 or older
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    // try every prog id until one works
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
        // try to create XMLHttpRequest object
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // return the created object or display an error message
  if (!xmlHttp)
    alert("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}

function startTrans()
{
	var memtype=document.getElementById("memType").value;
	var email=document.getElementById("email").value;
	var pwd1=document.getElementById("pwd1").value;
	var pwd2=document.getElementById("pwd2").value;
	var fname=document.getElementById("fname").value;
	var lname=document.getElementById("lname").value;
	var addr1=document.getElementById("addr1").value;
	var addr2=document.getElementById("addr2").value;
	var city=document.getElementById("city").value;
	var state=document.getElementById("state").value;
	var zip=document.getElementById("zip").value;
	var phone=document.getElementById("phone").value;
	var employer=document.getElementById("employer").value;
	var occupation=document.getElementById("occupation").value;
	var heartype=document.getElementById("hearType").value;
	var comm = "";
	for (var i=0; i < document.getElementsByName("comchk").length; i++)
	{
		if (document.getElementsByName("comchk")[i].checked)
	    {
			comm = comm + document.getElementsByName("comchk")[i].value + "_";
	    }
	}
	comm = comm.slice(0, -1);
	var act = "";
	for (var i=0; i < document.getElementsByName("actchk").length; i++)
	{
		if (document.getElementsByName("actchk")[i].checked)
	    {
			act = act + document.getElementsByName("actchk")[i].value + "_";
	    }
	}
	act = act.slice(0, -1);
	var schoolname=document.getElementById("schoolname").value;
	var major=document.getElementById("major").value;
	var graddate=document.getElementById("graddate").value;
	var dob=document.getElementById("dob").value;
	var marstatus=getRDValue(document.getElementById('marstatus'));
	var gender=getRDValue(document.getElementById('gender'));
	var regvote=getRDValue(document.getElementById('regvote'));
	var edulevel = document.getElementById("edulevel").value;
	var cardtype = document.getElementById("cardtype").value;
	var cardnum=document.getElementById("cardnum").value;
	var cvv=document.getElementById("cvv").value;
	var cfname=document.getElementById("cfname").value;
	var clname=document.getElementById("clname").value;
	var exprM=document.getElementById("exprM").value;
	var exprY=document.getElementById("exprY").value;
	
	if(memtype == "0")
	{
		alert('Please select a membership type.');
		document.getElementById("memType").focus();
		return false;
	}
	
	else if(email == "")
	{
		alert('Please enter your email address.');
		document.getElementById("email").focus();
		return false;
	}
	
	else if(pwd1 == "")
	{
		alert('Password field cannot be blank.');
		document.getElementById("pwd1").focus();
		return false;
	}
	
	else if(pwd1 != pwd2)
	{
		alert('Passwords don\'t match.');
		document.getElementById("pwd1").value = "";
		document.getElementById("pwd2").value = "";
		document.getElementById("pwd1").focus();
		return false;
	}
	
	else if(fname == "")
	{
		alert('Please enter your first name.');
		document.getElementById("fname").focus();
		return false;
	}
	
	else if(lname == "")
	{
		alert('Please enter your last name.');
		document.getElementById("lname").focus();
		return false;
	}
	
	else if(addr1 == "")
	{
		alert('Please enter your address.');
		document.getElementById("addr1").focus();
		return false;
	}
	
	else if(city == "")
	{
		alert('Please enter your city.');
		document.getElementById("city").focus();
		return false;
	}
	
	else if(state == "")
	{
		alert('Please select your state.');
		document.getElementById("state").focus();
		return false;
	}
	
	else if(zip == "")
	{
		alert('Please enter your zip code.');
		document.getElementById("zip").focus();
		return false;
	}
	
	else if(phone == "")
	{
		alert('Please enter your phone number.');
		document.getElementById("phone").focus();
		return false;
	}
	
	else if(employer == "")
	{
		alert('Please enter your employer.');
		document.getElementById("employer").focus();
		return false;
	}
	
	else if(occupation == "")
	{
		alert('Please enter your occupation.');
		document.getElementById("occupation").focus();
		return false;
	}
	
	else if(heartype == "0")
	{
		alert('Please select how you heard about POWER<span style="color:#C3031F"><em>!</em></span>');
		document.getElementById("hearType").focus();
		return false;
	}
	
	else if(cardtype == "0")
	{
		alert('Please select a credit card type.');
		document.getElementById("cardtype").focus();
		return false;
	}
	
	else if(cardnum == "")
	{
		alert('Please enter a credit card number.');
		document.getElementById("cardnum").focus();
		return false;
	}
	
	else if(cvv == "")
	{
		alert('Please enter a credit card security code.');
		document.getElementById("cvv").focus();
		return false;
	}
	
	else if(cfname == "")
	{
		alert('Please enter your first name.');
		document.getElementById("cfname").focus();
		return false;
	}
	
	else if(clname == "")
	{
		alert('Please enter your last name.');
		document.getElementById("clname").focus();
		return false;
	}
	
	else if(exprM == "")
	{
		alert('Please select a credit card expiration month.');
		document.getElementById("exprM").focus();
		return false;
	}
	
	else if(exprY == "")
	{
		alert('Please select a credit card expiration year.');
		document.getElementById("exprY").focus();
		return false;
	}
	if (req)
	{
		// try to connect to the server
		try
		{
			// make asynchronous HTTP request to retrieve new message
			params = "memtype="+memtype+"&email="+email+"&pwd="+pwd1+"&fname="+fname+"&lname="+lname+"&addr1="+addr1+"&addr2="+addr2+"&city="+city+"&state="+state;
			params += "&zip="+zip+"&phone="+phone+"&employer="+employer+"&occupation="+occupation+"&heartype="+heartype+"&comm="+comm+"&act="+act;
			params += "&schoolname="+schoolname+"&major="+major+"&graddate="+graddate+"&dob="+dob+"&marstatus="+marstatus+"&gender="+gender+"&regvote="+regvote;
			params += "&edulevel="+edulevel+"&cardtype="+cardtype+"&cardnum="+cardnum+"&cfname="+cfname+"&clname="+clname+"&cvv="+cvv+"&exprM="+exprM+"&exprY="+exprY;			
			req.open("POST", "ccprocess.php", true);
			req.setRequestHeader("Content-Type", 
	                                "application/x-www-form-urlencoded");
			req.onreadystatechange = handletrans;
			req.send(params);
			
		}
		catch(e)
		{
			alert(e.toString());
		}
	}
}

function handletrans() 
{
	// when readyState is 4, we are ready to read the server response
	if (req.readyState == 4) 
	{
		// continue only if HTTP status is "OK"
		if (req.status == 200) 
		{
			try
			{
				// do something with the response from the server
				gettrans();
			}
			catch(e)
			{
				// display error message
				alert(e.toString());
			}
		}	 
		else
		{
			// display error message
			alert(req.statusText);   
		}
	}
}

function gettrans()
{
	var response = req.responseText;
	alert(response);

}

function getRDValue(radioObj) 
{
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) 
	{
		if(radioObj[i].checked) 
		{
			return radioObj[i].value;
		}
	}
	return "";
}
