/**
 * Function: jbb_widget_vertical_gel - displays jobs in a graphical widget
 *           <li class="{LI_CLASS}"><a href="{LINK_TO_JOB_DETAILS_PAGE}" target="jobs"><strong>{JOB_TITLE}</strong></a><br>
 *           at {COMPANY_NAME} ({LOCATION_AS_CITY,_ST})</li>
 */

function jbb_widget_list_jobposts(data) {

  var list_count = -1;
  var domain   = '';
  var theme   = '';
  var demo_mode = false;
  var show_job_search = false;
  var show_post_link = true;
  var widget_width = 0;
    
  try { if (jbb_widget_list_count != undefined) { list_count = jbb_widget_list_count; } }
  catch(e) { }

  try { if (jbb_widget_domain != undefined) { domain = jbb_widget_domain; } }
  catch(e) { domain = 'http://'+data.domain_name;}

  try { if (jbb_widget_theme != undefined) { theme = jbb_widget_theme; } }
  catch(e) { }

  try { if (jbb_widget_demo_mode != undefined) { demo_mode = jbb_widget_demo_mode; } }
  catch(e) { }
  
  try { if (jbb_widget_search != undefined) { show_job_search = jbb_widget_search; } }
  catch(e) { }
  
  try { if (jbb_widget_show_post != undefined) { show_post_link = jbb_widget_show_post; } }
  catch(e) { }
  
  try { if (jbb_widget_width != undefined) { widget_width = jbb_widget_width; } }
  catch(e) { }
  
  var price = data.price;
  var duration = data.duration;

  var content = '';
  var demo_mode_domain = domain.replace(/https/,"http");

  var widget_style ='<link rel="stylesheet" href="' + domain + '/a/jbb/promote_widget_vertical_gel_css/' + theme + (widget_width > 0  ? '/' + widget_width : '' ) + '" type="text/css" />';
  var widget_top ='   <div id="jbb_widget_top_left"><div id="jbb_widget_top_right"><div id="jbb_widget_top"></div></div></div>' +
                  '   <div id="jbb_widget_body">' +
                  '      <div id="jbb_widget_inner_body">';
  try {
    if(data.link != undefined){
      if (demo_mode) {
        widget_top +='         <a href="' + data.link.replace(/https/,"http") + '" target="jobs">';
      } else {
        widget_top +='         <a href="' + data.link + '" target="jobs">';
      }
    }
  }
  catch(e){
    if (demo_mode) {
      widget_top +='         <a href="' + demo_mode_domain + '/a/jbb/find-jobs" target="jobs">';
    } else {
      widget_top +='         <a href="' + domain + '/a/jbb/find-jobs" target="jobs">';
    }
  }

  widget_top +='<img src="' + domain + '/c/jbb/images/jbb-widget-vertical-gel/' + theme +
                   '/recent-jobs.gif" alt="Recent Jobs" class="jbb_widget_image" id="jbb_widget_recent_jobs"/></a>';

  var widget_middle ='         <br/>';
  
  if(show_post_link && (price > 0 || duration > 0)){    
    widget_middle +=  '<p id="jbb_widget_post_a_job">';

    if (demo_mode) {
      widget_middle +='<a href="' + demo_mode_domain + '/a/jbb/post-job" target="jobs">';
    } else {
      widget_middle +='<a href="' + domain + '/a/jbb/post-job" target="jobs">';
    }

      widget_middle +='Post a Job!</a>'+
                      '</p>'+
                      '<p id="jbb_widget_price">';

    if (demo_mode) {
      widget_middle +='<a href="' + demo_mode_domain + '/a/jbb/post-job" target="jobs">';
    } else {
      widget_middle +='<a href="' + domain + '/a/jbb/post-job" target="jobs">';
    }  

    widget_middle +='Only $' + price + ' for ' + duration + ' days</a>'+
                      '</p>';
  }

  if(show_job_search){    
    var form_method = data.domain_name.match('.jobamatic.com') ? 'POST' : 'GET';
    widget_middle += '<form id="f_widget_job_search" action="' +
                      'http://' + data.domain_name + '/a/jobs/search" method="' + form_method + '" onSubmit="if((this.f_search_keywords.value==\'\'||this.f_search_keywords.value==\'keywords\')&&(this.f_search_location.value==\'\'||this.f_search_location.value==\'location\')){window.location=\'' +
                      'http://' + data.domain_name + '\';return false;}if(this.f_search_keywords.value==\'keywords\')this.f_search_keywords.value=\'\';if(this.f_search_location.value==\'location\')this.f_search_location.value=\'\';return true">' +
                      '<input type="hidden" name="_action" value="find-jobs" />' +
                      '<input id="f_search_keywords" type="text" name="q" value="keywords" onFocus="this.value=\'\'"/>' +
                      '<input id="f_search_location" type="text" name="l" value="location" onFocus="this.value=\'\'"/>' +
                      '<input id="f_submit" type="submit" value="Go" />' +
                      '</form>';
  }
                    
  var widget_bottom ='      </div>'+
                    '   </div>'+
                    '   <div id="jbb_widget_bottom_left"><div id="jbb_widget_bottom_right"><div id="jbb_widget_bottom"></div></div></div>';
  if(data==null) {
    content = 'No jobs to display';
  } else {
    var version  = data.version;
    var total_num_jobs = list_count;

    var num_jbb = 0;
    var num_backfill = 0;
    var is_display_backfill = false;

    if(data.jobposts != null){ num_jbb = data.jobposts.length; }
    if(data.backfill_jobs != null){ num_backfill =  data.backfill_jobs.length; }
    if( ( num_jbb < total_num_jobs ) && ( num_backfill > 0 ) ){ is_display_backfill = true; }

    if(version <= '0.9') {        
      if(list_count < 0 || list_count > data.jobposts.length) { list_count = data.jobposts.length; }
      for (var i=0; i < list_count; i++) {
        var location = data.jobposts[i].location;
        var company  = data.jobposts[i].company;
        var title    = data.jobposts[i].title;
        var job_link = data.jobposts[i].link;

        var newline = '<br/>';
        if(location == '' && company == '') { newline = ''; }
        if ((i == 0) && (list_count != 0)) {content +='<div id="jbb_widget_inner_top_left"><div id="jbb_widget_inner_top_right"><div id="jbb_widget_inner_top"></div></div></div><ul id="jbb_widget_job_list">';}
        content += '<li class="jbb_widget_job';
        if ((i == list_count-1) && (is_display_backfill == false)) { content +=' jbb_widget_last_job';}

        content += '">'
                 + '<a href="' + job_link + '" target="jobs">'
                 + '<strong>' +title + '</strong>' + '</a>' + newline;
        if(company != '') { content += 'at ' + company; }
        if(location != '') { content += ' (' + location + ')'; }
        content += '</li>';

       if ((i == list_count - 1) && (list_count != 0) && (is_display_backfill == false)) {content +='</ul><div id="jbb_widget_inner_bottom_left"><div id="jbb_widget_inner_bottom_right"><div id="jbb_widget_inner_bottom"></div></div></div>';}
      }

      list_count = total_num_jobs - list_count;
      if(data.backfill_jobs==null){
      }else{
        if(list_count < 0 || list_count > data.backfill_jobs.length) { list_count = data.backfill_jobs.length; }
          for (var i=0; i < list_count; i++) {
            var location = data.backfill_jobs[i].location;
            var company  = data.backfill_jobs[i].company;
            var title    = data.backfill_jobs[i].title;
            var job_link = data.backfill_jobs[i].link;

            var newline = '<br/>';
            if(location == '' && company == '') { newline = ''; }
            if ((i == 0) && (list_count != 0) && ( num_jbb == 0)) {content +='<div id="jbb_widget_inner_top_left"><div id="jbb_widget_inner_top_right"><div id="jbb_widget_inner_top"></div></div></div><ul id="jbb_widget_job_list">';}
            content += '<li class="jbb_widget_job';

            if (i == list_count-1) {content +=' jbb_widget_last_job';}

            content += '">'
                 + '<a href="' + job_link + '" target="jobs">'
                 + '<strong>' +title + '</strong>' + '</a>' + newline;
            if(company != '') { content += 'at ' + company; }
            if(location != '') { content += ' (' + location + ')'; }
            content += '</li>';

            if ((i == list_count-1) && (list_count != 0)) {content +='</ul><div id="jbb_widget_inner_bottom_left"><div id="jbb_widget_inner_bottom_right"><div id="jbb_widget_inner_bottom"></div></div></div>';}
          }
      }

    } else {
      content = 'Error: Invalid Version - Please update your scripts';
    }
  }
  var jbb_widget_container = document.getElementById('jbb_widget_' + theme);
  if (!demo_mode) {
    document.write(widget_style);
    //quatcast
    document.write('<img src="http://pixel.quantserve.com/pixel/p-32oLU8PZtWAwo.gif" style="display: none;" border="0" height="1" width="1" alt="Quantcast"/>');     
    //comscore
    document.write('<img src="http://b.scorecardresearch.com/b?c1=2&c2=6034750&c3=&c4=&c5=&c6=&c15=&cv=1.3&cj=1" style="display:none" width="0" height="0" alt="" />');    
  }
  else {
    content += '<link rel="stylesheet" href="/a/jbb/promote_widget_vertical_gel_css/' + theme + (widget_width > 0  ? '/' + widget_width : '' ) + '" type="text/css" />';    
    for(var i = 0; i < jbb_widget_container.childNodes.length; i++){ //prevent loading multiple 
      if(jbb_widget_container.childNodes[i].id == 'jbb_widget_body'){
        return;
      }
    }
  }
  jbb_widget_container.innerHTML = widget_top + content + widget_middle + jbb_widget_container.innerHTML + widget_bottom;
}
