﻿VacancySearchFacets = {};
VacancySearchFacets.htmlencode = function (str) {
    return str.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;");
};
VacancySearchFacets.load = function (heading, morelinktext, urlencodedparams, domid) {
    $(function(){
        $.getJSON(window.wwwroot + 'vacancy-search-facets.ashx?vsp=' + urlencodedparams, function (facets) {
            if (facets.length > 0) {
                var html = [];
                html.push('<h2>');
                html.push(VacancySearchFacets.htmlencode(heading));
                html.push('</h2>');
                $.each(facets, function () {
                    html.push('<h3>');
                    html.push(this.FacetTypeName);
                    html.push('</h3>');
                    
                    html.push('<ul>');
                    
                    var showmore = false;
                                        
                    $.each(this.Facets, function () {
                        var indentlevel = this[0];
                        var linktext = this[1];
                        var hideundermore = this[2];
                        var url = this[3];
                    
                        html.push('<li');
                        if (hideundermore) {
                            html.push(' style="display:none" class="facetsmore"');
                            showmore = true;
                        }
                        html.push('><div style="padding-left:');
                        html.push(indentlevel);
                        html.push('em"><a href="');
                        html.push(VacancySearchFacets.htmlencode(url));
                        html.push('">');
                        html.push(VacancySearchFacets.htmlencode(linktext));
                        html.push('</a></div></li>');
                    });

                    if (showmore) {
                        html.push('<li class="showmore"><a href="javascript:;" onclick="$(\'.facetsmore\', $(this).parent().parent()).show(); $(this).hide(); return false">');
                        html.push(VacancySearchFacets.htmlencode(morelinktext));
                        html.push('</a></li>');
                    }
                                        
                    html.push('</ul>');
                });
				$('#' + domid).html(html.join(''));
				
				// Bevelled corners
	            //if (jQuery.browser.msie) {
		            //$('#' + domid).corner("bevel tl br 8px");
	            //}
            }
        });
    });
};

VacancyShortlistSummary = {};
VacancyShortlistSummary._toupdate = [];
VacancyShortlistSummary.update = function (njobs) {
   var l=window.VacancyShortlistSummary._toupdate.length;
   for (var i=0; i<l; i++) {
       var summary = window.VacancyShortlistSummary._toupdate[i];
       var summarydomid = summary[0];
       var emptytemplate = summary[1];
       var onetemplate = summary[2];
       var manytemplate = summary[3];
       var domidtohide = summary[4];
       var text;
       if (njobs <= 0) {
           text = emptytemplate.replace("[[count]]", "<strong>" + njobs + "</strong>");
       } else if (njobs == 1) {
           text = onetemplate.replace("[[count]]", "<strong>" + njobs + "</strong>");
       } else {
           text = manytemplate.replace("[[count]]", "<strong>" + njobs + "</strong>");
       }
       var $el = $('#' + summarydomid);
       $el.html(text);
       if (njobs == 0) {
           if (domidtohide) $('#' + domidtohide).hide();
       } else {
           if (domidtohide) $('#' + domidtohide).show();
       }
   }
};
VacancyShortlistSummary.register = function (summarydomid, emptytemplate, onetemplate, manytemplate, domidtohide) {
    VacancyShortlistSummary._toupdate.push(
        [summarydomid, emptytemplate, onetemplate, manytemplate, domidtohide]
    );
};

function ajaxVacancyShortlist(href,vacancyid,action) // used by VacancyShortlistHyperLink control
{                
  $.ajax({
    type:"POST",
    url:href + '&ajax=true',
    async:true,
    data:"dummy", // this gets around some weird Firefox issue where i'm getting a 411 Content Length not specified http error
    success: function(njobs){
      if (action == 1) {
        $("a[name='shortlistlink_remove_" + vacancyid + "']").show();
        $("a[name='shortlistlink_add_" + vacancyid + "']").hide();
      }
      if (action == -1) {
        $("a[name='shortlistlink_remove_" + vacancyid + "']").hide();
        $("a[name='shortlistlink_add_" + vacancyid + "']").show();
      }
      VacancyShortlistSummary.update(njobs);
    },
    error: function(){
      document.location.href=href;
    }
  });
  return false;
}

function showhint(element) { // used in VacancyAddEdit.ascx
	$(document).ready(function() {  
		$(element).focus(function () {
			hint = element+"-hint";
			$(hint).show();
		});
		$(element).blur(function () {
			hint = element+"-hint";
			$(hint).hide();
		});
	});
}

/* Equal Height Columns 
   http://www.cssnewbie.com/equal-height-columns-with-jquery/ */
function equalHeight(group) {
    tallest = 0;
    group.each(function() {
	    thisHeight = $(this).height();
	    if(thisHeight > tallest) {
		    tallest = thisHeight;
	    }
    });
    group.height(tallest);
}

function prependButtonValue(index, attr) {
    if (jQuery.browser.msie) {
        return "> " + attr;
    } else {
        return "▶ " + attr;
    }
}

/* Initiate scripts */
$(document).ready(function(){
    // Equal Heights
    equalHeight($(".browse-jobs ul li"));
	var ulHeight = $(".browse-jobs ul").height();
	if( ulHeight  > 98) {
		ulHeight = ulHeight + 40;
		$(".browse-jobs").height(ulHeight);
	}	
    equalHeight($("#featured-jobs li"));
    equalHeight($("#blog-posts li"));
    equalHeight($(".col2-inner"));
    equalHeight($(".col2"));
    // Additional styling
    $(".sub-nav1 li a").each(function(){
        var oldhtml;
        oldhtml = $(this).html();
    $(this).html(oldhtml + "<span class='off-aural nav-arrow'>&gt;</span>");
    });
	$(".back").before("<span class='off-aural'>&lt;&nbsp;</span>");
	
	// Bevelled corners
	$(".jobs-by-email").corner("bevel tl br 8px");
	$(".browse-jobs").corner("bevel tl br 8px");
	$(".quick-search").corner("bevel tl br 8px");
	$(".refine-search").corner("bevel tl br 8px");
	$(".candidatecallstoaction h4 a").corner("bevel cc:#E9F4F8 tl br 4px ");
	$(".account-details .form-btn").corner("bevel cc:#DDE9F9 tl br 4px ");
	
	//This is only for the long form of the CV builder button when applying to a vacancy at the same time
	$('.form1 .group input.form-btn[value^="Save my CV & Apply"]').css('background','#009EDB');
	$('.form1 .group input.form-btn[value^="Save my CV & Apply"]').css('max-width','none');
    if (jQuery.browser.msie) {
        $('.controls a').text('');
    }
});

function buildTweaksToRunUponAJAX(sender, arguments) {} // this function is req'd by the various RadAjaxPanels when a new bit of content is ajaxed in
