$(document).ready(function() {
    $('.scriptonly').removeClass('scriptonly');
})
function parseUrlParams(url) {
    if(url.indexOf('?') >= 0){
        var params = url.split('?')[1].split('&')
        var rv = {}
        for(var i = 0; i < params.length; i++) {
            var kv = params[i].split('=')
            rv[kv[0]] = kv[1]
        }
        return rv
    }
}
function getCookies() {
    var c = document.cookie.split('; ')
    var cookies = {}
    for(i = 0; i<c.length; i++) {
        var kv = c[i].split('=')
        cookies[kv[0]] = kv.slice(1, kv.length).join('=')
    }
    return cookies
}
function getCookie(name) {
    return getCookies()[name] || '"{}"' //HACK
}

clipboard = {
    search_id: "",
    search_mvd: {},
    search_name: "",
    items: {},
    asyncEdit: ((typeof(window.clipboard_async_edit)=='boolean')?clipboard_async_edit:true),
    init: function() {
        clipboard.parseCookie()
        $('.clipboard-status .counter').each(clipboard.showCounter)
        $('.clipboard-actions a').each(clipboard.showAction)
        $('.activateClipboardActions .addRemoveSwitch').each(clipboard.showAction)
        if(!('dont_post_clipboard' in window)) {
            clipboard.initForm()
            clipboard.attachPost()
        }

    },
        search_enable: function() {
            $(".clipboard-form-field").remove();
            for (key in clipboard.search_mvd) {
                $('<input type="hidden" name="' + key + '" value="' + clipboard.search_mvd[key] + '" class="clipboard-form-field" />').appendTo('#clipboard-form');
            }
        },
    fixqueryid: function() {
        $('.query2clipboard a').each(function(){
            this.href=this.href.split('id=')[0]+'id='+clipboard.search_id;});
    },
    initForm: function() {
                $(".clipboard-form").remove();
        clipboard.form = $('<form id="clipboard-form" class="clipboard-form" method="post"/>').appendTo('body').get(0);
                clipboard.search_enable();
    },
    showCounter: function() {
      if (/\bclipboard-count-(\w+)\b/.test(this.className)) {
        var self = $(this);
        var type = RegExp.$1;
    var val = 0;
    if (type == 'all') {
      for (var key in clipboard.items)
        val += clipboard.items[key].length;
    }
    else
          val = clipboard.items[type] && clipboard.items[type].length;
        if (!val) {
          self.text('0');
          if (type == 'dealoftheday') {
            self.parents('p.item-type').eq(0).hide();
          }
        } else {
          self.text(val);
          self.parents('p.item-type').eq(0).show();
        }
      }
    },
    extractItemFromUrl: function(url) {
        return parseUrlParams(url)
    },
    parseCookie: function() {
        //fix safari cookie handling (comma breaks it)
        eval('clipboard.items = (' + getCookie(clipboard_cookie_name).substring(1, getCookie(clipboard_cookie_name).length-1).replace(/\|/g,',') + ');')
    },
    isActionEnabled: function(action, item) {
        var enabled = false
        switch(action) {
            case 'add'   : enabled = !clipboard.containsItem(item); break;
            case 'remove': enabled = clipboard.containsItem(item); break;
            case 'edit'  : break;
        }
        return enabled
    },
    showAction: function() {
        if (this.tagName == 'A') {
            var item = clipboard.extractItemFromUrl(this.href);
        } else {
            var $control_box = $(this).siblings('.control-box');
            var item = {
                'type': $('.object_type', $control_box).text(),
                'id': $('.object_id', $control_box).text()
            };
        }
        var action = this.className.split(/\s+/)[0];
        // this.title = $(this).text();
        if(clipboard.isActionEnabled(action, item)) {
            $(this).addClass('enabled');
        } else {
            $(this).removeClass('enabled');
        }
    },
    attachPost: function() {
        $('.clipboard-actions a').unbind('click').click(clipboard.doPost);
    },
    containsItem: function(item) {
        var a = clipboard.items[item.type];
        if (a) {
            for (var i = 0; i < a.length; i++) {
                if(a[i] == item.id) {
                    return true;
                }
            }
        }
        return false;

    },
    doPost: function() {
      clipboard.form.action = this.href;
      if(clipboard.asyncEdit) {
    $.ajax({
            type: "POST",
            url: clipboard.form.action,
            data: $(clipboard.form).serialize(),
            dataType: "json",
            success: function(data) {
                if (data.query_id) {
                    clipboard.search_id = data.query_id;
                    clipboard.fixqueryid();
                }
                if (typeof(data.clipboard_count) != 'undefined') {
                    $('#js-clipboardCount').html(data.clipboard_count);
                }
                clipboard.init();
           }});
    try {
      $('a.all-saved-ads').each(function () {
          this.href = '/clipboard/?tab='+(clipboard.form.type || clipboard.form.action.split('?')[1].split('&')[0].split('=')[1] ||
     '');
        });

    } catch (e) {}
      } else
    clipboard.form.submit();
      return false;
    },
    getItems: function(type) {

    }
}

$(document).ready(function() {
    // after ajax search criteria change update the link 

    // bcfix - remove when searcher will be gone
    if (window.SENSI_SETTINGS.use_new_searcher) {
        if ('searcher_next_gen' in $) {
            $.searcher_next_gen.addcallbacks('basicLinks', {after:function(r){
                clipboard.search_mvd = r.mvd;
                clipboard.search_id = r.query_id;
                clipboard.search_name = r.query_name;
                clipboard.fixqueryid(); clipboard.init();
            }});
        }
    } else {
        if ('searcher' in $) {
            $.searcher.addcallbacks('basicLinks', {after:function(r){
                clipboard.search_mvd = r.mvd;
                clipboard.search_id = r.query_id;
                clipboard.search_name = r.query_name;
                clipboard.fixqueryid(); clipboard.init();
            }});
        }
    }

    if('clipboard_toolbar_events' in window) {
        // clipboard_toolbar_events - obsolete name; now we check if user is logged by cookie instead of waiting for toolbar
        if(!getCookies()['user_logged']) {
            $('.clipboard-actions a').each(function() {
                $(this).attr('onclick', '')
            });
            dont_post_clipboard = true;
        }
    }

    $(document).bind('toolbar_loaded', function() {
        clipboard.init();
        $('.activateClipboardActions').each(function() {
            var $control_box = $('.control-box', this);
            var site_name = $('.site_name', $control_box).text();
            var object_id = $('.object_id', $control_box).text();
            var remove_url = $('.remove_url', $control_box).text();
            var add_url = $('.add_url', $control_box).text();
            $('.addActivator', this).click(function() {
                make_count('counter', site_name, 'save_ad_action', object_id, 'write', true);
                var fake_a = {
                    'href': add_url
                };
                clipboard.doPost.apply(fake_a, []);
            });
            $('.removeActivator', this).click(function() {
                var fake_a = {
                    'href': remove_url
                };
                clipboard.doPost.apply(fake_a, []);
            });
        });
        $('.clipboard-status .counter').each(clipboard.showCounter);
    });
});

