﻿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('<div class="box browse-by"><div class="inner"><h2>');
                html.push(VacancySearchFacets.htmlencode(heading));
                html.push('</h2>');
                html.push('<div class="inner2">');
                $.each(facets, function () {
                    html.push('<dl><dt>');
                    html.push(this.FacetTypeName);
                    html.push('</dt>');
                    
                    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('<dd');
                        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></dd>');
                    });
                    
                    html.push('</dl>');
                    
                    if (showmore) {
                        html.push('<a href="javascript:;" onclick="$(\'.facetsmore\', $(this).prev()).show(); $(this).hide(); return false">');
                        html.push(VacancySearchFacets.htmlencode(morelinktext));
                        html.push('</a>');
                    }
                });
                html.push('</div></div></div>');
				$('#' + domid).html(html.join(''));
        
        		$(".browse-by").corner("7px");
            }
        });
    });
};

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();
		});
	});
}

function lazyLoadScriptAsync(url, success) {
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.async = true;
    script.src = url;
    
    if (success) {
        var onloadDone = false;
        
        script.onload = function() { 
            if (!onloadDone) {
                onloadDone = true; 
                success(); 
            }
        };
        
        script.onreadystatechange = function() { 
            if (("loaded" == script.readyState || "complete" == script.readyState) && !onloadDone) {
                onloadDone = true;
                success();
            }
        }
    }
    
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(script, s);
}

function lazyLoadScriptAsyncAfterDOMReady(url, success) {
    $(function () { lazyLoadScriptAsync(url, success); });
}

function redirToMobileIfAppropriate(redirTo) {
    lazyLoadScriptAsyncAfterDOMReady("http://detectfree.moviladetection.com/detectfree.js", function () {
	    if (window.is_mobile) { // window.is_mobile is set by moviladetection script
		    location.href=redirTo;
        }
    });
}

function ajaxOnResponseEnd(){
	$(".account-tabs .tabs li.first").corner("tl 7px");
	$(".account-tabs .tabs li.last").corner("tr 7px");
}

$(document).ready(function(){
	// Rounded corners (IE only)
	if (jQuery.browser.msie) {
		//$(".account").corner("7px");
		//$(".aside .box h2").corner("top 7px");
		$(".aside .quick-search").corner("7px");
		$(".aside .quick-search .inner").corner("7px");
		//$(".browse-links .section").corner("bottom 7px");
		//$(".cols2 .search").corner("tl 7px").corner("bl 7px");
		$(".cols3 .quick-search").corner("7px");
		$(".cols3 .quick-search .inner").corner("7px");
		$(".cols3 .refine-search").corner("7px");
		$(".cols3 .refine-search fieldset").corner("7px");
		//$(".content .featured-jobs h2").corner("top keep 7px");
		//$(".content .latest-jobs h2").corner("top keep 7px");
		//$(".content .latest-news h2").corner("top keep 7px");
		//$(".content .form").corner("7px");
		//$(".footer").corner("12px");
		//$(".nav-account").corner("12px");
		//$(".nav-main").corner("12px");
		//$(".nav-sub").corner("7px");
		//$(".nav-sub h2").uncorner();
		//$(".site-features .job-seekers").corner("7px");
		//$(".site-features .recruiters").corner("7px");
		//$(".advanced-search").uncorner();
		//$(".advanced-search").corner("bottom 7px");
		//$(".advanced-search .tabs li").corner("top 7px");		
		$(".site-features .inner").corner("bottom 7px");
		$(".aside .box .view-all").corner("3px");
		$(".browse-links .section .view-all").corner("3px");
		$(".content .box .view-all").corner("3px");
		$(".btn").corner("3px");
		////$(".qs-btn").corner("3px");
		//$(".content .box .inner2").corner("bottom 7px");
		//$(".aside .featured-clients .inner2").corner("bottom 7px");
		//$(".aside .box .inner2 ").corner("bottom 7px");
		////$(".btn-sml").corner("3px");
		//$(".cols2 .aside .site-features .job-seekers").corner("7px");
		//$(".cols2 .aside .site-features .recruiters").corner("7px");
		//$(".latest-jobs").corner("7px");
		//$(".featured-jobs").corner("7px");
		//$(".latest-news").corner("7px");
		//$(".aside .box").corner("7px");
		$(".header .login-info ul").corner("bottom 3px");
		$(".cols2 .content .quick-search").corner("7px");
		$(".cols2 .content .quick-search .inner").corner("7px");
		$(".controls a.next").corner("3px");
		$(".controls a.prev").corner("3px");
		//$(".cols3 .aside .site-features .job-seekers").corner("7px");
		//$(".cols3 .aside .site-features .recruiters").corner("7px");
		//$(".browse-by").corner("7px");
		//$(".job-btn").corner("3px");
		//$(".cols3 .refine-search .qs-btn").corner("3px");
		////$(".form-btn").corner("3px");
		//$(".aside .box h2").corner("7px");
		$(".account .quick-search").corner("7px");
		$(".account .quick-search .inner").corner("7px");
		$(".account-tabs .tabs li.first").corner("tl 7px");
		$(".account-tabs .tabs li.last").corner("tr 7px");
		$(".advanced-search ul.tabs li.i1").corner("tl 7px");
		$(".advanced-search ul.tabs li.i3").corner("tr 7px");
		//$(".btn-sub2").corner("3px");
	
	    //$(".browse-links .section").corner("bottom 7px");
	    //$(".browse-links .tabs a").corner("tl 7px");
        $(".browse-links .tabs li.last-child a").uncorner().corner("tr 7px");
        $(".browse-links .tabs li.first-child a").uncorner().corner("tl 7px");
        ////$(".browse-links .tabs li.ui-tabs-selected a").corner("top 7px");
        //$(".account-tabs .tabs li.active").corner("top 7px");
    
    }
	
});
