var d = new Date()
var utcoffset = d.getTimezoneOffset() * 60000;
var ab_jsondata = Array();
var ab_jsondata_for_sov = Array();
var is_adspot_generating_ajax_running = false;
var data = Array();
var start_item = 0;
var is_adspots_list = 0;
var field_name = '';
var scroll_max_height = 200;
var original_pos_of_abtotals = "";
var need_stars = 0;
var set_default = 0;
var run_filter_timer= 0
var delay_time_of_runFilter=500;

window.onunload = function(){};

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else var expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

function eraseCookie(name) {
  createCookie(name,"",-1);
}

function continue_onclick(){
    if ($('selectadspots')) {
        if ($('selectadspots').selectionList.keys().length == 0) {
            alert('Please select at least one adstrip to continue.');
            return false;
        }
    }
    createCookie('number_of_step',1,1)
}

function onload_event(){
  var next=document.getElementsByName('form.button.next')[0];
  if(next!=undefined && next!=null) next.onclick = continue_onclick; // This can be removed after moving to new order page
}

window.onload = onload_event;
if (readCookie('number_of_step')!=null){
  eraseCookie('number_of_step');
  window.location.reload();
}

function ab_value(id) {
  var elem = $(id);
  if (!elem) { return ''; }
  if (elem.type == 'checkbox'){
    if (elem.checked) return '1'
    else return '0'
  }
  if (!elem.options) return elem.value;
  return elem.options[elem.selectedIndex].value;
}

function is_adspot_in_hive(field,adspot, hive_uids) {
  if ( !hive_uids || hive_uids.toString() == '' ) return true;
  var in_selected_hive = false;
  // FIXME: this check will be unnecessary when all adspots have their 'h'
  if ( adspot['h'] ) {
    for (var i=0; i < adspot['h'].length; i++) {
      var member_in_hive = adspot['h'][i];    
      for (var j=0; j < hive_uids.length; j++) {
        var hive_uid = hive_uids[j];
        if ( member_in_hive == hive_uid ) {
          in_selected_hive = true;
          if ((adspot['p_in_h']) && (ab_jsondata[field]["display_pending_adstrips"]!=1)){
            for (var k=0; k < adspot['p_in_h'].length; k++) {
              if (hive_uid==adspot['p_in_h'][k]){
                in_selected_hive = false;
                break;
              }
            }
          }
          break;
        }
      }
    }
  }
  return in_selected_hive;
}

var ABDataSet = {
  debug: false,

  filter_blogs: function(widget, basic_search, for_blogs, not_with_by_keyword) {
    var ret = {};
    var focus = ab_value(widget.id+'_filter_focus');
    var politics = ab_value(widget.id+'_filter_politics');
    var stars = ab_value(widget.id+'_filter_stars');
    if (this.extra_rows!=null && stars.length>0) stars = parseInt(stars); else stars=0;
    var gender = ab_value(widget.id+'_filter_sex');
    var age = ab_value(widget.id+'_filter_age');
    if (age.length>0) {
      var age_min = parseInt(age.split('-')[0]);
      var age_max = parseInt(age.split('-')[1]);
    }
    var country = ab_value(widget.id+'_filter_country');
    var ustate = ab_value(widget.id+'_filter_state');
    var city = ab_value(widget.id+'_filter_city');
    var profession = ab_value(widget.id+'_filter_profession');
    var keywords = ab_value(widget.id+'_filter_keywords').toLowerCase();

    var selOnly = widget.showSelectedOnly;
    for(var i in this.blogs) {
      var blog = this.blogs[i];
      var sel = false;
      if ((this.adspots[i]!=undefined) && (this.adspots[i].a!=undefined)){
        for (var a = 0; a<this.adspots[i].a.length;a++){
          var adspot = this.adspots[i].a[a];
          if (selOnly && !sel && widget.selectionList[adspot.uid]) {
            sel=true;
          }
        }
      }
      if (blog['t']!=undefined){
        if (stars>0 && (this.extra_rows[blog.uid] == undefined || this.extra_rows[blog.uid]<stars)) {
          continue;
        }
        if (!sel && !basic_search) {
          if (selOnly) continue;
          if (focus.length>0 && blog['focus'].indexOf(focus)==-1) continue;
          if (politics.length>0 && blog['politics']!=politics) continue;
          if (gender.length>0 && blog['sex']!=gender) continue;
          if (country.length>0 && blog['country']!=country) continue;
          if (ustate.length>0 && blog['state']!=ustate) continue;
          if (city.length>0 && blog['city']!=city) continue;
          if (profession.length>0 && blog['profession']!=profession) continue;
          if (age.length>0 && (blog['age'] < age_min || blog['age'] > age_max)) continue;
          if ((keywords.length>=3) && (!not_with_by_keyword)){
            var search_keyword =keywords;
            var re = new RegExp(search_keyword);
            var m1 = re.exec(blog['t'].toLowerCase());
            var m2 = re.exec(blog['s'].toLowerCase());
            var m3 = re.exec(blog['u'].toLowerCase());
            if ((m1==null) && (m2==null) && (m3==null)) continue;
          }
        }
        else{
          if ((keywords.length>=3) && (!not_with_by_keyword)){
            var search_keyword =keywords;
            var re = new RegExp(search_keyword);
            var m1 = re.exec(blog['t'].toLowerCase());
            var m2 = re.exec(blog['s'].toLowerCase());
            var m3 = re.exec(blog['u'].toLowerCase());
            if ((m1==null) && (m2==null) && (m3==null)) continue;
          }
        }
        ret[blog.uid]=blog;
      }
    }
    if (this.debug) {
      var t2= new Date();
      window.status = ('filter: '+ret.length+'/'+this.rows.length+' blogs, '+(t2-t1)+' ms');
    }
    // make sure adformat display is updated
    if (ab_jsondata[widget.id]['page_type']!='hive'){
        Element.update(widget.id+'_adformat_display',ab_value(widget.id+'_select_adformat').split('|')[0]+' '+ab_value(widget.id+'_select_adformat').split('|')[1]);
    }
    return ret;
  },

  filter_adspots: function(widget, basic_search, for_blogs) {
    var ret = {};
    if (this.debug) { var t1 = new Date(); }
    var array_for_sorting = {};
    if ((ab_jsondata[widget.id]['page_type']!='hive') && ((($(widget.id+'_render_adspots')) && ($(widget.id+'_render_adspots').value=='1')) || (set_default))){
        var adformat = ab_value(widget.id+'_select_adformat').split('|')[0];
        var flash = ab_value(widget.id+'_select_adformat').split('|')[1]=='flash';
        var spec_adformat = ab_value(widget.id+'_special_adformat');
        if (spec_adformat=='1') flash=false;
        var number_of_days = 1;
        var sov_percent = 100;
        if (!$(widget.id+'_select_term').options){
          if (Place_of_Element_in_the_array(ab_jsondata[widget.id]['termnames'],ab_value(widget.id+'_select_term'))==-1){
            var termidx=4;
            var number_of_days = parseInt(ab_value(widget.id+'_select_term').replace('d',''));
            if ((Element_is_in_the_array(ab_jsondata_for_sov[widget.id]["sov_adformats_in_array"],adformat)) && (!document.getElementById('open_sov_field_of_adspots').checked) && (ab_value(widget.id+'_select_sov_percent')!=0)){
               sov_percent = ab_value(widget.id+'_select_sov_percent');
            }
          }
          else{
            var termidx = Place_of_Element_in_the_array(ab_jsondata[widget.id]['termnames'],ab_value(widget.id+'_select_term'))
          }
        }
        else{
          var termidx = $(widget.id+'_select_term').selectedIndex;
        }
    
        var sov_data = this.sov_rows;
        var selected_dates = [];
        
        if ((document.getElementById('step2_2_selector').checked) && (Element_is_in_the_array(ab_jsondata_for_sov[widget.id]["sov_adformats_in_array"],adformat))){ 
          var start_date = new Date(document.getElementById('sov_start_date_id').value);
          var term = document.getElementById(widget.id+'_select_term_for_sov').options[document.getElementById(widget.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 stars = ab_value(widget.id+'_filter_stars');
    if (this.extra_rows!=null && stars.length>0) stars = parseInt(stars); else stars=0;
    var pageviews = ab_value(widget.id+'_filter_pageviews');
    if (pageviews.length>0) pageviews = parseInt(pageviews); else pageviews=0;
    var price = ab_value(widget.id+'_filter_price');
    if (ab_value(widget.id+'_filter_optimal_position') == '1' && !basic_search){
      var optimal_position = true;
    }
    else{
      var optimal_position = false;
    }
    var selOnly = widget.showSelectedOnly;
    var page_view_limit_for_buy_ads_page = document.getElementById('pageview_limit_for_buy_ads_page')? document.getElementById('pageview_limit_for_buy_ads_page').value:500;
    var adViewLimit = (($("show_every_ad_checkbox") && $("show_every_ad_checkbox").checked) || ab_jsondata[widget.id]['page_type']=='hive') ? 0 : page_view_limit_for_buy_ads_page; // show only ads with page views above limit
    //if (price.length>0) price = parseInt(price); else price=0;
    var ads = ab_value(widget.id+'_filter_n');
    if (ads.length>0) ads = parseInt(ads); else ads=0;
    var selected_hive = $('in_hive_selector') && !basic_search ? $F('in_hive_selector') : null;
    var selection_changed = false;
    for(var i in this.adspots) {
      var sel = false;
      if (this.adspots[i].a!=undefined){
        for (var a = 0; a<this.adspots[i].a.length;a++){
            var adspot = this.adspots[i].a[a];
            var rates = adspot['r'][adformat]
            if (adspot['p'][0] < adViewLimit) {
                continue;
            }
            if ((ab_jsondata[widget.id]['page_type']!='hive') && ((($(widget.id+'_render_adspots')) && ($(widget.id+'_render_adspots').value=='1')) || (set_default))){
                if (!rates) {
                  continue;
                }
              var is_free_sov_place = 1;
              if (Element_is_in_the_array(ab_jsondata_for_sov[widget.id]["sov_adformats_in_array"],adformat)){ 
                  if (document.getElementById(widget.id+'_select_sov_percent').options[document.getElementById(widget.id+'_select_sov_percent').selectedIndex]!=undefined){
                    var selected_sov_percent = document.getElementById(widget.id+'_select_sov_percent').options[document.getElementById(widget.id+'_select_sov_percent').selectedIndex].value;
                  }
                  else{
                    var selected_sov_percent=0;
                  }
                  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 ((parseInt(selected_sov_percent)!=0) && (!document.getElementById('open_sov_field_of_adspots').checked)){
                          if ((selected_dates[selected_date_index]==sov_dates[sov_date_index][0]) && ((100-sov_dates[sov_date_index][1])<=parseInt(selected_sov_percent))){
                            is_free_sov_place=0;
                            break;
                          }
                        }
                        else{
                          if ((selected_dates[selected_date_index]==sov_dates[sov_date_index][0]) && ((100-sov_dates[sov_date_index][1])<=0)){
                            is_free_sov_place=0;
                            break;
                          }
                        }
                      }
                    }
                  }
              }
              if (!is_free_sov_place) {
                if (widget.selectionList[adspot.uid]) {
                  // not compliant with sov selection: deselect
                  delete widget.selectionList[adspot.uid];
                  selection_changed = true;
                }
                continue;
              }
              if (flash && rates[rates.length-1]>=0) {
                continue;
              }
              var real_price = rates[termidx]*number_of_days*(sov_percent/100);
              var real_price_without_sov = rates[termidx]*number_of_days;
              if (flash) {
                var mult = -rates[rates.length-1];
            
                if (mult<1) mult = 1;
                real_price= parseFloat(real_price * mult);
              }
              if (parseFloat(real_price)>999999.99){
                 continue;
              }
              if (parseFloat(real_price_without_sov)<10.00){
                 continue;
              }
          }
          else{
            adformat_counter = 0;
            for (var one_adformat in adspot.r){
              adformat_counter++;
            }
            if ((adspot['r']['Classie']!=undefined) && (adformat_counter==1)) continue;
          }
          if (selOnly && !sel && widget.selectionList[adspot.uid]) sel=true;
          if (!sel && !basic_search) {
            if (selOnly) continue;
            if (ads>0 && adspot['n']>ads) continue;
            if (pageviews>0 && adspot['p'][0]>pageviews) continue;
            if (ab_jsondata[widget.id]['page_type']!='hive'){
              if (price>0 && rates[0]>price) continue;
            }
            if (!is_adspot_in_hive(widget.id,adspot, selected_hive)) continue;
            if (optimal_position && adspot['op']!=optimal_position) continue;
          }
          if (ret[adspot.b]==undefined) ret[adspot.b] = {};
          if (ret[adspot.b]['a']==undefined) ret[adspot.b]['a'] = [];
          ret[adspot.b]['a'].push(adspot);
          if (array_for_sorting[adspot.b]==undefined) array_for_sorting[adspot.b] = [];
          if (termidx==undefined) {
            var pageviews = [];
            for (var pageview_counter=0;pageview_counter<adspot['p'].length;pageview_counter++){
                pageviews.push(adspot['p'][pageview_counter]);
            }
            pageviews.sort(function (x, y) { return parseInt(y) - parseInt(x); });
            array_for_sorting[adspot.b].push(pageviews[pageviews.length-1])
          }
          else{
            array_for_sorting[adspot.b].push(adspot['p'][termidx])
          }
        }
      }
    }
    if (this.debug) {
      var t2= new Date();
      window.status = ('filter: '+ret.length+'/'+this.rows.length+' blogs, '+(t2-t1)+' ms');
    }
    if (ab_jsondata[widget.id]['page_type']!='hive'){
        if (selection_changed) {
          widget.refreshTotals();
        }
        // make sure adformat display is updated
        Element.update(widget.id+'_adformat_display',ab_value(widget.id+'_select_adformat').split('|')[0]+' '+ab_value(widget.id+'_select_adformat').split('|')[1]);
    }
    var array_for_sorting2 = []
    for(var i in array_for_sorting) {
        array_for_sorting[i].sort(function(a,b){return b-a;});
        array_for_sorting2.push([i,array_for_sorting[i][0]]);
    }

    var tmp = Array.prototype.toString;

    Array.prototype.toString = function () {
        return this[1];
    };

    array_for_sorting2.sort(function (x, y) { return y - x; });

    Array.prototype.toString = tmp;

    return [ret,array_for_sorting2];
  },

  getObjectByUID: function(uid) {
    if (this.filtered_blogs[uid]!=undefined) return this.filtered_blogs[uid];
    else {
      for(var i in this.filtered_adspots){
        var adspots = this.filtered_adspots[i].a;
        for(var j=0; j< adspots.length; j++) {
          if (adspots[j].uid == uid) return adspots[j];
        }
      }
    }
    return null;
  },
  blogs: {},
  adspots: {},
  filtered_blogs: {},
  filtered_adspots: {},
  
  downloaded_blogs: []
}

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 Place_of_Element_in_the_array(searchedarray,searchingelement){
    for (var array_counter=0;array_counter<searchedarray.length;array_counter++){
        if (searchedarray[array_counter] == searchingelement){
            return array_counter;
        }
    }
    return -1;
}

function renderBlog_s_Header(i,blog) {
  var tbody = '<div class="' + (i%2?'e':'o') + '"><div id="'+this.id+'_blog_'+blog['uid']+'"></div></div>';
  return tbody;
}

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

function renderBlog(i,blog,elem,adspots) {
  var tbody = Array();
  if (this.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){
  var sel=true;
  if (widget.hivesel){
    if (obj['p_in_h']){
        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 trim(str, chars) {
  return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
  chars = chars || "\\s";
  return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
  chars = chars || "\\s";
  return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function onchange_event_for_adspot_sovs(obj_id,adspot_uid){
  document.getElementById(obj_id+'_selections_list_'+adspot_uid).checked=true
  for(var blog_uid in $(obj_id).dataSet.blogs){
    if($(obj_id).dataSet.adspots[blog_uid]!=undefined) {
      var blog = $(obj_id).dataSet.blogs[blog_uid];
      var adspots = $(obj_id).dataSet.adspots[blog_uid];
      if (adspots.a!=undefined){
        var len = adspots.a.length;
        for (var a=0; a < len; a++) {
          var adspot = adspots.a[a];
          if (adspot.uid==adspot_uid){
            adspot['sov'] = ab_value('adspot_sovs_'+adspot_uid);
          }
        }
      }
    }
  }
  for(var blog_uid in $(obj_id).dataSet.filtered_blogs){
    if($(obj_id).dataSet.filtered_adspots[blog_uid]!=undefined) {
      var blog = $(obj_id).dataSet.filtered_blogs[blog_uid];
      var adspots = $(obj_id).dataSet.filtered_adspots[blog_uid];
      if (adspots.a!=undefined){
        var len = adspots.a.length;
        for (var a=0; a < len; a++) {
          var adspot = adspots.a[a];
          if (adspot.uid==adspot_uid){
            adspot['sov'] = ab_value('adspot_sovs_'+adspot_uid);
          }
        }
      }
    }
  }
  $(obj_id).selectionChangeAt($(obj_id+'_selections_list_'+adspot_uid));
  var run_filter_timer= setTimeout("run_runFilter('"+obj_id+"')",delay_time_of_runFilter)
}

function renderAdspot(i,adspots,elem) {
  if ((adspots!=null) && (adspots.a!=undefined)){
    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[this.id]["page_type"]!='hive'){
          if ((ab_jsondata[this.id]["display_pending_adstrips"]) && (ab_jsondata[this.id]["display_pending_adstrips"]==1)){
            if (this.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="',this.id,'_selections:list" id="',this.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',this.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="',this.id,'_selections:list" id="',this.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',this.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="',this.id,'_selections:list" id="',this.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',this.id,'\').selectionChangeAt(this);"',(!this.selectionList[adspot.uid]?'':' checked="checked"'),'/>','</div>']);
          }
          if ((ab_jsondata[this.id]["display_pending_adstrips"]) && (ab_jsondata[this.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(this.id+'_select_adformat').split('|')[0];
          if (!$(this.id+'_select_term').options){
            if (Place_of_Element_in_the_array(ab_jsondata[this.id]['termnames'],ab_value(this.id+'_select_term'))==-1){
              var termidx=4;
              var number_of_days = parseInt(ab_value(this.id+'_select_term').replace('d',''));
              if ((!document.getElementById('open_sov_field_of_adspots').checked) && (ab_value(this.id+'_select_sov_percent')!=0)){
                sov_percent = ab_value(this.id+'_select_sov_percent');
              }
            }
            else{
              var termidx = Place_of_Element_in_the_array(ab_jsondata[this.id]['termnames'],ab_value(this.id+'_select_term'))
            }
          }
          else{
            var termidx = $(this.id+'_select_term').selectedIndex;
          }
          var adspot_sovs = ($(this.id+ "_sel_adspot_sovs").innerText!=undefined)?$(this.id+ "_sel_adspot_sovs").innerText:$(this.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[this.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(this.id+'_select_term_for_sov').options[document.getElementById(this.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(this.id+'_select_sov_percent').disabled = 'disabled';
            document.getElementById('sov_header_text').innerHTML = 'SOV';
    
            var sov_percent_field_html = '<select name="'+this.id+'_adspot_sovs.'+adspot.uid+':record" id="adspot_sovs_'+adspot.uid+'" style="font-size: 11px;" onchange="onchange_event_for_adspot_sovs(\''+this.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
              }
              if (disabled=='') 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(this.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 ($(this.id+'_selections_'+adspot.uid)){
            Element.remove(this.id+'_selections_'+adspot.uid);
          }
    
          if ((ab_jsondata[this.id]["display_pending_adstrips"]) && (ab_jsondata[this.id]["display_pending_adstrips"]==1)){
            if (this.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[this.id]["display_pending_adstrips"]) && (ab_jsondata[this.id]["display_pending_adstrips"]==1)){
            if (this.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="',this.id,'_selections:list" id="',this.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',this.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="',this.id,'_selections:list" id="',this.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',this.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="',this.id,'_selections:list" id="',this.id,'_selections_list_',adspot.uid,'" value="',adspot.uid,'" onclick="return $(\'',this.id,'\').selectionChangeAt(this);"',(!this.selectionList[adspot.uid]?'':' checked="checked"'),'/>','</div>']);
          }
          if ((ab_jsondata[this.id]["display_pending_adstrips"]) && (ab_jsondata[this.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 ($(this.id+'_selections_'+adspot.uid)){
            Element.remove(this.id+'_selections_'+adspot.uid);
          }
    
          var pv = Math.round(adspot.p[0]);
          if ((ab_jsondata[this.id]["display_pending_adstrips"]) && (ab_jsondata[this.id]["display_pending_adstrips"]==1)){
            if (this.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 renderHiddenAdspots() {
  var sel_keys = this.selectionList.keys();
  var rows = this.getAdspots();
  var tbody = Array();
  var counter = 0;
  for (var i=0; i < sel_keys.length; i++) {
    if (!($(this.id+'_selections_list_'+sel_keys[i]))){
      tbody = tbody.concat(['<input type="hidden" name="',this.id,'_selections:list" value="',sel_keys[i],'" id="',this.id,'_selections_',sel_keys[i],'"/>']);
    }
  }
  return tbody.join('');
}

function renderNoBlogs() {
  return '<tr><td colspan="4" class="f">No blogs found matching your criteria</td></tr>';
}

function get_ad_type_radio_button_value(counter){
  var subradio_value = '';
  var subradio_length = eval("document.edit_form.step1_" + counter + "_subradio.length");
  for (i=0;i<subradio_length;i++)
  {
      if (eval("document.edit_form.step1_" + counter + "_subradio["+i+"].checked") == true)
      {
             subradio_value = eval("document.edit_form.step1_" + counter + "_subradio["+i+"].value");
      }
  }
  return subradio_value;
}

function get_ad_type_radio_button(counter){
  var subradio = '';
  var subradio_length = eval("document.edit_form.step1_" + counter + "_subradio.length");
  for (i=0;i<subradio_length;i++)
  {
      if (eval("document.edit_form.step1_" + counter + "_subradio["+i+"].checked") == true)
      {
             subradio = eval("document.edit_form.step1_" + counter + "_subradio["+i+"]");
      }
  }
  return subradio;
}

function get_selected_ad_type_radio_button(number_of_buttons,obj_id){
  for(var i=0;i<number_of_buttons;i++){
    if (document.getElementById('step1_'+i+'_subradio')){
      li_s = Element.childElements('step1_'+i+'_subradio');
      for(var j=0;j<li_s.length;j++){
        if (Element.childElements(li_s[j])[0].checked) return Element.childElements(li_s[j])[0].value;
      }
    }
  }
  return document.getElementById(obj_id+'_select_adformat').value;
}

function get_ad_term_radio_button_value(radio_buttons_name){
  var subradio_value = '';
  var subradio_length = eval("document.edit_form."+ radio_buttons_name + ".length");
  for (i=0;i<subradio_length;i++)
  {
      if (eval("document.edit_form." + radio_buttons_name+ "["+i+"].checked") == true)
      {
             subradio_value = eval("document.edit_form." + radio_buttons_name+ "["+i+"].value");
      }
  }
  return subradio_value;
}

function run_runFilter(obj_id){
  $(obj_id).refreshTotals();
  $(obj_id).runFilter();
  clearTimeout(run_filter_timer);
}

function hidden_all_subradio_buttons(number_of_buttons,obj_id){
  for(var i=0;i<number_of_buttons;i++){
    if (document.getElementById('step1_'+i+'_subradio')){
        Element.hide('step1_'+i+'_subradio');
        li_s = Element.childElements('step1_'+i+'_subradio');
        for(var j=0;j<li_s.length;j++){
          Element.childElements(li_s[j])[0].checked=false;
        }
    }
  }
}

function onchange_event_for_ad_type_selection(obj_id,radio_button_id,number_of_ad_types,number_of_current_ad_type){
  Element.addClassName($('step1Container'), 'step1Container_active');
  Element.removeClassName($('step2Container'), 'step2Container_active');
  var filteredadspots = {};
  var filteredblogs = {};
  
  termsel = $('step2Container').getElementsBySelector('input[name="term_sel_radio_buttons"]');
  var there_is_a_selected = 0;
  for (var i=0;i<termsel.length;i++){
    termsel[i].disabled = false;
    if (termsel[i].checked) there_is_a_selected=1;
  }
  if (!there_is_a_selected){
    for (var i=0;i<termsel.length;i++){
      termsel[i].checked = true;
      break;
    }
  }
  var there_is_a_selected = 0;
  if (document.getElementById(radio_button_id+'_subradio')){
      var children = Element.childElements(document.getElementById(radio_button_id+'_subradio'));
      for(var i=0;i<children.length;i++){
        if ((children[i].id!='') && (document.getElementById(children[i].id+'_checkbox').checked)) there_is_a_selected=1;
      }
  }
  if ((!there_is_a_selected) && (document.getElementById(radio_button_id+'_subradio'))){
      var children = Element.childElements(document.getElementById(radio_button_id+'_subradio'));
      for(var i=0;i<children.length;i++){
        if (children[i].id!='') {
          document.getElementById(children[i].id+'_checkbox').checked = true;
          break;
        }
      }
  }
  if ($(obj_id).selectionList.keys().length>0){
    var current_selected_ad_type = get_selected_ad_type_radio_button(number_of_ad_types,obj_id);
    var current_selected_media_type = current_selected_ad_type.split('|')[1];
    var old_adformat = document.getElementById(obj_id+'_select_adformat').value;
    //this is the expected new ad format
    var formated_expected_adformat_first_part = document.getElementById(radio_button_id+'_label').textContent;
    
    if (document.getElementById(radio_button_id+'_subradio')){
        var children = Element.childElements(document.getElementById(radio_button_id+'_subradio'));
        for(var i=0;i<children.length;i++){
          if ((children[i].id!='') && (document.getElementById(children[i].id+'_checkbox').value==(document.getElementById(radio_button_id).value+'|'+current_selected_media_type))){
            var formated_expected_adformat_second_part = document.getElementById(children[i].id+'_label').textContent;
            break;
          }
        }
    }
    
    document.getElementById(obj_id+'_select_adformat').value=document.getElementById(radio_button_id).value+'|'+current_selected_media_type;
    if ($($(obj_id).id+'_filter_keywords') && ($($(obj_id).id+'_filter_keywords').value!='')){
      filteredblogs = $(obj_id).dataSet.filter_blogs($(obj_id), true, false, true);
      filteredadspots = $(obj_id).dataSet.filter_adspots($(obj_id), true, false)[0];
    }
    else{
      filteredblogs = $(obj_id).dataSet.filter_blogs($(obj_id), false, false, true);
      filteredadspots = $(obj_id).dataSet.filter_adspots($(obj_id), false, false)[0];
    }
    
    document.getElementById(obj_id+'_select_adformat').value=old_adformat;
    
    var filtered_adspots_uid = Array();

    for(var blog_uid in filteredblogs){
      if(filteredadspots[blog_uid]!=undefined) {
        var adspots = filteredadspots[blog_uid];
        if (adspots.a!=undefined){
            var len = adspots.a.length;
            for (var a=0; a < len; a++) {
              var adspot = adspots.a[a];
              filtered_adspots_uid.push(adspot.uid);
            }
        }
      }
    }
    var missed_adspot = Array();
    var missed_adspot = Array();
    for (var i=0; i < $(obj_id).selectionList.keys().length; i++) {
      if (!Element_is_in_the_array(filtered_adspots_uid,$(obj_id).selectionList.keys()[i])){
        missed_adspot.push($(obj_id).selectionList.keys()[i]);
      }
    }
    var blogs_adspots_names = '';
    if (missed_adspot.length>0){
      for(var i=0;i<missed_adspot.length;i++){
        for(var blog_uid in $(obj_id).dataSet.blogs){
          if($(obj_id).dataSet.adspots[blog_uid]!=undefined) {
            var blog = $(obj_id).dataSet.blogs[blog_uid];
            var adspots = $(obj_id).dataSet.adspots[blog_uid];
            if (adspots.a!=undefined){
                var len = adspots.a.length;
                for (var a=0; a < len; a++) {
                  var adspot = adspots.a[a];
                  if (adspot.uid==missed_adspot[i]){
                    blogs_adspots_names+=blog.t+':'+adspot.t+'\n';
                  }
                }
            }
          }
        }
      }
      if (confirm('Warning: These ad strips do not offer the '+formated_expected_adformat_first_part+' '+formated_expected_adformat_second_part+' ad:\n'+blogs_adspots_names+' \nIf you would like to change your ad type, you will lose these selections.')){
        var checkboxes = document.getElementsByName(obj_id+'_selections:list');
        for (var i=0;i<checkboxes.length;i++){
          if (Element_is_in_the_array(missed_adspot,checkboxes[i].value)){
            checkboxes[i].checked = false;
            delete $(obj_id).selectionList[checkboxes[i].value];
          }
        }
        var current_selected_ad_type = get_selected_ad_type_radio_button(number_of_ad_types,obj_id);
        var current_selected_media_type = current_selected_ad_type.split('|')[1];
        
        hidden_all_subradio_buttons(number_of_ad_types,obj_id);
        
        var subradio_buttons = document.getElementsByName('step1_'+number_of_current_ad_type+'_subradio');

        for(var i=0;i<subradio_buttons.length;i++){
          if ((subradio_buttons[i].value!=null) && (subradio_buttons[i].value.split('|')[1] ==current_selected_media_type)){
            subradio_buttons[i].checked = true;
            break;
          }
        }
        
        if (document.getElementById('step1_'+number_of_current_ad_type+'_subradio')) document.getElementById('step1_'+number_of_current_ad_type+'_subradio').style.display='block';

        if (Element_is_in_the_array(ab_jsondata_for_sov[obj_id]["sov_adformats_in_array"],document.getElementById(radio_button_id).value.split('|')[0])){
            document.getElementById(obj_id+'_select_adformat').value=document.getElementById(radio_button_id).value;
            document.getElementById(obj_id+'_special_adformat').value = '1';
            Element.removeClassName($('step1Container'), 'step1Container_active');
            Element.removeClassName($('step2Container_for_not_blogads'), 'opaque');
            Element.removeClassName($('step2Container_for_not_blogads_headline'), 'opaque');
            Element.addClassName($('step2Container_for_not_blogads'), 'step2Container_active');
            Element.removeClassName($('arrowContainer3'), 'arrow-bottom');
            Element.addClassName($('arrowContainer3'), 'arrow-middle');
            Element.hide('step2Container');
            Element.show('step2Container_for_not_blogads');
            Element.show('step3Container_sov');
            Element.show('arrowContainer5');
            Element.show('arrowContainer4');
            document.getElementById('step3Container_headline').innerHTML = 'STEP 4 - SELECT BLOGS';
            document.getElementById(obj_id+'_select_term').value=document.getElementById(obj_id+'_select_term_for_sov').options[document.getElementById(obj_id+'_select_term_for_sov').selectedIndex].value;
            controlCalendar(obj_id);
        } else {
            document.getElementById(obj_id+'_select_adformat').value=get_ad_type_radio_button_value(number_of_current_ad_type);
            if (document.getElementById(obj_id+'_select_term').value.indexOf('d')!=-1){
              if (parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))<=7){
                var new_term_blogads = '1w';
              }
              else if ((parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))>7) && (parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))<21)){
                var new_term_blogads = '2w';
              }
              else if (parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))>=21) {
                var new_term_blogads = '1m';
              }
              var subradio_length = eval("document.edit_form.term_sel_radio_buttons.length");
              for (i=0;i<subradio_length;i++)
              {
                if (eval("document.edit_form.term_sel_radio_buttons["+i+"].value") == new_term_blogads)
                {
                   document.edit_form.term_sel_radio_buttons[i].checked = true;
                }
              }
            }
            document.getElementById(obj_id+'_select_term').value=get_ad_term_radio_button_value('term_sel_radio_buttons');
            document.getElementById(obj_id+'_special_adformat').value = '0';
            Element.removeClassName($('step1Container'), 'step1Container_active');
            Element.removeClassName($('step2Container'), 'opaque');
            Element.removeClassName($('step2Container_headline'), 'opaque');
            Element.addClassName($('step2Container'), 'step2Container_active');
            Element.removeClassName($('arrowContainer3'), 'arrow-middle');
            Element.addClassName($('arrowContainer3'), 'arrow-bottom');
            Element.hide('step2Container_for_not_blogads');
            Element.show('step2Container');
            document.getElementById('step3Container_headline').innerHTML = 'STEP 3 - SELECT BLOGS';
            Element.hide('step3Container_sov');
            Element.hide('arrowContainer5');
            Element.hide('arrowContainer4');
        }
        if (document.getElementById('progress_o_meter')){
          var progometer = document.getElementById('progress_o_meter');
          var li_s = Element.childElements(progometer);
  
          for(var i=0;i<li_s.length;i++){
            if (Element.hasClassName(li_s[i],'current')){
              Element.removeClassName(li_s[i],'current');
              Element.addClassName(li_s[i],'unseen');
            }
            if (li_s[i].innerHTML.toLowerCase()=='duration/sov'){
              Element.removeClassName(li_s[i],'unseen');
              Element.addClassName(li_s[i],'current');
            }
          }
        }

        document.getElementById(obj_id+'_render_adspots').value='1';
        var run_filter_timer= setTimeout("run_runFilter('"+obj_id+"')",delay_time_of_runFilter)

        return true;
      }
      else{
        return false;
      }
    }
    else{
        var current_selected_ad_type = get_selected_ad_type_radio_button(number_of_ad_types,obj_id);
        var current_selected_media_type = current_selected_ad_type.split('|')[1];
        
        hidden_all_subradio_buttons(number_of_ad_types,obj_id);
        
        var subradio_buttons = document.getElementsByName('step1_'+number_of_current_ad_type+'_subradio');

        for(var i=0;i<subradio_buttons.length;i++){
          if ((subradio_buttons[i].value!=null) && (subradio_buttons[i].value.split('|')[1] ==current_selected_media_type)){
            subradio_buttons[i].checked = true;
            break;
          }
        }
        
        if (document.getElementById('step1_'+number_of_current_ad_type+'_subradio')) document.getElementById('step1_'+number_of_current_ad_type+'_subradio').style.display='block';

        if (Element_is_in_the_array(ab_jsondata_for_sov[obj_id]["sov_adformats_in_array"],document.getElementById(radio_button_id).value.split('|')[0])){
            document.getElementById(obj_id+'_select_adformat').value=document.getElementById(radio_button_id).value;
            document.getElementById(obj_id+'_special_adformat').value = '1';
            Element.removeClassName($('step1Container'), 'step1Container_active');
            Element.removeClassName($('step2Container_for_not_blogads'), 'opaque');
            Element.removeClassName($('step2Container_for_not_blogads_headline'), 'opaque');
            Element.addClassName($('step2Container_for_not_blogads'), 'step2Container_active');
            Element.removeClassName($('arrowContainer3'), 'arrow-bottom');
            Element.addClassName($('arrowContainer3'), 'arrow-middle');
            Element.hide('step2Container');
            Element.show('step2Container_for_not_blogads');
            Element.show('step3Container_sov');
            Element.show('arrowContainer5');
            Element.show('arrowContainer4');
            document.getElementById('step3Container_headline').innerHTML = 'STEP 4 - SELECT BLOGS';
            document.getElementById(obj_id+'_select_term').value=document.getElementById(obj_id+'_select_term_for_sov').options[document.getElementById(obj_id+'_select_term_for_sov').selectedIndex].value;
            controlCalendar(obj_id);
        } else {
            document.getElementById(obj_id+'_select_adformat').value=get_ad_type_radio_button_value(number_of_current_ad_type);
            if (document.getElementById(obj_id+'_select_term').value.indexOf('d')!=-1){
              if (parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))<=7){
                var new_term_blogads = '1w';
              }
              else if ((parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))>7) && (parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))<21)){
                var new_term_blogads = '2w';
              }
              else if (parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))>=21) {
                var new_term_blogads = '1m';
              }
              var subradio_length = eval("document.edit_form.term_sel_radio_buttons.length");
              for (i=0;i<subradio_length;i++)
              {
                if (eval("document.edit_form.term_sel_radio_buttons["+i+"].value") == new_term_blogads)
                {
                   document.edit_form.term_sel_radio_buttons[i].checked = true;
                }
              }
            }
            document.getElementById(obj_id+'_select_term').value=get_ad_term_radio_button_value('term_sel_radio_buttons');
            document.getElementById(obj_id+'_special_adformat').value = '0';
            Element.removeClassName($('step1Container'), 'step1Container_active');
            Element.removeClassName($('step2Container'), 'opaque');
            Element.removeClassName($('step2Container_headline'), 'opaque');
            Element.addClassName($('step2Container'), 'step2Container_active');
            Element.removeClassName($('arrowContainer3'), 'arrow-middle');
            Element.addClassName($('arrowContainer3'), 'arrow-bottom');
            Element.hide('step2Container_for_not_blogads');
            Element.show('step2Container');
            document.getElementById('step3Container_headline').innerHTML = 'STEP 3 - SELECT BLOGS';
            Element.hide('step3Container_sov');
            Element.hide('arrowContainer5');
            Element.hide('arrowContainer4');
        }
        if (document.getElementById('progress_o_meter')){
          var progometer = document.getElementById('progress_o_meter');
          var li_s = Element.childElements(progometer);
  
          for(var i=0;i<li_s.length;i++){
            if (Element.hasClassName(li_s[i],'current')){
              Element.removeClassName(li_s[i],'current');
              Element.addClassName(li_s[i],'unseen');
            }
            if (li_s[i].innerHTML.toLowerCase()=='duration/sov'){
              Element.removeClassName(li_s[i],'unseen');
              Element.addClassName(li_s[i],'current');
            }
          }
        }

        document.getElementById(obj_id+'_render_adspots').value='1';
        var run_filter_timer= setTimeout("run_runFilter('"+obj_id+"')",delay_time_of_runFilter)

        return true;
    }
  }
  else{
    var current_selected_ad_type = get_selected_ad_type_radio_button(number_of_ad_types,obj_id);
    var current_selected_media_type = current_selected_ad_type.split('|')[1];
    if ((current_selected_media_type==undefined) || (current_selected_media_type=='')){
      var current_selected_media_type = 'jpg/gif';
    }
    
    hidden_all_subradio_buttons(number_of_ad_types,obj_id);
    
    var subradio_buttons = document.getElementsByName('step1_'+number_of_current_ad_type+'_subradio');
    
    for(var i=0;i<subradio_buttons.length;i++){
      if ((subradio_buttons[i].value!=null) && (subradio_buttons[i].value.split('|')[1] ==current_selected_media_type)){
        subradio_buttons[i].checked = true;
        break;
      }
    }
    
    if (document.getElementById('step1_'+number_of_current_ad_type+'_subradio')) document.getElementById('step1_'+number_of_current_ad_type+'_subradio').style.display='block';

    if (Element_is_in_the_array(ab_jsondata_for_sov[obj_id]["sov_adformats_in_array"],document.getElementById(radio_button_id).value.split('|')[0])){
        document.getElementById(obj_id+'_select_adformat').value=document.getElementById(radio_button_id).value;
        document.getElementById(obj_id+'_special_adformat').value = '1';
        Element.removeClassName($('step1Container'), 'step1Container_active');
        Element.removeClassName($('step2Container_for_not_blogads'), 'opaque');
        Element.removeClassName($('step2Container_for_not_blogads_headline'), 'opaque');
        Element.addClassName($('step2Container_for_not_blogads'), 'step2Container_active');
        Element.removeClassName($('arrowContainer3'), 'arrow-bottom');
        Element.addClassName($('arrowContainer3'), 'arrow-middle');
        Element.hide('step2Container');
        Element.show('step2Container_for_not_blogads');
        Element.show('step3Container_sov');
        Element.show('arrowContainer5');
        Element.show('arrowContainer4');
        document.getElementById('step3Container_headline').innerHTML = 'STEP 4 - SELECT BLOGS';
        document.getElementById(obj_id+'_select_term').value=document.getElementById(obj_id+'_select_term_for_sov').options[document.getElementById(obj_id+'_select_term_for_sov').selectedIndex].value;
        controlCalendar(obj_id);
    } else {
        document.getElementById(obj_id+'_select_adformat').value=get_ad_type_radio_button_value(number_of_current_ad_type);
        if (document.getElementById(obj_id+'_select_term').value.indexOf('d')!=-1){
          if (parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))<=7){
            var new_term_blogads = '1w';
          }
          else if ((parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))>7) && (parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))<21)){
            var new_term_blogads = '2w';
          }
          else if (parseInt(document.getElementById(obj_id+'_select_term').value.replace('d',''))>=21) {
            var new_term_blogads = '1m';
          }
          var subradio_length = eval("document.edit_form.term_sel_radio_buttons.length");
          for (i=0;i<subradio_length;i++)
          {
            if (eval("document.edit_form.term_sel_radio_buttons["+i+"].value") == new_term_blogads)
            {
               document.edit_form.term_sel_radio_buttons[i].checked = true;
            }
          }
        }
        document.getElementById(obj_id+'_select_term').value=get_ad_term_radio_button_value('term_sel_radio_buttons');
        document.getElementById(obj_id+'_special_adformat').value = '0';
        Element.removeClassName($('step1Container'), 'step1Container_active');
        Element.removeClassName($('step2Container'), 'opaque');
        Element.removeClassName($('step2Container_headline'), 'opaque');
        Element.addClassName($('step2Container'), 'step2Container_active');
        Element.removeClassName($('arrowContainer3'), 'arrow-middle');
        Element.addClassName($('arrowContainer3'), 'arrow-bottom');
        Element.hide('step2Container_for_not_blogads');
        Element.show('step2Container');
        document.getElementById('step3Container_headline').innerHTML = 'STEP 3 - SELECT BLOGS';
        Element.hide('step3Container_sov');
        Element.hide('arrowContainer5');
        Element.hide('arrowContainer4');
    }
    if (document.getElementById('progress_o_meter')){
      var progometer = document.getElementById('progress_o_meter');
      var li_s = Element.childElements(progometer);
    
      for(var i=0;i<li_s.length;i++){
        if (Element.hasClassName(li_s[i],'current')){
          Element.removeClassName(li_s[i],'current');
          Element.addClassName(li_s[i],'unseen');
        }
        if (li_s[i].innerHTML.toLowerCase()=='duration/sov'){
          Element.removeClassName(li_s[i],'unseen');
          Element.addClassName(li_s[i],'current');
        }
      }
    }
    
    document.getElementById(obj_id+'_render_adspots').value='1';
    var run_filter_timer= setTimeout("run_runFilter('"+obj_id+"')",delay_time_of_runFilter)

    return true;
  }
  return true;
}

function onchange_event_for_media_type_selection(obj_id,number_of_selected_ad_type,number_of_ad_types,radio_button_id){
  var filteredadspots = {};
  var filteredblogs = {};
 
  var current_selected_ad_type = get_ad_type_radio_button_value(number_of_selected_ad_type);
  var current_selected_media_type = current_selected_ad_type.split('|')[1];
  if (current_selected_media_type=='flash' && document.getElementById('show_flash_warning') && document.getElementById('show_flash_warning').value=='1') {
    alert("Flash ads are thoroughly reviewed before they can run. You can expect your ad to be approved within 3 business days. For faster approval, please submit a jpg/gif image instead of flash.");
  }
  if ($(obj_id).selectionList.keys().length>0){
    var current_selected_ad_type = get_ad_type_radio_button_value(number_of_selected_ad_type);
    var current_selected_media_type = current_selected_ad_type.split('|')[1];
    var old_adformat = document.getElementById(obj_id+'_select_adformat').value;
    //this is the expected new ad format
    var formated_expected_adformat_first_part = document.getElementById(radio_button_id+'_label').textContent;
    var formated_expected_adformat_second_part = document.getElementById(get_ad_type_radio_button(number_of_selected_ad_type).id.replace('_checkbox','')+'_label').textContent;
    
    document.getElementById(obj_id+'_select_adformat').value=current_selected_ad_type;
    if ($($(obj_id).id+'_filter_keywords') && ($($(obj_id).id+'_filter_keywords').value!='')){
      filteredblogs = $(obj_id).dataSet.filter_blogs($(obj_id), true, false, true);
      filteredadspots = $(obj_id).dataSet.filter_adspots($(obj_id), true, false)[0];
    }
    else{
      filteredblogs = $(obj_id).dataSet.filter_blogs($(obj_id), false, false, true);
      filteredadspots = $(obj_id).dataSet.filter_adspots($(obj_id), false, false)[0];
    }
    
    document.getElementById(obj_id+'_select_adformat').value=old_adformat;
    
    var filtered_adspots_uid = Array();

    for(var blog_uid in filteredblogs){
      if(filteredadspots[blog_uid]!=undefined) {
        var adspots = filteredadspots[blog_uid];
        if (adspots.a!=undefined){
            var len = adspots.a.length;
            for (var a=0; a < len; a++) {
              var adspot = adspots.a[a];
              filtered_adspots_uid.push(adspot.uid);
            }
        }
      }
    }
    var missed_adspot = Array();
    for (var i=0; i < $(obj_id).selectionList.keys().length; i++) {
      if (!Element_is_in_the_array(filtered_adspots_uid,$(obj_id).selectionList.keys()[i])){
        missed_adspot.push($(obj_id).selectionList.keys()[i]);
      }
    }
    var blogs_adspots_names = '';
    if (missed_adspot.length>0){
      for(var i=0;i<missed_adspot.length;i++){
        for(var blog_uid in $(obj_id).dataSet.blogs){
          if($(obj_id).dataSet.adspots[blog_uid]!=undefined) {
            var blog = $(obj_id).dataSet.blogs[blog_uid];
            var adspots = $(obj_id).dataSet.adspots[blog_uid];
            if (adspots.a!=undefined){
                var len = adspots.a.length;
                for (var a=0; a < len; a++) {
                  var adspot = adspots.a[a];
                  if (adspot.uid==missed_adspot[i]){
                    blogs_adspots_names+=blog.t+':'+adspot.t+'\n';
                  }
                }
            }
          }
        }
      }
      if (confirm('Warning: These ad strips do not offer the '+formated_expected_adformat_first_part+' '+formated_expected_adformat_second_part+' ad:\n'+blogs_adspots_names+' \nIf you would like to change your ad type, you will lose these selections.')){
        var checkboxes = document.getElementsByName(obj_id+'_selections:list');
        for (var i=0;i<checkboxes.length;i++){
          if (Element_is_in_the_array(missed_adspot,checkboxes[i].value)){
            checkboxes[i].checked = false;
            delete $(obj_id).selectionList[checkboxes[i].value];
          }
        }

        document.getElementById(obj_id+'_select_adformat').value=get_ad_type_radio_button_value(number_of_selected_ad_type);
        Element.removeClassName($('step1Container'), 'step1Container_active');
        Element.removeClassName($('step2Container'), 'opaque');
        Element.removeClassName($('step2Container_headline'), 'opaque');
        Element.addClassName($('step2Container'), 'step2Container_active');

        if (document.getElementById('progress_o_meter')){
          var progometer = document.getElementById('progress_o_meter');
          var li_s = Element.childElements(progometer);

          for(var i=0;i<li_s.length;i++){
            if (Element.hasClassName(li_s[i],'current')){
              Element.removeClassName(li_s[i],'current');
              Element.addClassName(li_s[i],'unseen');
            }
            if (li_s[i].innerHTML.toLowerCase()=='duration/sov'){
              Element.removeClassName(li_s[i],'unseen');
              Element.addClassName(li_s[i],'current');
            }
          }
        }
        
        if (document.getElementById(obj_id+'_select_term').value!=''){
          document.getElementById(obj_id+'_render_adspots').value='1';
          var run_filter_timer= setTimeout("run_runFilter('"+obj_id+"')",delay_time_of_runFilter)
        }
        return true;
      }
      else{
        return false;
      }
    }
    else{
      document.getElementById(obj_id+'_select_adformat').value=get_ad_type_radio_button_value(number_of_selected_ad_type);
      Element.removeClassName($('step1Container'), 'step1Container_active');
      Element.removeClassName($('step2Container'), 'opaque');
      Element.removeClassName($('step2Container_headline'), 'opaque');
      Element.addClassName($('step2Container'), 'step2Container_active');

      if (document.getElementById('progress_o_meter')){
        var progometer = document.getElementById('progress_o_meter');
        var li_s = Element.childElements(progometer);

        for(var i=0;i<li_s.length;i++){
          if (Element.hasClassName(li_s[i],'current')){
            Element.removeClassName(li_s[i],'current');
            Element.addClassName(li_s[i],'unseen');
          }
          if (li_s[i].innerHTML.toLowerCase()=='duration/sov'){
            Element.removeClassName(li_s[i],'unseen');
            Element.addClassName(li_s[i],'current');
          }
        }
      }

      if (document.getElementById(obj_id+'_select_term').value!=''){
        document.getElementById(obj_id+'_render_adspots').value='1';
        var run_filter_timer= setTimeout("run_runFilter('"+obj_id+"')",delay_time_of_runFilter)
      }
      return true;
    }
  }
  else{
    document.getElementById(obj_id+'_select_adformat').value=get_ad_type_radio_button_value(number_of_selected_ad_type);
    Element.removeClassName($('step1Container'), 'step1Container_active');
    Element.removeClassName($('step2Container'), 'opaque');
    Element.removeClassName($('step2Container_headline'), 'opaque');
    Element.addClassName($('step2Container'), 'step2Container_active');

    if (document.getElementById('progress_o_meter')){
      var progometer = document.getElementById('progress_o_meter');
      var li_s = Element.childElements(progometer);

      for(var i=0;i<li_s.length;i++){
        if (Element.hasClassName(li_s[i],'current')){
          Element.removeClassName(li_s[i],'current');
          Element.addClassName(li_s[i],'unseen');
        }
        if (li_s[i].innerHTML.toLowerCase()=='duration/sov'){
          Element.removeClassName(li_s[i],'unseen');
          Element.addClassName(li_s[i],'current');
        }
      }
    }

    if (document.getElementById(obj_id+'_select_term').value!=''){
      document.getElementById(obj_id+'_render_adspots').value='1';
      var run_filter_timer= setTimeout("run_runFilter('"+obj_id+"')",delay_time_of_runFilter)
    }
    return true;
  }
}

function onchange_event_for_ad_term_selection(obj_id){
  document.getElementById(obj_id+'_select_term').value=get_ad_term_radio_button_value('term_sel_radio_buttons');
  Element.removeClassName($('arrowContainer1'), 'trans1');
  Element.removeClassName($('arrowContainer2'), 'trans2');
  Element.removeClassName($('arrowContainer3'), 'trans3');
  Element.removeClassName($('step3Container'), 'opaque');
  Element.removeClassName($('step3Container_headline'), 'opaque');
  Element.removeClassName($('step2Container'), 'step2Container_active');
  Element.removeClassName(obj_id+'_ab_sortby','opaque');
  Element.removeClassName(obj_id,'opaque');
  if ($(obj_id+'_advanced_link')) $(obj_id+'_advanced_link').onclick=function(){return ab_toggle_advanced(obj_id);};
  if ($(obj_id+'_filter_keywords')) Form.Element.enable($(obj_id+'_filter_keywords'));
  if ($(obj_id+'_filter_focus')) Form.Element.enable($(obj_id+'_filter_focus'));
  
  if (document.getElementById('progress_o_meter')){
    var progometer = document.getElementById('progress_o_meter');
    var li_s = Element.childElements(progometer);
    var isSOVPresent = !$('step2Container').visible();
    for(var i=0;i<li_s.length;i++){
      if (Element.hasClassName(li_s[i],'current')){
        Element.removeClassName(li_s[i],'current');
        Element.addClassName(li_s[i],'unseen');
      }
      if (isSOVPresent) {
          if (li_s[i].innerHTML.toLowerCase().indexOf('duration/sov')!=-1){
            Element.removeClassName(li_s[i],'unseen');
            Element.addClassName(li_s[i],'current');
          }
      } else {
          if (li_s[i].innerHTML.toLowerCase().indexOf('select blogs')!=-1){
            Element.removeClassName(li_s[i],'unseen');
            Element.addClassName(li_s[i],'current');
          }
      }
    }
  }
  if (document.getElementById(obj_id+'_select_adformat').value!=''){
    document.getElementById(obj_id+'_render_adspots').value='1';
    var run_filter_timer= setTimeout("run_runFilter('"+obj_id+"')",delay_time_of_runFilter)
  }
}

function onchange_event_for_sov_ad_term_selection(obj_id){
  document.getElementById(obj_id+'_select_term').value=ab_value(obj_id+'_select_term_for_sov');
  Element.removeClassName($('arrowContainer1'), 'trans1');
  Element.removeClassName($('arrowContainer2'), 'trans2');
  Element.removeClassName($('arrowContainer3'), 'trans3');
  Element.removeClassName($('step3Container'), 'opaque');
  Element.removeClassName($('step3Container_headline'), 'opaque');
  Element.removeClassName($('step2Container'), 'step2Container_active');
  Element.removeClassName(obj_id+'_ab_sortby','opaque');
  Element.removeClassName(obj_id,'opaque');
  if ($(obj_id+'_advanced_link')) $(obj_id+'_advanced_link').onclick=function(){return ab_toggle_advanced(obj_id);};
  if ($(obj_id+'_filter_keywords')) Form.Element.enable($(obj_id+'_filter_keywords'));
  if ($(obj_id+'_filter_focus')) Form.Element.enable($(obj_id+'_filter_focus'));
  
  if (document.getElementById('progress_o_meter')){
    var progometer = document.getElementById('progress_o_meter');
    var li_s = Element.childElements(progometer);
    var isSOVPresent = !$('step2Container').visible();
    for(var i=0;i<li_s.length;i++){
      if (Element.hasClassName(li_s[i],'current')){
        Element.removeClassName(li_s[i],'current');
        Element.addClassName(li_s[i],'unseen');
      }
      if (isSOVPresent) {
          if (li_s[i].innerHTML.toLowerCase().indexOf('duration/sov')!=-1){
            Element.removeClassName(li_s[i],'unseen');
            Element.addClassName(li_s[i],'current');
          }
      } else {
          if (li_s[i].innerHTML.toLowerCase().indexOf('select blogs')!=-1){
            Element.removeClassName(li_s[i],'unseen');
            Element.addClassName(li_s[i],'current');
          }
      }
    }
  }
  if (document.getElementById(obj_id+'_select_adformat').value!=''){
    document.getElementById(obj_id+'_render_adspots').value='1';
    var run_filter_timer= setTimeout("run_runFilter('"+obj_id+"')",delay_time_of_runFilter)
  }
}

function onchange_event_for_sov_selection(obj_id){
  if (document.getElementById('progress_o_meter')){
    var progometer = document.getElementById('progress_o_meter');
    var li_s = Element.childElements(progometer);
    for(var i=0;i<li_s.length;i++){
      if (Element.hasClassName(li_s[i],'current')){
        Element.removeClassName(li_s[i],'current');
        Element.addClassName(li_s[i],'unseen');
      }
      if (li_s[i].innerHTML.toLowerCase().indexOf('select blogs')!=-1){
        Element.removeClassName(li_s[i],'unseen');
        Element.addClassName(li_s[i],'current');
      }
    }
  }
  if (document.getElementById(obj_id+'_select_adformat').value!=''){
    document.getElementById(obj_id+'_render_adspots').value='1';
    var run_filter_timer= setTimeout("run_runFilter('"+obj_id+"')",delay_time_of_runFilter)
  }
}

function onchange_event_for_select_term_for_sov(obj_id){
  document.getElementById(obj_id+'_select_term').value=ab_value(obj_id+'_select_term_for_sov');
  onchange_event_for_sov_selection(obj_id);
}

function there_are_selected_adstrips_for_ad_duration(obj_id){
  Element.removeClassName($('step1Container'), 'step1Container_active');
  Element.addClassName($('step2Container'), 'step2Container_active');
  $(obj_id).refreshTotals();
  return true;
}

function Open_sov_fields_of_adspots(obj_id){
  if ((document.getElementById('open_sov_field_of_adspots')) && (document.getElementById('open_sov_field_of_adspots').checked)){
      document.getElementById(obj_id+'_select_sov_percent').disabled = 'disabled';
      document.getElementById('sov_header_text').innerHTML = 'SOV';
  }
  else if (document.getElementById('open_sov_field_of_adspots')){
      document.getElementById('sov_header_text').innerHTML = '';
      document.getElementById(obj_id+'_select_sov_percent').disabled = '';
  }
  onchange_event_for_sov_selection(obj_id);
}

function maximize_step1Container(){
  document.getElementById('step1Container').style.display='block';
  document.getElementById('step1Container_minimize').style.display='none';
}

function minimize_step1Container(){
  document.getElementById('step1Container').style.display='none';
  document.getElementById('step1Container_minimize').style.display='block';
}

function renderBlogHeader() {
  var data = ab_jsondata[this.id];
  var data_for_sov = ab_jsondata_for_sov[this.id];
  if ((ab_jsondata[this.id]["display_pending_adstrips"]) && (ab_jsondata[this.id]["display_pending_adstrips"]==1)){
    if (data['page_type']!='hive'){
      var thead = ['<div class="adspots"><div><div class="ab_header"><div class="adspot_title">'];
    }
    else{
      var thead = ['<div class="adspots"><div><div class="ab_header"><div class="adspot_title" style="width:50%">'];
    }
  }
  else{
    var thead = ['<div class="adspots"><div><div class="ab_header"><div class="adspot_title_without_state_in_header">'];
  }
  if (data['page_type']!='hive'){
      var thead2= ['<div class="arrow-middle" id="arrowContainer1">'];
      thead2 = thead2.concat(['<input type="hidden" id="',this.id,'_special_adformat" value="0" name="',this.id,'_special_adformat" >']);
      thead2 = thead2.concat(['<div id="',this.id,'_term_display" style="display:none',';">&nbsp;</div>','<div class="step1Container_active" id="step1Container_minimize" style="display:','none',';">','<h3>STEP 1 - AD TYPE&nbsp;&nbsp[<a href="javascript:void(0)" onclick="maximize_step1Container()" id="maximize_button">+</a>]</h3></div>','<div class="step1Container_active" id="step1Container" style="display:','block',';">','<h3>STEP 1 - AD TYPE&nbsp&nbsp;[<a href="javascript:void(0)" onclick="minimize_step1Container()" id="minimize_button">&mdash;</a>]</h3>']);
      var new_adformat_name_first_part = $H({});
      var new_adformat_name_second_part = $H({});
      for(var i=0; i< data['adformats_in_array'].length; i++) {
          if (!(new_adformat_name_first_part[data['adformats_in_array'][i][4]])){
              new_adformat_name_first_part[data['adformats_in_array'][i][4]] = [data['adformats_in_array'][i][1],data['adformats_in_array'][i][3].replace('char','chars text'),data['adformats_in_array'][i][0]];
          }
          if (!(new_adformat_name_second_part[data['adformats_in_array'][i][4]])){
              new_adformat_name_second_part[data['adformats_in_array'][i][4]] = [[data['adformats_in_array'][i][2],data['adformats_in_array'][i][5],data['adformats_in_array'][i][6]]];
          }
          else{
              new_adformat_name_second_part[data['adformats_in_array'][i][4]].push([data['adformats_in_array'][i][2],data['adformats_in_array'][i][5],data['adformats_in_array'][i][6]]);
          }
      }
      
      var counter = 0;
      var last_group_name = '';
      for(var i=0; i< new_adformat_name_first_part.keys().length; i++) {
        if (last_group_name != new_adformat_name_first_part[new_adformat_name_first_part.keys()[i]][2]){
         thead2 = thead2.concat(['<label class="ad_unit_group">',new_adformat_name_first_part[new_adformat_name_first_part.keys()[i]][2],'</label>']);
        }
//        if (Element_is_in_the_array(data['sov_adformats_in_array'],new_adformat_name_first_part.keys()[i])) var sov_is_enabled = '<input type="hidden" id ="'+new_adformat_name_first_part.keys()[i]+'" value="1" name="'+new_adformat_name_first_part.keys()[i]+'">';
//        else var sov_is_enabled = '<input type="hidden" id ="'+new_adformat_name_first_part.keys()[i]+'" value="0" name="'+new_adformat_name_first_part.keys()[i]+'">';
        var sov_is_enabled = '';
        
        if (new_adformat_name_second_part[new_adformat_name_first_part.keys()[i]][0][0]!=''){
          if (new_adformat_name_first_part[new_adformat_name_first_part.keys()[i]][1]!=''){
            thead2 = thead2.concat(['<input id="step1_',i,'" type="radio" value="',new_adformat_name_first_part.keys()[i],'" name="adformats_radiobuttons" onclick="return onchange_event_for_ad_type_selection(\'',this.id,'\',\'step1_',i,'\',',new_adformat_name_first_part.keys().length,',',i,');">',sov_is_enabled,'&nbsp;&nbsp;<label id="step1_',i,'_label">',new_adformat_name_first_part[new_adformat_name_first_part.keys()[i]][0],'<span>','+ ',new_adformat_name_first_part[new_adformat_name_first_part.keys()[i]][1],'</span>','</label>']);
          }
          else{
            thead2 = thead2.concat(['<input id="step1_',i,'" type="radio" value="',new_adformat_name_first_part.keys()[i],'" name="adformats_radiobuttons" onclick="return onchange_event_for_ad_type_selection(\'',this.id,'\',\'step1_',i,'\',',new_adformat_name_first_part.keys().length,',',i,');">',sov_is_enabled,'&nbsp;&nbsp;<label id="step1_',i,'_label">',new_adformat_name_first_part[new_adformat_name_first_part.keys()[i]][0],'<span></span>','</label>']);
          }
          thead2 = thead2.concat(['<ul class="subRadio1" id="step1_',i,'_subradio"><li><div id="progressArrow2"></div></li>']);
          for(var j=0;j<new_adformat_name_second_part[new_adformat_name_first_part.keys()[i]].length;j++){
            thead2 = thead2.concat(['<li id="step1_',i,'_subradio_',j,'"><input type="radio" id="step1_',i,'_subradio_',j,'_checkbox" name="step1_',i,'_subradio" value="',data['adformatnames'][counter],'" onclick="return onchange_event_for_media_type_selection(\'',this.id,'\',',i,',',new_adformat_name_first_part.keys().length,',\'step1_',i,'\')">','&nbsp;&nbsp;<label id="step1_',i,'_subradio_',j,'_label">',new_adformat_name_second_part[new_adformat_name_first_part.keys()[i]][j][1].replace('(swf)',''),' ',new_adformat_name_second_part[new_adformat_name_first_part.keys()[i]][j][0],'</label></li>']);
            counter++;
          }
          thead2 = thead2.concat(['</ul>']);
        }
        else{
          if (new_adformat_name_first_part[new_adformat_name_first_part.keys()[i]][1]!=''){
            thead2 = thead2.concat(['<input id="step1_',i,'" type="radio" value="',new_adformat_name_first_part.keys()[i],'|flash','" name="adformats_radiobuttons" onclick="return onchange_event_for_ad_type_selection(\'',this.id,'\',\'step1_',i,'\',',new_adformat_name_first_part.keys().length,',',i,');">',sov_is_enabled,'&nbsp;&nbsp;<label id="step1_',i,'_label">',new_adformat_name_first_part[new_adformat_name_first_part.keys()[i]][0],'<span>','+ ',new_adformat_name_first_part[new_adformat_name_first_part.keys()[i]][1],'</span>','</label>']);
          }
          else{
            thead2 = thead2.concat(['<input id="step1_',i,'" type="radio" value="',new_adformat_name_first_part.keys()[i],'|flash','" name="adformats_radiobuttons" onclick="return onchange_event_for_ad_type_selection(\'',this.id,'\',\'step1_',i,'\',',new_adformat_name_first_part.keys().length,',',i,');">',sov_is_enabled,'&nbsp;&nbsp;<label id="step1_',i,'_label">',new_adformat_name_first_part[new_adformat_name_first_part.keys()[i]][0],'<span></span>','</label>']);
          }
        }
        last_group_name = new_adformat_name_first_part[new_adformat_name_first_part.keys()[i]][2];
      }
      thead2 = thead2.concat(['<input type="hidden" id="',this.id,'_select_adformat" name="',data['adformatcontrol'],'" value="">','</div>','</div>']);
      thead2 = thead2.concat(['<div class="arrow-middle" id="arrowContainer2">','<div id="progressArrow1"></div>','</div>']);
      thead2 = thead2.concat(['<div class="arrow-bottom" id="arrowContainer3">','<div class="" id="step2Container">','<h3 class="" id="step2Container_headline">STEP 2 - DURATION</h3><ul>']);
      for(var i=0; i< data['termnames'].length; i++) {
        var checked = ' ';
        thead2 = thead2.concat(['<li class="radioDuration"><input disabled="DISABLED" type="radio" value="',data['termnames'][i],'"',checked,'name="term_sel_radio_buttons" onclick="return onchange_event_for_ad_term_selection(\'',this.id,'\');">','<label>&nbsp;&nbsp;',data['terms'][data['termnames'][i]],'</label></li>']);
      }
      thead2 = thead2.concat(['</ul><input type="hidden" id="',this.id,'_select_term" name="',this.id,'_term_selector" value=""></div>']);
      thead2 = thead2.concat(['<div id="step2Container_for_not_blogads" style="display:none">','<h3 class="" id="step2Container_for_not_blogads_headline">STEP 2 - DURATION</h3>']);
      thead2 = thead2.concat(['<select style="font-size:11px" id="',this.id,'_select_term_for_sov" name="',this.id,'_term_selector_for_sov" onchange="return onchange_event_for_select_term_for_sov(\'',this.id,'\');">']);
      for(var i=0; i< data_for_sov['sov_termnames'].length; i++) {
        thead2 = thead2.concat(['<option value="',data_for_sov['sov_termnames'][i],'">',data_for_sov['sov_terms'][data_for_sov['sov_termnames'][i]],'</option>']);
      }
      thead2 = thead2.concat(['</select>']);
      thead2 = thead2.concat(['<div>']);
      thead2 = thead2.concat(['<input type="radio" id="step2_1_selector" checked name="running_selector" onclick="return onchange_event_for_sov_ad_term_selection(\'',this.id,'\');" value="asap">','&nbsp;&nbsp;<label>Run when space is<span class="indentedSpan">available</span></label>']);
      thead2 = thead2.concat(['<input type="radio" id="step2_2_selector" name="running_selector" onclick="return onchange_event_for_sov_ad_term_selection(\'',this.id,'\');" value="certain_date">','&nbsp;&nbsp;<label>Choose start dates</label>']);
      thead2 = thead2.concat(['</div>']);
      thead2 = thead2.concat(['<div><div id="sov_start_date"><input type="hidden" id="sov_start_date_id" name="sov_start_date" value=""></div></div>']);
      thead2 = thead2.concat(['</div>']);
      thead2 = thead2.concat(['</div>']);
      thead2 = thead2.concat(['<div class="arrow-middle" id="arrowContainer4" style="display:none;">','<div id="progressArrow1"></div>','</div>']);
      thead2 = thead2.concat(['<div class="arrow-bottom" id="arrowContainer5" style="display:none;">','<div id="step3Container_sov" style="display:none;">','<h3 class="" id="step3Container_sov_headline">STEP 3 - SOV</h3>']);
      thead2 = thead2.concat(['<select style="font-size:11px" disabled="disabled" id="',this.id,'_select_sov_percent" name="',this.id,'_sov_percent_selector"','onchange="return onchange_event_for_sov_selection(\'',this.id,'\');">']);
      for(var i=100; i>=10; i-=10) {
        thead2 = thead2.concat(['<option value="',i,'">',i,'%</option>']); 
      }
      thead2 = thead2.concat(['</select>']);
      thead2 = thead2.concat(['<div><input type="checkbox" checked="checked" onclick="Open_sov_fields_of_adspots(\'',this.id,'\')" id="open_sov_field_of_adspots" name="open_sov_field_of_adspots" value="1">&nbsp;&nbsp;I want to select <span class="indentedSpan">SOV on a per-blog</span> <span class="indentedSpan">basis</span><div>']);
      thead2 = thead2.concat(['</div>', '</div>']);
      
      $('baOrderALaCarteLeftSidebar').innerHTML=thead2.join('');
      if ((ab_jsondata[this.id]["display_pending_adstrips"]) && (ab_jsondata[this.id]["display_pending_adstrips"]==1)){
        thead = thead.concat(['<div id="',this.id,'_adformat_display" style="display:','none',';margin-left:110px;float:left;">&nbsp;</div>','</div><div class="adspot_select">&nbsp;</div><div class="adspot_price">Price</div><div class="adspot_pv">est. Impressions</div><div class="adspot_cpm">~CPM</div><div class="adspot_state">State</div><div id="sov_header_text" class="adspot_sov"></div>']);
      }
      else{
        thead = thead.concat(['<div id="',this.id,'_adformat_display" style="display:','none',';margin-left:110px;float:left;">&nbsp;</div>','</div><div class="adspot_select">&nbsp;</div><div class="adspot_price">Price</div><div class="adspot_pv">est. Impressions</div><div class="adspot_cpm">~CPM</div><div id="sov_header_text" class="adspot_sov"></div>']);
      }
  }
  else{
      Element.hide('baOrderALaCarteLeftSidebar');
      if ((ab_jsondata[this.id]["display_pending_adstrips"]) && (ab_jsondata[this.id]["display_pending_adstrips"]==1)){
        thead = thead.concat(['</div><div class="adspot_pv">~est. Impressions</div><div class="adspot_state">State</div>']);
      }
      else{
        thead = thead.concat(['<div class="adspot_pv">est. Impressions</div>']);
      }
  }
  return thead.join('');
}

function selectionChangeAt(ckbox) {
  var checkbox_aux = $(this.id+'_checkbox_aux');
  // alter selection list
  if (ckbox.checked) {
    // expand selection
    if (this.selectionList.keys().length == 0) {
      // lock down adformat
      var flash = ab_value(this.id+'_select_adformat').split('|')[1] == 'flash';
      if (($(this.id+'_adformat_selector')) && ($(this.id+'_adformat_display'))){
        Element.update(this.id+'_adformat_display',ab_value(this.id+'_select_adformat').split('|')[0]+' '+ab_value(this.id+'_select_adformat').split('|')[1]);
      }
      if (!this.lockAdformat) {
        if (($(this.id+'_adformat_selector')) && ($(this.id+'_adformat_display'))){
          $(this.id+'_adformat_selector').style.display = 'none';
          $(this.id+'_adformat_display').style.display = 'block';
        }
      }
    }
    var adspot = this.dataSet.getObjectByUID(ckbox.value);
    this.selectionList[ckbox.value] = adspot;
    checkbox_aux.value = '1';
  } else {
    // narrow selection
    delete this.selectionList[ckbox.value];
    if ((this.selectionList.keys().length == 0) && !this.lockAdformat) {
      if (($(this.id+'_adformat_selector')) && ($(this.id+'_adformat_display'))){
        // unlock adformat
        $(this.id+'_adformat_display').style.display = 'none';
        $(this.id+'_adformat_selector').style.display = 'block';
      }
    }
    checkbox_aux.value = '0';
  }
  // refresh totals
  this.refreshTotals();

  return true;
}

function refreshTotals() {
  var num = this.selectionList.keys().length;
  if (num>1){
    Element.update(this.id+'_infoNumAdspots_posttext','s');
  }
  else{
    Element.update(this.id+'_infoNumAdspots_posttext','');
  }
  Element.update(this.id+'_infoNumAdspots',num.toString());
  var pvs = 0;
  var price = 0.00;
  if (ab_jsondata[this.id]['page_type']!='hive'){
    var adformat = ab_value(this.id+'_select_adformat').split('|')[0];
    var flash = ab_value(this.id+'_select_adformat').split('|')[1] == 'flash';
    var number_of_days = 1;
    var sov_percent = 100;
    var sov_from_adspot = 100;
    if (!$(this.id+'_select_term').options){
      if (Place_of_Element_in_the_array(ab_jsondata[this.id]['termnames'],ab_value(this.id+'_select_term'))==-1){
        var termidx=4;
        var number_of_days = parseInt(ab_value(this.id+'_select_term').replace('d',''));
        if ((!document.getElementById('open_sov_field_of_adspots').checked) && (ab_value(this.id+'_select_sov_percent')!=0)){
          sov_percent = ab_value(this.id+'_select_sov_percent');
        }
      }
      else{
        var termidx = Place_of_Element_in_the_array(ab_jsondata[this.id]['termnames'],ab_value(this.id+'_select_term'))
      }
    }
    else{
      var termidx = $(this.id+'_select_term').selectedIndex;
    }
  }
  var adspots = this.selectionList.values();
  for(var i=0; i< num; i++) {
    if (ab_jsondata[this.id]['page_type']!='hive'){
        if (adspots[i].r[adformat]) {
          var i_sov_percent = adspots[i].sov && document.getElementById('open_sov_field_of_adspots').checked?adspots[i].sov:sov_percent;
          var rates = adspots[i].r[adformat];
          var aprice = rates[termidx]*number_of_days*(i_sov_percent/100);
          if (flash) {
            var mult = -rates[rates.length-1];
            if (mult<1) mult=1;
            aprice = parseFloat(aprice * mult);
          }
          price += aprice;
          pvs += Math.round(adspots[i].p[termidx]*number_of_days*(i_sov_percent/100));
        }
    }
    else{
        pvs += Math.round(adspots[i].p[0]*7);
    }
  }
  Element.update(this.id+'_infoTotalPvs',pvs.humanreadable());
  if (ab_jsondata[this.id]['page_type']!='hive'){
      Element.update(this.id+'_infoTotalPrice',price.humanreadable());
      if (document.getElementById(this.id+'_infoTotalPriceMini')) {
        Element.update(this.id+'_infoTotalPriceMini', '$' + price.humanreadable());
      }
  }
}

function ab_unselect_adspots(field) {
  var ws = $(field);
  if (ws.selectionList.keys().length>0){
    if (!confirm('Careful! You will lose all your selections. Do you want to continue?')) return false;
    ws.selectionList = $H({});
    ws.redrawPane();
    if (!ws.lockAdformat) {
      // unlock adformat
      if (($(field+'_adformat_display')) && ($(field+'_adformat_selector'))){
        $(field+'_adformat_display').style.display = 'none';
        $(field+'_adformat_selector').style.display = 'block';
      }
    }
    ws.refreshTotals();
  }
  return false;
}

function ab_toggle_advanced(field) {
  var adiv = $(field+'_advanced_filters');
  adiv.style.display = (adiv.style.display=='block'?'none':'block');
  return false;
}

function ab_reset_advanced(field) {
  var filters = $$('div#'+field+'_advanced_filters select');
  for(var i=0;i < filters.length; i++) {
    filters[i].selectedIndex = 0;
  }
  filters = $$('div#'+field+'_advanced_filters input');
  for(var i=0;i < filters.length; i++) {
    filters[i].value = '';
  }
  return false;
}

function ab_advancedFilter(field,advanced_filter_close){
  if (advanced_filter_close=='1'){
    ab_toggle_advanced(field);
    if (document.getElementById($(field).id+'_render_rest_of_blogs')) document.getElementById($(field).id+'_render_rest_of_blogs').value=1;
    $(field).runFilter();
    return false;
  }
  else if (advanced_filter_close=='0'){
    if (document.getElementById($(field).id+'_render_rest_of_blogs')) document.getElementById($(field).id+'_render_rest_of_blogs').value=1;
    $(field).runFilterNonOptimal();
  }
  else {
    if (document.getElementById($(field).id+'_render_rest_of_blogs')) document.getElementById($(field).id+'_render_rest_of_blogs').value=1;
    $(field).runFilter();
  }
}

function ab_toggleShowSelected(field) {
  var ws = $(field);
  ws.showSelectedOnly = !ws.showSelectedOnly;
  if ($(field+'_showSelectedButton').src){
    $(field+'_showSelectedButton').src = !ws.showSelectedOnly ? 'showonlyselectedblogs.png' : 'showallblogs.png';
  }
  else{
    Element.update(field+"_showSelectedButton", !ws.showSelectedOnly ? 'Show only selected blogs' : 'Show all blogs');
  }
  $(field).runFilter();
  return false;
}

function ab_toggleShowDetails(field) {
  var ws = $(field);
  ws.showDetails = !ws.showDetails;
  if ($(field+'_showDetailsButton').src){
    $(field+'_showDetailsButton').src = ws.showDetails ? 'condensedview.png' : 'showblogdetails.png';
  }
  else{
    Element.update(field+"_showDetailsButton", ws.showDetails ? 'Hide blog details' : 'Show blog details');
  }
  $(field).redrawPane();
  return false;
}

function ab_progress(field,label,percent) {
  if (label=='') {
    $(field+'_progress').style.visibility = 'hidden';
    $(field+'_progress_bar').style.width = '0px';
  } else {
    if (label!=null) Element.update(field+'_progress_label',label);
    if (percent!=null) $(field+'_progress_bar').style.width = percent.toString()+'%';
    $(field+'_progress').style.visibility = 'visible';
  }
}

function ab_processAJAXResults(field,data) {
  var xdata = Array();
  for (var i=0;i < data.length; i++) {
    var row = data[i];
    xdata[row['uid']]=row;
  }
  var ws = $(field);
  ws.dataSet.blogs = xdata;
  ws.dataSet.filtered_blogs = xdata;

  // set preselected adspot uids
  var adseldiv = $(field + "_sel_adspots");
  var hiveseldiv = $(field + "_sel_hives");

  try {
    var adsel = (adseldiv.innerText!=undefined)?adseldiv.innerText.split(','):adseldiv.textContent.split(',');
    var hivesel = (hiveseldiv.innerText!=undefined)?hiveseldiv.innerText.split(','):hiveseldiv.textContent.split(',');
    if (hivesel){
      ws.hivesel = hivesel;
    }
    for(var i=0;i< adsel.length; i++) {
      var as = ws.dataSet.getObjectByUID(adsel[i]);
      if (as!=null){
        var sel = true;
        if ((as['p_in_h']) && (ws.hivesel) && (ab_jsondata[field]["display_pending_adstrips"]!=1)){
          for (var k=0; k < as['p_in_h'].length; k++) {
            for (var l=0; l<ws.hivesel.length; l++){
              if (ws.hivesel[l]==as['p_in_h'][k]){
                sel=false;
              }
            }
          }
        }
        if (sel){
          ws.selectionList[adsel[i]]= as;
        }
      }
    }
    if (!ws.lockAdformat && (ws.selectionList.keys().length>0)) {
      // lock down adformat
      if (ab_jsondata[field]["page_type"]!='hive'){
        Element.update(ws.id+'_adformat_display',ab_value(ws.id+'_select_adformat').split('|')[0]+' '+ab_value(ws.id+'_select_adformat').split('|')[1]);
        if (($(ws.id+'_adformat_selector')) && ($(ws.id+'_adformat_display'))){
          $(ws.id+'_adformat_selector').style.display = 'none';
          $(ws.id+'_adformat_display').style.display = 'block';
        }
      }
    }
  } catch(e) { }
//  ws.refreshTotals();

  var mininetworks_ad_buy_1 = this.query.indexOf("mininetworks_ad_buy_1") != -1;
  var oriEmptyRow = ws.renderEmptyRow;
  if (mininetworks_ad_buy_1) {
      ws.renderEmptyRow = '<tr><td colspan="4" class="f"></td></tr>'; // temporary so that the list appears empty after first phase
  }
  ws.runFilter_for_blogs();
  if (mininetworks_ad_buy_1) {
      ws.renderEmptyRow = oriEmptyRow;
  }
}

function sov_of_adspot_processAJAXResults(field,sov_data) {
  var ws = $(field);
  for (var i=0;i < sov_data.length; i++) {
    if (sov_data[i]!=undefined){
      var row = sov_data[i];
      ws.dataSet.sov_rows[row['uid']] = row['sov'];
    }
  }
  
  for(var one_adspot_id in ws.dataSet.sov_rows){
    if (one_adspot_id!='undefined'){
      var adspot_sovs = ws.dataSet.sov_rows[one_adspot_id];
      var all_sov_rows = [];
      
      for (var i=0;i<adspot_sovs.length;i++){
          var my_date = new Date(adspot_sovs[i][0]);
          if (i<adspot_sovs.length-1){
            var next_date = new Date(adspot_sovs[i+1][0]);
          }
          else{
            var next_date = my_date;
            all_sov_rows.push([next_date.toLocaleDateString(),adspot_sovs[i][1]])
          }
          
          for(var mydate=my_date;mydate<next_date;mydate.setDate(mydate.getDate()+1)){
            all_sov_rows.push([mydate.toLocaleDateString(),adspot_sovs[i][1]])
          }
      }
      ws.dataSet.sov_rows[one_adspot_id] = all_sov_rows;
    }
  }
}

function sov_of_adspot_rendering(field){
  var ws = $(field);
  
  var headers = [];
  if (ab_jsondata[field]['suppress_browser_cache']!=0) {
    headers = [ "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ];
  }
  var params = '';
  if (ab_jsondata[field]["lto"]!='no') { params += (params==''?'':'&') + 'lto='+ab_jsondata[field]["lto"]; }
  if (!ab_jsondata[field]["suppress_inactive"]) { params += (params==''?'':'&') + 'suppress_inactive=0'; }
  if (ab_jsondata[field]["pv_limit"]!='') { params += (params==''?'':'&') + 'pv_limit='+ab_jsondata[field]["pv_limit"]; }
  if (ab_jsondata[field]["page_type"]!='') { params += (params==''?'':'&') + 'page_type='+ab_jsondata[field]["page_type"]; }
  
  new Ajax.Request(ab_jsondata[field]["datasource3"], {
      method: 'get',
      parameters: params,
      requestHeaders: headers,
      onSuccess: function(resp, jsonObj) {
        var data3 = eval(resp.responseText);
        sov_of_adspot_processAJAXResults(field,data3.response);
      },
      onFailure: function() {
        alert('The sov of adspot data isn\'t available');
      }
    });
}

function adspot_processAJAXResults(field) {
  var ws = $(field);
  for (var i=0;i < data.length; i++) {
    var row = data[i];
    if (ws.dataSet.adspots[row['b']]==undefined){
        ws.dataSet.adspots[row['b']] = {};
    }
    if (ws.dataSet.filtered_adspots[row['b']]==undefined){
        ws.dataSet.filtered_adspots[row['b']] = {};
    }
    if (ws.dataSet.adspots[row['b']]['a']==undefined){
        ws.dataSet.adspots[row['b']]['a'] = [];
    }
    if (ws.dataSet.filtered_adspots[row['b']]['a']==undefined){
        ws.dataSet.filtered_adspots[row['b']]['a'] = [];
    }
    ws.dataSet.adspots[row['b']]['a'].push(row);
    ws.dataSet.filtered_adspots[row['b']]['a'].push(row);
  }
  ws.dataSet.adspots_empty = false;
  ws.adspots_empty = false;
  
  // set preselected adspot uids
  var adseldiv = $(field + "_sel_adspots");
  var hiveseldiv = $(field + "_sel_hives");

  try {
    var adsel = (adseldiv.innerText!=undefined)?adseldiv.innerText.split(','):adseldiv.textContent.split(',');
    var hivesel = (hiveseldiv.innerText!=undefined)?hiveseldiv.innerText.split(','):hiveseldiv.textContent.split(',');
    if (hivesel){
      ws.hivesel = hivesel;
    }
    for(var i=0;i< adsel.length; i++) {
      var as = ws.dataSet.getObjectByUID(adsel[i]);
      if (as!=null){
        var sel = true;
        if ((as['p_in_h']) && (ws.hivesel) && (ab_jsondata[field]["display_pending_adstrips"]!=1)){
          for (var k=0; k < as['p_in_h'].length; k++) {
            for (var l=0; l<ws.hivesel.length; l++){
              if (ws.hivesel[l]==as['p_in_h'][k]){
                sel=false;
              }
            }
          }
        }
        if (sel){
          ws.selectionList[adsel[i]]= as;
        }
      }
    }
    if (!ws.lockAdformat && (ws.selectionList.keys().length>0) && (ab_jsondata[field]["page_type"]!='hive')) {
        // lock down adformat
        Element.update(ws.id+'_adformat_display',ab_value(ws.id+'_select_adformat').split('|')[0]+' '+ab_value(ws.id+'_select_adformat').split('|')[1]);
        if (($(ws.id+'_adformat_selector')!=null) && ($(ws.id+'_adformat_display')!=null)){
          $(ws.id+'_adformat_selector').style.display = 'none';
          $(ws.id+'_adformat_display').style.display = 'block';
        }
    }
  } catch(e) { }

  ws.refreshTotals();

  ws.runFilter();

  if ($(field+'_filter_pageviews')) { Form.Element.enable(field+'_filter_pageviews'); }
  if ($(field+'_filter_price')) { Form.Element.enable(field+'_filter_price'); }
  if ($(field+'_filter_n')) { Form.Element.enable(field+'_filter_n'); }
  if ($(field+'_filter_optimal_position')) { Form.Element.enable(field+'_filter_optimal_position'); }
  if (ab_jsondata[field]["page_type"]!='hive') {
    if (ab_jsondata[field]["page_type"]!='replicate_ad') {
        adformats = $('step1Container').getElementsBySelector('input[name="adformats_radiobuttons"]');
        for (var i=0;i<adformats.length;i++){
          adformats[i].disabled = false;
        }
        if ($('step1_0_subradio')){
          mediatypes = $('step1_0_subradio').getElementsBySelector('input[name="step1_0_subradio"]');
          for (var i=0;i<mediatypes.length;i++){
            mediatypes[i].disabled = false;
          }
        }
        if (set_default){
          termsel = $('step2Container').getElementsBySelector('input[name="term_sel_radio_buttons"]');
          for (var i=0;i<termsel.length;i++){
            termsel[i].disabled = false;
          }
        }
    }
  }
}

function ab_get_in_hive_options(hives_data) {
  var hive_dropdown_options = Array();
  hive_dropdown_options.push('<option value="">Any</option>');
    for (var i = 0; i < hives_data.length; i++) {
	var row = hives_data[i];
	var hive_title = row['t'];
	// hive titles can be very long
	// take the first 4 words only
	var hive_abbr_title = get_n_words(hive_title, 4);
	// hive_abbr_title = hive_title;
	hive_dropdown_options.push('<option value="' + row['uid'] + '">' + hive_abbr_title + '</option>');
    }
    return hive_dropdown_options.join('');
}

function ab_fill_hive_selector() {
  var hive_dropdown_options = $('in_hive_selector').options;
  if ( 1 == hive_dropdown_options.length  ) {
      $('in_hive_selector').disable();
      new Ajax.Request('ba_mininetworksfolder_data_json', {
	  method: 'get',
	  parameters: 'pv_limit=top',
	  onSuccess: function(resp, jsonObj) {
	      var data = eval(resp.responseText); //FIXME: this.evalResponse();
	      var hive_options = ab_get_in_hive_options(data.response);
              var hive_selector_html = [];
              hive_selector_html.push('<select id="in_hive_selector" name="in_hive" multiple="multiple" size="3">');
              hive_selector_html.push(hive_options);
              hive_selector_html.push('</select>');
              Element.update('in_hive_selector_container', hive_selector_html.join(''));
	      $('in_hive_selector').enable();
	  },
	  onFailure: function() {
	      alert('An error happened during fetching data from remote server.\n Please try again later.');
	  }
      });
  }
}

function getAbsoluteTop(objectId)
{
// Get an object top position from the upper left viewport corner
// Tested with relative and nested objects
o = document.getElementById(objectId)
oTop = o.offsetTop            // Get top position from the parent object
while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
oParent = o.offsetParent  // Get parent object reference
oTop += oParent.offsetTop // Add parent top position
o = oParent
}
// Return top position
return oTop
}

function getAbsoluteLeft(objectId)
{
// Get an object top position from the upper left viewport corner
// Tested with relative and nested objects
o = document.getElementById(objectId)
oLeft = o.offsetLeft            // Get top position from the parent object
while(o.offsetParent!=null) { // Parse the parent hierarchy up to the document element
oParent = o.offsetParent  // Get parent object reference
oLeft += oParent.offsetLeft // Add parent top position
o = oParent
}
// Return top position
return oLeft
}

function toCalendarString(date) {
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    if (day < 10) {
        day = '0' + day;
    }
    if (month < 10) {
        month = '0' + month;
    }
    return year.toString() + month.toString() + day.toString();
}

function createCalendar(firstDay, lastDay, obj_id) {
    var opts = {
        formElements: {"sov_start_date_id": "m-sl-d-sl-Y"},
        hideInput: true,
        staticPos: true,
        fillGrid: true,
        constrainSelection: true,
        rangeLow: toCalendarString(firstDay),
        rangeHigh: toCalendarString(lastDay),
        callbackFunctions: {'dateset': [function(){setDurationDays(obj_id);}]},
        finalOpacity: 100
    };
    datePickerController.createDatePicker(opts);
}

function destroyCalendar() {
    datePickerController.destroyDatePicker("sov_start_date_id");
}

function setDurationDays(obj_id) {
    var currentDate = datePickerController.getSelectedDate("sov_start_date_id");
    if (currentDate) {
        var duration = parseInt($(obj_id+'_select_term_for_sov').value);
        var currentDateMillisec = Date.UTC(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(),23,59,59) + utcoffset;
        days = new Array();
        for (var i=0; i<duration; i++) {
            var actDateMillisec = currentDateMillisec + i * 86400000; // 1 day in millisec
            var actDate = new Date(actDateMillisec);
            days.push(toCalendarString(actDate));
        }
        datePickerController.setDurationDays("sov_start_date_id", days);
        onchange_event_for_sov_selection(obj_id);
    }
}

function getFirstSelectableDate() {
    var today = new Date();
    var todayMillisec = Date.UTC(today.getFullYear(), today.getMonth(), today.getDate()) + utcoffset;
    var tomorrowMillisec = todayMillisec + 86400000; // 1 day in millisec
    return new Date(tomorrowMillisec);
}

function getLastSelectableDate(obj_id) {
    var today = new Date();
    var todayMillisec = Date.UTC(today.getFullYear(), today.getMonth(), today.getDate()) + utcoffset;
    var oneMonthMillisec = todayMillisec + 29*86400000; // 29*1 day in millisec
    if ((document.getElementById(obj_id+'_is_admin')) && (document.getElementById(obj_id+'_is_admin').value=='True') && (need_stars)) var oneMonthMillisec = todayMillisec + 365*86400000; // 365*1 day in millisec for admins
    return new Date(oneMonthMillisec);
}

function controlCalendar(obj_id) {
    if ($('step2_2_selector').checked) {
        var firstDay = getFirstSelectableDate();
        var lastDay = getLastSelectableDate(obj_id);
        if (!document.getElementById('fd-sov_start_date_id')){
          createCalendar(firstDay, lastDay, obj_id);
        }
        if (!$('sov_start_date_id').value) {
            datePickerController.setSelectedDate("sov_start_date_id", toCalendarString(firstDay));
        }
        setDurationDays(obj_id);
    } else {
        destroyCalendar();
    }
}

function ab_initPage(field,bShowSelectedOnly,bShowDetails,bLockTerm,bLockAdformat) {

  var myData = new Object;
  var is_adspots_list=0;

  var seladspots = ($(field + "_sel_adspots").innerText!=undefined)?$(field + "_sel_adspots").innerText.split(','):$(field + "_sel_adspots").textContent.split(',');
  if ((seladspots.length>0) && (seladspots[0]!=undefined) && (seladspots[0]!='')) is_adspots_list=1;

  Object.extend(myData,ABDataSet);
  myData.blogs = {};
  myData.adspots = {};
  myData.adspots_empty = true;
  myData.filtered_blogs = {};
  myData.filtered_adspots = {};
  myData.sorted_blogs = [];
  myData.downloaded_blogs = {};
  myData.extra_rows = null;
  myData.sov_rows = {};
  var ws = $(field);
  Object.extend(ws,ABWidget);
  ws.renderBlogs = renderBlog;
  ws.renderBlogsHeader = renderBlog_s_Header;
  ws.renderAdspots = renderAdspot;
  ws.renderEmptyRow = renderNoBlogs;
  ws.renderHeader = renderBlogHeader;
  ws.renderHiddenSelection = renderHiddenAdspots;
  ws.dataSet = myData;

  ws.showSelectedOnly = bShowSelectedOnly || false;
  ws.showDetails = bShowDetails || false;
  ws.lockTerm = bLockTerm || false;
  ws.lockAdformat = bLockAdformat || false;
  ws.display_pending_adstrips = ab_jsondata[field]["display_pending_adstrips"];

  ws.selectionList = $H({});
  ws.selectionChangeAt = selectionChangeAt;
  ws.refreshTotals = refreshTotals;
  ws.hivesel = Array();

  ws.initialize();

  // initialise term and adformat selectors
  if (ab_jsondata[field]["page_type"]!='hive'){
      var term = ($(field + "_sel_term").innerText!=undefined)?$(field + "_sel_term").innerText:$(field + "_sel_term").textContent;
      if ((term!=undefined) && (term!='')) set_default=1;
      var term_selector = $(field + "_select_term");
      var termidx = 0;
      if (term_selector.options) {
        for(termidx=term_selector.options.length-1;termidx >= 0;termidx--) {
          if (term_selector.options[termidx].value == term) break;
        }
        term_selector.selectedIndex = termidx;
      }
      else{
        if (set_default){
          term_sels = document.getElementsByName('term_sel_radio_buttons');
          var is_checked_radio_button = false;
          for(var j=0;j<term_sels.length;j++){
            if (term_sels[j].value==term){
              term_sels[j].checked=true;
              is_checked_radio_button = true;
            }
            Form.Element.enable(term_sels[j]);
          }
          if (!is_checked_radio_button){
            term_sels[0].checked=true;
          }
          term_selector.value=term;
          Element.removeClassName($('step2Container'), 'opaque');
          Element.removeClassName($('step2Container_headline'), 'opaque');
    
          if (document.getElementById('progress_o_meter')){
           var progometer = document.getElementById('progress_o_meter');
           var li_s = Element.childElements(progometer);
    
           var progometer_new_html = '';
    
           for(var i=0;i<li_s.length;i++){
             if (Element.hasClassName(li_s[i],'current')){
               progometer_new_html = progometer_new_html+'<li class="current">Ad Type</li><li class="sep">&gt;&gt;</li><li class="unseen">Duration/SOV</li><li class="sep">&gt;&gt;</li>'+'<li class="unseen">'+li_s[i].innerHTML+'</li>';
             }
             else{
               progometer_new_html = progometer_new_html+'<li class="'+li_s[i].className+'">'+li_s[i].innerHTML+'</li>';
             }
           }
           progometer.innerHTML=progometer_new_html;
          }
        }
        else{
          if (document.getElementById('progress_o_meter')){
           var progometer = document.getElementById('progress_o_meter');
           var li_s = Element.childElements(progometer);
          
           var progometer_new_html = '';
          
           for(var i=0;i<li_s.length;i++){
             if (Element.hasClassName(li_s[i],'current')){
               progometer_new_html = progometer_new_html+'<li class="current">Ad Type</li><li class="sep">&gt;&gt;</li><li class="unseen">Duration/SOV</li><li class="sep">&gt;&gt;</li>'+'<li class="unseen">'+li_s[i].innerHTML+'</li>';
             }
             else{
               progometer_new_html = progometer_new_html+'<li class="'+li_s[i].className+'">'+li_s[i].innerHTML+'</li>';
             }
           }
           progometer.innerHTML=progometer_new_html;
    
           for(var i=0;i<li_s.length;i++){
             if (Element.hasClassName(li_s[i],'current')){
               Element.removeClassName(li_s[i],'current');
               Element.addClassName(li_s[i],'unseen');
             }
           }
          }
        }
        Element.addClassName(field+'_ab_sortby','opaque');
        Element.addClassName(field,'opaque');
        if ($(field+'_advanced_link')) $(field+'_advanced_link').onclick=function(){return false;};
        if ($(field+'_filter_keywords')) Form.Element.disable($(field+'_filter_keywords'));
        if ($(field+'_filter_focus')) Form.Element.disable($(field+'_filter_focus'));
      }

      // update static term display
      Element.update(field + '_term_display', ab_jsondata[field]['terms'][term]);
    
      var adformat = ($(field + "_sel_adformat").innerText!=undefined)?$(field + "_sel_adformat").innerText:$(field + "_sel_adformat").textContent;
      if ((adformat!=undefined) && (adformat!='')) set_default=1;
      // setting the value of the image/flash dropdown
      var image_type = ($(field + "_sel_image_type").innerText!=undefined)?$(field + "_sel_image_type").innerText:$(field + "_sel_image_type").textContent;
      if (image_type=='image'){
        image_type='jpg/gif';
      }
      var adformat_selector = $(field + "_select_adformat");
      if (adformat_selector.options) {
        for(var i=0;i< adformat_selector.options.length;i++) {
          if ((adformat_selector.options[i].value.split('|')[0] == adformat) && (adformat_selector.options[i].value.split('|')[1] == image_type)) {
            adformat_selector.selectedIndex = i;
            break;
          }
        }
      }
      else{
        Element.removeClassName($('step3Container'), 'opaque');
        Element.removeClassName($('step3Container_headline'), 'opaque');
        if ($(field+'_advanced_link')) $(field+'_advanced_link').onclick=function(){return ab_toggle_advanced(field);};
        if ($(field+'_filter_keywords')) Form.Element.enable($(field+'_filter_keywords'));
        if ($(field+'_filter_focus')) Form.Element.enable($(field+'_filter_focus'));
        Element.removeClassName(field+'_ab_sortby','opaque');
        Element.removeClassName(field,'opaque');
        if (set_default){
          adformat_sels_parent = document.getElementById('step1Container');
          children = Element.childElements(adformat_sels_parent);
          for(var i=0;i<children.length;i++){
            if ((children[i].id.indexOf('step1_')!=-1) && (children[i].tagName.toLowerCase()=='input')){
              if ((children[i].value==adformat) || (children[i].value==adformat+'|'+image_type)){
                children[i].checked=true;
                if (document.getElementById(children[i].id+'_subradio')) document.getElementById(children[i].id+'_subradio').style.display='block';
              }
              Form.Element.enable(children[i]);
            }
            if ((children[i].id.indexOf('step1_')!=-1) && (children[i].tagName.toLowerCase()=='ul')){
              li_s= Element.childElements(children[i]);
              for(var j=0;j<li_s.length;j++){
                if (Element.childElements(li_s[j])[0].value==adformat+'|'+image_type){Element.childElements(li_s[j])[0].checked=true;}
                Form.Element.enable(Element.childElements(li_s[j])[0]);
              }
            }
          }
          adformat_selector.value=adformat+'|'+image_type;
          Element.removeClassName($('arrowContainer1'), 'trans1');
          Element.removeClassName($('arrowContainer2'), 'trans2');
          Element.removeClassName($('arrowContainer3'), 'trans3');
          
          //Set disabled the adformat radio buttons for replicate ad
          if (ab_jsondata[field]["page_type"]=='replicate_ad') {
            adformats_radio_buttons = document.getElementsByName('adformats_radiobuttons');
            
            for(var i=0;i<adformats_radio_buttons.length;i++){
                Form.Element.disable(adformats_radio_buttons[i]);
            }
          }
      
          if ((Element_is_in_the_array(ab_jsondata_for_sov[field]['sov_adformats_in_array'],adformat)) || (ab_jsondata[field]["page_type"]=='special_hive_order_page')){
                var term_for_sov = ($(field + "_sel_term_for_sov").innerText!=undefined)?$(field + "_sel_term_for_sov").innerText:$(field + "_sel_term_for_sov").textContent;
                var running_selector = ($(field + "_sel_running_selector").innerText!=undefined)?$(field + "_sel_running_selector").innerText:$(field + "_sel_running_selector").textContent;
                var sov_start_date = ($(field + "_sel_sov_start_date").innerText!=undefined)?$(field + "_sel_sov_start_date").innerText:$(field + "_sel_sov_start_date").textContent;
                var sov_percent_selector = ($(field + "_sel_sov_percent_selector").innerText!=undefined)?$(field + "_sel_sov_percent_selector").innerText:$(field + "_sel_sov_percent_selector").textContent;
                var open_sov_field_of_adspots = 'checked';
            
                document.getElementById(field+'_special_adformat').value = '1';
                Element.addClassName($('step2Container_for_not_blogads'), 'step2Container_active');
                Element.removeClassName($('arrowContainer3'), 'arrow-bottom');
                Element.addClassName($('arrowContainer3'), 'arrow-middle');
                Element.hide('step2Container');
                Element.show('step2Container_for_not_blogads');
                Element.show('step3Container_sov');
                Element.show('arrowContainer5');
                Element.show('arrowContainer4');
                document.getElementById('step3Container_headline').innerHTML = 'STEP 4 - SELECT BLOGS';
                var running_selector_radion_buttons = document.getElementsByName('running_selector');
                for(var i=0;i<running_selector_radion_buttons.length;i++){
                  if ((running_selector_radion_buttons[i].value!=null) && (running_selector_radion_buttons[i].value ==running_selector)){
                    running_selector_radion_buttons[i].checked = true;
                    break;
                  }
                }
                document.getElementById('sov_start_date_id').value = sov_start_date;
                var term_sov_select_children = Element.childElements(document.getElementById(field+'_select_term_for_sov'));
                for (var i=0;i<term_sov_select_children.length;i++){
                  if (term_sov_select_children[i].value==term_for_sov){
                    term_sov_select_children[i].selected = 'selected';
                  }
                  else{
                    term_sov_select_children[i].selected = '';
                  }
                }
                controlCalendar(field);
                setDurationDays(field);
                var percent_sov_select_children = Element.childElements(document.getElementById(field+'_select_sov_percent'));
                for (var i=0;i<percent_sov_select_children.length;i++){
                  if (percent_sov_select_children[i].value==sov_percent_selector){
                    percent_sov_select_children[i].selected = 'selected';
                  }
                  else{
                    percent_sov_select_children[i].selected = '';
                  }
                }
                document.getElementById('open_sov_field_of_adspots').checked = open_sov_field_of_adspots;
          }
        }
        else{
          if (ab_jsondata[field]["page_type"]=='special_hive_order_page'){
                Element.addClassName($('step2Container_for_not_blogads'), 'step2Container_active');
                Element.removeClassName($('arrowContainer3'), 'arrow-bottom');
                Element.addClassName($('arrowContainer3'), 'arrow-middle');
                Element.hide('step2Container');
                Element.show('step2Container_for_not_blogads');
                Element.show('step3Container_sov');
                Element.show('arrowContainer5');
                Element.show('arrowContainer4');
                document.getElementById('step3Container_headline').innerHTML = 'STEP 4 - SELECT BLOGS';
          }
        }
      }
      // update static adformat display
      Element.update(field + '_adformat_display', adformat + ' ' + image_type);
  }
  else{
    Element.removeClassName($('baOrderALaCarteLeftSidebar_wrapper'), 'arrow-top');
  }

  // download data
  var params = '';
  if (ab_jsondata[field]["lto"]!='no') { params += (params==''?'':'&') + 'lto='+ab_jsondata[field]["lto"]; }
  if (!ab_jsondata[field]["suppress_inactive"]) { params += (params==''?'':'&') + 'suppress_inactive=0'; }
  if (ab_jsondata[field]["pv_limit"]!='') { params += (params==''?'':'&') + 'pv_limit='+ab_jsondata[field]["pv_limit"]; }
  if (ab_jsondata[field]["page_type"]!='') { params += (params==''?'':'&') + 'page_type='+ab_jsondata[field]["page_type"]; }
  params += (params==''?'':'&') + 'only_blogs=1';

  var headers = [];
  if (ab_jsondata[field]['suppress_browser_cache']!=0) {
    headers = [ "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ];
  }
  if ($(field+'_filter_pageviews')) { Form.Element.disable(field+'_filter_pageviews'); }
  if ($(field+'_filter_price')) { Form.Element.disable(field+'_filter_price'); }
  if ($(field+'_filter_n')) { Form.Element.disable(field+'_filter_n'); }
  if ($(field+'_filter_optimal_position')) { Form.Element.disable(field+'_filter_optimal_position'); }
  if (ab_jsondata[field]["page_type"]!='hive'){
      adformats = $('step1Container').getElementsBySelector('input[name="adformats_radiobuttons"]');
      for (var i=0;i<adformats.length;i++){
        adformats[i].disabled = true;
      }
      if ($('step1_0_subradio')){
        mediatypes = $('step1_0_subradio').getElementsBySelector('input[name="step1_0_subradio"]');
        for (var i=0;i<mediatypes.length;i++){
          mediatypes[i].disabled = true;
        }
      }
      termsel = $('step2Container').getElementsBySelector('input[name="term_sel_radio_buttons"]');
      for (var i=0;i<termsel.length;i++){
        termsel[i].disabled = true;
      }
  }

  document.getElementById('progress_img').innerHTML="<img src=\"progress_big.gif\" />";
  document.getElementById('progress_img').style.display='block';
  is_adspot_generating_ajax_running = true;

  new Ajax.Request(ab_jsondata[field]["datasource"], {
    method: 'get',
    parameters: params,
    requestHeaders: headers,
    onSuccess: function(resp, jsonObj) {
      is_adspot_generating_ajax_running = false;
      var data = eval(resp.responseText); //FIXME: this.evalResponse();
      ab_processAJAXResults(field,data.response);
      if (ws.showSelectedOnly){
        if (is_adspots_list!=1) document.getElementById('progress_img').style.display='none';
      }
      else{
        document.getElementById('progress_img').style.display='none';
      }
    },
    onFailure: function() {
      //ab_progress(field,'',0);
      is_adspot_generating_ajax_running = false;
      alert('An error happened during fetching data from remote server.\n Please try again later.');
    },
    onComplete: function() { if (ws.showSelectedOnly){if (is_adspots_list!=1) document.getElementById('progress_img').style.display='none';}else{document.getElementById('progress_img').style.display='none';}}
  });
  
  adspot_rendering(field);
  
  if (!(ab_jsondata[field]["datasource2"]==undefined) && ab_jsondata[field]["datasource2"]!='') {
   new Ajax.Request(ab_jsondata[field]["datasource2"], {
    method: 'get',
    requestHeaders: headers,
    onSuccess: function(resp, jsonObj) {
      var data = eval(resp.responseText);
      var ws = $(field);
      ws.dataSet.extra_rows = $H(data);
    },
    onFailure: function() {
      alert('An error happened during fetching additional data from remote server.\n Please try again later.');
    }
   });
  }
  if ( $('in_hive_selector') ) {
    Event.observe('in_hive_selector', 'click', ab_fill_hive_selector);
    Event.observe('in_hive_selector', 'focus', ab_fill_hive_selector);
  }

  if (ab_jsondata[field]["page_type"]!='hive'){
    Event.observe('step2_1_selector', 'click', function(){document.getElementById('sov_start_date_id').value=''; return controlCalendar(field);});
    Event.observe('step2_2_selector', 'click', function(){return controlCalendar(field);});
    Event.observe(field+'_select_term_for_sov', 'change', function(){return setDurationDays(field);});
  }
  else{
    Element.hide('cashRegisterMini');
    document.getElementById('cashRegister').style.display='block';
    Element.hide('cashRegisterPin');
    document.getElementById('cashRegisterPin').className='cashRegisterPinned';
    Element.hide(field+'_infoTotalPrice_div');
    Element.hide(field+'_infoTotalPriceMini');
    Element.removeClassName($('step3Container_headline'), 'opaque');
    Element.removeClassName($('step3Container'), 'opaque');
  }
}

function adspot_rendering(field){
  var is_adspots_list=0;
  var ws = $(field);
  
  var seladspots = ($(field + "_sel_adspots").innerText!=undefined)?$(field + "_sel_adspots").innerText.split(','):$(field + "_sel_adspots").textContent.split(',');
  if ((seladspots.length>0) && (seladspots[0]!=undefined) && (seladspots[0]!='')) is_adspots_list=1;

  if (!is_adspot_generating_ajax_running){
    var headers = [];
    if (ab_jsondata[field]['suppress_browser_cache']!=0) {
      headers = [ "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ];
    }
    var params = '';
    if (ab_jsondata[field]["lto"]!='no') { params += (params==''?'':'&') + 'lto='+ab_jsondata[field]["lto"]; }
    if (!ab_jsondata[field]["suppress_inactive"]) { params += (params==''?'':'&') + 'suppress_inactive=0'; }
    if (ab_jsondata[field]["pv_limit"]!='') { params += (params==''?'':'&') + 'pv_limit='+ab_jsondata[field]["pv_limit"]; }
    if (ab_jsondata[field]["page_type"]!='') { params += (params==''?'':'&') + 'page_type='+ab_jsondata[field]["page_type"]; }
    params += (params==''?'':'&') + 'only_adspots=1';
  
    sov_of_adspot_rendering(field);
  
    new Ajax.Request(ab_jsondata[field]["datasource"], {
        method: 'get',
        parameters: params,
        requestHeaders: headers,
        onSuccess: function(resp, jsonObj) {
          is_adspot_generating_ajax_running = false;
          var data2 = eval(resp.responseText); //FIXME: this.evalResponse();
          data = data2.response;
          adspot_processAJAXResults(field);
          if (ws.showSelectedOnly){
            if (is_adspots_list==1) document.getElementById('progress_img').style.display='none';
          }
        },
        onFailure: function() {
          is_adspot_generating_ajax_running = false;
          alert('The adspot data isn\'t available');
        },
        onComplete: function() {
          if (ws.showSelectedOnly){
            if (is_adspots_list==1) document.getElementById('progress_img').style.display='none';
          }
        }
      });
  }
  else{
    setTimeout ( 'adspot_rendering("' + field + '")', 200 );
  }
}


function getClientWindowWidth()
{
    var width = 0;
    if (self.innerHeight) {
        width = self.innerWidth;
    } else if (document.documentElement && document.documentElement.clientHeight) {
        width = document.documentElement.clientWidth;
    } else if (document.body) {
        width = document.body.clientWidth;
    }
    return width;
}


function showMiniCashRegister(show){
    if (show) {
        cashRegisterElement.removeClassName(cashRegisterInUseClassName);
        cashRegisterMiniElement.addClassName(cashRegisterInUseClassName);
    } else {
        cashRegisterElement.addClassName(cashRegisterInUseClassName);
        cashRegisterMiniElement.removeClassName(cashRegisterInUseClassName);
    }
}


function toggleCashRegisterPin(){
    cashRegisterPinElement.toggleClassName(cashRegisterPinnedClassName);
}


function onCashRegisterMiniMouseOver(event) {
    if (cashRegisterMiniElement.hasClassName(cashRegisterInUseClassName)) {
        showMiniCashRegister(false);
    }
}


function onCashRegisterMouseOver(event) {
    if (cashRegisterTimer) {
        clearTimeout(cashRegisterTimer);
        cashRegisterTimer = null;
    }
}


function onCashRegisterMouseOut(event) {
    if (cashRegisterElement.hasClassName(cashRegisterInUseClassName) && !cashRegisterPinElement.hasClassName(cashRegisterPinnedClassName)) {
        cashRegisterTimer = setTimeout("showMiniCashRegister(true);", 100);
    }
}


function chooseCashRegister() {
    showMiniCashRegister(true);
    cashRegisterPinElement.removeClassName(cashRegisterPinnedClassName);
}


function initializeCashRegister() {
    // guarding against duplicate script loading !!!???
    try {
        if (guard) {
            return;
        }
    } catch (err) {
        guard = 1;
    }
    cashRegisterElement = $('cashRegister');
    cashRegisterMiniElement = $('cashRegisterMini');
    cashRegisterPinElement = $('cashRegisterPin');
    cashRegisterPinnedClassName = 'cashRegisterPinned';
    cashRegisterInUseClassName = 'cashRegisterInUse';
    cashRegisterTimer = null;
    if (cashRegisterElement && cashRegisterMiniElement) {
        chooseCashRegister();
        cashRegisterElement.observe('mouseout', onCashRegisterMouseOut);
        cashRegisterElement.observe('mouseover', onCashRegisterMouseOver);
        cashRegisterMiniElement.observe('mouseover', onCashRegisterMiniMouseOver);
        cashRegisterPinElement.observe('click', toggleCashRegisterPin);
        Event.observe(window, 'resize', chooseCashRegister);
    }
}


Event.observe(window, 'load', initializeCashRegister);

