function getCheckboxValue(from, to)
{
	if(from.checked)
		to.value = true;
	else	
		to.value = false;
}
function setCheckBoxValueFromTo(obj, value)
{
	if (value.toLowerCase() == "true")
		obj.checked = true;
	else
		obj.checked = false;
}
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 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';
	hours = myDT.getHours();
	full.value = myDT.getFullYear() +"-" +(myDT.getMonth() + 1) +"-" + myDT.getDate() +" "+" " + hours + ":" + myDT.getMinutes()+":00 ";

	return true;
}
function CheckEmail(email, error)
{
	if (!CheckRequired(email, error))
		return false;
	return validationEmail(email, email.value, error);
}

function CheckAgreeTermCondition(form)
{
	if (!form.agree.checked){
		alert('You must agree to the terms and conditions to continue.');
		form.agree.focus();
		return false;
	 }
	 return true;
}
var msgEmailFormat = "The email address must start and end with a letter or number and can contain letters, numbers, periods (.), hyphens (-) and underscores (_)."; 
function validationEmail(obj, value, error)
{
	if (!isValidEmail(value)){
		alert(error+" address entered is invalid. "+ msgEmailFormat);
		obj.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 CheckSubscriberPIN(form)
{
 if (!CheckRequired(form.password, "Subscriber PIN"))
  	return false;
 if (!CheckDigits(form.password, "Subscriber PIN"))
	return false;

  return true;
}

function validAccountForm(form) {
  if (!CheckRequired(form.name,"Name"))
	return false;
	
 if (!CheckEmail(form.email,"Email"))
	return false;
	
  if (!CheckSubscriberPIN(form))
    return false;
	
  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;
		}
  }
  if (!CheckCopyReportsTo(form.copyreportsto))
	return false;
return true;
}

function setCheckBoxValue(obj, hidden){
	if (obj.checked)
		hidden.value = "true"
	else
		hidden.value = "false"
}
function CheckRequiredCountry(form)
{
	isonechecked = false
	for (i=0;i<form.elements.length;i++)
	{
		if (form.elements[i].name.indexOf("country_") == 0 && form.elements[i].type == "checkbox"){
			if (form.elements[i].checked){
					isonechecked = true;
			}
		}
	}
	if (!isonechecked)
		alert("Please, select at least one country.");

	return isonechecked;
}

function validInternalRegisterForm(form)
{
	if (!CheckRequired(form.name,"Name"))
		return false;
	if (!CheckEmail(form.email,"Email"))
		return false;
	if (!CheckRequiredCountry(form))
		return false;
	if(!CheckAgreeTermCondition(form))
		return false;
	return true;
}
function CheckPassword(form)
{
	if (!CheckRequired(form.password.value, "Subscriber PIN"))
		return false;
	if (!CheckDigits(form.password, "Subscriber PIN"))
		return false;
		
	return true;
}

function CheckDigits(obj, error)
{
	var isNumber = isOnlyDigits(obj.value);
	if (!isNumber)
	{
		alert(error+ ' must contain only digits.');
		obj.focus();
		return false;
	}
	return true;
}

function CheckCopyReportsTo(copyreportsto)
{
	var value = copyreportsto.value;
	if (value.length == 0)
		return true;
	var emails = value.split(",");
	for (i=0;i<emails.length;i++)
	{
		if (!validationEmail(copyreportsto, emails[i], "CopyReportsTo"))
			return false;
	}
	return true;
}
function validInternationalAccountForm(form) {
 if (!CheckRequired(form.name,"Name"))
	return false;
	
 if (!CheckEmail(form.email,"Email"))
	return false;
	
  if (!CheckSubscriberPIN(form))
    return false;
    
  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;
		}
  }
  if (!CheckRequiredCountry(form))
	return false;
  if (!CheckCopyReportsTo(form.copyreportsto))
	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, "Access Code"))
		return false;
	if (!CheckRequired(form.password, "Subscriber PIN"))
		return false;
	if (!CheckRequiredOption(form.subject, "Subject"))
		return false;
	return true;
}

function validYIMTroubleTicketForm(form)
{
	if (!CheckRequired(form.name, "Name"))
		return false;
	if (!CheckEmail(form.email, "Email"))
		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 isPhoneNumber(phonenumber) {
  //phonenumber = phonenumber.replace("(", "").replace(")", "").replace("-", "").replace(" ", "");
  phonenumber = phonenumber.replace(/[\(\s\)\-]/g,"");
  //return !isNaN(phonenumber);
  return (!isNaN(phonenumber) && phonenumber.length ==10); 
}

function validActivateCardForm(form) {
  if (!CheckRequired(form.name, "Name"))
    return false;
  if (!CheckEmail(form.email, "Email"))
    return false;
  if (!CheckRequired(form.phonenumber, "Dial-in Number"))
    return false;
  if (!CheckRequired(form.accesscode, "Access Code"))
    return false;
  if (!CheckDigits(form.accesscode, "Access Code")) {
	return false;
  }
  if (!isPhoneNumber(form.phonenumber.value)) {
    alert("Dial-in Number is invalid.");
	form.phonenumber.focus();
	return false;
  }
  return true;
}

function validRenewForm(form) {
  if (!CheckRequired(form.phonenumber, "Dial-in Number"))
    return false;
  if (!isPhoneNumber(form.phonenumber.value)) {
    alert("Dial-in Number is invalid.");
	form.phonenumber.focus();
	return false;
  }
  if (!CheckRequired(form.accesscode, "Access Code"))
    return false;
  if (!CheckDigits(form.accesscode, "Access Code"))
    return false;
    /*
  if (!CheckRequired(form.passcode, "Subcriber PIN"))
    return false;
    */
  if (!CheckAgreeTermCondition(form))
	return false;

  return true;
}

function setCheckBox(obj, value)
{
	if (value == "1" || value == 1)
		obj.checked = true;
	else
		obj.checked = false;
}
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 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 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 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 MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

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 isEmptyString(str) {
    return str == null || str == "" || str == undefined;
}

function setFocusOnField(obj)
{
	obj.focus();
}

function CheckDigits(obj, error)
{
	if (obj.value.length > 0)
	{
		var isNumber = isOnlyDigits(obj.value);
		if (!isNumber)
		{
			alert(error+ ' must contain only digits.');
			obj.focus();
			return false;
		}
	}
	return true;
}
