var postRole = '';
var postDepartment = '';

// Role table
//
// To edit the list, just delete a line or add a line. Order is important.
// The order displayed here is the order it appears on the drop down.
//
var role = '\
Customer Service / Call Center:Representative / Specialist:Representative / Specialist|\
Customer Service / Call Center:Manager:Manager|\
Customer Service / Call Center:Director:Director|\
Customer Service / Call Center:Vice President:Vice President|\
Customer Service / Call Center:Consultant:Consultant|\
Customer Service / Call Center:Other:Other|\
Executive Office:Assistant:Assistant|\
Executive Office:General Counsel:General Counsel|\
Executive Office:General Manager:General Manager|\
Executive Office:CEO:CEO|\
Executive Office:CFO:CFO|\
Executive Office:Chairman:Chairman|\
Executive Office:Chief Architect:Chief Architect|\
Executive Office:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
Executive Office:CIO:CIO|\
Executive Office:CMO:CMO|\
Executive Office:COO:COO|\
Executive Office:CTO:CTO|\
Executive Office:Owner:Owner|\
Executive Office:Partner / Principal:Partner / Principal|\
Executive Office:President:President|\
Finance:Finance / Accounting:Finance / Accounting|\
Finance:Procurement / Purchasing:Procurement / Purchasing|\
Finance:Treasurer / Comptroller:Treasurer / Comptroller|\
Finance:Vice President:Vice President|\
Finance:CFO:CFO|\
Finance:Consultant:Consultant|\
Finance:Other:Other|\
Human Resources:Representative / Specialist:Representative / Specialist|\
Human Resources:Manager:Manager|\
Human Resources:Director:Director|\
Human Resources:Vice President:Vice President|\
Human Resources:Consultant:Consultant|\
Human Resources:Other:Other|\
IT - Applications / Development:Architect:Architect|\
IT - Applications / Development:Assistant:Assistant|\
IT - Applications / Development:Analyst:Analyst|\
IT - Applications / Development:CIO:CIO|\
IT - Applications / Development:Chief Architect:Chief Architect|\
IT - Applications / Development:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Applications / Development:Consultant:Consultant|\
IT - Applications / Development:Database Administrator:Database Administrator|\
IT - Applications / Development:Director:Director|\
IT - Applications / Development:Engineer:Engineer|\
IT - Applications / Development:Manager:Manager|\
IT - Applications / Development:Network Administrator:Network Administrator|\
IT - Applications / Development:Programmer / Developer:Programmer / Developer|\
IT - Applications / Development:Specialist / Staff:Specialist / Staff|\
IT - Applications / Development:Student:Student|\
IT - Applications / Development:Systems Administrator:Systems Administrator|\
IT - Applications / Development:Vice President:Vice President|\
IT - Applications / Development:Webmaster:Webmaster|\
IT - Applications / Development:Other:Other|\
IT - Business Intelligence:Architect:Architect|\
IT - Business Intelligence:Assistant:Assistant|\
IT - Business Intelligence:Analyst:Analyst|\
IT - Business Intelligence:CIO:CIO|\
IT - Business Intelligence:Chief Architect:Chief Architect|\
IT - Business Intelligence:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Business Intelligence:Consultant:onsultant|\
IT - Business Intelligence:Database Administrator:Database Administrator|\
IT - Business Intelligence:Director:Director|\
IT - Business Intelligence:Engineer:Engineer|\
IT - Business Intelligence:Manager:Manager|\
IT - Business Intelligence:Network Administrator:Network Administrator|\
IT - Business Intelligence:Programmer / Developer:Programmer / Developer|\
IT - Business Intelligence:Specialist / Staff:Specialist / Staff|\
IT - Business Intelligence:Student:Student|\
IT - Business Intelligence:Systems Administrator:Systems Administrator|\
IT - Business Intelligence:Vice President:Vice President|\
IT - Business Intelligence:Webmaster:Webmaster|\
IT - Business Intelligence:Other:Other|\
IT - Database:Architect:Architect|\
IT - Database:Assistant:Assistant|\
IT - Database:Analyst:Analyst|\
IT - Database:CIO:CIO|\
IT - Database:Chief Architect:Chief Architect|\
IT - Database:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Database:Consultant:onsultant|\
IT - Database:Database Administrator:Database Administrator|\
IT - Database:Director:Director|\
IT - Database:Engineer:Engineer|\
IT - Database:Manager:Manager|\
IT - Database:Network Administrator:Network Administrator|\
IT - Database:Programmer / Developer:Programmer / Developer|\
IT - Database:Specialist / Staff:Specialist / Staff|\
IT - Database:Student:Student|\
IT - Database:Systems Administrator:Systems Administrator|\
IT - Database:Vice President:Vice President|\
IT - Database:Webmaster:Webmaster|\
IT - Database:Other:Other|\
IT - Desktop / Help Desk:Architect:Architect|\
IT - Desktop / Help Desk:Assistant:Assistant|\
IT - Desktop / Help Desk:Analyst:Analyst|\
IT - Desktop / Help Desk:CIO:CIO|\
IT - Desktop / Help Desk:Chief Architect:Chief Architect|\
IT - Desktop / Help Desk:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Desktop / Help Desk:Consultant:onsultant|\
IT - Desktop / Help Desk:Database Administrator:Database Administrator|\
IT - Desktop / Help Desk:Director:Director|\
IT - Desktop / Help Desk:Engineer:Engineer|\
IT - Desktop / Help Desk:Manager:Manager|\
IT - Desktop / Help Desk:Network Administrator:Network Administrator|\
IT - Desktop / Help Desk:Programmer / Developer:Programmer / Developer|\
IT - Desktop / Help Desk:Specialist / Staff:Specialist / Staff|\
IT - Desktop / Help Desk:Student:Student|\
IT - Desktop / Help Desk:Systems Administrator:Systems Administrator|\
IT - Desktop / Help Desk:Vice President:Vice President|\
IT - Desktop / Help Desk:Webmaster:Webmaster|\
IT - Desktop / Help Desk:Other:Other|\
IT - Network:Architect:Architect|\
IT - Network:Assistant:Assistant|\
IT - Network:Analyst:Analyst|\
IT - Network:CIO:CIO|\
IT - Network:Chief Architect:Chief Architect|\
IT - Network:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Network:Consultant:onsultant|\
IT - Network:Database Administrator:Database Administrator|\
IT - Network:Director:Director|\
IT - Network:Engineer:Engineer|\
IT - Network:Manager:Manager|\
IT - Network:Network Administrator:Network Administrator|\
IT - Network:Programmer / Developer:Programmer / Developer|\
IT - Network:Specialist / Staff:Specialist / Staff|\
IT - Network:Student:Student|\
IT - Network:Systems Administrator:Systems Administrator|\
IT - Network:Vice President:Vice President|\
IT - Network:Webmaster:Webmaster|\
IT - Network:Other:Other|\
IT - Operations:Architect:Architect|\
IT - Operations:Assistant:Assistant|\
IT - Operations:Analyst:Analyst|\
IT - Operations:CIO:CIO|\
IT - Operations:Chief Architect:Chief Architect|\
IT - Operations:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Operations:Consultant:onsultant|\
IT - Operations:Database Administrator:Database Administrator|\
IT - Operations:Director:Director|\
IT - Operations:Engineer:Engineer|\
IT - Operations:Manager:Manager|\
IT - Operations:Network Administrator:Network Administrator|\
IT - Operations:Programmer / Developer:Programmer / Developer|\
IT - Operations:Specialist / Staff:Specialist / Staff|\
IT - Operations:Student:Student|\
IT - Operations:Systems Administrator:Systems Administrator|\
IT - Operations:Vice President:Vice President|\
IT - Operations:Webmaster:Webmaster|\
IT - Operations:Other:Other|\
IT - Project Management:Architect:Architect|\
IT - Project Management:Assistant:Assistant|\
IT - Project Management:Analyst:Analyst|\
IT - Project Management:CIO:CIO|\
IT - Project Management:Chief Architect:Chief Architect|\
IT - Project Management:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Project Management:Consultant:onsultant|\
IT - Project Management:Database Administrator:Database Administrator|\
IT - Project Management:Director:Director|\
IT - Project Management:Engineer:Engineer|\
IT - Project Management:Manager:Manager|\
IT - Project Management:Network Administrator:Network Administrator|\
IT - Project Management:Programmer / Developer:Programmer / Developer|\
IT - Project Management:Specialist / Staff:Specialist / Staff|\
IT - Project Management:Student:Student|\
IT - Project Management:Systems Administrator:Systems Administrator|\
IT - Project Management:Vice President:Vice President|\
IT - Project Management:Webmaster:Webmaster|\
IT - Project Management:Other:Other|\
IT - Quality / Testing:Architect:Architect|\
IT - Quality / Testing:Assistant:Assistant|\
IT - Quality / Testing:Analyst:Analyst|\
IT - Quality / Testing:CIO:CIO|\
IT - Quality / Testing:Chief Architect:Chief Architect|\
IT - Quality / Testing:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Quality / Testing:Consultant:onsultant|\
IT - Quality / Testing:Database Administrator:Database Administrator|\
IT - Quality / Testing:Director:Director|\
IT - Quality / Testing:Engineer:Engineer|\
IT - Quality / Testing:Manager:Manager|\
IT - Quality / Testing:Network Administrator:Network Administrator|\
IT - Quality / Testing:Programmer / Developer:Programmer / Developer|\
IT - Quality / Testing:Specialist / Staff:Specialist / Staff|\
IT - Quality / Testing:Student:Student|\
IT - Quality / Testing:Systems Administrator:Systems Administrator|\
IT - Quality / Testing:Vice President:Vice President|\
IT - Quality / Testing:Webmaster:Webmaster|\
IT - Quality / Testing:Other:Other|\
IT - Risk / Compliance / Security:Architect:Architect|\
IT - Risk / Compliance / Security:Assistant:Assistant|\
IT - Risk / Compliance / Security:Analyst:Analyst|\
IT - Risk / Compliance / Security:CIO:CIO|\
IT - Risk / Compliance / Security:Chief Architect:Chief Architect|\
IT - Risk / Compliance / Security:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Risk / Compliance / Security:Consultant:onsultant|\
IT - Risk / Compliance / Security:Database Administrator:Database Administrator|\
IT - Risk / Compliance / Security:Director:Director|\
IT - Risk / Compliance / Security:Engineer:Engineer|\
IT - Risk / Compliance / Security:Manager:Manager|\
IT - Risk / Compliance / Security:Network Administrator:Network Administrator|\
IT - Risk / Compliance / Security:Programmer / Developer:Programmer / Developer|\
IT - Risk / Compliance / Security:Specialist / Staff:Specialist / Staff|\
IT - Risk / Compliance / Security:Student:Student|\
IT - Risk / Compliance / Security:Systems Administrator:Systems Administrator|\
IT - Risk / Compliance / Security:Vice President:Vice President|\
IT - Risk / Compliance / Security:Webmaster:Webmaster|\
IT - Risk / Compliance / Security:Other:Other|\
IT - Server / Storage:Architect:Architect|\
IT - Server / Storage:Assistant:Assistant|\
IT - Server / Storage:Analyst:Analyst|\
IT - Server / Storage:CIO:CIO|\
IT - Server / Storage:Chief Architect:Chief Architect|\
IT - Server / Storage:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Server / Storage:Consultant:onsultant|\
IT - Server / Storage:Database Administrator:Database Administrator|\
IT - Server / Storage:Director:Director|\
IT - Server / Storage:Engineer:Engineer|\
IT - Server / Storage:Manager:Manager|\
IT - Server / Storage:Network Administrator:Network Administrator|\
IT - Server / Storage:Programmer / Developer:Programmer / Developer|\
IT - Server / Storage:Specialist / Staff:Specialist / Staff|\
IT - Server / Storage:Student:Student|\
IT - Server / Storage:Systems Administrator:Systems Administrator|\
IT - Server / Storage:Vice President:Vice President|\
IT - Server / Storage:Webmaster:Webmaster|\
IT - Server / Storage:Other:Other|\
IT - Telecom:Architect:Architect|\
IT - Telecom:Assistant:Assistant|\
IT - Telecom:Analyst:Analyst|\
IT - Telecom:CIO:CIO|\
IT - Telecom:Chief Architect:Chief Architect|\
IT - Telecom:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Telecom:Consultant:onsultant|\
IT - Telecom:Database Administrator:Database Administrator|\
IT - Telecom:Director:Director|\
IT - Telecom:Engineer:Engineer|\
IT - Telecom:Manager:Manager|\
IT - Telecom:Network Administrator:Network Administrator|\
IT - Telecom:Programmer / Developer:Programmer / Developer|\
IT - Telecom:Specialist / Staff:Specialist / Staff|\
IT - Telecom:Student:Student|\
IT - Telecom:Systems Administrator:Systems Administrator|\
IT - Telecom:Vice President:Vice President|\
IT - Telecom:Webmaster:Webmaster|\
IT - Telecom:Other:Other|\
IT - Web:Architect:Architect|\
IT - Web:Assistant:Assistant|\
IT - Web:Analyst:Analyst|\
IT - Web:CIO:CIO|\
IT - Web:Chief Architect:Chief Architect|\
IT - Web:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - Web:Consultant:onsultant|\
IT - Web:Database Administrator:Database Administrator|\
IT - Web:Director:Director|\
IT - Web:Engineer:Engineer|\
IT - Web:Manager:Manager|\
IT - Web:Network Administrator:Network Administrator|\
IT - Web:Programmer / Developer:Programmer / Developer|\
IT - Web:Specialist / Staff:Specialist / Staff|\
IT - Web:Student:Student|\
IT - Web:Systems Administrator:Systems Administrator|\
IT - Web:Vice President:Vice President|\
IT - Web:Webmaster:Webmaster|\
IT - Web:Other:Other|\
IT - All:Architect:Architect|\
IT - All:Assistant:Assistant|\
IT - All:Analyst:Analyst|\
IT - All:CIO:CIO|\
IT - All:Chief Architect:Chief Architect|\
IT - All:Chief Security / Compliance Officer:Chief Security / Compliance Officer|\
IT - All:Consultant:onsultant|\
IT - All:Database Administrator:Database Administrator|\
IT - All:Director:Director|\
IT - All:Engineer:Engineer|\
IT - All:Manager:Manager|\
IT - All:Network Administrator:Network Administrator|\
IT - All:Programmer / Developer:Programmer / Developer|\
IT - All:Specialist / Staff:Specialist / Staff|\
IT - All:Student:Student|\
IT - All:Systems Administrator:Systems Administrator|\
IT - All:Vice President:Vice President|\
IT - All:Webmaster:Webmaster|\
IT - All:Other:Other|\
Legal:Lawyer / Solicitor:Lawyer / Solicitor|\
Legal:Legal Services / Paralegal:Legal Services / Paralegal|\
Legal:General Counsel:General Counsel|\
Legal:Partner / Principal:Partner / Principal|\
Legal:Consultant:Consultant|\
Legal:Other:Other|\
Marketing:Industry Analyst:Industry Analyst|\
Marketing:Press / Media:Press / Media|\
Marketing:Representative / Specialist:Representative / Specialist|\
Marketing:Manager:Manager|\
Marketing:Director:Director|\
Marketing:Vice President:Vice President|\
Marketing:CMO:CMO|\
Marketing:Consultant:Consultant|\
Marketing:Other:Other|\
Research & Development:Architect:Architect|\
Research & Development:Engineer:Engineer|\
Research & Development:Programmer / Developer:Programmer / Developer|\
Research & Development:Manager:Manager|\
Research & Development:Product Manager:Product Manager|\
Research & Development:Director:Director|\
Research & Development:Vice President:Vice President|\
Research & Development:Chief Architect / Chief Scientist:Chief Architect / Chief Scientist|\
Research & Development:CTO:CTO|\
Research & Development:Student:Student|\
Research & Development:Consultant:Consultant|\
Research & Development:Other:Other|\
Sales:Account Executive / Manager:Account Executive / Manager|\
Sales:Manager:Manager|\
Sales:Director:Director|\
Sales:General Manager:General Manager|\
Sales:Vice President:Vice President|\
Sales:Consultant:Consultant|\
Sales:Other:Other|\
Technical Support:Engineer / Specialist:Engineer / Specialist|\
Technical Support:Manager:Manager|\
Technical Support:Director:Director|\
Technical Support:Vice President:Vice President|\
Technical Support:Consultant:Consultant|\
Technical Support:Other:Other|\
Other:Staff:Staff|\
Other:Manager:Manager|\
Other:Director:Director|\
Other:Vice President:Vice President|\
Other:Industry Analyst:Industry Analyst|\
Other:Press / Media:Press / Media|\
Other:Professor / Instructor:Professor / Instructor|\
Other:Student:Student|\
Other:Consultant:Consultant|\
Other:Other:Other|\
';

// Department data table
//
// To edit the list, just delete a line or add a line. Order is important.
// The order displayed here is the order it appears on the drop down.
//
var department = '\
Customer Service / Call Center:Customer Service / Call Center|\
Executive Office:Executive Office|\
Finance:Finance|\
Human Resources:Human Resources|\
IT - Applications / Development:IT - Applications / Development|\
IT - Business Intelligence:IT - Business Intelligence|\
IT - Database:IT - Database|\
IT - Desktop / Help Desk:IT - Desktop / Help Desk|\
IT - Network:IT - Network|\
IT - Operations:IT - Operations|\
IT - Project Management:IT - Project Management|\
IT - Quality / Testing:IT - Quality / Testing|\
IT - Risk / Compliance / Security:IT - Risk / Compliance / Security|\
IT - Server / Storage:IT - Server / Storage|\
IT - Telecom:IT - Telecom|\
IT - Web:IT - Web|\
IT - All:IT - All|\
Legal:Legal|\
Marketing:Marketing|\
Research & Development:Research & Development|\
Sales:Sales|\
Technical Support:Technical Support|\
Other:Other|\
';

function TrimString(sInString) {
  if ( sInString ) {
    sInString = sInString.replace( /^\s+/g, "" );// strip leading
    return sInString.replace( /\s+$/g, "" );// strip trailing
  }
}

// Populates the department selected with the Job Roles from the department list
function populateDepartment(defaultDepartment) {
  if ( postDepartment != '' ) {
    defaultDepartment = postDepartment;
  }
  var departmentLineArray = department.split('|');  // Split into lines
  var selObj = document.getElementById('departmentSelect');
  selObj.options[0] = new Option('Select Department','');
  selObj.selectedIndex = 0;
  for (var loop = 0; loop < departmentLineArray.length; loop++) {
    lineArray = departmentLineArray[loop].split(':');
    departmentCode  = TrimString(lineArray[0]);
    departmentName  = TrimString(lineArray[1]);
    if ( departmentCode != '' ) {
      selObj.options[loop + 1] = new Option(departmentName, departmentCode);
    }
    if ( defaultDepartment == departmentCode ) {
      selObj.selectedIndex = loop + 1;
    }
  }
}

function populateRole() {
  var selObj = document.getElementById('roleSelect');
  var foundRole = false;
  // Empty options just in case new drop down is shorter
  if(selObj.type == 'select-one') {
    for (var i = 0; i < selObj.options.length; i++) {
      selObj.options[i] = null;
    }
    selObj.options.length=null;
    selObj.options[0] = new Option('Select Role','');
    selObj.selectedIndex = 0;
  }
  // Populate the drop down with roles from the selected department
  var roleLineArray = role.split("|");  // Split into lines
  var optionCntr2 = 1;
  for (var loop = 0; loop < roleLineArray.length; loop++) {
    lineArray = roleLineArray[loop].split(":");
    departmentCode  = TrimString(lineArray[0]);
    roleCode    = TrimString(lineArray[1]);
    roleName    = TrimString(lineArray[2]);
  if (document.getElementById('departmentSelect').value == departmentCode && departmentCode != '' ) {
    // If it's a input element, change it to a select
      if ( selObj.type == 'text' ) {
        parentObj = document.getElementById('roleSelect').parentNode;
        parentObj.removeChild(selObj);
        var inputSel = document.createElement("SELECT");
        inputSel.setAttribute("name","C_Job_Role");
        inputSel.setAttribute("id","roleSelect");
        parentObj.appendChild(inputSel) ;
        selObj = document.getElementById('roleSelect');
        selObj.options[0] = new Option('Select Role','');
        selObj.selectedIndex = 0;
      }
      if ( roleCode != '' ) {
        selObj.options[optionCntr2] = new Option(roleName, roleCode);
      }
      // See if it's selected from a previous post
      if ( roleCode == postRole && departmentCode == postDepartment ) {
        selObj.selectedIndex = optionCntr2;
      }
      foundRole = true;
      optionCntr2++
    }
  }
  // If the department has no Job Roles, change the select to a text box
  if ( ! foundRole ) {
    parentObj = document.getElementById('roleSelect').parentNode;
    parentObj.removeChild(selObj);
  // Create the Input Field
    var inputEl = document.createElement("INPUT");
    inputEl.setAttribute("id", "roleSelect");
    inputEl.setAttribute("type", "text");
    inputEl.setAttribute("name", "C_Job_Role");
    inputEl.setAttribute("size", 20);
    inputEl.setAttribute("value", postRole);
    parentObj.appendChild(inputEl) ;
  }
}

function initDepartment(department) {
  populateDepartment(department);
  populateRole();
}