/****** opens link in popup window *******/
var PWIN = null;
function CreateWindow(myUrl) { 
    var topL=20;
    var leftL=20;
    var myWidth=640;
    var myHeight=480;    
    var myToolbar=0;      
    var myScrollbar=1;      
    var wName='popUpWindow';
    myWidth = (arguments.length>1)?arguments[1]:myWidth; // option to pass in width
    myHeight = (arguments.length>2)?arguments[2]:myHeight; // option to pass in height    
    myToolbar = (arguments.length>3)?arguments[3]:myToolbar; // option to turn toolbar off
    myScrollbar = (arguments.length>4)?arguments[4]:myScrollbar; // option to turn scrollbar off
    wName = (arguments.length>5)?arguments[5]:wName; // option to pass in window name     

	if (myUrl.indexOf("?") != -1 ){
		myUrl = myUrl + "&referringUrl=" + window.location.href;
	}

	if (myUrl.indexOf("?")  == -1 ){
		myUrl = myUrl + "?referringUrl=" + window.location.href;
	}
    
    var str="toolbar="+ myToolbar +",location=0,directories=0,status=0,menubar=0,scrollbars="+ myScrollbar +",width="+ myWidth +",height="+ myHeight +",screenX="+ leftL +",screenY="+ topL +",left="+ leftL +",top="+ topL +",resizable=1";

    if(PWIN != null){
        PWIN.close();
    }
    PWIN = window.open(myUrl,wName,str);
    PWIN.focus();
    return false;
}

//limit characters in a text area box //
function limit(objTextArea,maxLength)	{
	if (objTextArea.value.length >= maxLength)	{			
		document.forms[0].objTextArea.value = objTextArea.value.substring(0,maxLength-1);			
	}
	else		{
		document.forms[0].counter.value = objTextArea.value.length + " characters used)";
	}
}

function disableIt()
{
  // check everything you need to check and then
  if (document.forms[0].forwardEmailChk.checked == false) {
  document.forms[0].forwardEmailTxt.disabled = true;
  // document.forms[0].forwardEmailTxt.value = '';      
  document.forms[0].forwardEmailTxt.className = 'disabled';
} 
 else if (document.forms[0].forwardEmailChk.checked == true) {
  document.forms[0].forwardEmailTxt.disabled = false;
  document.forms[0].forwardEmailTxt.className = 'enabled';    
  }
else {
 document.forms[0].forwardEmailTxt.disabled = false;
 }
} 
 
 
// delete confirmation //
function deleteConfirm(url,message) {
 if(confirm(message)){
  top.document.location = url;
  return true;
 }
}  

function agreeTerms()
{
	if(document.getElementById('agree').checked)
		 return true;
	else 
	{
		document.getElementById('redAlert').innerHTML = "<img src=\"/images/buttons/arrowError.gif\" width=\"10\" height=\"15\" alt=\"arrow\" border=\"0\" />";
	 	return false;
	}
}

function checkAgree()
{
	var height = document.getElementById('terms').clientHeight;
	var termsPosition = document.getElementById('terms').scrollTop;
	var termsHeight = document.getElementById('terms').scrollHeight;
	
	if( (height + termsPosition) >= termsHeight - 25)
		document.getElementById('agree').disabled = false;
}

function showHideTwoOptions(element, div1, div2) 
{
	if(document.getElementById(element).checked)
	{
		document.getElementById(div1).className = 'divShow';
		document.getElementById(div2).className = 'divHide';
	}
	else
	{
		document.getElementById(div2).className = 'divShow';
		document.getElementById(div1).className = 'divHide';
	}
}

function showHideDiv(element, div1) 
{
	if(!document.getElementById(element).disabled)
	{
		if(document.getElementById(element).checked)
			document.getElementById(div1).className = 'divShow';
		else
			document.getElementById(div1).className = 'divHide';
	}
}

function hideDiv(div)
{
	for(var ind = 0; ind < div.length; ind++)
		document.getElementById(div[ind]).className = 'divHide';
}

function showDiv(div)
{
	for(var ind = 0; ind < div.length; ind++)
		document.getElementById(div[ind]).className = 'divShow';
}

function enableField(enableField, fieldName, text1, text2)
{
	var formElement = document.getElementsByName(fieldName);
	
	if(document.getElementById(enableField).checked)
	{
		for(var ind = 0; ind < formElement.length; ind++)
			formElement[ind].disabled = false;
		
		document.getElementById(text1).className = "enabledText";
		document.getElementById(text2).className = "enabledText";
	}
	else
	{
		for(var ind = 0; ind < formElement.length; ind++)
			formElement[ind].disabled = true;
		
		document.getElementById(text1).className = "disabledText";
		document.getElementById(text2).className = "disabledText";
	}
}

function radioField(enablingKey, enableField, value)
{
	if(document.getElementById(enablingKey).checked)
	{
		document.getElementById(enableField).disabled = false;
		document.getElementById(enableField).focus();
		document.getElementById(enableField).value = "";
	}
	else if(!document.getElementById(enableField).disabled)
	{
		document.getElementById(enableField).disabled = true;
		document.getElementById(enableField).value = value;
	}
}

function radioFieldArray(enablingKey, enableField, value)
{
	if(document.getElementById(enablingKey).checked)
	{
		for(var ind = 0; ind < enableField.length; ind++)
		{
			document.getElementById(enableField[ind]).disabled = false;
			document.getElementById(enableField[ind]).value = "";
			
			if(document.getElementById(enableField[ind]).type.toLowerCase() == "text")
				document.getElementById(enableField[ind]).className = "";
		}
		
		document.getElementById(enableField[0]).focus();
	}
	else if(!document.getElementById(enableField).disabled)
	{
		document.getElementById(enableField).disabled = true;
		
		if(value != null)
			document.getElementById(enableField).value = value;
	}
}

function checkboxEnable(enablingKey, enableField)
{
	if(document.getElementById(enablingKey).checked)
	{
		document.getElementById(enableField).disabled = false;
		//document.getElementById(enableField).focus();
	}
	else if(!document.getElementById(enableField).disabled)
	{
		document.getElementById(enableField).disabled = true;
		document.getElementById(enableField).checked = false;
	}
}

function checkboxEnableArray(enablingKey, enableField)
{
	if(document.getElementById(enablingKey).checked)
	{
		for(var ind = 0; ind < enableField.length; ind++)
			document.getElementById(enableField[ind]).disabled = false;
	}
	else
	{
		for(var ind = 0; ind < enableField.length; ind++)
		{
			document.getElementById(enableField[ind]).disabled = true;
			document.getElementById(enableField[ind]).checked = false;
		}
	}
}



function disableField(fieldId)
{
	document.getElementById(fieldId).disabled = true;
	//document.getElementById(fieldName).className = "disabled";
}

function disableFieldArray(fieldId)
{
	for(var ind = 0; ind < fieldId.length; ind++)
	{
		if(document.getElementById(fieldId[ind]).type.toLowerCase() == "text")
			document.getElementById(fieldId[ind]).className = "disabledTextField";
		 
		document.getElementById(fieldId[ind]).disabled = true;
	}
}

function selectEnable(selectID, optionID, inputID)
{
	var selectOption = selectID.options[selectID.selectedIndex];
	
	if(selectOption.id == optionID)
	{
		document.getElementById(inputID).disabled = false;
		//document.getElementById(inputID).className = "enabled";
		document.getElementById(inputID).value = "";
		document.getElementById(inputID).focus();
	}
	else if(!document.getElementById(inputID).disabled)
	{
		document.getElementById(inputID).disabled = true;
		//document.getElementById(inputID).className = "disabled";
		document.getElementById(inputID).value = "Enter Question";
	}
}

function twoConEnable(element1, element2, enableElements, checkedDisabled)
{
	if(document.getElementById(element1).checked && document.getElementById(element2).checked)
	{
		for(var ind = 0; ind < enableElements.length; ind++)
			document.getElementById(enableElements[ind]).disabled = false;
			
		if(checkedDisabled != null)
			document.getElementById(checkedDisabled).checked = true;
	}
	else
	{
		for(var ind = 0; ind < enableElements.length; ind++)
		{
			document.getElementById(enableElements[ind]).disabled = true;
			document.getElementById(enableElements[ind]).checked = false;
		}
			
		if(checkedDisabled != null)
			document.getElementById(checkedDisabled).checked = false;
	}
}
/************ Functions below added by Andrew Pawson - 18-Sept-2006 **********/
// Utility functions for handling classNames
String.prototype.trim = function() {
    return this.replace( /^\s+|\s+$/, "" );
}
function addClassName(elem, className) {
    removeClassName(elem, className);
    elem.className = (elem.className + " " + className).trim();
}
function removeClassName(elem, className) {
    elem.className = elem.className.replace(className, "").trim();
}
/*****************************************************************************/
// -----------------------------------------------------------------
// Function Name      : tlsToggleFields
// Function Purpose   : enables/disables form elements+labels
// Passed Parameters  : myId - 'id' of parent container (for multiple elements)
//						or form field (for single elements),
//						isEnabled - [0,1] or [false,true]
// Retuned Parameters : <none>
// Author             : Andrew Pawson
// Example            : 
// -----------------------------------------------------------------
function tlsToggleFields(myId,isEnabled){
		// check if myId is an array
		if(typeof myId == 'object'){
			for(var i = 0; i < myId.length; i++) { 
			   tlsToggleFields(myId[i],isEnabled);
   			}
		}
		var g = document.getElementById(myId);
		// if the target is a single form element then 
		if(g.nodeName == 'INPUT' || g.nodeName == 'SELECT'){
			g.disabled = (isEnabled) ? false : true;
			// handle text fields
			if(g.type.toLowerCase() == "text" && !isEnabled){
					addClassName(g,'disabledTextField');
				} else {
					removeClassName(g,'disabledTextField');
				}
			// handle buttons
			if(g.className.indexOf("button")>=0 && !isEnabled){
					addClassName(g,'disabledBtn');
				} else {
					removeClassName(g,'disabledBtn');
				}
			return;
		}
		var lbls = g.getElementsByTagName('label');
		var sels = g.getElementsByTagName('select');
		var inpts = g.getElementsByTagName('input');
		
		// toggle field labels
		for(var i = 0; i < lbls.length; i++){
			var o = lbls[i];
			if(isEnabled){
				removeClassName(o,'disabledText');
			} else {
				addClassName(o,'disabledText');
			}
		}
		// toggle form elements
		for(var i = 0; i < inpts.length; i++){
			var o = inpts[i];
			if(isEnabled){
				// handle text fields
				if(o.type.toLowerCase() == "text"){
					removeClassName(o,'disabledTextField');
				}
				// handle buttons
				if(o.className.indexOf("button")>=0){
					removeClassName(o,'disabledBtn');
				}
				o.disabled = false;
			} else {
				// handle text fields
				if(o.type.toLowerCase() == "text"){
					addClassName(o,'disabledTextField');
				}
				// handle buttons
				if(o.className.indexOf("button")>=0){
					addClassName(o,'disabledBtn');
				}
				o.disabled = true;
			}
		}
		// toggle select elements
		for(var i = 0; i < sels.length; i++){
			var o = sels[i];
			if(isEnabled){
				o.disabled = false;
			} else {
				o.disabled = true;
			}
		}
}
// -----------------------------------------------------------------
// Function Name      : tlsClearTextFields
// Function Purpose   : clears text field values
// Passed Parameters  : myEl - reference to parent container element
//						all child text fields will be cleared
// Retuned Parameters : <none>
// Author             : Andrew Pawson
// Example            : 
// -----------------------------------------------------------------
function tlsClearTextFields(myEl){
	var flds = myEl.getElementsByTagName('input');
	for(var i = 0; i < flds.length; i++){
		if(flds[i].type.toLowerCase() == "text"){
			flds[i].value = '';
		}
	}
}
// special case for callForwarding.jsp
// When we enable the form fields we also need to check if 'voicemail' is
// selected...if so we need to disable the phone# text field since calling
// tlsToggleFields('fldGrpCallForward',1) will enable it
function tlsDoCallForwardOn(){
	tlsToggleFields('fldGrpCallForward',1);
	if(document.getElementById('voicemail2').checked){
		tlsToggleFields('telephoneNumber',0);	
	}
}
var tlsTempE;
function tlsDoNothing(){return false;}
function tlsDoSelectiveCallForwardOn(){
	// turn fields on
	tlsToggleFields('fldGrpSelectiveCallForward',1);
	// handle 'add numbers' link
	var lnk = document.getElementById('addNumber');
	removeClassName(lnk,'disabledText');
	// if it was previously disabled we need to restore the onlick event handler
	if(lnk.onclick == tlsDoNothing){
		lnk.onclick = tlsTempE;
	}
	if(document.getElementById('voicemail2').checked){
		tlsToggleFields('telephoneNumber',0);	
	}
}
function tlsDoSelectiveCallForwardOff(){
	tlsToggleFields('fldGrpSelectiveCallForward',0);
	var lnk = document.getElementById('addNumber');
	addClassName(lnk,'disabledText');
	// if link already has an onclick handler then we need to store it so it
	// can be restored later
	if(lnk.onclick != tlsDoNothing){
		tlsTempE = lnk.onclick;
	}
	// disable the link
	lnk.onclick = tlsDoNothing;
}

function tlsDoVoipRpp(mode){
 // if on
 if(mode == 1){
 // check if last radio is selected
 var flds = [document.getElementById('single'),document.getElementById('monthly'),document.getElementById('rental')];
 for(var i = 0; i < flds.length; i++){
  if(flds[i].checked){
  flds[i].checked = false;
 }
 }
 
 // disable all options
 tlsToggleFields('payOptions',0);
 // enable last option
 tlsToggleFields('rppOff',1);
 document.getElementById('noPayment').checked = true;
 } else {
 // check if last radio is selected
 if(document.getElementById('noPayment').checked){
  document.getElementById('noPayment').checked = false;
 }
 // enable all options
 tlsToggleFields('payOptions',1);
 document.getElementById('single').checked = true; 
 // disable last option
 tlsToggleFields('rppOff',0);
 }
}

function tlsMoveAddress(address){
 // if alt address
 if(address == 'altAddress1'){
document.getElementById('addressLine1').value = document.getElementById('altAddressLine11').value;
document.getElementById('city').value = document.getElementById('altCity1').value;
document.getElementById('province').value = document.getElementById('altProvince1').value;
document.getElementById('postalCode').value = document.getElementById('altPostalCode1').value;
 }
  if(address == 'altAddress2'){
document.getElementById('addressLine1').value = document.getElementById('altAddressLine12').value;
document.getElementById('city').value = document.getElementById('altCity2').value;
document.getElementById('province').value = document.getElementById('altProvince2').value;
document.getElementById('postalCode').value = document.getElementById('altPostalCode2').value;
 }
  if(address == 'altAddress3'){
document.getElementById('addressLine1').value = document.getElementById('altAddressLine13').value;
document.getElementById('city').value = document.getElementById('altCity3').value;
document.getElementById('province').value = document.getElementById('altProvince3').value;
document.getElementById('postalCode').value = document.getElementById('altPostalCode3').value;
 }
 // disable all options
 tlsToggleFields('fldGrpShippingAddress',0);
}