// JavaScript Document


function trimField(field) {
	var value = field.value; // get the text in the field	
	var start = 0; // keeps track of the starting point to trim
	var end = value.length; // get the original string's length
	while(value.charAt(start) == " ") {
		start++; // increase the trim starting point
	}
	while(value.charAt(end-1) == " ") {
		end--; // decrease the length of the string to be trimmed
	}
	if(end == 0) {
		field.value = "";
	} else {
		field.value = value.substring(start,end); // return the trimmed string
	}
} //function trimField


function openWindow(url, windowname, height, width) {
	popup = window.open(url,windowname,'toolbar=0,location=0,status=0,menubar=0,scrollbars=0,resizable=1,top=200,left=200,width='+width+',height='+height);
	popup.focus();
} //function openWindow -- this opens up a window with the given parameters


function useYourDomain() {
	var yourdomain = window.prompt("You may use a domain that you have previously purchased with one of our family web sites.  If you wish to use a domain that you already own, please enter it here:");
	if(yourdomain != null) {
		enableStep2(yourdomain, false);
	}
}


function validateDomain(frm) {
	if(frm.word.value.length < 1) {
		alert("Please enter a domain name");
		frm.word.focus();
		return false;
	}
	if(frm.word.value.length >= 63) {
		alert("The domain you selected is too long.  Valid domain names contain between 1 and 63 characters.  Please try again.");
		frm.word.focus();
		return false;
	}
	if(frm.word.value.length >= 63) {
		alert("The domain you selected is too long.  Valid domain names contain between 1 and 63 characters.  Please try again.");
		frm.word.focus();
		return false;
	}
	if(frm.word.value.substr(0,4) == "www.") {
		alert("Please remove the 'www.' from your domain.  Don't worry about it--it's not necessary to include.");
		frm.word.focus();
		return false;
	}
	if(frm.word.value.indexOf(" ") >= 0) {
		alert("Please remove any spaces from your domain.  Valid domain names cannot contain spaces.");
		frm.word.focus();
		return false;
	}
	
	var iChars = "!@#$%^&*_()+=[]\\\';,./{}|\":<>?";
	for (var i=0; i < frm.word.value.length; i++) {
		if (iChars.indexOf(frm.word.value.charAt(i)) != -1) {
			alert ("The domain name you have selected contains special characters, that are not valid.\n\n Valid characters include letters a-z (not case-sensitive), numbers 0-9, and hyphens (-).\n\n Please remove any invalid special characters and try again.");
			frm.word.select();
			return false;
		}
	}

	return true;
}


function enableStep2(domain, newdomain) {
	if(!newdomain) {
		alert('By choosing to use a domain you have previously purchased, you will be required to do some minor configuration to set up your domain to point to our servers.  We will be of assistance and give directions.');
		document.step2.os0.value = domain + " (Existing)";
		document.step2.item_number.value = document.step2.item_number.value + ": " + domain;
		document.getElementById('step1').className = "faded";
		document.getElementById('step2').className = "body";
	}
	else {
		var frm = document.goToStep2;
		frm.domain.value = domain;
		frm.action = "start.php";
		frm.method = "post";
		frm.submit();
	}
}


function recalculateStep2() {
	var frm = document.step2;
	var y = frm.duration.value;
	if(y == 1) {
		frm.cmd.value = "_xclick";
		frm.amount.value = "70.00"; //"119.40";
		frm.item_name.value = "Family Web Site (5 GB, 1 Year): " + frm.os0.value;
		frm.item_number.value = "FAMILY005GB01YR";
		frm.bn.value = "PP-BuyNowBF";
	}
	if(y == 2) {
		frm.cmd.value = "_xclick";
		frm.amount.value = "125.00"; //"214.80";
		frm.item_name.value = "Family Web Site (5 GB, 2 Year): " + frm.os0.value;
		frm.item_number.value = "FAMILY005GB02YR";
		frm.bn.value = "PP-BuyNowBF";
	}
	if(y == "S") {
		frm.cmd.value = "_xclick-subscriptions";
		frm.item_name.value = "TheFamilyLetter.com Family Web Site (5 GB, monthly): " + frm.os0.value;
		frm.item_number.value = "FAMILY005GB-SUBSCR";
		frm.no_note.value = "1";
		frm.bn.value = "PP-SubscriptionsBF";
		frm.a3.value = "10.95"; //"12.95";
		frm.p3.value = "1";
		frm.t3.value = "M";
		frm.src.value = "1";
	}
}


function showQuote(quote) {
	var content = "<p class=\"quote\">" + quote[0] + "</p><p class=\"quote\" align=\"right\">" + quote[1] + ", " + quote[2] + "</p>";
	var id = document.getElementById("testimonial");
	if(id != null) {
		document.getElementById("testimonial").innerHTML = content;
	}
}

function AJAXInteraction(url, callback) {
    var req = init();
    req.onreadystatechange = processRequest;
        
    function init() {
      if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
      } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
    
    function processRequest () {
      // readyState of 4 signifies request is complete
      if (req.readyState == 4) {
	// status of 200 signifies sucessful HTTP call
        if (req.status == 200) {
          if (callback) callback(req.responseXML);
        }
      }
    }

    this.doGet = function() {
      // make a HTTP GET request to the URL asynchronously
      req.open("GET", url, true);
      req.send(null);
    }
}

function validateConfirmationCode(fld) { 
    var code = fld.value;
    var domain = document.getElementById("domain").value;
    var url = "validate_sitecode.php?code=" + encodeURIComponent(code) + "&domain=" + encodeURIComponent(domain); 
    var ajax = new AJAXInteraction(url, validateCallback); 
    ajax.doGet(); 
}


function validateCallback(responseXML) {
   var msg = responseXML.getElementsByTagName("valid")[0].firstChild.nodeValue;
   if (msg == "false") {
       var mdiv = document.getElementById("msg");
       // set the style on the div to invalid
       mdiv.className = "bp_invalid";
       mdiv.innerHTML = "Invalid Code";
       var submitBtn = document.getElementById("submit_btn");
       submitBtn.disabled = true;
    } else {
       var mdiv = document.getElementById("msg");
       // set the style on the div to valid
       mdiv.className = "bp_valid";
       mdiv.innerHTML = "Valid Code";
       var submitBtn = document.getElementById("submit_btn");
       submitBtn.disabled = false;
    }  
}

function validateNewAccount(frm) {
	if(frm.title.email=="") {
		alert("Please enter your e-mail address.");
		frm.email.focus();
		return false;
	}
	if(frm.password.value=="") {
		alert("Please enter your password.");
		frm.password.focus();
		return false;
	}
	if(frm.password.value != frm.repassword.value) {
		alert("Your passwords do not match.  Please ensure that you correctly re-type your password.");
		frm.repassword.focus();
		return false;
	}
	if(frm.fname.value=="") {
		alert("Please enter your first name.");
		frm.fname.focus();
		return false;
	}
	if(frm.lname.value=="") {
		alert("Please enter your last name.");
		frm.lname.focus();
		return false;
	}			
	if(frm.address1.value=="") {
		alert("Please enter your street address.");
		frm.address1.focus();
		return false;
	}
	if(frm.city.value=="") {
		alert("Please enter your home city.");
		frm.city.focus();
		return false;
	}
	if(frm.state.value=="") {
		alert("Please enter your home state.");
		frm.state.focus();
		return false;
	}
	if(frm.zip.value=="") {
		alert("Please enter your zip code.");
		frm.zip.focus();
		return false;
	}
	if(frm.phone.value=="") {
		alert("Please enter your home phone.");
		frm.phone.focus();
		return false;
	}
	return true;
}


function validateSetupForm(frm) {
	if((frm.sitename.value.length < 1) || (frm.sitename.value == "")) {
		alert("Please enter a title for your family web site");
		frm.sitename.focus();
		return false;
	}
	if((frm.subtitle.value.length < 1) || (frm.subtitle.value == "")) {
		alert("Please enter a subtitle for your family web site (idea: you could use a family phrase or saying)");
		frm.subtitle.focus();
		return false;
	}
	if((frm.code.value.length < 1) || (frm.code.value == "")) {
		alert("Please enter the confirmation code that you received via e-mail after you purchased this web site.  If you do not know or have your code, please e-mail orders@thefamilyletter.com for assistance.");
		frm.code.focus();
		return false;
	}
	if(frm.email.value=="") {
		alert("Please enter your e-mail address.");
		frm.email.focus();
		return false;
	}
	if(frm.password.value=="") {
		alert("Please enter your password.");
		frm.password.focus();
		return false;
	}
	if(frm.password.value != frm.repassword.value) {
		alert("Your passwords do not match.  Please ensure that you correctly re-type your password.");
		frm.repassword.focus();
		return false;
	}
	if(frm.fname.value=="") {
		alert("Please enter your first name.");
		frm.fname.focus();
		return false;
	}
	if(frm.lname.value=="") {
		alert("Please enter your last name.");
		frm.lname.focus();
		return false;
	}			
	if(frm.address1.value=="") {
		alert("Please enter your street address.");
		frm.address1.focus();
		return false;
	}
	if(frm.city.value=="") {
		alert("Please enter your home city.");
		frm.city.focus();
		return false;
	}
	if(frm.state.value=="") {
		alert("Please enter your home state.");
		frm.state.focus();
		return false;
	}
	if(frm.zip.value=="") {
		alert("Please enter your zip code.");
		frm.zip.focus();
		return false;
	}
	if(frm.phone.value=="") {
		alert("Please enter your home phone.");
		frm.phone.focus();
		return false;
	}

	return true;
}