function setSelectValue(obj, value)
{
	for(var i=0; i< obj.options.length;i++)
	{
		if (obj.options[i].value == value)
		{
			obj.options[i].selected = true;
			return;	
		}	
	}
}
function setCheckBox(obj, value)
{
	if (value)
		obj.checked = false;
	else
		obj.checked = true;
}

function setCheckBoxValue(obj, hidden){
	if (obj.checked)
		hidden.value = false;
	else
		hidden.value = true;
}

function CheckEmail(email, error)
{
	if (!CheckRequired(email, error))
		return false;
	if (!isValidEmail(email.value)){
		alert(error+ " address entered is invalid. The email address must start and end with a letter or number and can contain letters, numbers, periods (.), hyphens (-) and underscores (_).");
		email.focus();
		return false;
	}
	return true;
}

function CheckRequired(obj, error)
{
	var value = trim(obj.value);
	if (value.length == 0){
		alert(error +" is required.");
		obj.focus();
		return false;
	}
	return true;
}

function CheckRequiredOption(obj, error)
{
	if (obj.options[obj.selectedIndex].value == "-1" || obj.options[obj.selectedIndex].value == "" ){
		alert(error +" is required.");
		obj.focus();
		return false;
	}
	return true;
}
function CheckSubscriberPIN(form)
{
 if (!CheckRequired(form.subscriberpin, "Subscriber PIN"))
  	return false;
  else{
		
	if (isNaN(form.subscriberpin.value)){
		alert("Subscriber PIN must contain only digits.");
		form.subscriberpin.focus();
		return false;
	  }
  }
  return true;
}

function validAccountForm(form) { 
  if (!validUserInfoForm(form))
  	return false;
  return true;
}

function validUserInfoForm(form) { 
  if (!CheckRequired(form.fname, "First Name"))
  	return false;
  if (!CheckRequired(form.lname, "Last Name"))
  	return false;
  if (!CheckEmail(form.email, "Email"))
  	return false;
  if (!CheckRequired(form.phonenumber, "Phone Number"))
  	return false;
  if (!CheckRequired(form.contactaddress, "Street Address"))
  	return false;
  if (!CheckRequired(form.contactcity, "City"))
  	return false;
  if (!CheckRequiredOption(form.contactstate, "State"))
  	return false;	
  if (!CheckRequired(form.contactzip, "Zip"))
  	return false;
  if (form.cardtype){
	  if (!CheckRequiredOption(form.cardtype, "Card Type"))
  		return false;
  	if (!CheckCardValidationEdit(form.cardtype.value, form.cardnumber, "cardnumberlabel", "Card Number"))
			return false;
	  if (!CheckRequired(form.cid, "CID number"))
  		return false;
	  if (!CheckRequiredOption(form.cardexpiration_month, "Expiration month"))
  		return false;
	  if (!CheckRequiredOption(form.cardexpiration_year, "Expiration year"))
  		return false;
	  if (!CheckRequired(form.cardholder, "Card Holder's Name"))
  		return false;
	
	  if (!form.billingsamecontact.checked) {		
		  if (!CheckRequired(form.billingaddress, "Billing Address"))
	  		return false;
		  if (!CheckRequiredOption(form.billingstate, "Billing State"))
  			return false;		
		  if (!CheckRequired(form.billingcity, "Billing City"))
  			return false;		
		  if (!CheckRequired(form.billingzip, "Billing Zip"))
  			return false;		
	}
  if (!checkTimezone(form))
  	return false;
  }
  return true;
}

function validRegistrationForm(form) { 
  if (!validUserInfoForm(form))
  	return false;
  if (!form.agree.checked){
	  alert('You must agree to the terms and conditions to continue.');
	  form.agree.focus();
	  return false;
  }	
  return true;
}

function validTroubleTicketForm(form)
{
	if (!CheckRequired(form.name, "Name"))
		return false;
	if (!CheckEmail(form.email, "Email"))
		return false;
	if (!prepareDateTimeSepareted("confdate","conftime","Conference","confdatetime"))
		return false;
	if (!CheckRequired(form.phonenumber, "Dial-in Number"))
		return false;
	if (!CheckRequired(form.accesscode, "Passcode"))
		return false;
	if (!CheckRequiredOption(form.subject, "Subject"))
		return false;
	return true;
}

function validReferFriendForm(form)
{
	if (!CheckRequired(form.friendname, "Friend's Name"))
		return false;
	if (!CheckEmail(form.friendemail, "Friend's Email"))
		return false;			
	if (!CheckRequired(form.name, "Your Name"))
		return false;
	if (!CheckEmail(form.email, "Your Email"))
		return false;		
	return true;
}

function prepareDateTimeSepareted(date,time,prefix,fulldate){
	var myDate = document.getElementById(date);
	var myTime = document.getElementById(time);

	var re1 = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
	var re2 = /^\d{1,2}\:\d{1,2} am|pm|AM|PM$/;

// Trim values
	myDate.value = myDate.value.replace(/^\s+/, '');
	myDate.value = myDate.value.replace(/\s+$/, '');
	myTime.value = myTime.value.replace(/^\s+/, '');
	myTime.value = myTime.value.replace(/\s+$/, '');

// Check for errors
	if( !(re1.test(myDate.value)) )	{
		alert(prefix + " Date is invalid");
		myDate.focus();
		return false;
	}

	if( !(re2.test(myTime.value)) )	{
		alert(prefix + " Time is invalid");
		myTime.focus();
		return false;
	}

	var myD = new Date( myDate.value );
	var myT = new Date( "1972/10/19 " + myTime.value );

	if( isNaN(myD) ){
		alert(prefix + " Date is invalid");
		myDate.focus();
		return false;
	}

	if( isNaN(myT) ){
		alert(prefix + " Time is invalid");
		myTime.focus();
		return false;
	}

	var myDT = new Date( myDate.value + " " + myTime.value );
	if( isNaN(myDT) ){
		alert(prefix + " Date/Time is invalid");
		return false;
	}

	var full = document.getElementById( fulldate );
	hours = myDT.getHours()>=12 ? myDT.getHours()-12 : myDT.getHours();
	ampm = myDT.getHours()>=12 ? 'pm':'am';
	full.value = myDT.getFullYear() +"-" +(myDT.getMonth() + 1) +"-" + myDT.getDate() +" "+" " + hours + ":" + myDT.getMinutes()+":00 "+ampm;

	return true;
}
function getSuppressEmail(from, to)
{
	if(from.checked)
		to.value = false;
	else	
		to.value = true;
}

function checkTimezone(form)
{
	if (form.short_timezoneid.style.display == "block"){
		if (!CheckRequiredOption(form.short_timezoneid,"Time Zone"))
			return false;
	}
	else{
		if (form.full_timezoneid.style.display == "block"){
			if (!CheckRequiredOption(form.full_timezoneid,"Time Zone"))
			return false;
		}
	}
	return true;
}
function setTimezoneid()
{
	var form = document.forms[0];
	//if short list is displayed
	if (document.getElementById("short_timezoneid").style.display == "block")
		form.timezoneid.value = form.short_timezoneid.options[form.short_timezoneid.selectedIndex].value;
	else{
		// if full list is displayed
		if (document.getElementById("full_timezoneid").style.display == "block")
			form.timezoneid.value = form.full_timezoneid.options[form.full_timezoneid.selectedIndex].value;
		else
			form.timezoneid.value = -1;
	}
}
function findUserTimezoneInList(list_elem, timezoneid)
{
	for(var i=0; i<list_elem.options.length; i++)
	{
		if (timezoneid == list_elem.options[i].value){
			list_elem.selectedIndex = i;
			return true;
		}
	}
	return false;
}
function showUserTimeZone()
{
	var form = document.forms[0];
	short_list = form.short_timezoneid;
	full_list = form.full_timezoneid;
	usertimezoneid = form.timezoneid.value;
	
	if (findUserTimezoneInList(short_list, usertimezoneid))
		showShortList(); // user has selected timezone from short list
	else{
		if (findUserTimezoneInList(full_list, usertimezoneid))
			showFullList(); // user has selected timezone from full list and timezone does not exist in short timezone
		else
			showShortList(); // user has not selected timezone, by default show for user short list
	}
}
function showFullList()
{
	document.getElementById("short_timezoneid").style.display = "none";
	document.getElementById("short_timezoneid_button").style.display = "block";
	
	document.getElementById("full_timezoneid").style.display = "block";
	document.getElementById("full_timezoneid_button").style.display = "none";
}
function showShortList()
{
	document.getElementById("short_timezoneid").style.display = "block";
	document.getElementById("short_timezoneid_button").style.display = "none";
	
	document.getElementById("full_timezoneid").style.display = "none";
	document.getElementById("full_timezoneid_button").style.display = "block";
}
function onKeyPress(e) {
	var enter = 13;
	if (!e) var e = window.event;  //for IE
	if(e.srcElement)
		elem_name = e.srcElement.tagName;
	else
		elem_name = e.target.tagName;
		
	var code;
	code = e.keyCode || e.which || 0; // keyCode for IE, In Moz, if keyCode==0 then use which. But sometimes both keyCode and which will be >0.
	if (code == enter && elem_name.toLowerCase() !='a')
		onSubmit();
}

function CheckCardValidationEdit(type, obj, label, error)
{
	if (document.getElementById(label)){
		if (document.getElementById(label).style.display != "none" && document.getElementById(label).innerHTML.length>0)
			return true;
		if (document.getElementById(label).style.display == "none")
			return isValidCreditCard(type, obj, error);
		/*{
			if (obj.value.length == 0){
				alert(error +" is required.");
				obj.focus();
				return false;
			}	
		}*/
	}	else {
		return isValidCreditCard(type, obj,error);
		/*if (obj.value.length == 0){
			alert(error +" is required.");
			obj.focus();
			return false;
		}*/
	}
	return true;
}

function setFocusOnField(obj)
{
	obj.focus();
}

function CheckMaxlength(obj, maxlength, name) {
	if (obj.value.length > maxlength){
		alert(name +" can't contain more then "+maxlength+ " characters.");
		obj.focus();
		return false;
	}
	return true;
}

function trim(s) {
	return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
}

<!-- Header NavMenu
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) { //v4.01
  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);
  if(!x && d.getElementById) x=d.getElementById(n); 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];}
}
//-->
