
// (c) 2005 Merlin Associates, Inc.


  function FormReset(jform) {
//***************************
	document.getElementById('jtam_E').checked=false
	document.getElementById('jtam_F').checked=false
	document.getElementById('rcam_E').checked=false
	document.getElementById('rcam_F').checked=false
	document.getElementById('pay_C').checked=false
	document.getElementById('pay_Q').checked=false
	document.getElementById('pay_W').checked=false

	jfields=["name","title","comp","aline1","aline2","aline3","city","zip","country","tel","fax","email","message"]
	for (jx1=0;jx1<jfields.length;jx1++) {
		document.getElementById(jfields[jx1]).value=''
	}
	return false
}


  function OrderReset() {
//************************
	jfields=["jtam_E","jtam_F","rcam_E","rcam_F"]
	for (jx1=0;jx1<jfields.length;jx1++) {
		document.getElementById(jfields[jx1]).checked=false
	}
	return false
}


  function Validate(jform) {
//************************
	jerrors=''
	jnewline='\n -  '

	document.getElementById('javascript').value='Y'
	
	with (jform) {
		if (!elements['jtam_E'].checked && !elements['jtam_F'].checked) {
			if (!elements['rcam_E'].checked && !elements['rcam_F'].checked) {
				jerrors=jerrors+jnewline+'indicate which edition(s) of Airfax(r) you would like to receive'
			}				
		}

		if (!HasAlpha(elements['name'].value)) {
			jerrors=jerrors+jnewline+'provide your name'
		}

		if (!HasAlpha(elements['aline1'].value+elements['aline2'].value+elements['aline3'].value)) {
			jerrors=jerrors+jnewline+'provide a street address'
		}
		
		if (!HasAlpha(elements['city'].value))	{
			jerrors=jerrors+jnewline+'provide a city name for your address'
		}
		
		if (!HasAlpha(elements['country'].value)) {
			jerrors=jerrors+jnewline+'provide a country name for your address'
		}

		if (Blank(elements['tel'].value+elements['email'].value)) {
			if (!elements['jtam_E'].checked && !elements['rcam_E'].checked) {
				jerrors=jerrors+jnewline+'provide your telephone number or email address'
			}
		} else if (!Blank(elements['tel'].value) && !TelValid(elements['tel'].value)) {
			jerrors=jerrors+jnewline+'provide a valid telephone number (at least 8 digits)'
		}

		if ((elements['jtam_F'].checked || elements['rcam_F'].checked) && Blank(elements['fax'].value)) {
			jerrors=jerrors+jnewline+'provide your fax number'
		} else if (!Blank(elements['fax'].value) && !TelValid(elements['fax'].value)) {
			jerrors=jerrors+jnewline+'provide a valid fax number (at least 8 digits)'
		}
		
		if ((elements['jtam_E'].checked || elements['rcam_E'].checked) && Blank(elements['email'].value)) {
			jerrors=jerrors+jnewline+'provide your email address'
		} else if (!Blank(elements['email'].value) && !EmailValid(elements['email'].value)) {
			jerrors=jerrors+jnewline+'provide a valid email address (with an x@x.xx format)'
		}

		if (!elements['pay_C'].checked && !elements['pay_Q'].checked && !elements['pay_W'].checked) {
			jerrors=jerrors+jnewline+'indicate how you intend to pay for the subscription'
		}
	}

	if (!Blank(jerrors)) {
		alert('Incomplete information - please:'+jerrors)
		return false
	}
	return true
}



// ******************
// Standard functions
// ******************


  function Blank(jstring) {
//*************************
	return (jstring.match(/[^ \s]/)==null)
}

	
  function EmailValid(jemail) {
//*****************************
// parameters are <email address>
// there seems to be a lot of confusion about the syntax for a valid email address
// the most realistic set of rules I could generate are as follows:
// an email address must have a <user>@<subdomain>.<tld> format, where
//	- <user> can be any combination of alphanumeric, underscore, dash and period characters
//		but the first and the last characters cannot be a period and periods cannot be consecutive
//  - <subdomain> can be any combination of alphanumeric, dash and period characters
//		but the first and the last characters cannot be a period and periods cannot be consecutive
//  - <tld> can be any 2,3 or 4 alphabetic characters
// by inference, the minimal email address is x@x.xx

	return (jemail.match(/^\s*[a-z0-9_\-]+(\.[a-z0-9_\-]+)*@[a-z0-9\-]+(\.[a-z0-9\-]+)*\.[a-z]{2,4}\s*$/i)!=null)
}


  function HasAlpha(jstring) {
//****************************
	return (jstring.match(/[a-z]/i)!=null)
}


  function TelValid(jtel) {
//*************************
// a valid telephone number has at least eight digits
	jmatches=jtel.match(/\d/g)
	if (jmatches==null) return false
	return jmatches.length>=8
}


	function WordCount(jtext) {
//	***************************
	jtext=' '+jtext.replace(/\s/g,' ')+' '
	while (jtext.match(/  /)) {
		jtext=jtext.replace(/  /,' ')
	}
	
	jc=-1
	for (jx1=0;jx1<jtext.length;jx1++) {
		if (jtext.charAt(jx1)==' ') jc+=1
	}
	return jc
}

