var keypressed_recently_timer = undefined;
var max_blogs_to_display = 5;
var delayed_counter = 0;
var delayed_blogs = Array();
var delayed_blogkeys = Array();
var delayed_adspots = Array();
var chunk_size = 5;
var delayed_refresh = undefined;
var scroll_markers = Array();
var need_stars = 0;
var maindiv_id = '';

function start_timer(obj){
  if (keypressed_recently_timer!=undefined){
        clearTimeout(keypressed_recently_timer);
    }
    keypressed_recently_timer = setTimeout('clear_timer("'+obj+'")',400);
}

function clear_timer(obj){
  keypressed_recently_timer=undefined;
  if ($($(obj).id+"_filter_keywords").value.length==0) {
    if (document.getElementById($(obj).id+'_render_rest_of_blogs')) document.getElementById($(obj).id+'_render_rest_of_blogs').value=1;
    $(obj).runFilter();
  }
  else{
    if (document.getElementById($(obj).id+'_render_rest_of_blogs')) document.getElementById($(obj).id+'_render_rest_of_blogs').value=1;
    $(obj).runFilterNonOptimal();
  }
}
  
Number.prototype.humanreadable = function() {
  var str = this.toString();
  var str_after_decimal_point = '';
  if (str.indexOf('.')!=-1) {
    var str_after_decimal_point = str.slice(str.indexOf('.'));
    str = str.slice(0,str.indexOf('.'));
  }
  var nd = str.length%3;
  var ret = str.substr(0,nd);
  for(var frst = nd;frst < str.length; frst+=3) {
    ret += (ret.length?',':'')+str.substr(frst,3);
  }
  return ret+str_after_decimal_point.substr(0,3);
}

var ABWidget = {
  getBlogs: function() {
    return this.filtered_blogs;
  },

  getAdspots: function() {
    return this.filtered_adspots;
  },

  getSorted_blogs: function() {
    return this.sorted_blogs;
  },

  getAdspots_is_Emtpy: function() {
    return this.adspots_empty;
  },

  initialize: function() {
    var table = '<div id="'+this.id+'_ws_table_header" class="ws_table"><div style="clear:both;">'+this.renderHeader()+'</div></div><div style="clear:both;"><div id="'+this.id+'_ws_table"><div id="progress_img" class="progress_img"></div><div id="'+this.id+'_ws_content"><div><div colspan="4">&nbsp;</div></div></div></div></div>';
    new Insertion.Bottom(this.id,table);
    maindiv_id = this.id;
  },

  redrawPane: function() {
    if ((($(this.id+'_render_adspots')) && ($(this.id+'_render_adspots').value=='1')) || (set_default) || (ab_jsondata[this.id]['page_type']=='hive')){
        var divs = document.getElementsByTagName('div');
        for (var i=0;i<divs.length;i++){
            if ((divs[i].className.indexOf('adspot_price')!=-1) || (divs[i].className.indexOf('adspot_cpm')!=-1) || (divs[i].className.indexOf('adspot_pv')!=-1)){
                divs[i].style.display='block';
            }
        }
    }
    else{
        var divs = document.getElementsByTagName('div');
        for (var i=0;i<divs.length;i++){
            if ((divs[i].className.indexOf('adspot_price')!=-1) || (divs[i].className.indexOf('adspot_cpm')!=-1) || (divs[i].className.indexOf('adspot_pv')!=-1)){
                divs[i].style.display='none';
            }
        }
    }
    scroll_markers = Array();
    clearInterval(delayed_refresh);
    var blogs = this.getBlogs();
    var adspots = this.getAdspots();
    var sortedblogs = this.getSorted_blogs();
    var adspots_is_empty = this.getAdspots_is_Emtpy();
    var root_elem = document.getElementById(this.id);
    
    var max_blogs_to_display = 120;
    var chunk_size = 120;
    
    if (blogs.length==0){
      tbody += this.renderEmptyRow();
    }
    else {
      if(adspots_is_empty){
        Element.update(this.id+'_ws_content','');
        var tbody = '';
        var blog_keys = Array();
        var oddoreven = 1;
        var counter = 0;
        var number_of_all_blogs = 0;
        for(var i in blogs) {
          number_of_all_blogs++;
        }
        for (var i in blogs){
          tbody += this.renderBlogsHeader(oddoreven,blogs[i]);
          blog_keys.push(i);
          if(oddoreven==2) oddoreven=1; else oddoreven=2;
          counter++;
          if (document.getElementById(this.id+'_render_rest_of_blogs')){
            if ((counter>=max_blogs_to_display) && (document.getElementById(this.id+'_render_rest_of_blogs').value!='1')) {
              break;
            }
          }
        }
        new Insertion.Bottom(this.id+'_ws_content',tbody);
        for(var i=0; i<blog_keys.length; i++) {
          var blog_key = blog_keys[i];
          var elem = document.getElementById(this.id+'_blog_'+blog_key);
          var tbody = this.renderBlogs(i,blogs[blog_key],root_elem,Array());
          elem.innerHTML = tbody;
          
          if (document.getElementById(this.id+'_render_rest_of_blogs')){
            if ((i>=max_blogs_to_display) && (document.getElementById(this.id+'_render_rest_of_blogs').value=='1')) {
              this.delayed_browser_refresh(i, blogs, blog_keys, undefined, this.id);
              break;
            }
            else if (i>=max_blogs_to_display){
              break;
            }
          }
          else {
            if (i>=max_blogs_to_display){
              this.delayed_browser_refresh(i, blogs, blog_keys, undefined, this.id);
              break;
            }
          }
        }
        if ((number_of_all_blogs>max_blogs_to_display) && (document.getElementById(this.id+'_render_rest_of_blogs')) && (document.getElementById(this.id+'_render_rest_of_blogs').value!='1')){
          tbody = '<div id="more_blogs_link"><input type="image" onclick="document.getElementById(\''+this.id+'_render_rest_of_blogs\').value=1;$(\''+this.id+'\').runFilter(); return false;" src="more_blogs.png" name="form.button.more_blogs" value="More blogs..." tabindex="1"></div>';
          new Insertion.Bottom(this.id+'_ws_content',tbody);
        }
      }
      else{
       Element.update(this.id+'_ws_content','');
       var tbody = '';
       var oddoreven = 1;
       var blog_keys = Array();
       var counter = 0;
       var all_blogs = Array();
       var number_of_all_blogs = 0;
       for(var i in blogs) {
         if(adspots[i]!=undefined) {
           number_of_all_blogs++;
         }
       }
       for (var sortcounter=0;sortcounter<sortedblogs.length;sortcounter++){
         i = sortedblogs[sortcounter][0];
         if (blogs[i]!=undefined){
           if ((($(this.id+'_render_adspots')) && ($(this.id+'_render_adspots').value=='1')) || (set_default) || (ab_jsondata[this.id]['page_type']=='hive')){
                if(adspots[i]!=undefined) {
                    tbody += this.renderBlogsHeader(oddoreven,blogs[i]);
                    blog_keys.push(i);
                    if(oddoreven==2) oddoreven=1; else oddoreven=2;
                    counter++;
                    if (document.getElementById(this.id+'_render_rest_of_blogs')){
                        if ((counter>=max_blogs_to_display) && (document.getElementById(this.id+'_render_rest_of_blogs').value!='1')) {
                              break;
                        }
                    }
                }
           }
           else{
                tbody += this.renderBlogsHeader(oddoreven,blogs[i]);
                blog_keys.push(i);
                if(oddoreven==2) oddoreven=1; else oddoreven=2;
                counter++;
                if (document.getElementById(this.id+'_render_rest_of_blogs')){
                    if ((counter>=max_blogs_to_display) && (document.getElementById(this.id+'_render_rest_of_blogs').value!='1')) {
                          break;
                    }
                }
           }
         }
       }
       new Insertion.Bottom(this.id+'_ws_content',tbody);
       for(var i=0;i<blog_keys.length;i++) {
           var blog_key = blog_keys[i];
           if ((($(this.id+'_render_adspots')) && ($(this.id+'_render_adspots').value=='1')) || (set_default) || (ab_jsondata[this.id]['page_type']=='hive')){
               if(adspots[blog_key]==undefined) continue; // Adspots belonging to this blog are filtered out
               var tbody = this.renderBlogs(0,blogs[blog_key],root_elem,adspots[blog_key]);
               var tbody_a ='';
               tbody_a = this.renderAdspots(0,adspots[blog_key],root_elem);
               var elem = document.getElementById(this.id+'_blog_'+blog_key);
               elem.innerHTML = tbody + tbody_a;
           
               if (document.getElementById(this.id+'_render_rest_of_blogs')){
                 if ((i>=max_blogs_to_display) && (document.getElementById(this.id+'_render_rest_of_blogs').value=='1')) {
                   this.delayed_browser_refresh(i, blogs, blog_keys, adspots, this.id);
                   break;
                 }
                 else if (i>=max_blogs_to_display){
                   break;
                 }
               }
               else {
                 if (i>=max_blogs_to_display){
                   this.delayed_browser_refresh(i, blogs, blog_keys, adspots, this.id);
                   break;
                 }
               }
           }
           else{
               var tbody = this.renderBlogs(0,blogs[blog_key],root_elem,Array());
               var tbody_a ='';
               var elem = document.getElementById(this.id+'_blog_'+blog_key);
               elem.innerHTML = tbody + tbody_a;
           
               if (document.getElementById(this.id+'_render_rest_of_blogs')){
                 if ((i>=max_blogs_to_display) && (document.getElementById(this.id+'_render_rest_of_blogs').value=='1')) {
                   this.delayed_browser_refresh(i, blogs, blog_keys, undefined, this.id);
                   break;
                 }
                 else if (i>=max_blogs_to_display){
                   break;
                 }
               }
               else {
                 if (i>=max_blogs_to_display){
                   this.delayed_browser_refresh(i, blogs, blog_keys, undefined, this.id);
                   break;
                 }
               }
           }
       }
       if ((number_of_all_blogs>max_blogs_to_display) && (document.getElementById(this.id+'_render_rest_of_blogs')) && (document.getElementById(this.id+'_render_rest_of_blogs').value!='1')){
         tbody = '<div id="more_blogs_link"><input type="image" onclick="document.getElementById(\''+this.id+'_render_rest_of_blogs\').value=1;$(\''+this.id+'\').runFilter(); return false;" src="more_blogs.png" name="form.button.more_blogs" value="More blogs..." tabindex="1"></div>';
         new Insertion.Bottom(this.id+'_ws_content',tbody);
       }
       if (this.renderHiddenSelection != null) {
         tbody = '';
         tbody += this.renderHiddenSelection();
         new Insertion.Bottom(this.id+'_ws_content',tbody);
       }
      }
    }
    this.scrollTop = 0;
  },

  delayed_browser_refresh: function(counter, blogs, blog_keys, adspots, main_div_id) {
    delayed_counter = counter;
    delayed_blogs = blogs;
    delayed_blogkeys = blog_keys;
    delayed_adspots = adspots;
    delayed_refresh = setInterval("ABWidget.refresh_in_steps('"+main_div_id+"')", 500);
  },

  refresh_in_steps: function(main_div_id) {
    clearInterval(delayed_refresh);
    var max_blogs_to_display = 20;
    var chunk_size = 20;
    var root_elem = document.getElementById(main_div_id);
    var max_counter = delayed_counter + chunk_size;
    delayed_counter = delayed_counter+1;
    for(var i=delayed_counter; i<delayed_blogkeys.length; i++) {
      var blog_key = delayed_blogkeys[i];
      if(delayed_adspots==undefined) {
        var tbody = renderBlogs(0, delayed_blogs[blog_key], root_elem,Array());
        var elem = document.getElementById(main_div_id+'_blog_'+blog_key);
        elem.innerHTML = tbody;
      }
      else {
        if ((($(main_div_id+'_render_adspots')) && ($(main_div_id+'_render_adspots').value=='1')) || (set_default) || (ab_jsondata[main_div_id]['page_type']=='hive')){
          if(delayed_adspots[blog_key]==undefined) continue; // Adspots belonging to this blog are filtered out
        }
        var tbody = renderBlogs(0, delayed_blogs[blog_key], root_elem,delayed_adspots[blog_key]);
        var tbody_a = '';
        if ((($(main_div_id+'_render_adspots')) && ($(main_div_id+'_render_adspots').value=='1')) || (set_default) || (ab_jsondata[main_div_id]['page_type']=='hive')){
          tbody_a = renderAdspots(0,delayed_adspots[blog_key],root_elem);
        }
        var elem = document.getElementById(main_div_id+'_blog_'+blog_key);
        elem.innerHTML = tbody + tbody_a;
      }
      
      if ((delayed_blogkeys.length-delayed_counter)<max_counter){
        max_counter = delayed_blogkeys.length-1;
      }

      if(i>=max_counter) {
        this.delayed_browser_refresh(i, delayed_blogs, delayed_blogkeys, delayed_adspots, main_div_id);
        scroll_markers.push(elem.id);
        break;
      }
    }
  },

  runFilter: function() {
    if ($(this.id+'_filter_keywords') && ($(this.id+'_filter_keywords').value!='')){
      this.filtered_blogs = this.dataSet.filter_blogs(this, true, false, false);
      var filtered_adspots_and_blogs = this.dataSet.filter_adspots(this, true, false);
      this.filtered_adspots = filtered_adspots_and_blogs[0];
      this.sorted_blogs = filtered_adspots_and_blogs[1];
    }
    else{
      this.filtered_blogs = this.dataSet.filter_blogs(this, false, false, false);
      var filtered_adspots_and_blogs = this.dataSet.filter_adspots(this, false, false);
      this.filtered_adspots = filtered_adspots_and_blogs[0];
      this.sorted_blogs = filtered_adspots_and_blogs[1];
    }
    // resize and reset slider
    this.redrawPane();
    return false;
  },
  
  runFilter_with_set_default_render_rest_of_blogs: function() {
    if (document.getElementById(this.id+'_render_rest_of_blogs')) document.getElementById(this.id+'_render_rest_of_blogs').value=1;
    if ($(this.id+'_filter_keywords') && ($(this.id+'_filter_keywords').value!='')){
      this.filtered_blogs = this.dataSet.filter_blogs(this, true, false, false);    
      var filtered_adspots_and_blogs = this.dataSet.filter_adspots(this, true, false);
      this.filtered_adspots = filtered_adspots_and_blogs[0];    
      this.sorted_blogs = filtered_adspots_and_blogs[1];    
    }
    else{
      this.filtered_blogs = this.dataSet.filter_blogs(this, false, false, false);    
      var filtered_adspots_and_blogs = this.dataSet.filter_adspots(this, false, false);
      this.filtered_adspots = filtered_adspots_and_blogs[0];    
      this.sorted_blogs = filtered_adspots_and_blogs[1];    
    }
    // resize and reset slider
    this.redrawPane();
    return false;
  },
  
  runFilter_for_blogs: function() {
    this.filtered_blogs = this.dataSet.filter_blogs(this, false, true, false);
    
    this.redrawPane();
    return false;
  },
  
  runFilterNonOptimal: function() {
    this.filtered_blogs = this.dataSet.filter_blogs(this, true, false, false);
    var filtered_adspots_and_blogs = this.dataSet.filter_adspots(this, true, false);
    this.filtered_adspots = filtered_adspots_and_blogs[0];    
    this.sorted_blogs = filtered_adspots_and_blogs[1];    

    this.redrawPane();
    return false;
  },

  KeypressChecking: function(evt) {
      evt = (evt) ? evt : (window.event) ? event : null;
      if (evt){
        var charCode = (evt.charCode) ? evt.charCode :
                       ((evt.keyCode) ? evt.keyCode :
                       ((evt.which) ? evt.which : 0));
        if (charCode == 13) {
            if ($(this.id+"_filter_keywords").value.length>=3) {
              if (document.getElementById(this.id+'_render_rest_of_blogs')) document.getElementById(this.id+'_render_rest_of_blogs').value=1;
              this.runFilterNonOptimal();
            }
            else if ($(this.id+"_filter_keywords").value.length==0) {
              if (document.getElementById(this.id+'_render_rest_of_blogs')) document.getElementById(this.id+'_render_rest_of_blogs').value=1;
              this.runFilter();
            }
            return false;
        }
        else{
            if (($(this.id+"_filter_keywords").value.length>=2) || (charCode==8) || (charCode==46)){
                start_timer(this.id);
            }
        }
      }
  },
  
  KeypressChecking_Enter: function(evt) {
      evt = (evt) ? evt : (window.event) ? event : null;
      if (evt){
        var charCode = (evt.charCode) ? evt.charCode :
                       ((evt.keyCode) ? evt.keyCode :
                       ((evt.which) ? evt.which : 0));
        if (charCode == 13) {
            if ($(this.id+"_filter_keywords").value.length>=3) {
              if (document.getElementById(this.id+'_render_rest_of_blogs')) document.getElementById(this.id+'_render_rest_of_blogs').value=1;
              this.runFilterNonOptimal();
            }
            else if ($(this.id+"_filter_keywords").value.length==0) {
              if (document.getElementById(this.id+'_render_rest_of_blogs')) document.getElementById(this.id+'_render_rest_of_blogs').value=1;
              this.runFilter();
            }
            return false;
        }
      }
  },
  
  dataSet: null,
  renderBlogs: null,
  renderBlogsHeader: null,
  renderAdspots: null,
  renderEmptyRow: null,
  renderHeader: null,
  renderHiddenSelection: null,

  blogs: {},
  adspots: {},
  filtered_blogs: {},
  sorted_blogs: [],
  filtered_adspots: {},
  adspots_empty: true
}

function sortNumber(a,b)
{
return a - b;
}

function renderBlogs(i,blog,elem,adspots) {
  var tbody = Array();
  if (elem.showDetails) {
      tbody.push('<div class="f2">');
      if (need_stars!='1'){
        if (blog['l']) {
          var lw = '60';
          var lh = '60';
          if (blog['lh']) {
            lw = blog['lw'];
            lh = blog['lh'];
          }
        tbody = tbody.concat(['<img style="float:left" src="http://web.blogads.com/cached/logo_blog_',blog['uid'],'" alt="Logo" width="',lw,'" height="',lh,'" />']);
        }
        tbody = tbody.concat(['<a href="' ,blog['u'] , '" target="_blank">' , blog['t'].escapeHTML() , '</a>','<br>']);
      }
      else{
        var stars = Array();
        if (this.dataSet.extra_rows!=null){
          for(var k=0; k < this.dataSet.extra_rows[blog['uid']]; k++) {
              stars.push('<img src="star.gif" />');
          }
        }
        tbody = tbody.concat(['<a href="' ,blog['u'] , '" target="_blank">' , blog['t'].escapeHTML() , '</a>','<div class="blog_stars">',stars.join(''),'</div>','<br>']);
      }
      tbody = tbody.concat(blog['s'].escapeHTML(), '</div>');
      tbody = tbody.concat(['<div class="ad_formats" id="ad_formats_',blog['uid'],'"><div style="float:left">Ad types: ']);
      if (blog['ad_types']!=undefined){
          tbody = tbody.concat(blog['ad_types'].join(', '));
      }
      tbody = tbody.concat(['.</div>']);
      if ((blog['prices']!=undefined) && (blog['prices'].length>0)){
        if (blog['p']!=undefined){
          tbody = tbody.concat(['<div style="float:right">Starting at $'+parseInt(blog['prices'][0].split('|')[0])+', up to <span style="font-weight:bold">'+blog['p'][0].humanreadable()+'</span> imp/wk.']);
          tbody = tbody.concat(['</div><div style="clear:both"></div></div>']);
        }
      }
  }
  return tbody.join('');
}

function is_pending_adstrip(widget,obj){
  sel=true;
  if (widget.hivesel){
    if (obj['p_in_h']){
        var sel=true;
        for (var k=0; k < obj['p_in_h'].length; k++) {
          for (var l=0; l<widget.hivesel.length; l++){
            if (widget.hivesel[l]==obj['p_in_h'][k]){
              sel=false;
            }
          }
        }
    }
  }
  return sel;
}

function Element_is_in_the_array(searchedarray,searchingelement){
    for (var array_counter=0;array_counter<searchedarray.length;array_counter++){
        if (searchedarray[array_counter] == searchingelement){
            return true;
        }
    }
    return false;
}

function renderAdspots(i,adspots, elem) {
  if (adspots!=null){
    var tbody = Array();
    var len = adspots.a.length;
    for (var a=0; a < len; a++) {
      var adspot = adspots.a[a];
      var number_of_days = 1;
      var selected_dates = [];
      var sov_percent = 100;
      var sov_from_adspot = 100;
      if (adspot.sov) {
        sov_from_adspot = adspot.sov;
        sov_percent = adspot.sov;
      }
      if (ab_jsondata[elem.id]["page_type"]!='hive'){
          if ((ab_jsondata[elem.id]["display_pending_adstrips"]) && (ab_jsondata[elem.id]["display_pending_adstrips"]==1)){
            if (elem.selectionList[adspot.uid]){
              is_a_pending_adspot = is_pending_adstrip(this,adspot);
              tbody = tbody.concat(['<div style="clear:both;"></div><div class="adspot_select_ckbox">','<input style="margin:0 0 6px;" type="checkbox" name="',elem.id,'_selections:list" id="',elem.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',elem.id,'\').selectionChangeAt(this);"',' checked="checked"','/>','</div>']);
            }
            else{
              tbody = tbody.concat(['<div style="clear:both;"></div><div class="adspot_select_ckbox">','<input style="margin:0 0 6px;" type="checkbox" name="',elem.id,'_selections:list" id="',elem.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',elem.id,'\').selectionChangeAt(this);"','/>','</div>']);
            }
          }
          else{
            tbody = tbody.concat(['<div style="clear:both;"></div><div class="adspot_select_ckbox">','<input style="margin:0 0 6px;" type="checkbox" name="',elem.id,'_selections:list" id="',elem.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',elem.id,'\').selectionChangeAt(this);"',(!elem.selectionList[adspot.uid]?'':' checked="checked"'),'/>','</div>']);
          }
          if ((ab_jsondata[elem.id]["display_pending_adstrips"]) && (ab_jsondata[elem.id]["display_pending_adstrips"]==1)){
            tbody = tbody.concat(['<div class="adspot_title"><div style="float:left;">',adspot['t'].escapeHTML(),'</div><div style="float:right;font-style:normal;">(',(adspot.n==0?'no':adspot.n),' ad',(adspot.n!=1?'s':''),' running)</div>']);
          }
          else{
            tbody = tbody.concat(['<div class="adspot_title_without_state"><div style="float:left;">',adspot['t'].escapeHTML(),'</div><div style="float:right;font-style:normal;">(',(adspot.n==0?'no':adspot.n),' ad',(adspot.n!=1?'s':''),' running)</div>']);
          }
          if (adspot.f!=null) {
            tbody = tbody.concat(['<div class="f3">reserved through ',adspot.f,'</div>']);
          }
          var adformat = ab_value(elem.id+'_select_adformat').split('|')[0];
          if (!$(elem.id+'_select_term').options){
            if (Place_of_Element_in_the_array(ab_jsondata[elem.id]['termnames'],ab_value(elem.id+'_select_term'))==-1){
              var termidx=4;
              var number_of_days = parseInt(ab_value(elem.id+'_select_term').replace('d',''));
              if ((!document.getElementById('open_sov_field_of_adspots').checked) && (ab_value(elem.id+'_select_sov_percent')!=0)){
                sov_percent = ab_value(elem.id+'_select_sov_percent');
              }
            }
            else{
              var termidx = Place_of_Element_in_the_array(ab_jsondata[elem.id]['termnames'],ab_value(elem.id+'_select_term'))
            }
          }
          else{
            var termidx = $(elem.id+'_select_term').selectedIndex;
          }
          var adspot_sovs = ($(elem.id+ "_sel_adspot_sovs").innerText!=undefined)?$(elem.id+ "_sel_adspot_sovs").innerText:$(elem.id+ "_sel_adspot_sovs").textContent;
          var sov_percent_field_html = '';
          if ((document.getElementById('open_sov_field_of_adspots')) && (document.getElementById('open_sov_field_of_adspots').checked) && (Element_is_in_the_array(ab_jsondata_for_sov[elem.id]["sov_adformats_in_array"],adformat))){
            var sov_data = this.dataSet.sov_rows;
      
            if (document.getElementById('step2_2_selector').checked){
              var start_date = new Date(document.getElementById('sov_start_date_id').value);
              var term = document.getElementById(elem.id+'_select_term_for_sov').options[document.getElementById(elem.id+'_select_term_for_sov').selectedIndex].value;
              var currentDateMillisec = Date.UTC(start_date.getFullYear(), start_date.getMonth(), start_date.getDate()) + utcoffset;
    
              for(var i=0;i<parseInt(term);i++){
                 var actDateMillisec = currentDateMillisec + i * 86400000; // 1 day in millisec
                 var actDate = new Date(actDateMillisec);
                 selected_dates.push(actDate.toLocaleDateString())
              }
            }
            
            var adspot_sovs_array = adspot_sovs.split(',');
            var adspot_sovs_obj = {};
            for (var i=0;i<adspot_sovs_array.length;i++){
                adspot_sovs_obj[trim(adspot_sovs_array[i].split(':')[0])] = parseInt(adspot_sovs_array[i].split(':')[1]);
            }
                
            document.getElementById(elem.id+'_select_sov_percent').disabled = 'disabled';
            document.getElementById('sov_header_text').innerHTML = 'SOV';
    
            var sov_percent_field_html = '<select name="'+elem.id+'_adspot_sovs.'+adspot.uid+':record" id="adspot_sovs_'+adspot.uid+'" style="font-size: 11px;" onchange="onchange_event_for_adspot_sovs(\''+elem.id+'\',\''+adspot.uid+'\')">';
            var is_checked = 0;
            for (var i=100;i>=10;i-=10){
              var disabled = '';
              if (sov_data[adspot.uid]!=undefined){
                var sov_dates = sov_data[adspot.uid];
                for (var selected_date_index=0;selected_date_index<selected_dates.length;selected_date_index++){
                  for (var sov_date_index=0;sov_date_index<sov_dates.length;sov_date_index++){
                    if ((selected_dates[selected_date_index]==sov_dates[sov_date_index][0]) && ((100-sov_dates[sov_date_index][1])<i)){
                      disabled =' disabled';
                      break;
                    }
                  }
                }
              }
              var checked = '';
              if (((i==parseInt(adspot_sovs_obj[adspot.uid])) || (i==parseInt(sov_from_adspot))) && (disabled=='')) {
                var checked = ' selected';
                sov_percent = i;
                is_checked = 1;
              }
              if ((checked=='') && (i==100) && (is_checked!=1) && (disabled=='')) {
                var checked = ' selected';
                sov_percent = i
              }
              sov_percent_field_html += '<option value="'+i.toString()+'"'+checked+disabled+'>'+i.toString()+'%'+'</option>';
            }
            sov_percent_field_html += '</select>';
          }
          
          var rates = adspot.r[adformat]
          var price = rates[termidx]*number_of_days*(sov_percent/100);
          var flash = ab_value(elem.id+'_select_adformat').split('|')[1] == 'flash';
          if (flash) {
            var mult = -rates[rates.length-1];
            
            if (mult<1) mult = 1;
            price = parseFloat(price * mult);
          }
          var pv = Math.round(adspot.p[termidx]*number_of_days*(sov_percent/100));
          if ((price!=0) && (pv!=0)){
            var ecpm = price/(pv/1000);
          }
          else{
            var ecpm = 0;
          }
          if ($(elem.id+'_selections_'+adspot.uid)){
            Element.remove(elem.id+'_selections_'+adspot.uid);
          }
    
          if ((ab_jsondata[elem.id]["display_pending_adstrips"]) && (ab_jsondata[elem.id]["display_pending_adstrips"]==1)){
            if (elem.selectionList[adspot.uid]){
              is_a_pending_adspot = is_pending_adstrip(this,adspot);
              
              tbody = tbody.concat(['</div><div class="adspot_price">$',price.humanreadable(),'</div><div class="adspot_pv">',pv.humanreadable(),'</div><div class="adspot_cpm">($',ecpm.toFixed(2),')</div><div class="',is_a_pending_adspot!=true?'not_approved':'approved','">',is_a_pending_adspot!=true?'Pending':'Accepted','</div><div id="sov_percent_',adspot.uid,'" class="adspot_sov">',sov_percent_field_html,'</div><div style="clear:both;"></div></div>']);
            }
            else{
              tbody = tbody.concat(['</div><div class="adspot_price">$',price.humanreadable(),'</div><div class="adspot_pv">',pv.humanreadable(),'</div><div class="adspot_cpm">($',ecpm.toFixed(2),')</div><div>&nbsp;</div><div id="sov_percent_',adspot.uid,'" class="adspot_sov">',sov_percent_field_html,'</div><div style="clear:both;"></div></div>']);
            }
          }
          else{
            tbody = tbody.concat(['</div><div class="adspot_price">$',price.humanreadable(),'</div><div class="adspot_pv">',pv.humanreadable(),'</div><div class="adspot_cpm">($',ecpm.toFixed(2),')</div><div id="sov_percent_',adspot.uid,'" class="adspot_sov">',sov_percent_field_html,'</div><div style="clear:both;"></div></div>']);
          }
      }
      else{
          if ((ab_jsondata[elem.id]["display_pending_adstrips"]) && (ab_jsondata[elem.id]["display_pending_adstrips"]==1)){
            if (elem.selectionList[adspot.uid]){
              is_a_pending_adspot = is_pending_adstrip(this,adspot);
              tbody = tbody.concat(['<div style="clear:both;"></div><div class="adspot_select_ckbox">','<input style="margin:0 0 6px;" type="checkbox" name="',elem.id,'_selections:list" id="',elem.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',elem.id,'\').selectionChangeAt(this);"',' checked="checked"','/>','</div>']);
            }
            else{
              tbody = tbody.concat(['<div style="clear:both;"></div><div class="adspot_select_ckbox">','<input style="margin:0 0 6px;" type="checkbox" name="',elem.id,'_selections:list" id="',elem.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',elem.id,'\').selectionChangeAt(this);"','/>','</div>']);
            }
          }
          else{
            tbody = tbody.concat(['<div style="clear:both;"></div><div class="adspot_select_ckbox">','<input style="margin:0 0 6px;" type="checkbox" name="',elem.id,'_selections:list" id="',elem.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',elem.id,'\').selectionChangeAt(this);"',(!elem.selectionList[adspot.uid]?'':' checked="checked"'),'/>','</div>']);
          }
          if ((ab_jsondata[elem.id]["display_pending_adstrips"]) && (ab_jsondata[elem.id]["display_pending_adstrips"]==1)){
            tbody = tbody.concat(['<div class="adspot_title"><div style="float:left;">',adspot['t'].escapeHTML(),'</div><div style="float:right;font-style:normal;">(',(adspot.n==0?'no':adspot.n),' ad',(adspot.n!=1?'s':''),' running)</div>']);
          }
          else{
            tbody = tbody.concat(['<div class="adspot_title_without_state"><div style="float:left;">',adspot['t'].escapeHTML(),'</div><div style="float:right;font-style:normal;">(',(adspot.n==0?'no':adspot.n),' ad',(adspot.n!=1?'s':''),' running)</div>']);
          }
          if (adspot.f!=null) {
            tbody = tbody.concat(['<div class="f3">reserved through ',adspot.f,'</div>']);
          }
          if ($(elem.id+'_selections_'+adspot.uid)){
            Element.remove(elem.id+'_selections_'+adspot.uid);
          }
    
          var pv = Math.round(adspot.p[0]);
          if ((ab_jsondata[elem.id]["display_pending_adstrips"]) && (ab_jsondata[elem.id]["display_pending_adstrips"]==1)){
            if (elem.selectionList[adspot.uid]){
              is_a_pending_adspot = is_pending_adstrip(this,adspot);
              
              tbody = tbody.concat(['</div><div class="adspot_pv">',pv.humanreadable(),'</div><div class="',is_a_pending_adspot!=true?'not_approved':'approved','">',is_a_pending_adspot!=true?'Pending':'Accepted','</div><div style="clear:both;"></div></div>']);
            }
            else{
              tbody = tbody.concat(['</div><div class="adspot_pv">',pv.humanreadable(),'</div><div>&nbsp;</div><div style="clear:both;"></div></div>']);
            }
          }
          else{
            tbody = tbody.concat(['</div><div class="adspot_pv">',pv.humanreadable(),'</div><div style="clear:both;"></div></div>']);
          }
      }
    }
    return tbody.join('');
  }
}

function load_logos() {
    var root_elem = document.getElementById(maindiv_id);
    if ((root_elem!=null) && (need_stars!='1') && (root_elem.showDetails)){
      if(scroll_markers.length<=0) return;
      for(var k=0;k<scroll_markers.length;k++) {
          var thisnode = document.getElementById(scroll_markers[k]);
          if(Position.page(thisnode)[1]>8000) return;
          scroll_markers = scroll_markers.without(scroll_markers[k]);
          var nodes_to_process = [thisnode.parentNode];
          for(var i=0; i<=chunk_size; i++) {
              if (nodes_to_process.last()!=null){
                nodes_to_process.push(nodes_to_process.last().previousSibling);
              }
          }
          for(var i=0;i<nodes_to_process.length;i++) {
              if (nodes_to_process[i]!=null){
                var imgtags = nodes_to_process[i].getElementsByTagName('img');
                for(var j=0;j<imgtags.length;j++) {
                    var imgtag = imgtags[j];
                    try {
                        if (!(imgtag.readAttribute('src'))){
                           imgtag.setAttribute('src', imgtag.readAttribute('src_'));
                           imgtag.show();
                        }
                    }
                    catch (err) {}
                }
              }
          }
      }
    }
}

Event.observe(window, 'scroll', load_logos);

