﻿var domainName = 'personneltoday.com';
var jobsDomainName = 'http://www.personneltoday.com/jobs';
var channelName = 'PTOD';
	//use below key for localhost, change for dev/systest/uat
var zibbKey = 'b875afaa1efd4aa8952b135da07aeec0';
	//point serviceURL to location of CallService.aspx
var serviceURL = '../WidgetProxy/CallService.aspx';

var relatedContent = '';
var relatedWebContent = '';

// End Configuration //

var relatedPTODArticleRequest = {
    requestId : "relatedptodarticles",
    queryLanguage : "en",
    mode : "DocumentVectors",
    filters : {
        industry : "all",
        bucketType : "NewsBlogs",
        domainType : "OnlyMyDomain"
        //customFilter : "domain:personneltoday.com"
        },
    hits : 5,
    sortBy : "Relevance"
}

var todaysdate = getDate();

var keywords = getmetaContents('keywords') + " ";
function getmetaContents(mn) 
{
    var m = document.getElementsByTagName('meta');
    for (var i in m) 
    {
        if (m[i].name == mn) 
        {
            return m[i].content;
        }
    } 
}

var relatedJobsRequest = {
           requestId : "main",
           queryLanguage : "en",
           mode : "DocumentVectors",
           filters : {
                         industry : "All",
                         bucketType : "Jobs",
                         domainType : "All",
                         customFilter : "domain:" + domainName
                  },
           hits : 10,
           sortBy: "Relevance"
    }
    
 var relatedPTODNewsRequest = {
    requestId : "relatedptodwebarticles",
    queryLanguage : "en",
    mode : "DocumentVectors",
    filters : {
        industry : "ptod",
        bucketType : "NewsBlogs",
        domainType : "ExcludeMyDomain",
        customFilter : "taxlevels:equals(\"business\")"
    },
    hits : 5,
    sortBy : "Relevance"
 }

 var infuseRequest = {
     excludeTags: ["h1"],
     rightHardline: 300,
     disambiguateDeeper: true,
     version: 2
 }
  
 var zodContentEnhancementQuery = {
    infuseRequest: infuseRequest,
    relatedRequests : [
    relatedPTODArticleRequest, relatedPTODNewsRequest
     ],
 semanticsOutput : {
    documentVectors : true
 }, 
 trace : false
}

function getDate()
{
    var date = new Date();
    var string = '{yyyy}-{mm}-{dd}';
    string = string.replace('{yyyy}', date.getFullYear());
    var month = (date.getMonth()+1);
    date.setDate(date.getDate() + 1);
    var currentDate = date.getDate();    
    
    string = string.replace('{mm}', (month < 10 ? '0'+ month.toString() : month.toString()) );
    string = string.replace('{dd}', (currentDate < 10 ? '0' + currentDate.toString() : currentDate.toString()) );
    return string;
}

function zodDisplayContentEnhancement(zodContentEnhancementResult)
{         
    relatedResponse = zodContentEnhancementResult.relatedResponses['relatedptodarticles'];
    //relatedJobsResponse = zodContentEnhancementResult.relatedResponses['main'];
    relatedResponse2 = zodContentEnhancementResult.relatedResponses['relatedptodwebarticles'];
      
    if (zodContentEnhancementResult.semantics != undefined && zodContentEnhancementResult.semantics != null) 
    {
        if (zodContentEnhancementResult.semantics.documentVectors != undefined && zodContentEnhancementResult.semantics.documentVectors != null) 
        {
            for (var vectorIndex = 0; vectorIndex < zodContentEnhancementResult.semantics.documentVectors.length; vectorIndex++) 
            {
                keywords += zodContentEnhancementResult.semantics.documentVectors[vectorIndex].value + " ";
            }
        }
    }
    callService();

    if (relatedResponse != undefined && relatedResponse != null && relatedResponse.results != undefined && relatedResponse.results != null)
    {
        var element = document.getElementById('ptodRelatedArticles');
        
        outputHtml = '<h2 class="SubHeading">RELATED ARTICLES</h2>';
        outputHtml += '<span class="ThirdColumn">';
        outputHtml += '<ul>';

        for (var resultIndex = 0; resultIndex < relatedResponse.results.length; resultIndex++)
        {
            outputHtml += '<li><a href="' + relatedResponse.results[resultIndex].url + '">' + relatedResponse.results[resultIndex].title + '</a></li>';
        }
        outputHtml += '</ul>';
        outputHtml += '</span>';

        if (element != undefined || element != null) {

            element.innerHTML += outputHtml;
        }
        else {
            relatedContent = outputHtml;
        }
    }    
   
    if (relatedResponse2 != undefined && relatedResponse2 != null && relatedResponse2.results != undefined && relatedResponse2.results != null)
    {
        var element = document.getElementById('ptodRelatedWebArticles');
       
        outputHtml = '<h2 class="SubHeading">WEB CONTENT</h2>';
        outputHtml += '<span class="ThirdColumn">';
        outputHtml += '<ul>';

        for (var resultIndex = 0; resultIndex < relatedResponse2.results.length; resultIndex++)
        {
            outputHtml += '<li><a href="' + relatedResponse2.results[resultIndex].url + '">' + relatedResponse2.results[resultIndex].title + '</a></li>';
        }
        outputHtml += '</ul>';
        outputHtml += '</span>';

        if (element != undefined && element != null) {
            element.innerHTML += outputHtml;
        }
        else {
            relatedWebContent = outputHtml;
        }
         
    }
}

function Replace(validJobs)
{
    document.getElementsByName("jobTitle")
}

function callService(searchText) 
{     
    var oRequest = new XMLHttpRequest();
    searchText = encodeURI(keywords);
    serviceURL = serviceURL + '?jobsDomainName=' + jobsDomainName + '&channelName=' + channelName + '&keyWords=' + searchText;
    oRequest.open("get", serviceURL, false);
    oRequest.send(null);
    var jobsWidget = document.getElementById("jobsWidget");
    
    if (jobsWidget != undefined && jobsWidget != null)
    {
        var jobsElement = document.createElement('div');
        jobsElement.innerHTML = oRequest.responseText; 
    
        var children = jobsElement.getElementsByTagName('div');   
        var itemsHtml = '';
    
        for(var i = 0; i < children.length; i++)
        {       
            var jobTitleNode = children[i];
            var jobDescriptionNode = children[i+1];        

            if(jobDescriptionNode.className == 'jobDescription' || jobTitleNode.className  == 'jobTitle')
            {                                                                  
                var string = jobDescriptionNode.innerHTML.match(/(<A.*?>)/i);           
          
                if(jobDescriptionNode.innerText != undefined && jobTitleNode != undefined) 
                {     
                    replacedString = string[0] + jobTitleNode.innerText + "</A>";
                }
                else
                {
                    replacedString = string[0] + jobTitleNode.textContent + "</A>";
                }
                itemsHtml += '<li>' + replacedString + '</li>';             
            }
            i++;         
        }
        if(itemsHtml.length > 0)
        {
            outputHtml = '<h2 class="SubHeading">JOBS</h2>';
            outputHtml += '<span class="ThirdColumn">';
            outputHtml += '<ul>';
            outputHtml += itemsHtml;
            outputHtml += '</ul>';
            outputHtml += '</span>';
            outputHtml += '<img src="../images/arrow.gif" margin="0px; 0px; 2px; 2px" border="0" width="10" height="10" alt="Arrow Icon"  /><a  href="http://www.personneltoday.com/jobs/">Search Jobs</a><br /><img src="../images/arrow.gif" margin="0px; 0px; 2px; 2px" border="0" width="10" height="10" alt="Arrow Icon"  /><a  href="http://www.personneltoday.com/jobs/search/searchresults.aspx">All Jobs</a><br /><br />';
        
            jobsWidget.innerHTML += outputHtml;        
        }
        else 
        {
            AddDefaultJobs();
        }
    }
}

if (typeof XMLHttpRequest == "undefined" && window.ActiveXObject) 
{
    function XMLHttpRequest() 
    {
        // an array of different versions in reverse order, so we try the latest version first
        var arrSignatures = ["Msxml2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
						     "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
						     "Microsoft.XMLHTTP"];
						     
        // loop through the array of versions
        for (var i = 0; i < arrSignatures.length; i++) 
        {
            try
            {
                // try and create an object using the current name
                var oRequest = new ActiveXObject(arrSignatures[i]);
                return oRequest;
            } 
            catch (oError) {}
        }
        //throw new Error("MSXML is not installed on your system.");
    }
}

function AddDefaultJobs()
{
    var element = document.getElementById('jobsWidget');
    if (element != undefined && element != null)
    {
        outputHtml = '<h2 class="SubHeading">JOBS</h2>';
        outputHtml += '<span class="ThirdColumn">';
        outputHtml += '<ul>';
        outputHtml += '<li><a href="http://www.personneltoday.com/jobs/browse/hr_administrator.htm">HR Administrator</a></li>' +
                      '<li><a href="http://www.personneltoday.com/jobs/browse/hr_advisor.htm">HR Advisor</a></li>' +
                      '<li><a href="http://www.personneltoday.com/jobs/browse/hr_business_partner.htm">HR Business Partner</a></li>' +
                      '<li><a href="http://www.personneltoday.com/jobs/browse/hr_director.htm">HR Director</a></li>' +
                      '<li><a href="http://www.personneltoday.com/jobs/browse/hr_manager.htm">HR Manager</a></li>';
        outputHtml += '</ul>';
        outputHtml += '</span>';
        outputHtml += '<img src="../images/arrow.gif" margin="0px; 0px; 2px; 2px" border="0" width="10" height="10" alt="Arrow Icon"  /><a  href="http://www.personneltoday.com/jobs/">Search Jobs</a><br /><img src="../images/arrow.gif" margin="0px; 0px; 2px; 2px" border="0" width="10" height="10" alt="Arrow Icon"  /><a  href="http://www.personneltoday.com/jobs/search/searchresults.aspx">All Jobs</a><br /><br />';
        
        element.innerHTML += outputHtml;        
    }
}
