var utils = {
    isset : function(variable) {return variable != undefined},
    hasValue : function(variable) {return utils.isset(variable) && variable!=''},
    exists : function(element) {return element != "" || jQuery(element).length > 0},
	log : function(message) {try{console.log(message);} catch(ex){/*NO LOG*/}}	
};

var site = {
	name: "Eurojuris Master"
};

function Search(event){		
	
	var phrase;
	
	if(event.data){
		phrase = event.data;
	} else {
		phrase = event;
	}
	
	utils.log("Search(\""+phrase+"\")");		
	
	
	//Hide search box if it is active
	jQuery("#search div.toggler.active").trigger('click');
		
	jQuery("#search-result div.meta").empty();
	jQuery("#search-result div.elements").empty();			
		
	try {
		var data = jQuery.ajax({type: 'GET', url: "index.html?find="+phrase+"&id=1037133&site="+site.name+"&template=Search", async: false}).responseText;								
		var size = 0;
		var trs = jQuery(data).find("tr");
		for(i=0;i<trs.length;i++){
			var element = jQuery("<div/>").addClass("result-element");
			var anchor = jQuery("<a/>").attr({href:jQuery(trs[i]).find(".HitTitle a").attr("href")});
			jQuery(element).append(anchor);
			
			var title = jQuery("<h3/>").text(jQuery(trs[i]).find(".HitTitle").text());
			jQuery(anchor).append(title);
		
			//IF NEXT IS PRESENTATION
			try {
				if(jQuery(trs[i+1]).find(".HitPresentation").length>0){
					jQuery(anchor).append(jQuery("<p/>").text(jQuery(trs[i]).find(".HitTitle").text()));
					i++;
				}
			} catch (ex){
				utils.log("IndexOutOfBoundException");
			}
		
			size++;
		
			jQuery("#search-result div.elements").append(element);	
		}
		jQuery("#search-result div.meta").html('<span class="phrase">'+phrase+'</span>, <span class="size">'+size+'</span>');	
		
		jQuery("#search-result div.meta").prepend(
			jQuery("<span></span>").addClass("close").text("Close").click(function(){
																		jQuery("#search-result").fadeOut('fast');
																	})
		);
		
	} catch(exception) {
		utils.log("Error: [Search submit] "+exception);	
	}
	
	
	jQuery("#search-result").css("display","block");
	return false;
}



jQuery(document).ready(function(){

	//Text size
	if(utils.exists(jQuery("#text-size"))){

		var originalFontSize = jQuery("#content").css("font-size");

		jQuery("#text-size .reset").bind("click", function() {
			jQuery("#content").css("font-size", originalFontSize);
		});

		jQuery("#text-size .increase").bind("click", function() {
			var currentFontSize = jQuery("#content").css("font-size");
			var currentFontSizeNum = parseFloat(currentFontSize, 10);
			var newFontSize = currentFontSizeNum*1.2;
			jQuery("#content").css("font-size", newFontSize+"px");
			return false;	
		});

		jQuery("#text-size .decrease").bind("click", function() {
			var currentFontSize = jQuery("#content").css("font-size");
			var currentFontSizeNum = parseFloat(currentFontSize, 10);
			var newFontSize = currentFontSizeNum*0.8;
			jQuery("#content").css("font-size", newFontSize+"px");
			return false;	
		});
	}
	
	
	//Search
	jQuery("#search").bind("submit", function(){
		var phrase = jQuery("#find").attr("value").trim();
		if(utils.hasValue(phrase)){
			if(jQuery.history){
				if(window.location.hash != "#search/"+phrase){
					window.location.hash = "#search/"+phrase;					
				} else {
					Search(phrase);		
				}
			} else {			
				Search(phrase);		
			}						
		}		
		return false;
	});	
	
	jQuery("#text-size .toggler").click(function(){	
    	jQuery("#text-size .panel").fadeIn('fast');
	});	
	
	
	jQuery("#text-size").click(function(event){
		jQuery("#text-size div.toggler").addClass("active");
		jQuery("#text-size div.panel").fadeIn("fast");
	}).mouseleave(function(){
		jQuery("#text-size div.toggler").removeClass("active");
		jQuery("#text-size div.panel").fadeOut("fast");
	});
	
	jQuery("#share").click(function(event){
		jQuery("#share div.toggler").addClass("active");
		jQuery("#share div.panel").fadeIn("fast");
		jQuery(this).data("in", true);
		jQuery("#share div.panel").data("hidden", false);
	}).mouseleave(function(){
		jQuery("#share div.toggler").removeClass("active");
		jQuery("#share div.panel").fadeOut("fast");
		jQuery(this).data("in", false);
		jQuery("#share div.panel").data("hidden", true);
	});

	jQuery("#search div.toggler").click(function(event){
		if(jQuery("#search div.toggler").hasClass("active")){
			jQuery("#search div.toggler").removeClass("active");
			jQuery("#search div.panel").fadeOut("fast");
		   
			jQuery("#text-size-disabled").attr("id","text-size");
			jQuery("#share-disabled").attr("id","share");				
		} else {
			jQuery("#search div.toggler").addClass("active");
			jQuery("#search div.panel").fadeIn("fast");		
			
			jQuery("#text-size").attr("id","text-size-disabled");
			jQuery("#share").attr("id","share-disabled");
			jQuery("#search input[id=find]").focus();
		}
	});	
});
