function hasSubstance(x) {
  return (typeof x !== 'undefined' && x !== null && x !== ""); //zero has substance
}

function focus(idToFocus) {
  if (idToFocus && hasSubstance(idToFocus)) {
      var el = document.getElementById(idToFocus);
      if (el && el.focus) {
        el.focus();
      }
  }
}

function isReturnKey(evt) {
  evt = (evt) ? evt : event;
  var charCode = (evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);

  if (charCode == 13 || charCode == 3) { return true; }
  return false;    
}

/*********Splash Page**********/
function splashPageInit()
{
  focus("loginId");
  initOmniture(); // defined in footer.jsp
  doPageReport();
}

function doSubmit()
{
  document.loginform.siteState.value = original_url();
 try{
  document.loginform.submit();
  }
  catch(e){
  }
 return true;
}
  
function original_url() 
{
	//set the loginform attribute or siteState to the originating url
  	var a = window.location;
  	var b = encodeURIComponent("OrigUrl="+encodeURIComponent(a));
  	return b;
}

/*********Reg Flow**********/

function processCancel(form, target)
{
	var cancel = document.getElementById("cancel");
  	cancel.disabled = "";
  	
  	if(target)
  	{
  		var target = document.getElementById(target);
  		target.disabled = "disabled";
  	}
  	
  	var form = document.getElementById(form);
    form.submit();
  	
  	return true;
}
  
function jumpToPreviousPage(form, target, previous)
{
  	var target = document.getElementById(target);
  	target.disabled = false;
 
   	var previous = document.getElementById(previous);
  	previous.disabled = true;
  
	var form = document.getElementById(form);
	form.submit();
   
   	return true;
}
  
function showLightBox()
{
 var height= Math.max( 
     Math.max(document.body["scrollHeight"], document.documentElement["scrollHeight"]), 
     Math.max(document.body["offsetHeight"], document.documentElement["offsetHeight"]) 
    );
 
	document.getElementById('light').style.display='block';
 	document.getElementById('fade').style.display='block';
 
 	document.getElementById('fade').style.height = height + 'px';  
 	document.getElementById('fade').style.width = document.body.clientWidth + 'px';
}    
  
// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters;
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   
	var i;
    for (i = 0; i < s.length; i++)
    {   
    	var c = s.charAt(i);
         
        // Check that current character is number.
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone)
{
	var s=stripCharsInBag(strPhone,validWorldPhoneChars);
	
	//check to see if first digit is a 1
        //We're doing this earlier now so I'm commenting this out - PKD
	//s=stripLeading1(s);	

	//return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
	return (isInteger(s) && s.length == minDigitsInIPhoneNumber);
}

function stripLeading1(strPhone)
{
	// Check to make sure first digit is not a 1
	var c = strPhone.charAt(0);
    
	if(c == "1")
        {
          var newStrPhone = strPhone.slice(1);    	
          return newStrPhone;
   	}
	
	return strPhone;
}

function ValidateForm(selectOne)
{
	var Phone=document.getElementById("phoneNumber");
	
	if(Phone)
	{
		if ((Phone.value==null)||(Phone.value==""))
		{
			var invalidNumber = document.getElementById("invalidNumber")
			invalidNumber.className="hide";

			var noCarrier = document.getElementById("noCarrier");
			noCarrier.className="hide";

			var noManufacturer = document.getElementById("noManufacturer");
			noManufacturer.className="hide";

			/*/var noTimezone = document.getElementById("noTimezone");
			noTimezone.className="hide";*/
			
			var noNumber = document.getElementById("noNumber");
			noNumber.className= "";
			Phone.focus();
			return false;
		}
                //If we've made it this far then strip off any leading 1 and reflect that in the UI
                Phone.value = stripLeading1(Phone.value);
                
		if (checkInternationalPhone(Phone.value)==false)
		{
			var noNumber = document.getElementById("noNumber");
			noNumber.className= "hide";

			var noCarrier = document.getElementById("noCarrier");
			noCarrier.className="hide";

			var noManufacturer = document.getElementById("noManufacturer");
			noManufacturer.className="hide";

			/*/var noTimezone = document.getElementById("noTimezone");
			noTimezone.className="hide";*/
			
			var invalidNumber = document.getElementById("invalidNumber")
			invalidNumber.className="";
			Phone.focus();
			return false;
		}
	
		var unformattedNumber = document.getElementById("unformattedNumber");
		unformattedNumber.value = stripCharsInBag(Phone.value,validWorldPhoneChars);
	}
	
	var carrierList=document.getElementById("carrierList");
	
	if(carrierList)
	{
		if(carrierList.value == selectOne)
		{
			var noNumber = document.getElementById("noNumber");
			noNumber.className= "hide";

			var invalidNumber = document.getElementById("invalidNumber")
			invalidNumber.className="hide";

			var noManufacturer = document.getElementById("noManufacturer");
			noManufacturer.className="hide";

			/*/var noTimezone = document.getElementById("noTimezone");
			noTimezone.className="hide";*/
			
			var noCarrier = document.getElementById("noCarrier");
			noCarrier.className="";
			carrierList.focus();
			return false;
		}
	}
	
	var manufacturerList=document.getElementById("manufacturerList");
	
	if(manufacturerList)
	{
		if(manufacturerList.value == selectOne)
		{
			var noNumber = document.getElementById("noNumber");
			noNumber.className= "hide";

			var invalidNumber = document.getElementById("invalidNumber")
			invalidNumber.className="hide";

			var noCarrier = document.getElementById("noCarrier");
			noCarrier.className="hide";

			/*/var noTimezone = document.getElementById("noTimezone");
			noTimezone.className="hide";*/
			
			var noManufacturer = document.getElementById("noManufacturer");
			noManufacturer.className="";
			manufacturerList.focus();
			return false;
		}
	}
	
	/*var timezoneList=document.getElementById("timezoneList");
	
	if(timezoneList)
	{
		if( timezoneList.value == selectOne)
		{
			var noNumber = document.getElementById("noNumber");
			noNumber.className= "hide";

			var invalidNumber = document.getElementById("invalidNumber")
			invalidNumber.className="hide";

			var noCarrier = document.getElementById("noCarrier");
			noCarrier.className="hide";

			var noManufacturer = document.getElementById("noManufacturer");
			noManufacturer.className="hide";
	
			var noTimezone = document.getElementById("noTimezone");
			noTimezone.className="";
			timezoneList.focus();
			return false;
		}
	}*/
	
	document.forms.phoneInfoForm.submit()
	return true;
 }
 
function showAllCalendars(element)
{
  	if(element == "contacts")
  	{
  		var autoAddedContacts = document.getElementById("autoAddedContacts");
  		var showOptions1 = document.getElementById("showOptions1");
  	
  		autoAddedContacts.className = "autoAddedContacts";
  		showOptions1.className = "hide";
  	}
  	else
  	{
  		var calendarList = document.getElementById("calendarList");
  		var showOptions2 = document.getElementById("showOptions2");
  	
  		calendarList.className = "calendarList";
  		showOptions2.className = "hide";
  	}
  	
  	return true;
}

function isPhoneSelected() 
{
	var phoneIsSelected = false;
	var choosePhoneForm=document.getElementById("choosePhoneForm");
	
	if(choosePhoneForm.model.length)
	{
		for (var i=0; i< choosePhoneForm.model.length; i++) 
		{
			if (choosePhoneForm.model[i].checked) 
			{
				phoneIsSelected = true;
			}
		
		}
	}
	else
	{
		if (choosePhoneForm.model.checked) 
		{
			phoneIsSelected = true;
		}
	}
	
	if(phoneIsSelected == true)
	{
		choosePhoneForm.submit();
		return true;
	}
	else
	{
		var noPhone = document.getElementById("noPhone");
		noPhone.className = "";
		
		var errorMessage = document.getElementById("errorMessage");
		errorMessage.className = "errorMessage";
		
		var phoneMatrixModule = document.getElementById("phoneMatrixModule");
		phoneMatrixModule.className="phoneMatrixModuleError";
		
		return false;
	}
}

function setSignUpNowRef(snsHostName,snsSiteDomain)
{
	var url = "http://" + snsHostName + "/_cqr/login/login.psp?sitedomain=" + snsSiteDomain + "&createSn=1&siteState=";
	var origUrl = encodeURIComponent("OrigUrl=") + escape(encodeURIComponent("http://" + snsSiteDomain + "/main.do"));
	
	var signUpNowLink = document.getElementById("signUpNowLink");
	signUpNowLink.href = url + origUrl;
	
	return true;
}

function registerPhoneLink(newWindow)
{
    if (newWindow) {
      window.open("udrRegisteredDevice.do");  
    } else {
      document.location = "udrRegisteredDevice.do";    
    }
}

function openDownloadLink(downloadURL, iframe, popUpWarning)
{
  var dlWindow = window.open(downloadURL);
  if (!dlWindow) {
      alert(popUpWarning);
      return;
  }
  document.location = "edit.do" + (iframe ? "?iframe=true" : "");
}

function mouseoverElement(element)
{
    var el = document.getElementById(element);
    if (el) {el.className += " hoverLink";}
}

function mouseoutElement(element, origClass)
{
    var el = document.getElementById(element);
    if (el) {el.className = origClass;}
}

function applyButter(URL, popUpWarning)
{
  var w = window.open(URL);
  if (!w) {
      alert(popUpWarning);
      return false;
  }
  w.focus();
}