function Lco(k){
	var t = this;
	$.post('/', {a:'issue', k:this.k(k), r:document.referrer, q:location.href}, function(res){
		if(!res) return;
		res = eval('('+res+')');
		if(!res.id) return;
		t.id = res.id;
		t.settings = res;
		if(!$('#lcoFrame').length) $('body').append('<div id="lcoFrame"></div>');
		$('#lcoFrame').html('').hide().append('<div id="closeButton">×</div>');
		res.options.key = t.key;
		res.options.id = res.id;
		res.options.closeButton = $('#closeButton');
		res.options.open.fn = function(settings){
			$.post('/', {a: 'lcoDisplay', k: settings.key, id: settings.id, sojourn_second: Math.round(timer.get() / 1000)});
			if(settings.close_trigger == 'timer'){
				var timeout = setTimeout($.lco.closeAction, $.lco.settings.close_delay * 1000);
			}
			else if(settings.close_trigger == 'scroll'){
				$(window).scroll(function(){
					if(trigger.doScroll.close) return false;
					trigger.doScroll.close = true;
					$.lco.closeAction();
				});
			}
		}
		$('#lcoFrame').append(res.content).lco(res.options);
		$('#closeButton').click(function(){
			if(!lco.id) return;
			$.post('/', {a: 'lcoClose', id: lco.id, k: lco.key, sojourn_second: Math.round(timer.get()/1000)});
		});
		$('#lcoFrame a').click(function(){
			if(!lco.id) return;
			$.post('/', {a: 'lcoClick', id: lco.id, k: lco.key, sojourn_second: Math.round(timer.get()/1000), destination: location.href});
		});
		if ($.lco.settings.display_trigger == 'timer')
			var timeout = setTimeout($.lco.openAction, $.lco.settings.display_delay * 1000);
	});
}
Lco.prototype.settings = null;
Lco.prototype.id = 0;
Lco.prototype.key = null;
Lco.prototype.k = function(k){
	if (!this.key) {
		if (!$.cookie('lcokey')) $.cookie('lcokey', k, {expires: 365});
		this.key = $.cookie('lcokey');
	}
	return this.key;
}

function Timer(){}
Timer.prototype.timer = new Date;
Timer.prototype.get = function(){return new Date - this.timer;}
var timer = new Timer, lco, trigger = {doScroll: {open: false, close: false}};
(function($){$(document).ready(function(){
	$('a').not('#lcoFrame a').click(function(){
		if(!lco.id) return;
		$.post('/', {a: 'pageClick', id: lco.id, k: lco.key, sojourn_second: Math.round(timer.get()/1000), destination: location.href});
		if ($.lco.settings.display_trigger == 'link') {
			$.lco.openAction({afterLink: $(this).attr('href')});
			return false;
		}
	});
	$(window).scroll(function(){
		if($(document).height() - $(this).scrollTop() - $(this).height() > 0 || trigger.doScroll.open) return;
		$(this).trigger('isBottom');
		trigger.doScroll.open = true;
	}).bind('isBottom', function(){
		if ($.lco.settings.display_trigger == 'scroll') $.lco.openAction();
	});
})})(jQuery);
