// Load EventHandlers on document ready

$(document).ready(function() { 
	addEventHandlers();
});

// Javascript trim
function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

// unblock when ajax activity stops 
$().ajaxStop($.unblockUI); 

// Ajax Call Function
function ajaxCall(term, year, state, county, letter, page, list, filter) { 
	//alert("Term: "+term+" Year: "+year+" State: "+state+" County: "+county+" Letter: "+letter+" Page: "+page+" Deans: "+deanslist+" Pres: "+preslist+"");
	 $.ajax({
	   type: "POST",
	   url: "index.php?",
	   data: "action=filter&term="+term+"&year="+year+"&state="+state+"&county="+county+"&letter="+letter+"&page="+page+"&list="+list+"&filter="+filter+"",
	   success: function(msg){
		$("#resultset").replaceWith("<div id='resultset'>"+msg+"</div>");
	   }
	 });
} 

// Ajax for search
function ajaxSearch(keyword,list,page) {
	 $.ajax({
	   type: "POST",
	   url: "index.php?",
	   data: "action=search&keyword="+keyword+"&list="+list+"&page="+page+"&ajax=1",
	   success: function(msg){
	     //alert( "Data Saved: " + msg );
		$("#resultset").replaceWith("<div id='resultset'>"+msg+"</div>");
	   }
	 });
}
function doBlockUI(){
	$.blockUI({ message: '<h1><img src="images/ajax-loader.gif" /> Just a moment: Filtering Data...</h1>', 
		css: { 
			border: 'none', 
			padding: '15px', 
			backgroundColor: '#000', 
			'-webkit-border-radius': '10px', 
			'-moz-border-radius': '10px', 
			opacity: '1', 
			color: '#fff' 
		},
		overlayCSS: {
			opacity: '0.5'
		}
	});	
}


function getUrlParam(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}


function addEventHandlers(){
	
	var term = $("#term").val();
	var year = $("#year").val();
	var state = $("#state").val();
	var county = $("#county").val();
	var letter = $("#current a").html();
	var pageDefault = 1;
	var deanslist = $('#deanslist').attr("checked");
	var preslist = $('#preslist').attr("checked");
	var keyword = $('#keyword').attr("value");
	var list = getUrlParam('list');
	var filter = getUrlParam('filter');
	
	
	$('a.letter').livequery('click',function(event){
		//alert(event.target);
		event.preventDefault();				
		letter = $(event.target).html();		
		doBlockUI();
		ajaxCall(term, year, state, county, letter, pageDefault, list, filter);
	});
	
	$('a.page').livequery('click',function(event){
		//alert(event.target);
		event.preventDefault();
		page = $(event.target).html();
		doBlockUI();
		ajaxCall(term, year, state, county, letter, page, list, filter);
	});
	
	$('a.searchpage').livequery('click',function(event){
		//alert(event.target);
		event.preventDefault();
		page = $(event.target).html();
		doBlockUI();
		ajaxSearch(keyword, list, page);
	});
		
	$('#term').livequery('change',function(event){
		//alert(event.target.id);
		event.preventDefault();
		term = $(event.target).val();
		doBlockUI();
		ajaxCall(term, year, state, county, letter, pageDefault, list, filter);
	});	

	$('#year').livequery('change',function(event){
		//alert(event.target.id);
		event.preventDefault();
		year = $(event.target).val();
		doBlockUI();
		ajaxCall(term, year, state, county, letter, pageDefault, list, filter);
	});

	$('#state').livequery('change',function(event){
		//alert(event.target.id);
		event.preventDefault();
		state = $(event.target).val();
		doBlockUI();
		ajaxCall(term, year, state, county, letter, pageDefault, list, filter);
	});
	
	$('#county').livequery('change',function(event){
		//alert(event.target.id);
		event.preventDefault();
		county = $(event.target).val();
		doBlockUI();
		ajaxCall(term, year, state, county, letter, pageDefault, list, filter);
	});
	
	$('#deanslist').livequery('click',function(event){
		//alert(event.target.id);	
		event.preventDefault();
		if ($('#deanslist').attr("checked")){
			filter = 'deanslist';
		} else { 
			filter = ''; 
		}
		doBlockUI();
		ajaxCall(term, year, state, county, letter, pageDefault, list, filter);
	});
	
	$('#preslist').livequery('click',function(event){
		//alert(event.target.id);	
		event.preventDefault();
		if ($('#preslist').attr("checked")){
			filter = 'preslist';
		} else { 
			filter = ''; 
		}		
		doBlockUI();
		ajaxCall(term, year, state, county, letter, pageDefault, list, filter);		
	});
	
	$('#keyword').livequery('blur',function(event){
		event.preventDefault();
		keyword = $('#keyword').attr("value");
		
		if (trim(keyword) != ""){
		doBlockUI();	
		//alert("this is the keyword before the event "+keyword);
			ajaxSearch(keyword,list,pageDefault);
		} else {
		  alert("You must add a name to search");
		}
	});
	
}




