﻿// JScript File
function categoryFilter(res)
{
    if(res!=0)
    {
        var cat = document.getElementById("ddlCategory");
        cat.value = res;
    }
    loadJobResults(res);
}

function catFilter(res)
{

        if(res!=0)
        {
            var cat = document.getElementById("ddlCategory");
            cat.value = res;
        }
        loadJobResults(res);
    
}

function loadLanding()
{
var curr_page = document.getElementById("divLandingPage");
if(curr_page)
{
var obj = document.getElementById("hdEntityID");
if(obj.value!="")
	{
	ajaxMethodsJobBoard.loadLanding(
	obj.value,
	loadLanding_callback
	);
	}
}
}

function loadLanding_callback(response)
{
  var ds = response.value;
  if(ds!=null && typeof(ds) == "object" && ds.Tables!=null)
  {
    var s = new Array();
    s[s.length] = "<table style='width:659px;'>";
    var recs = ds.Tables[0].Rows.length;
    for(var i=0;i<recs;i++)
    {
    var tp = (i % 2);
    if(tp == 0)
        {
        s[s.length] = "<tr>";
        }
    s[s.length] = "<td style='color='GrayText';'><a id='" + ds.Tables[0].Rows[i].displaycatID + "' href='#empty-anchor'  onclick=categoryFilter(this.id);>" + ds.Tables[0].Rows[i].Category + "</a>     (" + ds.Tables[0].Rows[i].Tally + ")</td>";
    if((tp != 0)||(i==recs))
        {
        s[s.length] = "</tr>";
        }
    }
    s[s.length] = "</table>";
    document.getElementById("divMain").innerHTML = s.join("");
    document.getElementById("divApply").style.display="none";
    //reset the drop downs and keywords
    document.getElementById("ddlLocation").selectedIndex = 0;
    document.getElementById("ddlProvince").selectedIndex = 0;
    document.getElementById("ddlPosition").selectedIndex = 0;
    document.getElementById("ddlCategory").selectedIndex = 0;
    document.getElementById("txtKeywords").value = '';
    //document.getElementById("txtRefNo").value = '';
  }
}

function loadJobResults(res)
{
    var obj = document.getElementById("hdEntityID");
    var loc = document.getElementById("ddlLocation");
    var cat = document.getElementById("ddlCategory");
    var pos = document.getElementById("ddlPosition");
    var reg = document.getElementById("ddlProvince");
    var sort = get_check_value();
    
        if(cat){if (res!='0'){cat.value=res};}
        if(obj)
        {
        if(obj.value!="")
	        {
	        ajaxMethodsJobBoard.loadJobResults(
	        obj.value,
	        cat.value,
	        loc.value,
	        pos.value,
	        reg.value,
            document.getElementById('txtKeywords').value,
	        sort,
	        loadJobResults_callback
	        );
	        }
        }
    
}

function loadJobResults_callback(response)
{
  var ds = response.value;
  if(ds!=null && typeof(ds) == "object" && ds.Tables!=null)
  {
    var s = new Array();
    var recs = ds.Tables[0].Rows.length;
    for(var i=0;i<recs;i++)
    {
    s[s.length] = "<table style='width:659px;'>";
    s[s.length] = "<tr><td style='width:10px;'>*</td><td colspan='2' style='text-align:left;'><a href='http://www.trecruit.co.za/ui/JobBoards/GSE/frmGSELanding.aspx#empty-anchor' id='" + ds.Tables[0].Rows[i].JobID + "' onclick='loadPosting(this.id);'>" + ds.Tables[0].Rows[i].Position + "</a></td></tr>";
    s[s.length] = "<tr><td style='width:10px;'></td><td style='text-align:left;'><b>" + ds.Tables[0].Rows[i].Location + " | " + ds.Tables[0].Rows[i].Category + "</b></td><td style='text-align:right;'>" + ds.Tables[0].Rows[i].DateCaptured + "</td></tr>";
    s[s.length] = "<tr><td style='width:10px;'></td><td style='text-align:left;' colspan='2'>" + ds.Tables[0].Rows[i].Tagline + "</td></tr>";
    s[s.length] = "</table>";
    }
    document.getElementById("divMain").innerHTML = s.join("");
    document.getElementById("divApply").style.display="none";
  }
}

function loadPosting(res)
{
if(res!="")
	{
	ajaxMethodsJobBoard.loadPosting(
	res,
	loadPosting_callback
	);
	}
}

function loadPosting_callback(res)
{
if(res.value!=null)
    {
    var ret = res.value;
    job = ret.split("|");
    if(job[0]!=null)
        {
        var jobadid = job[0];
        var jobtitle = job[1];
        var jobadvert = job[2];
        var location = job[3];
        var salary = job[4];
        var category = job[5];
        var department = job[6];
        var dateposted = job[7];
        var jobspecid = job[8];
        var consultant = job[9];
        var email = job[10];
        var telephone = job[11];
        var cell = job[12];
        var s = new Array();
        s[s.length] = "<table style='width:659px;'>";
        s[s.length] = "<tr><td colspan='2' style='font-size:16pt; text-align:center;'>" + jobtitle + "</td></tr>";
        s[s.length] = "<tr><td colspan='2' style='font-size:10pt; text-align:center;'><a href='frmGSELanding.aspx#divApply'>Apply Online</a></td></tr>";
        s[s.length] = "<tr><td colspan='2'>" + jobadvert + "</td></tr>";
        s[s.length] = "<tr></tr>";
        if(location!=""){s[s.length] = "<tr><td style='width:20%;'>Location</td><td><b>" + location + "</b></td></tr>";}
        if(salary!=0){s[s.length] = "<tr><td style='width:20%;'>Salary</td><td><b>" + salary + "</b></td></tr>";}
        if(category!=""){s[s.length] = "<tr><td style='width:20%;'>Category</td><td><b>" + category + "</b></td></tr>";}
        if(department!=""){s[s.length] = "<tr><td style='width:20%;'>Department</td><td><b>" + department + "</b></td></tr>";}
        if(dateposted!="1900/01/01"){s[s.length] = "<tr><td style='width:20%;'>Date Posted</td><td><b>" + dateposted + "</b></td></tr>";}
        s[s.length] = "<tr><td style='width:20%;'>Ref No.</td><td><b>" + jobspecid + "</b></td></tr>";
        s[s.length] = "<tr><td style='width:20%;'>Contact</td><td><b>" + consultant;
        if(email!=""){s[s.length] = " | <a href='mailto:" + email + "'>" + email + "</a>"};
        if(telephone!=""){s[s.length] = " | " + telephone};
        s[s.length] = "</b></td></tr>";
        s[s.length] = "<tr><td style='width:20%;'><input id='hdJobAdID' runat='server' type='hidden' value='" + jobadid + "' /></td></tr>";
        s[s.length] = "<table>";
        document.getElementById("divMain").innerHTML = s.join("");
        document.getElementById("divApply").style.display="block";
        //added by alan
        document.getElementById('hdJsId').value = jobspecid;
        }
    }
}

function loadPostingByRef(res)
{
if(res!="")
	{
	ajaxMethodsJobBoard.loadPostingByRef(
	res,
	loadPostingByRef_callback
	);
	}
}

function loadPostingByRef_callback(res)
{
    if(res.value!=null)
    {
        var ret = res.value;
        job = ret.split("|");
        if(job[0]!=null)
        {
            var jobadid = job[0];
            var jobtitle = job[1];
            var jobadvert = job[2];
            var location = job[3];
            var salary = job[4];
            var category = job[5];
            var department = job[6];
            var dateposted = job[7];
            var jobspecid = job[8];
            var consultant = job[9];
            var email = job[10];
            var telephone = job[11];
            var cell = job[12];
            var s = new Array();
            s[s.length] = "<table style='width:659px;'>";
            s[s.length] = "<tr><td colspan='2' style='font-size:16pt; text-align:center;'>" + jobtitle + "</td></tr>";
            s[s.length] = "<tr><td colspan='2' style='font-size:10pt; text-align:center;'><a href='frmGSELanding.aspx#divApply'>Apply Online</a></td></tr>";
            s[s.length] = "<tr><td colspan='2'>" + jobadvert + "</td></tr>";
            s[s.length] = "<tr></tr>";
            if(location!=""){s[s.length] = "<tr><td style='width:20%;'>Location</td><td><b>" + location + "</b></td></tr>";}
            if(salary!=0){s[s.length] = "<tr><td style='width:20%;'>Salary</td><td><b>" + salary + "</b></td></tr>";}
            if(category!=""){s[s.length] = "<tr><td style='width:20%;'>Category</td><td><b>" + category + "</b></td></tr>";}
            if(department!=""){s[s.length] = "<tr><td style='width:20%;'>Department</td><td><b>" + department + "</b></td></tr>";}
            if(dateposted!="1900/01/01"){s[s.length] = "<tr><td style='width:20%;'>Date Posted</td><td><b>" + dateposted + "</b></td></tr>";}
            s[s.length] = "<tr><td style='width:20%;'>Ref No.</td><td><b>" + jobspecid + "</b></td></tr>";
            s[s.length] = "<tr><td style='width:20%;'>Contact</td><td><b>" + consultant;
            if(email!=""){s[s.length] = " | <a href='mailto:" + email + "'>" + email + "</a>"};
            if(telephone!=""){s[s.length] = " | " + telephone};
            s[s.length] = "</b></td></tr>";
            s[s.length] = "<tr><td colspan='2'><input id='hdJobAdID' runat='server' type='hidden' value='" + jobadid + "' /></td></tr>";
            s[s.length] = "<table>";
            document.getElementById("divMain").innerHTML = s.join("");
            document.getElementById("divApply").style.display="block";
            //added by alan
            document.getElementById('hdJsId').value = jobspecid;
        }
    }
    else
    {
        alert('Reference number does not exist!');
    }
}

function submitCV()
{
var obj = document.getElementById("subCV");
if(obj)
    {
    filename = obj.value;
    return GB_showCenter('Submitting CV', TR_ROOT_DIR + 'ui/JobBoards/CA/frmJobDetail.aspx?filename=' + filename, 400, 800, submitCV_callback);
    }
}

function submitCV_callback()
{
    obj = document.getElementById('hdSearchResult');
    ret = obj.value;
    obj.value = '';
    if(ret!=null&&ret!='')
    {
        spl = ret.split("|");
	    id = spl[0];
	    type = spl[1];
        window.location = TR_ROOT_DIR + 'ui/JobBoards/CA/CandidateRegister.aspx?id=' + id + '&type=' + type;
    }    
}

function getLocations()
{
    var obj = document.getElementById('hdEntityID')
    {
	ajaxMethodsJobBoard.getLocations(
	obj.value,
	getLocations_callback
	);
	}
}

function getLocations_callback(res)
{
var ds = res.value;
var ddl = new Array();
		ddl[ddl.length] = "<select runat='server' style='width:150px' id='ddlLocation' onchange='categoryFilter(0);'>";
        ddl[ddl.length] = "<option style='color:GrayText' value='0' selected='selected'>Job Location</option>";
	    if(ds!=null && typeof(ds) == "object" && ds.Tables!=null)
		{
		    for(var i=0;i<ds.Tables[0].Rows.length;i++)
		    {
		        ddl[ddl.length] = "<option value='" + ds.Tables[0].Rows[i].LocationID + "'>" + ds.Tables[0].Rows[i].Location + "</option>";
		    }   
        }
        ddl[ddl.length] = "</select>";
        document.getElementById('divLocation').innerHTML = ddl.join("");
}

function getPositions()
{
    var obj = document.getElementById('hdEntityID')
    {
	ajaxMethodsJobBoard.getPositions(
	obj.value,
	getPositions_callback
	);
	}
}

function getPositions_callback(res)
{
var ds = res.value;
var ddl = new Array();
		ddl[ddl.length] = "<select runat='server' style='width:150px' id='ddlPosition' onchange='categoryFilter(0);'>";
        ddl[ddl.length] = "<option style='color:GrayText' value='0' selected='selected'>Job Position</option>";
	    if(ds!=null && typeof(ds) == "object" && ds.Tables!=null)
		{
		    for(var i=0;i<ds.Tables[0].Rows.length;i++)
		    {
		        ddl[ddl.length] = "<option value='" + ds.Tables[0].Rows[i].Position + "'>" + ds.Tables[0].Rows[i].Position + "</option>";
		    }   
        }
        ddl[ddl.length] = "</select>";
        document.getElementById('divPosition').innerHTML = ddl.join("");
}

function getCategories()
{
    var obj = document.getElementById('hdEntityID')
    {
	ajaxMethodsJobBoard.getCategories(
	obj.value,
	getCategories_callback
	);
	}
}

function getCategories_callback(res)
{
var ds = res.value;
var ddl = new Array();
		ddl[ddl.length] = "<select runat='server' style='width:150px' id='ddlCategory' onchange='categoryFilter(0);'>";
        ddl[ddl.length] = "<option style='color:GrayText' value='0' selected='selected'>Job Category</option>";
	    if(ds!=null && typeof(ds) == "object" && ds.Tables!=null)
		{
		    for(var i=0;i<ds.Tables[0].Rows.length;i++)
		    {
		        ddl[ddl.length] = "<option value='" + ds.Tables[0].Rows[i].DisplayCatID + "'>" + ds.Tables[0].Rows[i].Category + "</option>";
		    }   
        }
        ddl[ddl.length] = "</select>";
        document.getElementById('divCategory').innerHTML = ddl.join("");
}

function loadDDLs()
{
    getCategories();
    getLocations();
    getPositions();
}

function get_check_value()
{
var c_value = "";
var obj = document.frmGSELanding.radioSort;
for (var i=0; i < document.frmGSELanding.radioSort.length; i++)
   {
   if (document.frmGSELanding.radioSort[i].checked)
      {
      c_value = document.frmGSELanding.radioSort[i].value;
      }
   }
return c_value;
}

function numbersOnly(e) {
var evt = (e) ? e : window.event;
var key = (evt.keyCode) ? evt.keyCode : evt.which;

if(key != null) {
key = parseInt(key, 10);

if((key < 48 || key > 57) && (key < 96 || key > 105)) {
  if(!isUserFriendlyChar(key))
    return false;
}
else {
  if(evt.shiftKey)
    return false;
}
}

  return true;
}

function isUserFriendlyChar(val) {
  // Backspace, Tab, Enter, Insert, and Delete
  if(val == 8 || val == 9 || val == 13 || val == 45 || val == 46)
    return true;

  // Ctrl, Alt, CapsLock, Home, End, and Arrows
  if((val > 16 && val < 21) || (val > 34 && val < 41))
    return true;

  // The rest
  return false;
}
