//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert('Status: Cound not create XmlHttpRequest Object. Consider upgrading your browser.');
		//document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object. Consider upgrading your browser.';
	}
}

var sendReq = getXmlHttpRequestObject();
var receiveReq = getXmlHttpRequestObject();

//Gets the States
function getStates(country_id) {
	document.getElementById("stateWaitImg").style.display = '';
	document.getElementById("states").style.display = 'none';
	
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		receiveReq.open("GET", 'getstates?country_id=' + country_id, true);
		receiveReq.onreadystatechange = handleReceiveStates; 
		receiveReq.send(null);
		
		// Initialized the City List
		document.getElementById("cities").innerHTML = '<select name="city_id"><option label="Select City" value="0">Select City</option></select>';
	}
}

function handleReceiveStates() {
	if (receiveReq.readyState == 4) {
		//Get a reference to our chat container div for easy access
		document.getElementById("stateWaitImg").style.display = 'none';
		document.getElementById("states").innerHTML = receiveReq.responseText;
		document.getElementById("states").style.display = '';
		
		// Initialized the City List
		document.getElementById("cities").innerHTML = '<select name="city_id"><option label="Select City" value="0">Select City</option></select>';
	}
}

//Gets the Cities
function getCities(state_id) {
	document.getElementById("cityWaitImg").style.display = '';
	document.getElementById("cities").style.display = 'none';

	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		receiveReq.open("GET", 'getcities?state_id=' + state_id, true);
		receiveReq.onreadystatechange = handleReceiveCities; 
		receiveReq.send(null);
	}	
}

function handleReceiveCities() {
	if (receiveReq.readyState == 4) {
		document.getElementById("cityWaitImg").style.display = 'none';
		document.getElementById("cities").innerHTML = receiveReq.responseText;
		document.getElementById("cities").style.display = '';
	}
}

function addCity(optval)
{
	if (optval == 'other')
	{
		document.getElementById("otherCity").style.display = '';
	}
	else
	{
		document.getElementById("other_city").value = "";
		document.getElementById("otherCity").style.display = 'none';
	}
}

function validateLoginInfo()
{
	var frm = document.frmLoginInfo;
	var regBlank = /[^\s]/;
	var regEmail = /^([-a-zA-Z0-9._]+@[-a-zA-Z0-9.]+(\.[-a-zA-Z0-9]+)+)$/;
	var regAlphaNum = /[^A-Za-z0-9 ]/;
	var regNum = /[0-9]/;
	var regAlpha = /[a-zA-Z]/;

	if(!regBlank.test(frm.email.value)){
		alert("Please enter your Email Address");
		frm.email.focus();
		return false;
	}
	else if(!regEmail.test(frm.email.value)){
		alert("Invalid Email Address");
		frm.email.focus();
		return false;
	}

	if(!regBlank.test(frm.password.value)){
		alert("Please enter your password");
		frm.password.focus();
		return false;
	}
	else if (frm.password.value.length < 6 || frm.password.value.length > 20)
	{
		alert("Password must be 6 to 20 characters");
		frm.password.focus();
		return false;
	}
	else if (regAlphaNum.test(frm.password.value))
	{
		alert("Password must be alphanumeric characters. Symbols are not allowed.");
		frm.password.focus();
		return false;
	}
 	else if (!regNum.test(frm.password.value))
	{
		alert("Password must contain at least one number (0-9)!");
		frm.password.focus();
		return false;
	}
 	else if (!regAlpha.test(frm.password.value))
	{
		alert("Password must contain at least one letter!");
		frm.password.focus();
		return false;
	}
	
	if (frm.password.value != frm.passwordc.value)
	{
		alert("Password and confirm password are not same");
		frm.password.focus();
		return false;
	}
	return true;	
}

function validate()
{
	var frm = document.frmRegister;
	var regBlank = /[^\s]/;
	var regEmail = /^([-a-zA-Z0-9._]+@[-a-zA-Z0-9.]+(\.[-a-zA-Z0-9]+)+)$/;
	var telnr    = /^\+?[0-9 ()-.,]+[0-9]$/;

	if(!regBlank.test(frm.prof_title.value)){
		alert("Please enter your professional title");
		frm.prof_title.focus();
		return false;
	}
	
	if(!regBlank.test(frm.first_name.value)){
		alert("Please enter your first name");
		frm.first_name.focus();
		return false;
	}
	
	if(!regBlank.test(frm.last_name.value)){
		alert("Please enter your last name");
		frm.last_name.focus();
		return false;
	}

	if(!regBlank.test(frm.specialization.value)){
		alert("Please enter your field of specialization");
		frm.specialization.focus();
		return false;
	}
	
	if(!regBlank.test(frm.address.value)){
		alert("Please enter your street address");
		frm.address.focus();
		return false;
	}

	if(frm.state_id.value == "0"){
		alert("Please select state from the list");
		frm.state_id.focus();
		return false;
	}

	if(frm.city_id.value == "0"){
		alert("Please select city from the list");
		frm.city_id.focus();
		return false;
	}
	else if (frm.city_id.value == "other")
	{
		if(!regBlank.test(frm.other_city.value)){
			alert("Please enter your city");
			frm.other_city.focus();
			return false;
		}
	}

	if(!regBlank.test(frm.zip_code.value)){
		alert("Please enter your zip code");
		frm.zip_code.focus();
		return false;
	}
	/*else if(!regIsNumber(frm.zip_code.value)){
		alert("Please enter a valid zip code");
		frm.zip_code.focus();
		return false;
	}*/

	if(!regBlank.test(frm.phone_no.value)){
		alert("Please enter your phone no.");
		frm.phone_no.focus();
		return false;
	}
	else if(!telnr.test(frm.phone_no.value))
	{
		alert("Please enter a valid phone no.");
		frm.phone_no.focus();
		return false;
	}
	return true;
}

function validateMembershipOption()
{
	var frm = document.frmMembershipOption;
	var regBlank = /[^\s]/;
	
	var el = document.getElementById("terms");
	
	if (el.style.display != "none")
	{
		if (frm.chkTerms.checked != true)
		{
			alert('Please accept terms and conditions');
			frm.chkTerms.focus();
			return false;
		}
		
		if(!regBlank.test(frm.terms_name.value)){
			alert("Please enter your name");
			frm.terms_name.focus();
			return false;
		}
	
		if(!regBlank.test(frm.terms_code.value)){
			alert("Please enter image code");
			frm.terms_code.focus();
			return false;
		}
	}

	return true;
}

function validateCreditCardInfo()
{
	var frm = document.frmCreditCardInfo;
	var regBlank = /[^\s]/;
	var telnr    = /^\+?[0-9 ()-.,]+[0-9]$/;

	if(!regBlank.test(frm.cc_first_name.value)){
		alert("Please enter your first name");
		frm.cc_first_name.focus();
		return false;
	}
	
	if(!regBlank.test(frm.cc_last_name.value)){
		alert("Please enter your last name");
		frm.cc_last_name.focus();
		return false;
	}
	
	if(!regBlank.test(frm.cc_card_type.value)){
		alert("Please select card type");
		frm.cc_card_type.focus();
		return false;
	}
	
	if(!regBlank.test(frm.cc_card_no.value)){
		alert("Please enter your credit card number");
		frm.cc_card_no.focus();
		return false;
	}
	else if(!regIsNumber(frm.cc_card_no.value)){
		alert("Please enter a valid credit card no");
		frm.cc_card_no.focus();
		return false;
	}
	else if (!checkCreditCard(frm.cc_card_no.value, frm.cc_card_type.value))
	{
		alert(ccErrors[ccErrorNo]);
		frm.cc_card_no.focus();
		return false;
	}
	
	if(!regBlank.test(frm.cc_exp_mon.value)){
		alert("Please select your credit card number expire month");
		frm.cc_exp_mon.focus();
		return false;
	}
	
	if(!regBlank.test(frm.cc_exp_year.value)){
		alert("Please select your credit card number expire year");
		frm.cc_exp_year.focus();
		return false;
	}
	
	if(!regBlank.test(frm.cc_cvv_no.value)){
		alert("Please enter your cvv number");
		frm.cc_cvv_no.focus();
		return false;
	}
	else if(!regIsNumber(frm.cc_cvv_no.value)){
		alert("Please enter a valid cvv number");
		frm.cc_card_no.focus();
		return false;
	}
	
	if(!regBlank.test(frm.cc_bill_addr1.value)){
		alert("Please select your billing address");
		frm.cc_bill_addr1.focus();
		return false;
	}
	
	if(!regBlank.test(frm.cc_city.value)){
		alert("Please your city");
		frm.cc_city.focus();
		return false;
	}
	
	if(!regBlank.test(frm.cc_state.value)){
		alert("Please your state");
		frm.cc_state.focus();
		return false;
	}
	
	if(!regBlank.test(frm.cc_zipcode.value)){
		alert("Please enter your zip code");
		frm.cc_zipcode.focus();
		return false;
	}
	/*else if(!regIsNumber(frm.cc_zipcode.value)){
		alert("Please enter a valid zip code");
		frm.cc_zipcode.focus();
		return false;
	}*/
	
	if(!regBlank.test(frm.cc_country.value)){
		alert("Please select your country");
		frm.cc_country.focus();
		return false;
	}
	
	if(!regBlank.test(frm.cc_phone_no.value)){
		alert("Please enter your phone no");
		frm.cc_phone_no.focus();
		return false;
	}

	return true;
}

function regIsNumber(fData)
{
	var reg = new RegExp("^[-]?[0-9]+[\.]?[0-9]+$");
	return reg.test(fData)
}

/*
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object. Consider upgrading your browser.';
	}
}

var sendReq = getXmlHttpRequestObject();
var receiveReq = getXmlHttpRequestObject();

//Gets the Cities
function getCities(state_id) {
	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
		receiveReq.open("GET", 'getcities?state_id=' + state_id, true);
		receiveReq.onreadystatechange = handleReceiveCities; 
		receiveReq.send(null);
	}	
}

function handleReceiveCities() {
	if (receiveReq.readyState == 4) {
		//Get a reference to our chat container div for easy access
		var elem = document.getElementById('city');
		elem.innerHTML = receiveReq.responseText;
	}
}

*/

function addWebsiteURL()
{
	var ctr = 1;
	for(i = 2; i <= 5; i++)
	{
		ctr++;
		if (document.getElementById("weburl" + i).style.display == "none")
		{
			document.getElementById("weburl" + i).style.display = "";
			if (ctr == 5) document.getElementById("addweburl").style.display = "none";
			break;
		}
	}
}

function removeWebsiteURL(tId)
{
	document.getElementById("website_url" + tId).value = "";
	document.getElementById("weburl" + tId).style.display = "none";
	document.getElementById("addweburl").style.display = "";
}

function addVidoeLink()
{
	var ctr = 1;
	for(i = 2; i <= 5; i++)
	{
		ctr++;
		if (document.getElementById("videohtml" + i).style.display == "none")
		{
			document.getElementById("videohtml" + i).style.display = "";
			if (ctr == 5) document.getElementById("addvideoHTML").style.display = "none";
			break;
		}
	}
}

function removeVidoeLink(tId)
{
	document.getElementById("video_html" + tId).value = "";
	document.getElementById("videohtml" + tId).style.display = "none";
	document.getElementById("addvideoHTML").style.display = "";
}

function gotoBack(step)
{
	window.location = '?step='+step;
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function prepareInputsForHints() {
	var inputs = document.getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++){
		// test to see if the hint span exists first
		if (inputs[i].parentNode.getElementsByTagName("span")[0]) {
			// the span exists!  on focus, show the hint
			inputs[i].onfocus = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
			}
			// when the cursor moves away from the field, hide the hint
			inputs[i].onblur = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "none";
			}
		}
	}
	// repeat the same tests as above for selects
	var selects = document.getElementsByTagName("select");
	for (var k=0; k<selects.length; k++){
		if (selects[k].parentNode.getElementsByTagName("span")[0]) {
			selects[k].onfocus = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
			}
			selects[k].onblur = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "none";
			}
		}
	}
}
addLoadEvent(prepareInputsForHints);
