﻿// AJAX Functions
var id;

/***********************************
         Home Page vacs AJAX
***********************************/
function ajaxFunction(content)
{
    // create the http request variable 
    var xmlHttp;
    var ssid = Math.random();
    var NumberOfJobs = document.getElementById("ctl00_phMainContent_lblNewJobs");
    var SlideShow = document.getElementById("hmgSlideShow");
    alert(SlideShow);
    NumberOfJobs = NumberOfJobs.innerHTML;
    var isPrev = false;
    
    // create job loop based on number of new jobs
    if(!isPrev)
    {
        id++;
        if (id > NumberOfJobs)
        {
           // reset id to first vacancy
           id = 1;
        }
    }
    else
    {
        id--;
        if (id < 1)
        {
           // reset id to first vacancy
           id = NumberOfJobs;
        }
    }

    //alert(NumberOfJobs.innerHTML);
      
    //create the Http request object
    try
    {
         //Firefox, Opera, Safari
         xmlHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        //internet explorer
        try
        {
           xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
                return false;
            }
        }
    }
    
    xmlHttp.onreadystatechange=function()
    {
        //ready states:
        // 0 - request not inititalized / uninitialized
        // 1 - request set up / loading
        // 2 - request sent / loaded
        // 3 - request is in process / interactive
        // 4 - request is complete
        
        if(xmlHttp.readyState == 4)
        {
        //alert(xmlHttp.responseText);
        SlideShow.src = xmlHttp.responseText;
        }
    }
        xmlHttp.open("GET","/AJAXResults/GetLatestVacancies.aspx?totalJobs=" + NumberOfJobs + "&currentJob=" + id + "&content=" + content + "&ssid=" + ssid,true);
        xmlHttp.send(null);
}

/***********************************
         Branch Info AJAX
***********************************/

function showOfficeDetails(branchRegion)
{
    // get branch region
    var strBranchRegion = branchRegion;
    
    //<!-- get text-block elements -->
    var strTextUK = document.getElementById("pnlTextUK");
    
    //<!-- get map-block elements -->
    var strMapUK = document.getElementById("pnlMapUK");
    
    // <!-- get address-block elements -->
    var strAddrUK = document.getElementById("pnlAddrUK");
    
    //<!-- get menu-block elements -->
    var strMenuUK = document.getElementById("ctl00_phMainContent_MenuUK");
}

function getBranchInfoDetails(BranchGroup,BranchID)
{
     var strBranchGroup = BranchGroup;
     var strBranchID = BranchID;
     
     // call AJAX update for each area:
     // BranchDetails, BranchMap and BranchAddress
     branchInfoAJAX(strBranchGroup,strBranchID,"Title");
     branchInfoAJAX(strBranchGroup,strBranchID,"Details");
     branchInfoAJAX(strBranchGroup,strBranchID,"Map");
     branchInfoAJAX(strBranchGroup,strBranchID,"Address");
}

/*******************************************
    Branch Info - Pass in Branch Name
    and area to be updated e.g. BranchDesc,
    address or map
********************************************/
function branchInfoAJAX(BranchGroup,BranchID,UpdateArea)
{
     var xmlHttp;
     var strBranchID = BranchID;
     var strUpdateArea = UpdateArea;
     var strBranchGroup = BranchGroup;
     var ssid = Math.random();

     // content blocks
     var branchTitle = document.getElementById("hmgBranchTitle" + strBranchGroup); 
     var branchDetails = document.getElementById("hmgBranchDetails" + strBranchGroup); 
     var branchMap = document.getElementById("m" + strBranchGroup); 
     var branchAddr = document.getElementById("hmgAddr" + strBranchGroup); 
     var branchMenu = document.getElementById("Menu" + strBranchGroup);
    
    //create the Http request object
    try
    {
         //Firefox, Opera, Safari
         xmlHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        //internet explorer
        try
        {
           xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
                return false;
            }
        }
    }
    xmlHttp.onreadystatechange=function()
    {
        //ready states:
        // 0 - request not inititalized / uninitialized
        // 1 - request set up / loading
        // 2 - request sent / loaded
        // 3 - request is in process / interactive
        // 4 - request is complete
        
        if(xmlHttp.readyState == 4)
        {
            switch(strUpdateArea)
            {
                case "Menu":
                    // Update Branch Menu
                    branchMenu.innerHTML = xmlHttp.responseText;
                    break;
                case "Title":
                    // Update Branch Title
                    branchTitle.innerHTML = xmlHttp.responseText;
                    break;
                case "Details":
                    // Update Details Block                  
                    var newDiv = document.createElement(branchDetails.tagName);
                    newDiv.id = branchDetails.id;
                    newDiv.className = branchDetails.className;
                    newDiv.innerHTML = xmlHttp.responseText;
                    branchDetails.parentNode.replaceChild(newDiv, branchDetails);
                    break;
                case "Map":
                    // update Branch Map
                    branchMap.innerHTML = xmlHttp.responseText;
                    break;
                case "Address":
                    // update Branch Address
                    branchAddr.innerHTML = xmlHttp.responseText;
                    break;
                    
                default:break;
            }
        }
    }
        xmlHttp.open("GET","/AJAXResults/GetBranchInfoDetails.aspx?&bID=" + strBranchID + "&uA=" + strUpdateArea + "&ssid=" + ssid,true);
        xmlHttp.send(null);
}

/********************************************
            AJAX FOR NEWS ITEMS
********************************************/

//<!-- Adjust the news items that are displayed from database -->
function doTheNews(year)
{
  var strYear = year;
  getNewsItemsByYear(strYear,'false');
  getNewsItemsByYear(strYear,'true');
}

//<!-- Update the News Items for the selected year -->
function getNewsItemsByYear(year,isHeader)
{
    // Http Request Object
    var oHttp;
    var strYear = year;
    var strHeader = isHeader;
    var requestID = Math.random();
    
    var newsDisplayBlock = document.getElementById("ctl00_phMainContent_hmgNewsItems");
    var newsDisplayHeader = document.getElementById("ctl00_phMainContent_hmgNewsHeaders");
    
    try
    {
        //Firefox, Opera, Safari
         oHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        try
        {
            oHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                oHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
                return false;
            }
        }
    }
    oHttp.onreadystatechange = function() {
        //ready states:
        // 0 - request not inititalized / uninitialized
        // 1 - request set up / loading
        // 2 - request sent / loaded
        // 3 - request is in process / interactive
        // 4 - request is complete
        
        if(oHttp.readyState == 4)
        {
            //alert(oHttp.responseText);
            if(strHeader == 'true')
            {
                // update the news year header
                newsDisplayHeader.innerHTML = oHttp.responseText;
            }
            else
            {
                //update the news items
                newsDisplayBlock.innerHTML = oHttp.responseText;
            }
            
        }
    }
        oHttp.open("GET","/AJAXREsults/GetHMGNewsItems.aspx?NewsYear=" + strYear + "&isHeader=" + strHeader + "&requestid=" + requestID,true);
        oHttp.send(null);
}

/******************************
        GET NEWS ITEM
******************************/

function getNewsItemById(newsID)
{
    var oNewsID = newsID;
    window.location = "/news/retrieveNewsArticle.aspx?newsID=" + newsID;
}

/*******************************
  AJAX FOROVERSEAS LOCATIONS
*******************************/

function getOverseasLocationDetails(locationId)
{
    getOverseasLocationBySection(locationId);
}

function getOverseasLocationBySection(id)
{
    var oHttp;
    var requestID = Math.random();
    var locationId = id;
    var updateBlock;
    
    updateBlock = document.getElementById("locationContent");
   
    try
    {
        //Firefox, Opera and Safari
        oHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        try
        {
            oHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                oHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
                return false;
            }
        }
    }

    oHttp.onreadystatechange = function(){
        
        if(oHttp.readyState == 4){
        //ready states:
        // 0 - request not inititalized / uninitialized
        // 1 - request set up / loading
        // 2 - request sent / loaded
        // 3 - request is in process / interactive
        // 4 - request is complete

          //add response text to content block
          // alert(oHttp.responseText);
           updateBlock.innerHTML = oHttp.responseText;  
        }
    }
    
    oHttp.open("GET","/AJAXREsults/GetOverseasLocations.aspx?locationId=" + locationId + "&section=" + section + "&requestid=" + requestID,true);
    oHttp.send(null);
}

/*******************************
        CLIENT VALIDATION
*******************************/

function showDetailsReminder()
{
    var showDetails = document.getElementById("ctl00_phMainContent_forgottenPassword");
    
    if(showDetails.style.display == "none")
    {
        showDetails.style.display = "block";
    }
    else
    {
        showDetails.style.display = "none";
    }
}
function checkUsername(sender, args)
{
    var oHttp;
    var userName = args.Value;
    var ssid = Math.random();
    var nameExists = false;
    
    try
    {
        oHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        try
        {
            oHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                oHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
                return false;
            }
        }
    }

    oHttp.open("GET","/AJAXResults/GETUsername.aspx?username=" + userName + "&ssid=" + ssid,false);
    oHttp.send(null);
    
    nameExists = oHttp.responseText;
    nameExists = nameExists.substring(0,5);
       
    if(nameExists == "False")
    {
        args.IsValid = true;
    }
    else
    {
        args.IsValid = false;
    }
    
    return args;
}
function checkPassword(sender,args)
{
    var oPassword = document.getElementById("ctl00_phMainContent_tbPassword");
    var oPasswordConfirm = document.getElementById("ctl00_phMainContent_tbConfirmPassword");
    
    if(oPasswordConfirm.value != oPassword.value)
    {
        args.IsValid = false;
    }
    else
    {
        args.IsValid = true;
    }
}
function checkEmail(sender,args)
{
    var oEmailAddress = args.Value;
    var ssid = Math.random();
    var oHttp;
    var oExists;
    
    try
    {
        oHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        try
        {
            oHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                oHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
                return false;
            }
        }
    }

    oHttp.open("GET","/AJAXResults/GetEmail.aspx?emailaddress=" + oEmailAddress + "&ssid=" + ssid,false);
    oHttp.send(null);
    oExists = oHttp.responseText;
    oExists = oExists.substring(0,5);
    if(oExists == "False") { args.IsValid = true; }
    else {args.IsValid = false;}
    
    return args;
}
function HideErrorBox()
{
    var hideErrorBox
    try {
        hideErrorBox = document.getElementById("ctl00_phMainContent_lblErrorText");
        hideErrorBox.style.display = "none";
    }
    catch(e){}
}
function hideError(control)
{
    try {
        control.value = "";
    }
    catch(e){}
}
function getIsEmployed(sender,args)
{
    var ddlEmployed = document.getElementById("ctl00_phMainContent_ddlEmployed");
    if(ddlEmployed.value != "-1")
    {
        args.IsValid = true;
    }
    else
    {
        args.IsValid = false;
    }
}
function getCPEIsEmployed(sender,args)
{
    var ddlEmployed = document.getElementById("ctl00_phMainContent_ddlCPEEmployed");
    if(ddlEmployed.value != "-1")
    {
        args.IsValid = true;
    }
    else
    {
        args.IsValid = false;
    }
}
/**********************************
        GOOGLE CHARTS STUFF
***********************************/

function SetUniqueRadioButton(nameregex, current)
{
   re = new RegExp(nameregex);
   for(i = 0; i < document.forms[0].elements.length; i++)
   {
      elm = document.forms[0].elements[i]
      if (elm.type == 'radio')
      {
         if (re.test(elm.name))
         {
            elm.checked = false;
         }
      }
   }
   current.checked = true;
}

function drawChart()
{     
    var pollTitle = getTitle();   
    var answerArray = getPollAnswers();
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Response');  
    data.addColumn('number', 'Number of Responses');   
    data.addRows(answerArray.length);
    for(var i = 0; i < answerArray.length; i++)
    {   

        data.setValue(i, 0, answerArray[i][0]); 
        data.setValue(i, 1, answerArray[i][1]);  
    }
    var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
    chart.draw(data, {width: 400, height: 240, is3D: true, title: pollTitle});
}

function getTitle()
{
    var oHttp;
    var ssid = Math.random();
    
    try
    {
        oHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        try
        {
            oHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                oHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
                return false;
            }            
        }
    }
    
    oHttp.open("GET","/AJAXResults/GetPollTitle.aspx?ssid=" + ssid,false);
    oHttp.send(null);
    var strTitle = oHttp.responseText;
    var splitPos = strTitle.indexOf(';');
    strTitle = strTitle.substring(0,splitPos);
    strTitle = strTitle + "?";
    
    return strTitle;
}

function getPollAnswers()
{
    var oHttp;
    var ssid = Math.random();
    var answerArray = new Array(6,6);
    
    try
    {
        oHttp = new XMLHttpRequest();
    }
    catch(e)
    {
        try
        {
            oHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                oHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
                return false;
            }            
        }
    }
    
    oHttp.open("GET","/AJAXResults/getPollResults.aspx?ssid=" + ssid,false);
    oHttp.send(null);
    
    var result = oHttp.responseText;
    var split = result.indexOf(';');
    result = result.substring(0,split);

    var answerArray = result.split("|"); 
    var answerText = answerArray[0].split(",");
    var answerValue = answerArray[1].split(",");
    var answers = new Array(answerText.length);
    for (var i = 0; i < answerText.length; i++) {
	    answers[i] = [' ', ' '];
    }
    var oAnswer;
    for(var j = 0; j < answerText.length; j++)
    {
         oAnswer = answerText[j];
         answers[j][0] = oAnswer;
    }

    for(var k = 0; k < answerValue.length; k++)
    {
         answers[k][1] = parseInt(answerValue[k]);
    }
    
    return answers;
}

/*******************************************
    HIDE DROP DOWN LISTS FOR HEIGHT ISSUES
********************************************/

function hideIndustryDropDown(whichMenu)
{
   var oFindJobs = document.getElementById("findJobsMenu"); 
   var oFindPeople = document.getElementById("findPeopleMenu");
   
    
   var oDDLIndustry = document.getElementById("ctl00_SearchPanel_ddlIndustry");
   var oImgDDLIndustry = document.getElementById("imgDDLIndustry");
   var oDDLLocation = document.getElementById("ctl00_SearchPanel_ddlLocation");
   var oImgDDLLocation = document.getElementById("imgDDLLocation");
   
   var rv = -1; 
   
   if (navigator.appName == 'Microsoft Internet Explorer')
   {
      var ua = navigator.userAgent;
      var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
      if (re.exec(ua) != null)
         rv = parseFloat( RegExp.$1 );
   }
   
   if(rv == 6)
   {
        var oJobsStyle = oFindJobs.currentStyle.display;
        var oPeopleStyle = oFindPeople.currentStyle.display;
       //hide the jobs menu
            if(whichMenu == 'Jobs')
            {
                if(oJobsStyle == "none")
                {
                    oDDLIndustry.style.display = "none";
                }
            }
   
            if(whichMenu == 'People')
            {
                oDDLIndustry.style.display = "none";
                oDDLLocation.style.display = "none";
            }
   }
       
   //now do firefox stuff
   if(navigator.appName == 'Netscape')
   {
        if(parseFloat(navigator.appName < 5))
        {
            // hide drop down lists
        
        var oPeople = getComputedStyle(oFindPeople, null).getPropertyValue("display");
        var oJobs = getComputedStyle(oFindJobs, null).getPropertyValue("display");      
        
        if(whichMenu == 'Jobs')
        {
            if(oJobs == "none")
            {
                oDDLIndustry.style.display = "none";
            }
        }
   
        if(whichMenu == 'People')
        {
           oDDLIndustry.style.display = "none";
           oDDLLocation.style.display = "none";
        }
          }
   }
}

function showIndustryDropDown(whichMenu)
{
   var oFindJobs = document.getElementById("findJobsMenu");  
   var oFindJobs = document.getElementById("findJobsMenu"); 
   var oFindPeople = document.getElementById("findPeopleMenu");
   
    
   var oDDLIndustry = document.getElementById("ctl00_SearchPanel_ddlIndustry");
   var oImgDDLIndustry = document.getElementById("imgDDLIndustry");
   var oDDLLocation = document.getElementById("ctl00_SearchPanel_ddlLocation");
   var oImgDDLLocation = document.getElementById("imgDDLLocation");
   
   var rv = -1; 
   
   if (navigator.appName == 'Microsoft Internet Explorer')
   {
      var ua = navigator.userAgent;
      var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
      if (re.exec(ua) != null)
         rv = parseFloat( RegExp.$1 );
   }
   
   if(rv == 6)
   {
        var oJobsStyle = oFindJobs.currentStyle.display;
        var oPeopleStyle = oFindPeople.currentStyle.display;
   
       //show the jobs menu
        if(whichMenu == 'Jobs')
        {
            oDDLIndustry.style.display = "inline";
        }
    
        if(whichMenu == 'People')
        {
            if(oPeopleStyle  == "block")
            {
                oDDLIndustry.style.display = "inline";
                oDDLLocation.style.display = "inline";
            }
        }
    }
    
   //now do firefox stuff
   if(navigator.appName == 'Netscape')
   {
        if(parseFloat(navigator.appName < 5))
        {
            // show drop down lists
        var oPeople = getComputedStyle(oFindPeople, null).getPropertyValue("display");
        var oJobs = getComputedStyle(oFindJobs, null).getPropertyValue("display");
        
        if(whichMenu == 'Jobs')
        {
            oDDLIndustry.style.display = "inline";
        }
    
        if(whichMenu == 'People')
        {
            if(oPeople  == "block")
            {
                oDDLIndustry.style.display = "inline";
                oDDLLocation.style.display = "inline";
            }
        }
        
        }
   }
}

/***************************************
   SHOW / HIDE enter search keywords
***************************************/

function hideText(_oTextBox)
{
    var oOriginalValue = _oTextBox.value;
    
    if( _oTextBox.value == "enter search keywords")
    {
        _oTextBox.value = "";
    }
}

function showText(_oTextBox)
{
    if(_oTextBox.value == "")
    {
        _oTextBox.value = "enter search keywords";
    }
}
