var keepgoing = true;

function chkAC(ac) {
	var canada_ac_array = new Array("204","289","306","403","416","506","519","604","613","647","705","709","778","780","807","867","902","905");
	var quebec_ac_array = new Array("418","450","819","514");
	if (ac == null || ac == '') {
		alert("You must enter an area code");
		keepgoing = false;
		return;
	}
	for (i=0; i<quebec_ac_array.length; i++) {
		if (ac == quebec_ac_array[i]) {
			alert('CANADIAN RESIDENTS - CANADIAN LAW ONLY PERMITS US TO OFFER THIS SERVICE TO PARENTS AND GUARDIANS OF CALL RECIPIENTS.  PLEASE DO NOT SUBMIT PERSONAL DATA ON OTHER PERSONS WITHOUT THEIR CONSENT. OFFER VOID IN QUEBEC.');
			keepgoing = false;
			return;
		}
	}
	for (i=0; i<canada_ac_array.length; i++) {
		if (ac == canada_ac_array[i]) {
			alert("CANADIAN RESIDENTS - CANADIAN LAW ONLY PERMITS US TO OFFER THIS SERVICE TO PARENTS AND GUARDIANS OF CALL RECIPIENTS.  PLEASE DO NOT SUBMIT PERSONAL DATA ON OTHER PERSONS WITHOUT THEIR CONSENT. OFFER VOID IN QUEBEC.");
			keepgoing = true;
			return;
		}
	}

	keepgoing = true;
	return;
}


function chkKeepgoing() {
	if (!keepgoing)
		return false;
	else
		return true;
}

function setLeaving() {
	leaving = true;
}

function setNotLeaving() {
	leaving = false;
}



// image rollover functions:
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// popup window code
function openNewWindow(URLtoOpen, windowName, windowFeatures)
{
	argLen = openNewWindow.arguments.length;
	if(argLen<2)
		windowName='myWindow';
	if(argLen<3)
		windowFeatures='width=519,height=400,scrollbars=1';
	newWindow=window.open(URLtoOpen, windowName,windowFeatures);
}

// print windows
function printWindow()
{
	window.print();
}

// validation code

//
function preloadLetters()
{
	MM_preloadImages(
		'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_a_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_b_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_c_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_d_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_e_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_f_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_g_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_h_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_i_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_j_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_k_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_l_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_m_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_n_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_o_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_p_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_q_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_r_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_s_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_t_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_u_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_v_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_w_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_x_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_y_over.jpg'
		,'https://orders.go-io.com/uvoxnetworks/sesamestreet/images/letter_z_over.jpg'
	)
}

function preloadNumbers()
{
		MM_preloadImages("https://orders.go-io.com/uvoxnetworks/sesamestreet/images/number1_over.jpg"
		,"https://orders.go-io.com/uvoxnetworks/sesamestreet/images/number2_over.jpg"
		,"https://orders.go-io.com/uvoxnetworks/sesamestreet/images/number3_over.jpg"
		,"https://orders.go-io.com/uvoxnetworks/sesamestreet/images/number4_over.jpg"
		,"https://orders.go-io.com/uvoxnetworks/sesamestreet/images/number5_over.jpg"
	)
}


// checks to see that a string is only 3 characters long
function lengthIs3(nn)
{
	return (nn.length==3);
}

// checks to see that a string is only 4 characters long
function lengthIs4(nn)
{
	return (nn.length==4);
}

// checks to see if a string is only made of numbers
function isNumeric(nn)
{
	var is_number = true;
	for(i=0;i<nn.length;i++)
	{
		if(isNaN(nn.substr(i,1)))
			is_number = false;
	}
	return is_number;
}

// is this a number, and between 200 and 999, inclusive
function isValidAreaCode(nn)
{
	var is_valid_areacode = false
	if(lengthIs3(nn))
	{
		if(isNumeric(nn))
			if((nn>=200) && (nn<=999))
				is_valid_areacode = true
	}

	return is_valid_areacode;
}

//
function isValidPrefix(nn)
{
	var is_valid_prefix = false
	if(lengthIs3(nn))
	{
		if(isNumeric(nn))
			if((nn>=200) && (nn<=999))
				is_valid_prefix = true
	}

	return is_valid_prefix;
}

function isQuebecAreaCode(nn)
{

	nn = nn + "";
	var quebec_ac_array = new Array("418","450","819","514");
	var is_quebec_areacode = false;

	for (i=0; i<quebec_ac_array.length; i++)
	{
		if (nn == quebec_ac_array[i])
		{
			is_quebec_areacode = true;
		}
	}

	return is_quebec_areacode;

}

function isCanadianAreaCode(nn)
{
	nn = nn + "";
	var canada_ac_array = new Array("254","204","289","306","403","416","506","519","604","613","647","705","709","778","780","807","867","902","905");

	var is_canadian_areacode = false;

	for (i=0; i<canada_ac_array.length; i++)
	{
		if (nn == canada_ac_array[i]) {
			is_canadian_areacode = true;
		}

	}
	if(isQuebecAreaCode(nn))
	{
		is_canadian_areacode = true;
	}
	return is_canadian_areacode;
}

function canadianAlert()
{
	alert('CANADIAN RESIDENTS - CANADIAN LAW ONLY PERMITS US TO OFFER THIS SERVICE TO PARENTS AND GUARDIANS OF CALL RECIPIENTS.  PLEASE DO NOT SUBMIT PERSONAL DATA ON OTHER PERSONS WITHOUT THEIR CONSENT. OFFER VOID IN QUEBEC.');
}

function checkPhoneNumber()
{

	var DETAILED_ERROR_MESSAGES = false;
	var obj = document.elmoform;
	var placeholder_locations = new Array();
	var placeholderindex = 0;
	var canadian_call_flag = false;

	for(i=0;i<obj.length;i++)
	{
		 if(obj.elements[i].name=='putMeRightBeforeThePhoneFields')
			placeholder_locations[placeholderindex++] = i;
	}

	var errorMsg = "";
	var tempErrorMsg = "";

	if(placeholder_locations.length==0)
	{
		return true;
	}
	else
	{

		for(y=0;y<placeholder_locations.length;y++)
		{
			var tt = placeholder_locations[y];
			var nn1 = obj.elements[(tt+1)].value;
			var nn2 = obj.elements[(tt+2)].value;
			var nn3 = obj.elements[(tt+3)].value;

			// first part
			if(!lengthIs3(nn1))
				tempErrorMsg += "* The area code must be 3 characters long\n";
			else if(!isNumeric(nn1))
				tempErrorMsg += "* The area code must only contain numbers\n";
			else if(!isValidAreaCode(nn1))
				tempErrorMsg += "* The area code must only contain numbers between 200 and 999\n";

			// second part - prefix
			if(!lengthIs3(nn2))
				tempErrorMsg += "* The prefix must be 3 characters long\n";
			else if(!isNumeric(nn2))
				tempErrorMsg += "* The prefix must only contain numbers\n";
			else if(!isValidAreaCode(nn2))
				tempErrorMsg += "* The prefix must only contain numbers between 200 and 999\n";

			// third part of the phone
			if(!lengthIs4(nn3))
				tempErrorMsg += "* The last part of the phone number must be 4 characters long\n";
			else if(!isNumeric(nn3))
				tempErrorMsg += "* The last part of the phone number must only contain numbers\n";

			// void if quebec
			if(isQuebecAreaCode(nn1))
				tempErrorMsg += "* OFFER VOID IN QUEBEC.\n";


			if(tempErrorMsg!="")
			{
				if(placeholder_locations.length==1)
					errorMsg += "This phone number has problems:" + "\n" + tempErrorMsg;
				else if(DETAILED_ERROR_MESSAGES)
					errorMsg += "Call #" + (y+1) + ":\n" + tempErrorMsg;
				else
					errorMsg += "Call #" + (y+1) + " has problems.\n";
				tempErrorMsg = "";
			}

			// canadian alert thing
			if(isCanadianAreaCode(nn1))
				canadian_call_flag = true;
		} // end for loop

		if(canadian_call_flag)
			canadianAlert();

		// if there's a problem, spit back an error
		if(errorMsg!="")
		{
			if(placeholder_locations.length==1)
				alert("Please check the phone number:\n" + errorMsg);
			else
				alert("Please check the phone numbers:\n" + errorMsg);
			return false;
		} else {
			return true;
		}

	} // end if
} // end checkPhoneNumber

