
 //Function for external popups
var isIE = (window.navigator.userAgent.indexOf("MSIE") > 0);


   function popupWindow(thisUrl, thisWidth,thisHeight,thisTop,thisLeft) {
   	    optionString = ('width=' + thisWidth + ',height=' + thisHeight + ',status=no,menubar=no,resizable=yes,scrollbars=yes');
        mainWin = window.open(thisUrl,'goExternal',optionString);
   }

function setInnerText(_obj, _text) {
	if ( isIE ) {
		_obj.innerText = _text;
	} else {
		_obj.textContent = _text;
	}

}

function noenter(e) {
  if(window.event){ // IE
	keynum = e.keyCode
  }else if(e.which){ // Netscape/Firefox/Opera
	keynum = e.which
  }

  return !(keynum == 13);
}
function getRadioValue(_obj)
{
for (var i=0; i < _obj.length; i++)
   {
   if (_obj[i].checked)
      {
     return _obj[i].value;
      }
   }
}


var winModalWindow;
var redirectUrl;
var redirectResult=false;

function IgnoreEvents(e)
{
  return false;
}

function redirectWindow( page, pageTitle, _pageWidth, _pageHeight)
{
  if (window.showModalDialog)
  {
    redirectResult = window.showModalDialog(page,null, "dialogWidth="+_pageWidth+"px;dialogHeight="+_pageHeight+"px");
    if ( redirectResult  ) {
    	return true;
    } else {
    	return false;
    }
  }
  else
  {
  	redirectUrl = event.srcElement.href;
    window.top.captureEvents (Event.CLICK|Event.FOCUS);
    window.top.onclick=IgnoreEvents;
    window.top.onfocus=HandleFocus ;
    winModalWindow =   window.open (page,pageTitle, "dependent=yes,width="+_pageWidth+",height="+_pageWidth+"");
    winModalWindow.focus();
    return false;
  }
}


function HandleFocus()
{
  if (winModalWindow)
  {
    if (!winModalWindow.closed)
    {
      winModalWindow.focus();
    }
    else
    {
      window.top.releaseEvents (Event.CLICK|Event.FOCUS);
      window.top.onclick = "";
      if ( redirectResult ) {
      	window.location = redirectUrl;
      }
    }
  }
  return false;
}

function setModifyPage(modifyPage) {
		 	// document.getElementById("pageName").value=methodName;
		 	 _element = document.createElement("input");
			_element.setAttribute("type", "hidden");
			_element.setAttribute("name", "modifyPage");
			_element.setAttribute("id", "modifyPage");
			_element.setAttribute("value", modifyPage);
			document.forms['pageForm'].appendChild(_element);

}
function setOAModifyPage(modifyPage,pageName) {
		 	// document.getElementById("pageName").value=methodName;
		 	 _element = document.createElement("input");
			_element.setAttribute("type", "hidden");
			_element.setAttribute("name", "modifyPage");
			_element.setAttribute("id", "modifyPage");
			_element.setAttribute("value", modifyPage);
			document.forms['pageForm'].appendChild(_element);
			document.getElementById("PAGENAME").value=pageName;

}

function disableAutoComplete() {
	if (disabledACFields != null) {
       for(var j=0; j<disabledACFields.length; j++){
           var elemtNm = disabledACFields[j];
           var ref = document.getElementById(elemtNm);
           if (ref != null) {
               ref.setAttribute("autocomplete", "off");
       		}
   		}
   	}
}

function enableFields() {
	if (disabledFields != null) {
       for(var j=0; j<disabledFields.length; j++){
           var elemtNm = disabledFields[j];
           var ref = document.getElementById(elemtNm);
           if (ref != null) {
               ref.disabled = false;
       		}
   		}
   	}
}

// new variable is added to prevent multiple form submission
var submitFormFlag = false;
var disabledFields = null;
function submitForm() {  	 
	// submitFormFlag is checked, if it is false then submit the form
	if(!submitFormFlag) {
		submitFormFlag = true;
		enableFields();
		document.forms['pageForm'].submit();
	}

 return false;
}

function setSubmitFlagFalse() {
	submitFormFlag = false;
}

function setButtonClickedNext() {
	document.forms['pageForm'].buttonPressed.value="next";

}
function setButtonClickedPrevious() {
	 	 document.forms['pageForm'].buttonPressed.value="previous";
}
function setButtonClickedSaveAndResume() {
	 	document.forms['pageForm'].buttonPressed.value="saveAndResume";
}
function setButtonClickedModify() {
	 	 document.forms['pageForm'].buttonPressed.value="handleModify";
}
function setButtonClickedToggleLanguage() {
		document.forms['pageForm'].buttonPressed.value="toggleLanguage";
}

function setButtonClickedManage() {
	 	 document.forms['pageForm'].buttonPressed.value="manageFeatures";
}
function setButtonClickedChange() {
	 	document.forms['pageForm'].buttonPressed.value="changeFeatures";
}

function showProcessing() {

	if (document.getElementById("progressbar") != null ) {
		document.getElementById("progressbar").style.display="none";
	}
	if (document.getElementById("breadcrumbs") != null) {
		document.getElementById("breadcrumbs").style.display="none";
	}
	if ( document.getElementById("userlabel") != null) {
		document.getElementById("userlabel").style.display="none";
	}
        if (document.getElementById("genericerror") != null) {
		document.getElementById("genericerror").style.display="none";
        }
	document.getElementById("header").style.display="none";
        document.getElementById("side_bar").style.display="none";
	document.getElementById("title").style.display="none";
	document.getElementById("content").style.display="none";
	document.getElementById("navigation").style.display="none";
	document.getElementById("footer").style.display="none";
	document.getElementById("minidashboard").style.display="none";
	document.getElementById("processingDiv").style.display="";
	return true;
}

function showOnlineActProcessing() {					
	document.getElementById("online_activation").style.display="none";
	document.getElementById("processingDiv").style.display="";
	return true;
}


function setNonPunchinLink(_link) {
	document.forms['redirectForm'].source.value='link';
	document.forms['redirectForm'].link.value=_link;
}

function setNonPunchinLinkNoLanguageParam(_link) {
	document.forms['redirectForm'].source.value='link';
	document.forms['redirectForm'].link.value=_link;
	document.forms['redirectForm'].noLanguageParam.value='true';
}

function setPunchinLink(_link) {
	document.forms['redirectForm'].source.value='punchinlink';
	document.forms['redirectForm'].link.value=_link;
}

function setPunchinMiniDash(_link) {
	document.forms['redirectForm'].source.value='minidash';
	document.forms['redirectForm'].link.value=_link;
}

function setPunchinBreadcrumb(_link) {
	document.forms['redirectForm'].source.value='breadcrumb';
	document.forms['redirectForm'].link.value=_link;
}
function setCancelOnRedirect(_cancel) {
	document.forms['redirectForm'].cancel.value=_cancel;
}
function submitRedirect() {
	document.forms['redirectForm'].submit();
}


function enableNext() {
	document.getElementById('nextButton').disabled=false;
	document.getElementById('nextButton').src=nextButtonEnabledSrc;
}

function enableSubmit() {
	document.getElementById('submitButton').disabled=false;
		document.getElementById('submitButton').src=submitButtonEnabledSrc;
}

function disableNext() {
	document.getElementById('nextButton').disabled=true;
		document.getElementById('nextButton').src=nextButtonDisabledSrc;
}

function disableSubmit() {
	document.getElementById('submitButton').disabled=true;
	document.getElementById('submitButton').src=submitButtonDisabledSrc;
}

function openProductUsrGdePopup(url) {
    var windowSpec = "width=800, height=800, location=no, menubar=no, status=no, toolbar=no, scrollbars=yes, resizable=yes";
    window.open(url, null, windowSpec);
}


function confirmation(question) {
   var cancelRequired = document.forms['redirectForm'].cancel.value;
   var answer= true;
   if(skipConfirm()) {
   	submitRedirect();
   	return true;
   }
   if (cancelRequired=='true'){
        	answer = confirm(question)
   }
	if (answer){
		submitRedirect();
      return true;
	}
	return false;
}

function skipConfirm() {
   var elem = document.getElementById('PAGENAME');
   if(elem == null) {
		elem = document.getElementById('pageName');
   }		
   if(elem != null) {
		var pageName = elem.value;
   if(pageName == "equipmentProgrammingSubmit" || pageName == "reopenFailedSubmit") {
   	return true;
   }
   }    		
   return false;
}

function switchtoPrepaid(question) {
        var answer= true;

        answer = confirm(question)

	if (answer){
		submitForm();
                return true;
	}
	return false;
}
function popper(thisUrl, thisWindow, thisWidth, thisHeight, thisTop, thisLeft) {

    optionString = ('width=' + thisWidth + ',height=' + thisHeight + ',top=' + thisTop + ',left=' + thisLeft + ',status=no,menubar=no,resizable=yes,scrollbars=yes');

    mainWin = window.open(thisUrl, thisWindow, optionString);

}

function openReturnPolicyPopup(url) {
    var windowSpec = "width=800, height=500, top=100, left=100, menubar=no, status=no, toolbar=no, scrollbars=yes, resizable=yes";
    window.open(url, null, windowSpec);
}

function setAllCap(s) {
  var str = s;
  if(str!=null && str.length>0 && str!='') {
    //set all cap if input string not null nor empty
    str = str.toUpperCase();
  }
  return str;
}

function enableTermCheckedBox() {
	document.getElementById('termChecked').disabled=false;
}

function setButtonPressedValue(s)
{
    document.forms['pageForm'].buttonPressed.value=s;
}

function getRadioValueById(elementId)
{
      var elem = document.getElementsById(elementId);
           for (counter = 0; elem!=null && counter < elem.length; counter++)
           {
               if (elem[counter].checked) {
                   return elem[counter].value;
               }
           }
      return null;
}

function getRadioValueByName(elementName)
{
      var elem = document.getElementsByName(elementName);
           for (counter = 0; elem!=null && counter < elem.length; counter++)
           {
               if (elem[counter].checked) {
                   return elem[counter].value;
               }
           }
      return null;
}

//To display messages with underline properly (Avoid <u> element to be displayed as plain text)
function showMsgWithUnderline(message){
	var message = $ESAPI.encoder().encodeForHTML(message);
	
	var startIndex = message.indexOf("&lt;u&gt;");
	var endIndex = message.indexOf("&lt;&#x2f;u&gt;");
	
	var elements = document.getElementsByClassName("msgWithUnderline");
	
	if (startIndex === -1 || endIndex === -1) {		
		for(var i = 0; i < elements.length; i++) {
		    elements[i].insertAdjacentHTML("beforeend", message);
		}
	} else {
		var beforeUnderline = message.slice(0, startIndex);
		var underline = message.slice(startIndex + 9, endIndex);
		var afterUnderline = message.slice(endIndex + 15);
		
		for(var i = 0; i < elements.length; i++) {
			elements[i].insertAdjacentHTML("beforeend", beforeUnderline + 
				"<span style='text-decoration: underline;'>" + underline + "</span>" + afterUnderline);
		}
	}
}

function sendMobileAppData(isDone, mobileAppData, fromPage){
  if (mobileAppData != null && mobileAppData != ""){
	  var ua = window.navigator.userAgent;

	  if (isDone == true || isDone == "true"){
	  	mobileAppData = mobileAppData.replace("loaded","closed"); 
	  }

	  console.log(mobileAppData);
	  if (ua != null && ua.indexOf("Android") > 0 && typeof AALJScriptInterface !== "undefined"){
	  	if (fromPage == "Confirmation") {
			AALJScriptInterface.simConfirmationPage(mobileAppData);
		} else if (fromPage == "Error") {
	    	AALJScriptInterface.simTechnicalIssuePage(mobileAppData);
	    }
	  } else if (ua != null && (ua.indexOf("iPad") > 0 || ua.indexOf("iPhone") >0) && typeof window.webkit !== "undefined"){
	  	if (fromPage == "Confirmation") {
			window.webkit.messageHandlers.simConfirmationPage.postMessage(mobileAppData);
		} else if (fromPage == "Error") {
			window.webkit.messageHandlers.simTechnicalIssuePage.postMessage(mobileAppData);
	    }
	  }
  }	
}
