/*
#%FS-------------------------------------------------------------------
#  ID:      $Id: ebusCommon.js,v 1.10 2006/11/22 14:41:41 kdo Exp $
#
#  File:    ebusCommon.js
#
#  Desc:    This is the common JavaScript file for the EBN website
#
#  Copyright (c) 2003 BAE Systems, Inc.
#
#    See license file for information on usage and redistribution of this
#    file and for a DISCLAIMER OF ALL WARRANTIES.
#
#    History:
#         $Log: ebusCommon.js,v $
#         Revision 1.10  2006/11/22 14:41:41  kdo
#         SPR:4760 Fix problem with E-mail Link registration wizard when
#                  user change their answers to EOA questions.
#
#         Revision 1.9  2006/09/13 18:31:04  kdo
#         SPR:4742 Before code review check in. Made changes requested from SPR 4642
#                  testing of Email Link Registration.
#
#         Revision 1.8  2006/08/23 22:32:27  kdo
#         SPR:4642 After code-review checkin.
#
#         Revision 1.7  2006/08/18 20:32:44  kdo
#         SPR:4642 Added changes for Email Link Registration
#
#         Revision 1.6  2003/11/05 17:40:03  mpabon
#         SPR:3694 Added checks for names and address  character limit
#
#         Revision 1.5  2003/10/28 20:57:33  mpabon
#         SPR:3694 Added File Preview validation
#
#         Revision 1.4  2003/10/23 15:05:15  mpabon
#         SPR:3694 Added form delete capability
#
#         Revision 1.3  2003/10/22 21:08:43  mpabon
#         SPR:3694 Updated file for Phase 2
#
#         Revision 1.2  2003/10/21 15:29:34  mpabon
#         SPR:3694 Updates files for Phase 2
#
#
#
#
#%FE-------------------------------------------------------------------
*/

/*---------------------------------------------------------------------
/   Common mouse behavior functions
/ ----------------------------------------------------------------------*/
function mouseover (el) {
	el.className = "raised";
}

function mouseout (el) {
	el.className = "button";
}

function mousedown (el) {
	el.className = "pressed";
}

function mouseup (el) {
	el.className = "raised";
}

/*---------------------------------------------------------------------
/   Common new-window behavior functions
/ ----------------------------------------------------------------------*/
ebusSecond="";
function newWindow(newURL) {
	if (ebusSecond=="" || ebusSecond.closed) {
		ebusSecond = window.open(newURL, 'ebusSecond');
	} else {
		ebusSecond.location.href = newURL;
	}
	ebusSecond.focus();
}

/*---------------------------------------------------------------------
/   Common data validation functions
/ ----------------------------------------------------------------------*/
function validateSetTest (form) {
	if ((form.email.value == "") || (form.cName.value == "") || 
		(form.cPhone.value == "")) {
		alert ("Please provide all required information.");
		return false;
	} else {
		return true;
	}
}

function validateFaxNum (text) {
	if(text.value == "") {
		alert ("Please provide your fax number.");
		return false;
	} else {
		return true;
	}
}

function validateEnterData (form) {
	if ((form.subName.value == "") || (form.firmName.value == "") || 
		(form.firmPhone.value == "") || (form.firmEmail.value == "") || 
		(form.subAddr1.value == "") || (form.subCity.value == "") ||
		(form.subState.value == "")  || (form.subZip4.value == "")) {
		alert ("Please provide all required information.");
		return false;
	} else if (!(form.dist[0].checked) && !(form.dist[1].checked)) {
		alert ("Please select a district.");
		return false;
	} else {
		return true;
	}
}

function validateRelNames (form) {
	if (form.relatedNames.value.length > 255) {
		alert ("A maximum of 255 characters is allowed in the Related Names field.\nIf you \
need to provide more information, please call (877) 837-3424.");
		return false;
	} else if ((form.relatedNames.value != "") || (form.relNamesCheckbox.checked)) {
		form.action="complete_evidence_addrs.adp";
	}
	return true;
}

function validateRelAddrs (form) {
	if (form.relatedAddrs.value.length > 255) {
		alert ("A maximum of 255 characters is allowed in the Related Addresses field.\nIf you \
need to provide more information, please call (877) 837-3424.");
		return false;
	} else {
		return true;
	}
}

function validateSubInfo (form) {
	if ((form.subName.value == "") || (form.firmName.value == "") || 
		(form.firmPhone.value == "") || (form.firmEmail.value == "") || 
		(form.subAddr1.value == "") || (form.subCity.value == "") ||
		(form.subState.value == "") || (form.subZip4.value == "")) {
		alert ("Please provide all required information.");
		return false;
	} else {
		return true;
	}
}

function validateDist (form) {
	if (!(form.dist[0].checked) && !(form.dist[1].checked)) {
		alert ("Please select a district.");
		return false;
	} else {
		return true;
	}
}

function validateDelete (form) {
	if (form.availableforms.options[form.availableforms.selectedIndex].value == "none") {
		alert ("You must select a template.");
		return false;
	} else {
		return confirm ("Are you sure you want to delete this form?");
	}
}

function validateFilePrev (form) {
	if (form.nmethod.value=="email") {
		if ((form.status.value=="Pending") || 
			((form.status.value="Completed") && (form.result.value=="No"))) {
			alert("Your email address, <%=$statusData(dest_email)%>, has not been verified \
to be DSN compliant. \nYour Noticing Agreement cannot be generated at this point.");
			return false;
		}
	}
}

/******************************************** 
/	Function for re-directing to registration homepage
/        in case of session timeout.
/********************************************/
function timeout_redir(message) {
        var redir_URL = "/register/index.adp"
        if (message=="expired") {
	   alert('Your session has expired.\n \
	            Now re-directing to beginning of registration process.');
           window.location.replace(redir_URL);
        }
}

/*******************************************
/	Function for re-directing to EBN homepage
/        in case of DB connection problem.
/*******************************************/
function db_disconnect() {
        var redir_URL = "/index.adp"
        alert('The EBN Registration is experiencing problems.\n \
               Please contact the EBN hotline at 877-837-3424.');
        window.location.replace(redir_URL);
}

/*******************************************
/	Function for setting the value of radio buttons on
/       names and addresses input pages.
/*******************************************/
function SetRadio(page, type) {
    switch (page) {
        case "agreename":
            agreenameform.AgreeNameRadio.value = type;
            break;
        case "relatedname":
            relatednameform.RelatedNameRadio.value = type;
            break;
        case "agentname":
            agentnameform.AgentNameRadio.value = type;
            break;
        case "agreeaddr":
            agreeaddrform.AgreeAddrRadio.value = type;    
            break;
        case "relatedaddr":
            relatedaddrform.RelatedAddrRadio.value = type;
            break;
        case "agentaddr":
            agentaddrform.AgentAddrRadio.value = type;
            break;
    }
}

/*******************************************
/	Function for validating number of names submitted
/*******************************************/
function NameCount() {
    alert('You have exceeded the 25 names limit.\n \
             Please provide the BNC with an electronic copy of your list.');
    history.go(-1);
}

/*******************************************
/	Function for validating number of addresses submitted
/*******************************************/
function AddressCount() {
    alert('You have exceeded the 10 addresses limit\n \
             Please provide the BNC with an electronic copy of your list.');
    history.go(-1);
}

function Rejected() {
    alert(arguments[0]);
    history.go(-1);
}

/*******************************************
/	Function for validating data entered into a form.
/*******************************************/
function validate(page) {
        var filter3=/\d{3}/
        var filter4=/\d{4}/
        var filter5=/\d{5}/
        switch (page) {
        
           case "options":
              if ((optionform.dest_email.value=="") || (optionform.options.value=="")) {
                  alert('Required field missing.');
                  return false;   
              }
           case "dist":
              if ((distform.DistSelect.value=="SelectDist") && (distform.distlist.value=="")) {
                  alert('Required field missing.');
                  return false;   
              }
           case "poc":
              mNv=pocform.poc_name.value;
              mPAv=pocform.poc_phonearea.value;
              mP3v=pocform.poc_phone3.value;
              mP4v=pocform.poc_phone4.value;
              if ((mNv=="")||(mPAv=="")||(mP3v=="")||(mP4v=="")) {
                 alert('Required field missing.');
                 return false;
              }
              if (!filter3.test(mPAv) || !filter3.test(mP3v) || !filter4.test(mP4v)) {
                 alert('Phone numbers should contain only numbers,\n \
                          and be in the format ###-###-####');
                 return false;
              }
           case "sub": 
              if (((subform.sub_firm.value=="") && (subform.sub_indiv.value=="")) ||
                  (subform.sub_addr1.value=="") || (subform.sub_city.value=="") ||
                  (subform.sub_state.value=="AA") || (subform.sub_zip5.value=="")) {
                 alert('Required field missing.');
                 return false;
              }
           case "agreename": 
              if ((agreenameform.AgreeNameRadio.value!="none") && 
                  (agreenameform.AgreeNameRadio.value!="later") &&
                  (agreenameform.agreenamelist.value=="")) {
                 alert('You must either type in additional names in the textbox provided\n \
                          or select one of the other two options!');
                 return false;
              }
           case "agreeaddr": 
              if ((agreeaddrform.AgreeAddrRadio.value!="none") && 
                  (agreeaddrform.AgreeAddrRadio.value!="later") &&
                  (agreeaddrform.agreeaddrlist.value=="")) {
                 alert('You must either type in additional addresses in the textbox provided\n \
                          or select one of the other two options!');
                 return false;
              }
           case "relatedname": 
              if ((relatednameform.RelatedNameRadio.value!="none") && 
                  (relatednameform.RelatedNameRadio.value!="later") &&
                  (relatednameform.relatednamelist.value=="")) {
                 alert('You must either type in additional names in the textbox provided\n \
                          or select one of the other two options!');
                 return false;
              }
           case "relatedaddr": 
              if ((relatedaddrform.RelatedAddrRadio.value!="none") && 
                  (relatedaddrform.RelatedAddrRadio.value!="later") &&
                  (relatedaddrform.relatedaddrlist.value=="")) {
                 alert('You must either type in additional addresses in the textbox provided\n \
                          or select one of the other two options!');
                 return false;
              }
           case "agentname": 
              if ((agentnameform.AgentNameRadio.value!="none") && 
                  (agentnameform.AgentNameRadio.value!="later") &&
                  (agentnameform.agentnamelist.value=="")) {
                 alert('You must either type in additional names in the textbox provided\n \
                          or select one of the other two options!');
                 return false;
              }
           case "agentaddr": 
              if ((agentaddrform.AgentAddrRadio.value!="none") && 
                  (agentaddrform.AgentAddrRadio.value!="later") &&
                  (agentaddrform.agentaddrlist.value=="")) {
                 alert('You must either type in additional addresses in the textbox provided\n \
                          or select one of the other two options!');
                 return false;
              }
           case "agent":
              if ((agentform.prin_firm.value=="") || (agentform.prin_officer.value=="") ||
                  (agentform.prin_title.value=="") || (agentform.prin_phonearea.value=="") ||
                  (agentform.prin_phone3.value=="") || (agentform.prin_phone4.value=="")) {
                 alert('Required field missing.');
                 return false;    
              }
              if (!filter3.test(agentform.prin_phonearea.value) || !filter3.test(agentform.prin_phone3.value) ||
                  !filter4.test(agentform.prin_phone4.value)) {
                 alert('Phone numbers should contain only numbers,\n \
                          and be in the format ###-###-####');
                 return false;
              }
                
        }
}