$(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 "Bundled contributing Lobbyist Committee Statements of Organization" records containing your search terms were found.</div>';
	$("#fec_mainContentWide").append(pc);
	var lobbyistBundle = new LobbyistBundle();
	$.get("LobbyistBundleData.do?format=html&page=1", {}, function(data){
		$("#lobbyistBundle_data").html(data);
		delete data;
		$("#export, .export").show();
		$("#progressControl").remove().insertBefore("#lobbyistBundle_data").hide();	
		$("#button").click(function(event){
			$("#customSearchBox").toggle("fast");
			$("[name=rec_dat]").datepicker({
				changeMonth: true,
				changeYear: true
			});
			$("[name=cov_dat]").datepicker({
				changeMonth: true,
				changeYear: true
			});
			$("[name=submitForm]").click(function(evt){
				if(lobbyistBundle.validate()){
					$("#validateForm").hide();
					lobbyistBundle.queryString(window.location, $.myVar);
					$.ajax({
						type: "GET",
						url: "LobbyistBundleData.do",
						data: ({
							format:"html",
							page:1,
							sortField: $.myVar.qs.sortField, 
							sortOrder: $.myVar.qs.sortOrder,
							com_nam: $("[name=com_nam]").val(), 
							com_ele_sta: $("[name=com_ele_sta]").val(),
							com_ele_dis: $("[name=com_ele_dis]").val(),
							rec_dat: $("[name=rec_dat]").val(),
							cov_dat: $("[name=cov_dat]").val(),
							con_amo: $("[name=con_amo]").val()
						}),
						beforeSend: function(){$("#lobbyistBundle_data").animate({opacity: 0.2}, 500);},
						success: function(data){
							if(data.length <= 2){
								$("#lobbyistBundle_data").html(noData);
							}else{
								$("#lobbyistBundle_data").html(data);
								delete data;
								qs = "&com_nam=" + $("[name=com_nam]").val() + "&com_ele_sta=" + $("[name=com_ele_sta]").val() + "&com_ele_dis=" + $("[name=com_ele_dis]").val() + "&rec_dat=" + $("[name=rec_dat]").val() + "&cov_dat=" + $("[name=cov_dat]").val() + "&con_amo=" + $("[name=con_amo]").val() + "&sortField=" + $.myVar.qs.sortField + "&sortOrder=" + $.myVar.qs.sortOrder;
								pagination();
								sort();
							}
						},
						complete: function(){$("#lobbyistBundle_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_ele_sta]").val("");
				$("[name=com_ele_dis]").val("");
				$("[name=rec_dat]").val("");
				$("[name=cov_dat]").val("");
				$("[name=con_amo]").val("");
				$("[name=com_nam]").focus();
				$("#lobbyistBundle_data").animate({opacity: 0.2}, 500);
				$.ajax({
					type: "GET",
					url: "LobbyistBundleData.do",
					data: ({
						format:"html",
						page:1
					}),
					beforeSend: function(){$("#lobbyistBundle_data").animate({opacity: 0.2}, 500);},
					success: function(data){
						$("#lobbyistBundle_data").html(data);
						delete data;
						pagination();
						sort();
					},
					complete: function(){$("#lobbyistBundle_data").animate({opacity: 1}, 2000);}
				});
				evt.preventDefault();
				return false;
			});
			event.preventDefault();
		});
		
		$(".exportIcon").click(function(event){
			if($.myVar.qs == undefined) lobbyistBundle.queryString(window.location, $.myVar);
			qs = "&com_nam=" + $.myVar.qs.com_nam + "&com_ele_sta=" + $.myVar.qs.com_ele_sta + "&com_ele_dis=" + $.myVar.qs.com_ele_dis + "&rec_dat=" + $.myVar.qs.rec_dat + "&cov_dat=" + $.myVar.qs.cov_dat + "&con_amo=" + $.myVar.qs.con_amo + "&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){
				lobbyistBundle.queryString($(this).attr("href"), $.myVar);
				$.ajax({
					type: "GET",
					url: "LobbyistBundleData.do",
					data: ({
						format:"html",
						sortField: $.myVar.qs.sortField, 
						sortOrder: $.myVar.qs.sortOrder,
						page: $.myVar.qs.page,
						com_nam: $.myVar.qs.com_nam,
						com_ele_sta: $.myVar.qs.com_ele_sta,
						com_ele_dis: $.myVar.qs.com_ele_dis,
						rec_dat: $.myVar.qs.rec_dat,
						cov_dat: $.myVar.qs.cov_dat,
						con_amo: $.myVar.qs.con_amo
					}),
					beforeSend: function(){$("#lobbyistBundle_data").animate({opacity: 0.2}, 500);},
					success: function(data){
						$("#lobbyistBundle_data").html(data);
						delete data;
						pagination();
						sort();
					},
					complete: function(){$("#lobbyistBundle_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")){
					lobbyistBundle.queryString($(this).find("a").attr("href"), $.myVar);
				}else{
					lobbyistBundle.queryString($(this).attr("href"), $.myVar);
				}
				$.ajax({
					type: "GET",
					url: "LobbyistBundleData.do",
					data: ({
						format:"html",
						sortField: $.myVar.qs.sortField, 
						sortOrder: $.myVar.qs.sortOrder,
						page: $.myVar.qs.page,
						com_nam: $.myVar.qs.com_nam,
						com_ele_sta: $.myVar.qs.com_ele_sta,
						com_ele_dis: $.myVar.qs.com_ele_dis,
						rec_dat: $.myVar.qs.rec_dat,
						cov_dat: $.myVar.qs.cov_dat,
						con_amo: $.myVar.qs.con_amo
					}),
					beforeSend: function(){$("#lobbyistBundle_data").animate({opacity: 0.2}, 500);},
					success: function(data){
						$("#lobbyistBundle_data").html(data);
						delete data;
						pagination();
						sort();
					},
					complete: function(){$("#lobbyistBundle_data").animate({opacity: 1}, 2000);}
				});
				event.preventDefault();
				return false;
			});
		};
		pagination();
		sort();
	});
});

function LobbyistBundle(){}
LobbyistBundle.prototype.validate = function(){
	var com_nam = $("[name=com_nam]").val();
	var com_ele_sta = $("[name=com_ele_sta]").val();
	var com_ele_dis = $("[name=com_ele_dis]").val();
	var rec_dat = $("[name=rec_dat]").val();
	var cov_dat = $("[name=cov_dat]").val();
	var con_amo = $("[name=con_amo]").val();
	if(com_nam == "" && com_ele_sta == "" && com_ele_dis == "" && rec_dat == "" && cov_dat == "" && con_amo == ""){
		$("#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(rec_dat != "" && parseInt(Date.parse(rec_dat)) > parseInt(Date.parse(today))){
			$("#validateForm").text("* Receipt Date cannot be later than Today's date");
			$("[name=rec_dat]").focus();
			return false;
		}
		if(com_ele_dis != "" && isNaN(parseInt(com_ele_dis))){
			$("#validateForm").text("* Please enter a numeric value for District!");
			$("[name=com_ele_dis]").focus();
			return false;
		}
		if(con_amo != "" && isNaN(parseInt(con_amo))){
			$("#validateForm").text("* Please enter a numeric value for Contribution Amount!");
			$("[name=con_amo]").focus();
			return false;
		}
	}
	$("#validateForm").hide();
	return true;
};
LobbyistBundle.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_ele_sta == undefined){
		$.myVar.qs.com_ele_sta = $("[name=com_ele_sta]").val();
	}if($.myVar.qs.com_ele_dis == undefined){
		$.myVar.qs.com_ele_dis = $("[name=com_ele_dis]").val();
	}if($.myVar.qs.rec_dat == undefined){
		$.myVar.qs.rec_dat = $("[name=rec_dat]").val();
	}if($.myVar.qs.cov_dat == undefined){
		$.myVar.qs.cov_dat = $("[name=cov_dat]").val();
	}if($.myVar.qs.con_amo == undefined){
		$.myVar.qs.con_amo = $("[name=con_amo]").val();
	}
};
