$(document).ready(function() {

	// pagination setup & sorting setup
	$.each(['.pagination a', '.sortajax th a.sorter'], function(i, sel) {		
		$(sel).live('click', function(e) {
			e.preventDefault();
			var a = $(this), url = a.attr('href').split('/'), p = a.parents('.listContainer').get(0), c = $(p).attr('class'), m = 1;		
			if (c) {
				$.each(c.split(/ /), function(x, y) { 
					var r = y.match(/pg_([0-9]+)/);
					if (r) {
						m = r[1];
					}
				});
			}
			url[m] = url[m].replace(/([^?]*)(\?)?(.*)/, "$1-src-data$2$3");			
			a.parents('.listContainer').load(url.join('/'), function() {
				if (typeof twttr != 'undefined') twttr.widgets.load();
				if (typeof FB != 'undefined') FB.XFBML.parse();
			});					
		});		
	});
	
	// tab setup
	$('.tabwrap').each(function(ip,op) {
		var tc = $(this).find('.tabcontent');		
		$(this).find('ul.tabs a').each(function(i,o) {
			$.data(o, 'tabcontent', tc[i]);
			$.data(o, 'tabset', op);
			$(o).bind('click', tabs.click);				
			if (! i) {
				$.data(op, 'tabactive', o);
				$(o).addClass('active');
			}
			else {
				$(tc[i]).css('display','none');
			}
			$(tc[i]).find('h3.tabtitle').first().css('display','none');
		});
	});
	
	// compare cards, send request to server
	$('a.compare-card').bind('click', function(e) {
		e.preventDefault();	
		$.ajax({
		  url: this.href,
		  success: function(data) {
		  	  updateStickyBar(data.replace(/success:/, ''));	  
		  }
		});
	});
						
	// compare remove
	$('.compare-list a.compare-remove').bind('click', function(e) {
		e.preventDefault();	
		$.ajax({
		  url: this.href,
		  context:this,
		  success: function(data) {		 
		  
		  	var t = $(this).closest('table'); 		  		  
		  	$(this).closest('tbody').remove();		  	
		  	
		  	// we have removed the last item
		  	if (t.find('tbody').length == 0) {
		  		t.find('tfoot,tr,td').css('display','block');
		  		t.find('thead').hide();
		  	}
		  	updateStickyBar(data.replace(/success:/, ''));	  
		  }
		});
	});
			
	/*// homepage linkset boxes
	$('body.home .linkset a.clear-button').bind('click', function(e) {
		e.preventDefault();		
		$('.linkset div.more-info').css('display','block');
	});*/
	
	// drag and drop sorting
	$( ".drag-sort" ).sortable({items:'div.row', cancel:'.ui-sortable :input,div.fr_submit'});
	$( ".drag-sort" ).disableSelection();
	
	// remove on stickybar items
	$('#stickybar img.close').live('click', function(e) {
		comparison.remove(e.target);		
	});	
	
	// remove on stickybar items
	$('ul.stickynav a').live('click', function(e) {
		comparison.show(e);		
	});	
	
});

// get stickybar content
function updateStickyBar(from)
{
	$.ajax({
	  url: '/comparison-data?from=' + from,
	  dataType: 'html',
	  success: function(data) {
		if (typeof(mystickybar) != 'undefined') mystickybar.updatecontent(data, from);			  		  
	  }
	});
}

/* handle swapping of tabs */
var tabs = {
		
	click: function(e) {
		e.preventDefault();
		var lastActiveTab = $.data($.data(this, 'tabset'), 'tabactive');	
		if (lastActiveTab != this) {
			$(lastActiveTab).removeClass('active');
			$($.data(lastActiveTab, 'tabcontent')).css('display','none');
			$($.data(this, 'tabcontent')).css('display', 'block');
			$(this).addClass('active');
			$.data($.data(this, 'tabset'), 'tabactive', this);
		}
	}
		
};

var cookie = {

	get:function(c_name)
	{
		var i,x,y,ARRcookies=document.cookie.split(";");
		for (i=0;i<ARRcookies.length;i++)
		  {
		  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
		  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
		  x=x.replace(/^\s+|\s+$/g,"");
		  if (x==c_name)
		    {
		    return unescape(y);
		    }
		  }
	},
	
	set:function(c_name,value,exdays)
	{
		var exdate=new Date();
		exdate.setDate(exdate.getDate() + exdays);
		var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
		document.cookie=c_name + "=" + c_value;
	}
	
};
