$(document).ready(function(){

	$("#print").click(function(e) {
		e.preventDefault();
		window.print();
	});
	
	
	var tellafriendcontainer = $("<div />").attr("id", "friendcontainer");
	
	$("#tellafriend").click(function(e) {

		e.preventDefault();
		
		$(".sharebuttons:visible").hide();

		if($("#friendcontainer:visible").length<1) {
			$("body").addClass("loading");
			$("#sharelinks").append(tellafriendcontainer).find("#friendcontainer").hide();
			$("#friendcontainer").load($(this).attr("href"), function() {
				$("input", this).placeholder({
					ttext: {
						color: "#333"
					}
				});

				$(this).show();
				
				$("#friendcontainer form").submit(function(e) {
					
					if(isvalid($(this))) {
						$.ajax({
							type: "POST",
							url: $(this).attr("action"),
						   	data: $(this).serialize(),
						   	success: function(msg){
						   		$("#friendcontainer").fadeOut(500, function() {
						   			alert("Meddelandet skickat till " + $("#to", this).val());
						   			$(this).remove();
						   		});
						   			
						   	}
						});
					}
					
					else {
						alert("Fält markerade med * är obligatoriska. Se även till att epost-adresserna stämmer.");
					}
					
					return false;
					
					
				});
				
					$("body").removeClass("loading");
					$("input#from", this).focus();
					$(".cancel", this).click(function() {
						$("#tellafriend").trigger("click");
					})
				
			});
		}
		else {
			$("#friendcontainer").remove();
		}
		
		
	});
	
	$("#share").click(function(e){
		e.preventDefault();
		$(".sharebuttons").toggle();
		$("#friendcontainer:visible").remove();
	});
	
	
	
	function isvalid(elems) {
		var total = $(".required", elems).length;
		var valid = 0;
		$(".required", elems).each(function() {
		
			if($(this).val().length>0) {
				if($(this).hasClass("email")) {
				var rege = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
					
					var emails = $(this).val().split(", ");
					var validmail = 0;
					

					for(i=0;emails.length>i;i++) {
						if(rege.test(emails[i])) {
							validmail++;
						}
						
						else {
							$(this).addClass("error");

							break;
						}
					
					};
					
					if(validmail==emails.length){
						$(this).removeClass("error");
						valid++;
					}
					
					
				}
				else {
					valid++;
					$(this).removeClass("error");
				}
			}
			else {
					$(this).addClass("error");
			}
			
		})
		
		if(total == valid) {
			return true;
			//console.log("valid");
		}
		
		else {
			//console.log(valid, "not valid");
			return false;


		}

	}
	

	$("#searchform input").placeholder({
		ttext: {
			color: "#fff"
		}
	});
	if ($.browser.msie) {
    
 }	else {
 $("#nav>li:nth-child(1):not(.parent_here):not(.here)>a").css("background-color", "#adafa7");
	$("#nav>li:nth-child(2):not(.parent_here):not(.here)>a").css("background-color", "#adafa7");
	$("#nav>li:nth-child(3):not(.parent_here):not(.here)>a").css("background-color", "#c4c5c0");
	$("#nav>li:nth-child(4):not(.parent_here):not(.here)>a").css("background-color", "#c4c5c0");
	$("#nav>li:nth-child(5):not(.parent_here):not(.here)>a").css("background-color", "#c4c5c0");
	$("#nav>li:nth-child(6):not(.parent_here):not(.here)>a").css("background-color", "#c4c5c0");

 }
	

	$(".debug").mousedown(function() {
		$(this).css("right", "0");
	}).mouseup(function() {
		$(this).css("right", "-180px");
	});
	
	$("#gamla_evenemang").hide();
	
	if($("#gamla_evenemang .event").length==0) {
		$("#show_old_events").hide();
	}
	
	$("#show_old_events").click(function() {
		$("#gamla_evenemang").slideToggle();
		return false;
	});
	
	$("#searchtips").hide();
	
	$("#show_searchtips").click(function() {
		$("#searchtips").slideToggle();
		return false;
	
	})
	
$("#documents a[href$=doc], #documents a[href$=docx]").parents("h3").addClass("document-word");
$("#documents a[href$=mp3]").parents("h3").addClass("document-mp3");
$("#documents a[href$=pdf]").parents("h3").addClass("document-pdf");
$("#documents a[href$=xls]").parents("h3").addClass("document-excel");
$("#documents a[href$=rtf]").parents("h3").addClass("document-general");
$("#documents a[href$=zip]").parents("h3").addClass("document-zip");
$("#documents a[href$=ppt]").parents("h3").addClass("document-powerpoint");


$("#documents").jqfilter({
						filterform: "#filter",
						filterinput: "#fritext",
						item: "li.document"
					});
$.datepicker.setDefaults( $.datepicker.regional[ "sv" ] );




});




(function ($) {

	$.fn.jqfilter = function(options) {
		
		
var fromdate, todate;
var dates = $( ".datepicker" ).datepicker({
			defaultDate: "-1w",
			changeMonth: true,
			numberOfMonths: 1,
			onSelect: function( selectedDate ) {
						
			var pdate = $.datepicker.parseDate("yy-mm-dd", selectedDate);
			var fdate = $.datepicker.formatDate("@", new Date(pdate));			
			
			if(this.id=="from") {
				fromdate = fdate/1000; //convert from milliseconds to seconds
			}
			
			else if(this.id=="to") {
				todate = fdate/1000; //convert from milliseconds to seconds
			}
			


			
			
			
				var option = this.id == "from" ? "minDate" : "maxDate",
					instance = $( this ).data( "datepicker" );
					date = $.datepicker.parseDate(
						instance.settings.dateFormat ||
						$.datepicker._defaults.dateFormat,
						selectedDate, instance.settings );
				dates.not( this ).datepicker( "option", option, date );
			},
			onClose: function(selectedDate) {
				if(selectedDate=="") {
					if(this.id=="from") {
						fromdate = false;
					}
					if(this.id=="to") {
						todate = false;
					}
				}
			}
		});

			
			
			$(".programlist li span, .type li span").toggle(function() {
					$(this).addClass("selected");
				},
				function() {
					$(this).removeClass("selected");
					
				});
				
				$("#count").hide();
				
		$("#harea").click(function() {
			$(".programlist").slideToggle();
			$(this).toggleClass("open");
		})
		
		$(".programlist").hide();
		
		$("#htype").click(function() {
			$(".type").slideToggle();
			$(this).toggleClass("open");
		});
		
		$(".type").hide();
				
		$(".period").hide();
		
		$("#hperiod").click(function() {
			
			$(".period").slideToggle();
			$(this).toggleClass("open");
			
		})

		
		
		return this.each(function () {

			options = options || {};
			var opts = $.extend({}, $.fn.jqfilter.defaults, options || {});
			opts.that = this;


			$(opts.item).each(function(i) {
				this.id = "document-number-" + (i+1);
			});
			$(opts.item).hide();
			$("#count").hide();

			$(opts.filterform).submit(function() {

				$(opts.item).hide().removeClass("visible");

				var program = Array();
				var programs = Array();

				$(".programlist span.selected").each(function() {
					program.push($(this).text());
				})

				if(program=="") {
					$(opts.item).each(function()  {
						programs.push($(this));
					})
				}

				else {
					$.each(program, function(index, val) {

						$(".program").each(function() {
							var hit = (val==$(this).text()) ? $(this).parents("li") : null;												
							if(hit) programs.push(hit);											
						})
					})

				}

				
				
				var category = Array();
				var categories = Array();

				$(".type span.selected").each(function() {
					category.push($(this).text());
				})

				if(category=="") {
					$(programs).each(function()  {
						categories.push($(this));
					})
				}

				else {
					$.each(programs, function(index, val) {

						
						$.each(category, function(i, item) {
							var hit = (val.find(".category").text()==item) ? val : null;
							if(hit) {
								categories.push(hit);
							}
							
						})
						
					})

				}
				
				
				var inrange = Array();
/* 				console.log(fromdate.length); */
				if(fromdate && todate) {
					
					$.each(categories, function(i, item) {
						var timestamp = parseInt(item.find(".timestamp").text());
						var hit = (timestamp>fromdate && timestamp<todate) ? item : null;
						if(hit) inrange.push(hit);
						
						
					})
				
				
				}
				
				else if(fromdate || todate) {
					alert("Du måste fylla i båda datumrutorna");
					return false;
				}
				
				
				else {
					$(categories).each(function(){
						inrange.push($(this));
					});
				}

						
				var result = Array();
				var query = $(opts.filterinput).val();
				if(query.length>0) {
					$.each(inrange, function(i, item){
						var hit = $(item).filter(":icontains('" + query + "')");
						if(hit.length) {
						   	result.push(hit);
							
						}

					})
				}

				else {
					result = inrange;
				}
				

				var comments = result.length;
				var visible = (comments>10) ? 10 : comments;
				var start = 1;
				var pages = Math.ceil(comments/visible);
				function showcommentpage(start) {
					comments = result.length;
					pages = Math.ceil(comments/visible);
					end = Math.ceil(start*visible)+1;
					active = start;
					start = end-visible;
					
					$("#documents li").each(function() {
						var index = $("#documents li.visible").index(this)+1;
						if(index>=start && index<end) {
							$(this).show();
						}
						else {
							$(this).hide();
						}
					});
					if(comments<start+visible) {
						$(".next-document-page").hide();
					}
					else $(".next-document-page").show();
					if(start>1) {
						$(".prev-document-page").show();
					}
					else $(".prev-document-page").hide();

					$(".document-page-link").removeClass("active");
					$(".document-page-" + active).addClass("active");

				}
				$(".document-paging").remove();

				if(comments>visible) {
				

				
				$("<ol />").addClass("document-paging").insertAfter("#documents");
				

				$(".document-paging").prepend('<li><a href="#documents" class="prev-document-page">Föregående</a></li>').find(".prev-document-page").hide().click(function() {
					showcommentpage(active-1);
				});

				for(i=1;i<=pages;i++) {
					$(".document-paging").append('<li><a href="#documents" class="document-page-link document-page-'+i+'">' + i + '</a></li>');
				}

				$(".document-paging").append('<li><a href="#documents" class="next-document-page">Nästa</a></li>').find(".next-document-page").click(function() {

					showcommentpage(active+1);

				});

				$(".document-page-link").each(function() {
					$(".document-page-1").addClass("active");
					$(this).click(function() {
						showcommentpage(eval($(this).text()));
					});
				});


				}								
				//showcommentpage(start);				
				if(result.length>0) {
					var word = (result.length!=1) ? "träffar" : "träff";
					$("#count").text(result.length + " " + word).fadeIn();
					
					$.each(result, function(i, item) {
						$(item).show().addClass("visible");
					})
					
					showcommentpage(start);				
					
				}
				
				else {
					$("#count").text("0 träffar").fadeIn();
				}
				
				
				return false;
			})


		});



	}

	$.fn.jqfilter.defaults = {
		filterform: "#filter",
		filterinput: "input:first-child",
		item: "li"


	};

	$.expr[':'].icontains = function(obj, index, meta, stack) {
		return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;
	};


	})(jQuery);
	
	
(function($){
	$.fn.placeholder = function(options) {
		var opts = $.extend(true, {}, $.fn.placeholder.defaults, options);
		if(supports_input_placeholder() && !opts.force) {
			return;
		}
		return this.each(function() {
			// kolla om attributet placeholder finns
			if($(this).is("[placeholder]")) {
				
				// spara $this
				var $this = $(this);
				
				//spara placeholdertexten i en variabel
				var holdertext = $(this).attr("placeholder");
				
				$(this)
				//lägg in css-objektet för default-texten
				.css(opts.phtext)
				//lägg in placeholder-texten i "value"
				.val(holdertext)
				
				.focus(function() {
					// om det är placeholdertext ska texten tas bort vid fokus
					if($(this).val()==holdertext) {
						$(this)
						.css(opts.ttext) // styla input med css
						.val("");
					}
				})
				.blur(function() {
					// om inputen är tom ska placeholdertexten in igen vid blur
					if($(this).val()=="") {
						$(this)
						.css(opts.phtext) // style input med css
						.val(holdertext);
					}
				})
				// ta bort placeholdertexten ur value vid submit
				.parents("form").submit(function() {
					if($this.val()==holdertext) {
						$this.val("");
					}
					
				});
				
			}
		});
	}
	
	$.fn.placeholder.defaults = {
		phtext: {
			color: "#aaa"
		},
		ttext: {
			color: "#000"
		},
		force: false
	}
	
})(jQuery);


function supports_input_placeholder() {
  var i = document.createElement('input');
  return 'placeholder' in i;
}

















