$(document).ready(function(){
	$.myVar = {}; //global
	var qs = "";
	var pc = '<div id="progressControl" class="progressControl"><img src="images/progress.gif" /></div>';
	var noData = '<div class="noRecordsFound">Sorry, No "Lobbyist/Registrant Committee Statements of Organization" records containing your search terms were found.</div>';
	$("#fec_mainContentWide").append(pc);
	
	var lobbyist = new Lobbyist();
	
	$.get("LobbyistData.do?format=html&page=1", {}, function(data){
		$("#lobbyist_data").html(data);
		delete data;
		$("#export, .export").show();
		$("#progressControl").remove().insertBefore("#lobbyist_data").hide();	
		
		$("#button").click(function(event){
			$("#customSearchBox").toggle("fast");
			$("[name=dat_fil_fro]").datepicker({
				changeMonth: true,
				changeYear: true
			});
			$("[name=dat_fil_to]").datepicker({
				changeMonth: true,
				changeYear: true
			});
			$("[name=submitForm]").click(function(evt){
				if(lobbyist.validate()){
					$("#validateForm").hide();
					lobbyist.queryString(window.location, $.myVar);
					$.ajax({
						type: "GET",
						url: "LobbyistData.do",
						data: ({
							format:"html",
							page:1,
							sortField: $.myVar.qs.sortField, 
							sortOrder: $.myVar.qs.sortOrder,
							com_nam: $("[name=com_nam]").val(), 
							com_id: $("[name=com_id]").val(),
							dat_fil_fro: $("[name=dat_fil_fro]").val(),
							dat_fil_to: $("[name=dat_fil_to]").val()
						}),
						beforeSend: function(){$("#lobbyist_data").animate({opacity: 0.2}, 500);},
						success: function(data){
							$("#lobbyist_data").html(data);
							if(data.length <= 2){
								$("#lobbyist_data").html(noData);
							}else{
								delete data;
								qs = "&com_nam=" + $("[name=com_nam]").val() + "&com_id=" + $("[name=com_id]").val() + "&dat_fil_fro=" + $("[name=dat_fil_fro]").val() + "&dat_fil_to=" + $("[name=dat_fil_to]").val() + "&sortField=" + $.myVar.qs.sortField + "&sortOrder=" + $.myVar.qs.sortOrder;
								pagination();
								sort();
							}
						},
						complete: function(){$("#lobbyist_data").animate({opacity: 1}, 2000);}
					});
				}
				evt.preventDefault();
				return false;
			});
			
			$("[name=resetForm]").click(function(evt){
				$("#validateForm").hide();
				qs=""; $.myVar.qs = null;
				$("[name=com_nam]").val("");
				$("[name=com_id]").val("");
				$("[name=dat_fil_fro]").val("");
				$("[name=dat_fil_to]").val("");
				$("[name=com_nam]").focus();
				$.ajax({
					type: "GET",
					url: "LobbyistData.do",
					data: ({
						format:"html",
						page:1
					}),
					beforeSend: function(){$("#lobbyist_data").animate({opacity: 0.2}, 500);},
					success: function(data){
						$("#lobbyist_data").html(data);
						delete data;
						pagination();
						sort();
					},
					complete: function(){$("#lobbyist_data").animate({opacity: 1}, 2000);}
				});
				evt.preventDefault();
				return false;
			});
			event.preventDefault();
		});
		
		$(".exportIcon").click(function(event){
			if($.myVar.qs == undefined) lobbyist.queryString(window.location, $.myVar);
			qs = "&com_nam=" + $.myVar.qs.com_nam + "&com_id=" + $.myVar.qs.com_id + "&dat_fil_fro=" + $.myVar.qs.dat_fil_fro + "&dat_fil_to=" + $.myVar.qs.dat_fil_to + "&sortField=" + $.myVar.qs.sortField + "&sortOrder=" + $.myVar.qs.sortOrder;
			if($(event.target).parent().is("a")){
				window.open($(this).attr("href") + qs);
			}
			event.preventDefault();
			return false;
		});
		
		var pagination = function(){
			$(".showAllLink a, #pagination ul li a, .prevNext a").click(function(event){
				lobbyist.queryString($(this).attr("href"), $.myVar);
				$.ajax({
					type: "GET",
					url: "LobbyistData.do",
					data: ({
						format:"html",
						sortField: $.myVar.qs.sortField, 
						sortOrder: $.myVar.qs.sortOrder,
						page: $.myVar.qs.page,
						com_nam: $.myVar.qs.com_nam,
						com_id: $.myVar.qs.com_id,
						dat_fil_fro: $.myVar.qs.dat_fil_fro,
						dat_fil_to: $.myVar.qs.dat_fil_to
					}),
					beforeSend: function(){$("#lobbyist_data").animate({opacity: 0.2}, 500);},
					success: function(data){
						$("#lobbyist_data").html(data);
						delete data;
						pagination();
						sort();
					},
					complete: function(){$("#lobbyist_data").animate({opacity: 1}, 2000);}
				});
				event.preventDefault();
				return false;
			});
		};
		
		var sort = function(){
			$("#reportTable .header td, #reportTable .header td a").click(function(event){			
				if($(event.target).is("td")){
					lobbyist.queryString($(this).find("a").attr("href"), $.myVar);
				}else{
					lobbyist.queryString($(this).attr("href"), $.myVar);
				}
				$.ajax({
					type: "GET",
					url: "LobbyistData.do",
					data: ({
						format:"html",
						sortField: $.myVar.qs.sortField, 
						sortOrder: $.myVar.qs.sortOrder,
						page: $.myVar.qs.page,
						com_nam: $.myVar.qs.com_nam,
						com_id: $.myVar.qs.com_id,
						dat_fil_fro: $.myVar.qs.dat_fil_fro,
						dat_fil_to: $.myVar.qs.dat_fil_to
					}),
					beforeSend: function(){$("#lobbyist_data").animate({opacity: 0.2}, 500);},
					success: function(data){
						$("#lobbyist_data").html(data);
						delete data;
						pagination();
						sort();
					},
					complete: function(){$("#lobbyist_data").animate({opacity: 1}, 2000);}
				});
				event.preventDefault();
				return false;
			});
		};
		pagination();
		sort();
	});
});

function Lobbyist(){}
Lobbyist.prototype.validate = function(){
	var com_nam = $("[name=com_nam]").val();
	var com_id = $("[name=com_id]").val();
	var dat_fil_fro = $("[name=dat_fil_fro]").val();
	var dat_fil_to = $("[name=dat_fil_to]").val();
	if(com_nam == "" && com_id == "" && dat_fil_fro == "" && dat_fil_to == ""){
		$("#validateForm").show();
		$("#validateForm").text("* Please enter at least one customization value!");
		$("[name=com_nam]").focus();
		return false;
	}else{	
		$("#validateForm").show();
		var now = new Date();
		var today = (now.getMonth() + 1) + "/" + now.getDate() + "/" + now.getFullYear();
		if(parseInt(Date.parse(dat_fil_fro)) > parseInt(Date.parse(today))){
			$("#validateForm").text("* Date Filed From cannot later than Today's date");
			$("[name=dat_fil_fro]").focus();
			return false;
		}
		if(parseInt(Date.parse(dat_fil_fro)) >= parseInt(Date.parse(dat_fil_to))){
			$("#validateForm").text("* Date Filed To must be later than Date Filed From");
			$("[name=dat_fil_to]").focus();
			return false;
		}
	}
	$("#validateForm").hide();
	return true;
};

Lobbyist.prototype.queryString = function(qs, myVar){
	var qsReg = new RegExp("[?][^#]*","i");
    hRef = unescape(qs);
    var qsMatch = hRef.match(qsReg) + "";
    qsMatch = qsMatch.substr(1, qsMatch.length -1);
	var qsArray = qsMatch.split("&");
	var qsLength = qsArray.length;
	myVar.qs = new Object();
	for(var i=0; i<qsLength; i++){
		var pair = qsArray[i].split("=");
		myVar.qs[pair[0]] = pair[1];
	}
	if($.myVar.qs.sortField == undefined){
		$.myVar.qs.sortField = "com_nam";
	}if($.myVar.qs.sortOrder == undefined){
		$.myVar.qs.sortOrder = 0;
	}if($.myVar.qs.com_nam == undefined){
		$.myVar.qs.com_nam = $("[name=com_nam]").val();
	}if($.myVar.qs.com_id == undefined){
		$.myVar.qs.com_id = $("[name=com_id]").val();
	}if($.myVar.qs.dat_fil_fro == undefined){
		$.myVar.qs.dat_fil_fro = $("[name=dat_fil_fro]").val();
	}if($.myVar.qs.dat_fil_to == undefined){
		$.myVar.qs.dat_fil_to = $("[name=dat_fil_to]").val();
	}
};
