function getCheckboxValue(from, to)
{
	if(from.checked)
		to.value = false;
	else	
		to.value = true;
}
function setCheckBoxValueFromTo(obj, value)
{
	if (value.toLowerCase() == "true")
		obj.checked = false;
	else
		obj.checked = true;
}

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 setCheckBoxByElemId( id, value)
{
  document.getElementById(id).checked = value.toLowerCase() == "true";
}

function setReadonlyEmptyField(obj, readonly)
{
	if (readonly){
		obj.value = "";
	}
	obj.readonly = readonly
	obj.disabled = readonly
}
function setCheckBoxValue(obj, hidden){
	if (obj.checked)
		hidden.value = true;
	else
		hidden.value = false;
}
function setCheckBoxValueWithAssignedF(obj, assignedobj,hidden){
	setReadonlyEmptyField(assignedobj, !obj.checked)
}

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, "Password"))
  	return false;
  else
  {
	if (!CheckDigits(form.subscriberpin, "Password"))
		return false;
  }
  return true;
}

function CheckDigits(obj, error)
{
	if (!isOnlyDigits(obj.value)){
		alert(error+ ' must contain only digits.');
		obj.focus();
		return false;
	}
	return true;
}

function validAccountForm(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 (form.iscardexist.value.toLowerCase() == "true"){
		if (!CheckPhoneNumber(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 (!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 (!CheckRequired(form.billingcity, "Billing City"))
				return false;
			if (!CheckRequiredOption(form.billingstate, "Billing State"))
				return false;
			if (!CheckRequired(form.billingzip, "Billing Zip"))
				return false;
		}
  }
    if (!checkTimezone(form))
  	return false;
  return true;
}

function validRegistrationForm(form, ispay) { 
  if (!validAccountForm(form))
  	return false;
  if(!CheckSubscriberPIN(form))
  	return false;
  if (form.agree){ 
	  if (!form.agree.checked){
		  alert('You must agree to the terms and conditions to continue.');
		  form.agree.focus();
		  return false;
	  }	
  }
  return true;
}

function validVoiceCenterForm(form) { 
  if(!CheckSubscriberPIN(form))
  	return false;
return true;
}

function validVoiceBoxForm(form){
if (!CheckRequired(form.extensionnumber, "Number"))
  		return false;  
  if (!CheckDigits(form.extensionnumber, "Number"))
	return false;
 if (!CheckRequiredOption(form.typeid_, "Type"))
	return false;
 if (form.typeid_.options[form.typeid_.selectedIndex].value == 3) {
   if (!CheckDialoutNumber(form.dialoutnumber, "Target phone number"))
  	return false;
 }
 if (form.typeid_.options[form.typeid_.selectedIndex].value == 2 && form.sendnotifyemail_.checked){
	 if(!CheckEmail(form.notifyemail, "Notify Email"))
	  	return false;
 }
 return true;
}

function validVoiceBoxDetailsForm(form){
    if (!CheckRequired(form.extensionnumber, "Number"))
  		return false;  
    if (!CheckDigits(form.extensionnumber, "Number"))
    	return false;
    if (!CheckRequiredOption(form.typeid_, "Type"))
	    return false;
    if (form.typeid_.options[form.typeid_.selectedIndex].value == 3) {
    if (!CheckDialoutNumber(form.dialoutnumber, "Target phone number"))
  	    return false;
    }
    if (form.typeid_.options[form.typeid_.selectedIndex].value == 2 && form.sendnotifyemail.checked){
	     if(!CheckEmail(form.notifyemail, "Notify Email"))
	  	    return false;
    }
    return true;
}

function CheckDialoutNumber(phonenumber, fieldname) {
  if (!CheckRequired(phonenumber, fieldname))
	return false;
  pn = phonenumber.value;
  pn = pn.replace(/[\(\s\)\-\+]/g,"");
  isphonenumber = (!isNaN(pn) && pn.length == 10)
  if (!isphonenumber){
	alert(fieldname+" is invalid, it must contain 10 digits.");
	phonenumber.focus();
	return false;
  }
  if (pn.indexOf("1") == 0) {
  	alert(fieldname+" is invalid, the first digit should not be equal to 1.");
	phonenumber.focus();
	return false;
  }
  return true;
}

function validTroubleTicketForm(form)
{
	if (!CheckRequired(form.name, "Name"))
		return false;
	if (!CheckEmail(form.email, "Email"))
		return false;		
	if (!CheckRequired(form.voicenumber, "Dial-in Number"))
		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 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);
}	else {
		return isValidCreditCard(type, obj,error);
	}
	return true;
}
function CheckPhoneNumber(phonenumber, fieldname) {
	if (!CheckRequired(phonenumber, fieldname))
		return false;
	pn = phonenumber.value;
  pn = pn.replace(/[\(\s\)\-]/g,"");
  isphonenumber = (!isNaN(pn) && pn.length ==10)
  if (!isphonenumber){
		alert(fieldname+" is invalid. The phone number field must contain a 10-digit phone number.");
		phonenumber.focus();
		return false;
	}
	return true;
}

function setFocusOnField(obj)
{
	obj.focus();
}

function validUploadFile(form)
{
	if (form.file_name.value.length ==0 )
	{
		alert("Please select a file to upload first.");
		form.file_name.focus();
		return false;
	}
	if (!validFileGreeting(form.file_name, "Uploading file"))
		return false;
	return true;
}

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*$/, "" );
}


function showTR(id)
{
 	var rowDisplay = "block";
	var cellDisplay = "block";
	
	if(fccbrowserInfo != null)
	{
        if(fccbrowserInfo.gecko || fccbrowserInfo.opera){
	        cellDisplay = "table-cell";
	        rowDisplay = "table-row";	 
	    }
	}   
    document.getElementById("tr_"+id).style.display = rowDisplay;
}

function hideTR(id)
{
    document.getElementById("tr_"+id).style.display = "none";
}


function showTDs(id_label, id_input)
{
    showTD(id_label);
    showTD(id_input);
}

function hideTDs(id_label, id_input)
{
    document.getElementById(id_label).style.display = "none";
    document.getElementById(id_input).style.display = "none";
}

function showTD(id_td)
{
	var cellDisplay = "block";
	
	if(fccbrowserInfo != null)
	{
        if(fccbrowserInfo.gecko || fccbrowserInfo.opera){
	        cellDisplay = "table-cell";
	    }
	}   
    document.getElementById(id_td).style.display = cellDisplay;
}

function hideTD(id_td)
{
    document.getElementById(id_td).style.display = "none";
}
