$(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 "Leadership/Registrant Committee Statements of Organization" records containing your search terms were found.</div>';
	$("#fec_mainContentWide").append(pc);
	
	var leadership = new Leadership();

	$.get("LeadershipData.do?format=html&page=1", {}, function(data){
		$("#leadership_data").html(data);
		delete data;
		$("#export, .export").show();
		$("#progressControl").remove().insertBefore("#leadership_data").hide();	
		
		$("#button").click(function(event){
			$("#customSearchBox").toggle("fast");
			$("[name=cov_end_dat]").datepicker({
				changeMonth: true,
				changeYear: true
			});
			$("[name=submitForm]").click(function(evt){
				if(leadership.validate()){
					$("#validateForm").hide();
					leadership.queryString(window.location, $.myVar);
					$.ajax({
						type: "GET",
						url: "LeadershipData.do",
						data: ({
							format:"html",
							page:1,
							sortField: $.myVar.qs.sortField, 
							sortOrder: $.myVar.qs.sortOrder,
							com_nam: $("[name=com_nam]").val(), 
							spo_or_aff_com_nam: $("[name=spo_or_aff_com_nam]").val(),
							cov_end_dat: $("[name=cov_end_dat]").val(),
							cas_on_han: $("[name=cas_on_han]").val(),
							tot_dis: $("[name=tot_dis]").val(),
							tot_rec: $("[name=tot_rec]").val()
						}),
						beforeSend: function(){$("#leadership_data").animate({opacity: 0.2}, 500);},
						success: function(data){
							if(data.length <= 0){
								$("#leadership_data").html(noData);
							}else{
								$("#leadership_data").html(data);
								delete data;
								qs = "&com_nam=" + $("[name=com_nam]").val() + "&spo_or_aff_com_nam=" + $("[name=spo_or_aff_com_nam]").val() + "&cov_end_dat=" + $("[name=cov_end_dat]").val() + "&cas_on_han=" + $("[name=cas_on_han]").val() + "&tot_dis=" + $("[name=tot_dis]").val() + "&tot_rec=" + $("[name=tot_rec]").val() + "&sortField=" + $.myVar.qs.sortField + "&sortOrder=" + $.myVar.qs.sortOrder;
								pagination();
								sort();
							}
						},
						complete: function(){$("#leadership_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=spo_or_aff_com_nam]").val("");
				$("[name=cov_end_dat]").val("");
				$("[name=cas_on_han]").val("");
				$("[name=tot_dis]").val("");
				$("[name=tot_rec]").val("");
				$("[name=com_nam]").focus();
				$.ajax({
					type: "GET",
					url: "LeadershipData.do",
					data: ({
						format:"html",
						page:1
					}),
					beforeSend: function(){$("#leadership_data").animate({opacity: 0.2}, 500);},
					success: function(data){
						$("#leadership_data").html(data);
						delete data;
						pagination();
						sort();
					},
					complete: function(){$("#leadership_data").animate({opacity: 1}, 2000);}
				});
				evt.preventDefault();
				return false;
			});
			event.preventDefault();
		});
		
		$(".exportIcon").click(function(event){
			if($.myVar.qs == undefined) leadership.queryString(window.location, $.myVar);
			qs = "&com_nam=" + $.myVar.qs.com_nam + "&spo_or_aff_com_nam=" + $.myVar.qs.spo_or_aff_com_nam + "&cov_end_dat=" + $.myVar.qs.cov_end_dat + "&cas_on_han=" + $.myVar.qs.cas_on_han + "&tot_dis=" + $.myVar.qs.tot_dis + "&tot_rec=" + $.myVar.qs.tot_rec + "&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){
				leadership.queryString($(this).attr("href"), $.myVar);
				$.ajax({
					type: "GET",
					url: "LeadershipData.do",
					data: ({
						format:"html",
						sortField: $.myVar.qs["sortField"], 
						sortOrder: $.myVar.qs["sortOrder"],
						page: $.myVar.qs["page"],
						com_nam: $.myVar.qs.com_nam,
						spo_or_aff_com_nam: $.myVar.qs.spo_or_aff_com_nam,
						cas_on_han: $.myVar.qs.cas_on_han,
						tot_dis: $.myVar.qs.tot_dis,
						tot_rec: $.myVar.qs.tot_rec,
						cov_end_dat: $.myVar.qs.cov_end_dat
					}),
					beforeSend: function(){$("#leadership_data").animate({opacity: 0.2}, 500);},
					success: function(data){
						$("#leadership_data").html(data);
						delete data;
						pagination();
						sort();
					},
					complete: function(){$("#leadership_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")){
					leadership.queryString($(this).find("a").attr("href"), $.myVar);
				}else{
					leadership.queryString($(this).attr("href"), $.myVar);
				}
				$.ajax({
					type: "GET",
					url: "LeadershipData.do",
					data: ({
						format:"html",
						sortField: $.myVar.qs.sortField, 
						sortOrder: $.myVar.qs.sortOrder,
						page: $.myVar.qs.page,
						com_nam: $.myVar.qs.com_nam,
						spo_or_aff_com_nam: $.myVar.qs.spo_or_aff_com_nam,
						cas_on_han: $.myVar.qs.cas_on_han,
						tot_dis: $.myVar.qs.tot_dis,
						tot_rec: $.myVar.qs.tot_rec,
						cov_end_dat: $.myVar.qs.cov_end_dat
					}),
					beforeSend: function(){$("#leadership_data").animate({opacity: 0.2}, 500);},
					success: function(data){
						$("#leadership_data").html(data);
						delete data;
						pagination();
						sort();
					},
					complete: function(){$("#leadership_data").animate({opacity: 1}, 2000);}
				});
				event.preventDefault();
				return false;
			});
		};
		
		pagination();
		sort();
	});
});

function Leadership(){}
Leadership.prototype.validate = function(){
	var com_nam = $("[name=com_nam]").val();
	var spo_or_aff_com_nam = $("[name=spo_or_aff_com_nam]").val();
	var cov_end_dat = $("[name=cov_end_dat]").val();
	var tot_dis = $("[name=tot_dis]").val();
	var tot_rec = $("[name=tot_rec]").val();
	var cas_on_han = $("[name=cas_on_han]").val();
	if(com_nam == "" && spo_or_aff_com_nam == "" && cov_end_dat == "" && tot_dis == "" && tot_rec == "" && cas_on_han == ""){
		$("#validateForm").show();
		$("#validateForm").text("* Please enter at least one customization value!");
		$("[name=cmte_name]").focus();
		return false;
	}else{	
		$("#validateForm").show();
		var now = new Date();
		var today = (now.getMonth() + 1) + "/" + now.getDate() + "/" + now.getFullYear();
		if(cov_end_dat != "" && parseInt(Date.parse(cov_end_dat)) > parseInt(Date.parse(today))){
			$("#validateForm").text("* Coverage Date cannot be later than Today's date");
			$("[name=cov_end_dat]").focus();
			return false;
		}
		if(tot_dis != "" && isNaN(parseInt(tot_dis))){
			$("#validateForm").text("* Please enter a numeric value for Total Disbursements!");
			$("[name=tot_dis]").focus();
			return false;
		}
		if(tot_rec != "" && isNaN(parseInt(tot_rec))){
			$("#validateForm").text("* Please enter a numeric value for Total Receipts!");
			$("[name=tot_rec]").focus();
			return false;
		}
		if(cas_on_han != "" && isNaN(parseInt(cas_on_han))){
			$("#validateForm").text("* Please enter a numeric value for Cash on Hand!");
			$("[name=cas_on_han]").focus();
			return false;
		}
	}
	$("#validateForm").hide();
	return true;
};

Leadership.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 = "";
	}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.spo_or_aff_com_nam == undefined){
		$.myVar.qs.spo_or_aff_com_nam = $("[name=spo_or_aff_com_nam]").val();
	}if($.myVar.qs.cov_end_dat == undefined){
		$.myVar.qs.cov_end_dat = $("[name=cov_end_dat]").val();
	}if($.myVar.qs.tot_dis == undefined){
		$.myVar.qs.tot_dis = $("[name=tot_dis]").val();
	}if($.myVar.qs.tot_rec == undefined){
		$.myVar.qs.tot_rec = $("[name=tot_rec]").val();
	}if($.myVar.qs.cas_on_han == undefined){
		$.myVar.qs.cas_on_han = $("[name=cas_on_han]").val();
	}
};