var show_dialog = function(title, message){
	$("#ajax_dialog").attr('title', title);
	$("#ajax_dialog p").html(message);
	$("#ajax_dialog").dialog({
		width: 300,
		height: 100,
		modal: true,
		close: function(event, ui) {
			$("#ajax_dialog").dialog( 'destroy' );
		}
	});
}

var show_login = function(){
	$("#ajax_login").dialog({
		width: 600,
		height: 400,
		modal: true,
		close: function(event, ui) {
			$("#ajax_login").dialog( 'destroy' );
		}
	});
}

var handle_message = function(data){
	if(data.requires_login)	{
		show_login();
	} else	{
		show_dialog(data.title, data.message);
	}
}

var check_user = function(handler)	{
	url = baseurl + '/ajax/check_user_auth';
	$.getJSON(url, function(response)	{
		if(response.ok)	{
			handler(true); 
		} else	{
			handler(false); 
		}
	});
}

var enable_auth_check = function()	{
	$('.requires_auth').click(function(event) {
		check_user(function(userOK)	{
			if(userOK)	{
				alert('is user');
			} else	{
				event.preventDefault();
				alert('is not user');
				show_login();
			}
		});
	});
}

var load_monthly_trades = function(){
	$('a.monthly_trades').click(function(event) {
	    link = $(this);
	    event.preventDefault();
	    url = link.attr('href');
	    
	    $("#monthly_data").load(url);
	    show_monthly_data();
	});
}

var show_monthly_data = function(){
	$("#monthly_data").dialog({
		width: 700,
		height: 600,
		modal: true,
		iframe:true,
		close: function(event, ui) {
			$("#monthly_data").dialog( 'destroy' );
		}
	});
}

var track_issues = function(){
	$('a.my-cusip-add').click(function(event) {
	    link = $(this);
	    event.preventDefault();
	    url = link.attr('href');
	    
	    $.getJSON(url, function(data)	{
	    	if(data.ok)	{
	    		show_dialog(data.title, data.message);
	    	} else	{
	    		handle_message(data);
	    	}
	    });
	});
	
	$('a.my-cusip-remove').click(function(event) {
	    link = $(this);
	    event.preventDefault();
	    url = link.attr('href');
	    
	    $.getJSON(url, function(data)	{
	    	if(data.ok)	{
	    		show_dialog(data.title, data.message);
	    		$("a.my-cusip-remove[href$='" + url  + "']").parents('tr').css('opacity', 0.3);
	    		$("a.my-cusip-remove[href$='" + url  + "']").remove();
	    	} else	{
	    		handle_message(data);
	    	}
	    });
	});
}

var track_issuers = function(){
	$('a.my-issuer-add').click(function(event) {
	    link = $(this);
	    event.preventDefault();
	    url = link.attr('href');
	    
	    $.getJSON(url, function(data)	{
	    	if(data.ok)	{
	    		show_dialog(data.title, data.message);
	    	} else	{
	    		handle_message(data);
	    	}
	    });
	});
	
	$('a.my-issuer-remove').click(function(event) {
	    link = $(this);
	    event.preventDefault();
	    url = link.attr('href');
	    
	    $.getJSON(url, function(data)	{
	    	if(data.ok)	{
	    		show_dialog(data.title, data.message);
	    		$("a.my-issuer-remove[href$='" + url  + "']").parents('tr').css('opacity', 0.3);
	    		$("a.my-issuer-remove[href$='" + url  + "']").remove();
	    	} else	{
	    		handle_message(data);
	    	}
	    });
	});
}

var filter_trades = function(){
	$('input#filter_trades').click(function(event) {
		form_url = $('form#filter_form').attr('action');
		maturity_min = $('input#MaturityMin').val();
		maturity_max = $('input#MaturityMax').val();
		yield_min = $('input#YieldMin').val();
		yield_max = $('input#YieldMax').val();
		coupon_min = $('input#CouponMin').val();
		coupon_max = $('input#CouponMax').val();
		amount_min = $('input#AmountMin').val();
		amount_max = $('input#AmountMax').val();
		
		url = form_url + '/m_min:' + maturity_min + '/m_max:' + maturity_max + '/y_min:' + yield_min + '/y_max:' + yield_max + '/c_min:' + coupon_min + '/c_max:' + coupon_max + '/a_min:' + amount_min + '/a_max:' + amount_max;
		document.location = url;
	});
}

var enable_date_switcher = function()	{
	$('input#trade_date_go').click(function(event) {
		year = $('#TradeTradeDateYear').val();
		month = $('#TradeTradeDateMonth').val();
		day = $('#TradeTradeDateDay').val();
		document.location = '/account/set_trade_date/' + year + '-' + month + '-' + day;
	});
}

$(document).ready(function()	{
	//enable_auth_check();
	track_issues();
	track_issuers();
	filter_trades();
	enable_date_switcher();
	load_monthly_trades();
});