$.fn.extend({ reset: function() {
    return this.each(function() {
        $(this).is('form') && this.reset();
    });
} });

$.fn.clearForm = function() {
  return this.each(function() {
    var type = this.type, tag = this.tagName.toLowerCase();
    if (tag == 'form')
      return $(':input',this).clearForm();
    if (type == 'text' || type == 'password' || tag == 'textarea')
      this.value = '';
    else if (type == 'checkbox' || type == 'radio')
      this.checked = false;
    else if (tag == 'select')
      this.selectedIndex = -1;
  });
};

jQuery.fn.maxlength = function(max){
	return this.each(function(){
		
		$(this).keypress(function(event){
			var key = event.which;
			
			if(key >= 33 || key == 13){
				var length = this.value.length;
				if(length >= max){
					event.preventDefault();
				}
			}

		});
	});
}
	
//Demo for pulling data!!
function updateStatus(){
	clearTimeout();
	setTimeout(updateStatus,30000);
	url = "/_action/siteStatus?screenWidth=" + screen.width;
	$.get(url,{},function(data){
		document.getElementById('stats').innerHTML = '';
		$("#stats").html(data);

	});
}


//google.load("maps", "2.x");

//DOCUMENT READY STARTS EHERERE!!!
$(document).ready( function() {
/*		$(".level").autocomplete({
			source: "_action/level"
		});
*/
		
		$('.toggleForm a').click(function(e){
			e.preventDefault();
			$(this).next().toggle();
		});
		

$('.add').each(function() {
	var node = $("<div class=\"addButton\"></div>");
	var link = this;	
	$(node).click(function(){
		
		var cancelled = false;
		
		if(document.createEvent){
			var event = document.createEvent("MouseEvents");
			event.initMouseEvent("click", true, true, window,
            0, 0, 0, 0, 0,
            false, false, false, false,
            0, null);
        	cancelled = !link.dispatchEvent(event);
		} else if(link.fireEvent){
			cancelled = !link.fireEvent("onclick");
		}
		if(!cancelled){
			window.location = link.href;
		}

	});
	
	$(link).click(function(){
		$(node).toggleClass("turnedButton");		
	});
	
	//$(node)
	
	$(this).before(node);
});


$('.popup').click(function(e){
	e.preventDefault();
	var href = this.href;
	window.open(href, null,"height=480,width=400,status=no,toolbar=no,menubar=no,location=no");
});


/**
*	Files link
*
**/
$("a[href$='.pdf']").addClass("pdf");
 
	// Add txt icons to document links (doc, rtf, txt)
	$("a[href$='.doc'], a[href$='.txt'], a[href$='.rft']").addClass("txt");
 
	// Add zip icons to Zip file links (zip, rar)
	$("a[href$='.zip'], a[href$='.rar']").addClass("zip"); 
	
	$("a[href$='.xls']").addClass("xls"); 
		$("a[href$='.ppt']").addClass("ppt"); 

/***
 ** Image gallery glue code
 **
 **
 ***/


$('#galleryDialog').dialog({
					autoOpen: false,
					width: 600,
					height: 580,
					hide: 'slide',
					show: 'slide',
					draggable: true,
					buttons: {
						"Stäng": function() { 
							$(this).dialog("close"); 
						} 
					}
				});


var caros = null;
$('#galleryDialog').bind('dialogbeforeclose', function(event, ui) {
  if(caros != null){
	 
			//$(this).html("");
			for(var i = caros.first; i <= caros.last;i++){
  			caros.remove(i);
   			}
   			caros.setup();
   			caros.lock();
		}
});			

$('.gallery').live("click", function(e){
		e.preventDefault();
			
		var title = $(this).html();
		
		//Ajax request
		$.get(this.href,{},function(data){
				
			if(caros != null) caros.lock();
			$('#galleryDialog').html(data);
			$('#galleryDialog').dialog('option', "title", title );
			$('#galleryDialog').dialog("open");
			
			$('#galleryImages li').each(function(idx) {
       		 $(this).data('index', (++idx));
		    });

			
			//Carousel
			var c = null;
			jQuery('#galleryImages').jcarousel({history:false, scroll: 5, 
			initCallback: function(carousel) { 
				c = carousel; 
				$("#galleryImage").bind('image-loaded',function(){
					var idx = $("#galleryImages li.active").data('index') - 2;
					c.scroll(idx);
					return false;
				});
			} });
			jQuery.browser.safari && c.setup(); 
			caros = c;
				  
			
			//Galleria			
			$('#galleryDialog ul').galleria({
				insert: '#galleryImage',
				history: false,
				onImage: function(image, caption, thumb) {
		        // fade in the image 
      			  image.hide().fadeIn(500);
       	 		  thumb.parent().fadeTo(200, 1).siblings().fadeTo(200, 0.6)
       	 		 $('#galleryImage').trigger('image-loaded');

       	 		  
    			},
    	       onThumb: function(thumb) {
          		  var $li = thumb.parent(),
               	  opacity = $li.is('.active') ? 1 : 0.6;
            // hover effects for list elements
            	$li.hover(
               	 function() { $li.fadeTo(200, 1); },
               	 function() { $li.not('.active').fadeTo(200, opacity); }
            	)
        	    }
				}).find('li:first').addClass('active');
			
			
		});
		
	});



// gallery glue ends

$(".confirmFirst").spicy_confirm({
			title: 'Är du säker?', 
			yes: 'Ja', 
			no: 'Nej',
			auto_remove: 10 
});

$(".dialogForm").click(function(e) {
	e.preventDefault();
	var url = this.href;
					
	$.get(url,{},function(data){
		$('#dialog').html(data);
		$('#dialog').dialog('open');
	});
});

$(".accordion").accordion({ active: false });
//Youtube
 $(".youtubePlaceHolder").each(function() {
   var height = $(this).attr("height");
   var width = $(this).attr("width");   
   $(this).replaceWith("<object width='" 
   + width
   + "' height='" 
   + height + "'><param name='movie' value='" 
   + $(this).attr("alt")
   +"'></param><param name='allowFullScreen' value='true'></param><param name='allowscriptaccess' value='always'></param><embed src='" 
   + $(this).attr("alt") 
   + "' type='application/x-shockwave-flash' allowscriptaccess='always' allowfullscreen='true' width='"
   + width +  "' height='"
   + height  + "'></embed></object>");
   });

	/*if(document.getElementById("map")!==null){
		var map  = new google.maps.Map2(document.getElementById("map"));
		map.setCenter(new google.maps.LatLng(58.2837394,12.2884935 ), 16)
		map.setUIToDefault();
	
		test = new google.maps.LatLng(58.2837394,12.2884935);
		mark = new google.maps.Marker(test, {title:"Trollhättan"});
		map.addOverlay(mark);
	}
	*/
	
	$("#toggleChName").click(function(e){
		e.preventDefault();
		$(".changeTeamName").toggle("slow");
		
	});

	
	var galleryCounter = 0;
	$("#moreGalleries").click(function(e){
		e.preventDefault();
		url = this.href;
		$.get(url,{'page': ++galleryCounter},function(data){
			$("#photoGalleryList").append(data);
		});
		
	});

	
	//News functions
	var newsCounter = 0;
	$("#moreNews").click(function(e){
		e.preventDefault();
		url = this.href;
		$.get(url,{'page': ++newsCounter},function(data){
			$("#newscolumn ul.news").append(data);
		});
		
	});
	
	$("#toggleNews").click(function(e){
		e.preventDefault();
		$(".addNews").toggle("slow");
		
	});
	
	$("#togglePassword").click(function(e){
		e.preventDefault();
		$(".changePassword").toggle("slow");
		
	});

	
	$("#newsLead").maxlength(150);
		
	//Events functions
	var eventCounter = 0;
	$("#moreEvents").click(function(e){
		e.preventDefault();
		url = this.href;
		$.get(url,{'page': ++eventCounter},function(data){
			$(".eventList ul.news").append(data);
		});
		
	});
	
	
	$("#toggleEvent").click(function(e){
		e.preventDefault();
		$(".addEvent").toggle("slow");
		
	});
	
	//Team
	
	
	$("#toggleTeam").click(function(e){
		e.preventDefault();
		$(".addTeam").toggle("slow");
		
	});
	
		
	$("#toggleAddPlayer").click(function(e){
		e.preventDefault();
		$(".addPlayer").toggle("slow");
		
	});
	
	//Svenska kalendern
	jQuery(function($){
    $.datepicker.regional['sv'] = {
		closeText: 'Stäng',
        prevText: '&laquo;Förra',
		nextText: 'Nästa&raquo;',
		currentText: 'Idag',
        monthNames: ['Januari','Februari','Mars','April','Maj','Juni',
        'Juli','Augusti','September','Oktober','November','December'],
        monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
        'Jul','Aug','Sep','Okt','Nov','Dec'],
		dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'],
		dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'],
		dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'],
        dateFormat: 'yy-mm-dd', firstDay: 1,
		isRTL: false};
    $.datepicker.setDefaults($.datepicker.regional['sv']);
	});
	
	$("#calendarDate").datepicker();
	
	$('.calendar thead a').live("click", function(e){
		e.preventDefault();
		$.get(this.href,{},function(data){
			$('.calendarContainer').html(data);
			$('.calendarContainer').show();
		});
	});
	
	
	$('.calendar .showEvent a').live("click",function(e){
		e.preventDefault();
		$.get(this.href,{},function(data){	
			$('.eventList').html(data);
			$('.eventList').show();
		
		});
	});
	
	
	//Sköter status på sidan och 
	//information om upplöning
	updateStatus();
	
	//HTMLEditor
	var htmlEditMode = 0;
	$('#mainText a.editHtmlText').click(function(e){
		e.preventDefault();
		if(!htmlEditMode){
			$('#mainText .updateableHtmlText').addClass("htmlEditMode");
			$('#mainText .updateableHtmlText').HtmlEditor({action:
				function(html){
					var url = $('#mainText input').val();
					$.post(url,{text: html},
					function(data){
						if(data){
							alert(data);
						}else {
							alert("Ändringarna sparade");
							window.location.href = window.location.href;
						}
					});
				},
				dialogSelector: "#htmlTextDialog"
			});
			htmlEditMode=1;
		}
	});
	
	$('a.editHtmlText').click(function(e){
		e.preventDefault();
		$this = $(this);
		if(!htmlEditMode){
			$('.updateableHtmlText',$this.parent().parent()).addClass("htmlEditMode");
			$('.updateableHtmlText',$this.parent().parent()).HtmlEditor({action:
				function(html){
					var url = $('input', $this.parent().parent()).val();
					$.post(url,{text: html},
					function(data){
						if(data){
							alert(data);
						}else {
							alert("Ändringarna sparade");
							window.location.href = window.location.href;
						}
					});
				},
				dialogSelector: "#htmlTextDialog"
			});
			htmlEditMode=1;
		}
	});
	
	$('#cafeInfo a.editHtmlText').click(function(e){
		e.preventDefault();
		if(!htmlEditMode){
			$('#cafeInfo .updateableHtmlText').addClass("htmlEditMode");
			$('#cafeInfo .updateableHtmlText').HtmlEditor({action:
				function(html){
					var url = $('#cafeInfo input').val();
					$.post(url,{text: html},
					function(data){
						if(data){
							alert(data);
						}else {
							alert("Ändringarna sparade");
							window.location.href = window.location.href;
						}
					});
				},
				dialogSelector: "#htmlTextDialog",
				 tools: [
        {'tool': 'p', 'title': 'Löptext', 'css': 'HtmlEditor_paragraph_button'}, 
        {'tool': 'h2', 'title': 'Rubrik 2', 'css': 'HtmlEditor_h2_button'},
        {'tool': 'h3', 'title': 'Rubrik 3', 'css': 'HtmlEditor_h3_button'},
        {'tool': 'table', 'title': 'Tabell', 'css': 'HtmlEditor_table_button'},
        {'tool': 'a', 'title': 'Länk', 'css': 'HtmlEditor_link_button'},
        {'tool': 'unlink', 'title': 'Bryt länk', 'css': 'HtmlEditor_unlink_button'},
        {'tool': 'strong', 'title': 'Fet', 'css': 'HtmlEditor_bold_button'},
        {'tool': 'em', 'title': 'Kursiv', 'css': 'HtmlEditor_italic_button'},
        {'tool': 'addFile', 'title': 'Lägg till fil', 'css': 'HtmlEditor_addFile_button'},
        {'tool': 'trash', 'title': 'Ta bort formatering', 'css': 'HtmlEditor_trash_button'},
        {'tool': 'form', 'title': 'Länka formulär', 'css': 'HtmlEditor_form_button'},
        {'tool': 'save', 'title': 'Spara', 'css': 'HtmlEditor_save_button'}
    	]

			});
			htmlEditMode=1;
		}
	});
	
	$("#top-navigation ul li a:contains('Logga ut')").each(function() {
		$("#top-navigation ul li a:contains('Logga in')").parent().remove();
	});

				//Administration för menyn, jo rätt javascript tungt.. kanske.. 
				$('#dialog').dialog({
					autoOpen: false,
					width: 600,
					hide: 'slide',
					show: 'slide',
					draggable: false,
					buttons: {
						"Stäng": function() { 
							$(this).dialog("close"); 
						} 
					}
				});
				

				$('.adm').click(function(e){
					e.preventDefault();
					var url = this.href;
					
					$.get(url,{},function(data){
					
						$('#dialog').html(data.data);
						$('#dialog').dialog('open');
						
						$('.sortMenue').sortable({
							update : function (){
								var serial = $('.sortMenue').sortable('serialize');
								$.get(data.newOrderAction,serial,function(data){
								});
							}
						});
						
						$('.sortMenue li span').live("dblclick", function(e){
							$(this).css("color","red");
							this.contentEditable = true;
							this.focus();
							
							//IE Freindly select.. 
							if(document.body.createTextRange){
								var range = document.body.createTextRange();
								range.moveToElementText(this);
								range.select();
							} else {
								var r = document.createRange();
								r.selectNodeContents(this);
								window.getSelection().addRange(r);
							}
						});
						
						$('.sortMenue li span').live('keypress',function(e){
							
							if(e.keyCode == 13){
								e.preventDefault();									
								var containerElement = $(this,document).parent().get(0);

								var url = data.updateAction;// + "item=" + containerElement.id;
								var newName = $(".label", containerElement).html();
								var path = $(".path", containerElement).html();
								var perm_req = $(".perm_req", containerElement).html();
								var clickedNode = this;

								$.post(url,{newName: newName,
										   path: path,
										   perm_req: perm_req,
										   item: containerElement.id},
										   function(data){
										   	if(data.error==1){
										   		alert(data.mess);
										   	} else {
										   		clickedNode.contentEditable = false;
										   		$(clickedNode).css("color","rgb(51,51,51)");
										   		$(clickedNode).siblings().each(function() {
										   			$(this).css("color","rgb(51,51,51)");								
										   			this.contentEditable = false;
										   		});
										   			
										   		clickedNode.blur();
										   }
								},'json');
							}
						});
						
						$("#dialog .trash").droppable({
						tolerance: 'touch',
						accept: 'li',
      					drop: function(event, ui) {
      							//Weird IE-hack...
      							var IeHack = function(){
      								$(ui.draggable).remove();
      							}
      							
 	   							var id = ui.draggable.attr('id');
      							if(confirm("Vill du verkligen ta bort?")){
      								var url = data.deleteAction + "&item=" + id;
      								setTimeout(IeHack, 40);
      								$.get(url); 							
     							}
     						}
    					});
    					
    					$("#dialog .menueTools .add a").click(
    						function(event){
   							event.preventDefault();
   							$.get(data.addAction,{},function(data){
   								$('.sortMenue').append(data);
   							}); 						
       					});
						
					},'json');
					
					return false;
				});
			//Slut administration menyn
					
	

	//Admin functions

	$("#setPassword").click(function(e){
		e.preventDefault();
		var url = this.href;
		var newPassword = prompt("Nytt lösenord:");
		if(newPassword){
			$.post(url, "newPassword="+newPassword, function(data){
				if(data.error==1){ 
						alert(data.data);
				}
				else { 
					alert("Lösenord upddaterat");
				}
			},"json");
		}
	});
	
	
	$("#setName").click(function(e){
		e.preventDefault();
		var url = this.href;
		var newName = prompt("Nytt namn:");
		var aNode = this;
		if(newName){
			$.post(url, "newName="+newName, function(data){
				if(data.error==1){ 
						alert(data.data);
				}
				else { 
					$(aNode).html(newName);
				}
			},"json");
		}
	});
	
	$("#setEmail").click(function(e){
		e.preventDefault();
		var url = this.href;
		var newEmail = prompt("Ny epost:");
		var aNode = this;
		if(newEmail){
			$.post(url, "newEmail="+newEmail, function(data){
				if(data.error==1){ 
						alert(data.data);
				}
				else { 
					$(aNode).html(newEmail);
				}
			},"json");
		}
	});
	
	
	
	$(".setCredential").click(function(e){
		e.preventDefault();
		var url = this.href;
		var prevCred = $(this).html();
		var newCred = prompt("Ny rättighet:",prevCred);
		var aNode = this;
		if(newCred){
			$.post(url,"newPermission="+newCred, function(data){
    			if(data.error==1){
    				alert(data.data);
    			} else {
    				$(aNode).html(newCred);
    			}
    			
    		},"json");
    	}
	});
	
	$("#removeUser").click(function(e){
		if(!confirm("Ta bort användare?"))
			e.preventDefault();
	});
	
	$("#removeGroup").click(function(e){
		if(!confirm("Ta bort grupp?"))
			e.preventDefault();
	});
	
	$(".deletePage").click(function(e){
		if(!confirm("Ta bort sidan?"))
			e.preventDefault();
	});
	
	$("#createGroup").click(function(e){
		e.preventDefault();
		var url = this.href;
		var newGroupName = prompt("Namn på gruppen:");
		var aNode = this;
		if(newGroupName){
			$.post(url, "name="+newGroupName, function(data){
				if(data.error==1){ 
						alert(data.data);
				}
				else { 
					location.href = location.href;
				}
			},"json");
		}

	});
	
	
	$("#addCredential").submit(function(e){
		e.preventDefault();
		var url = this.action;
		var value = $(this).serialize();
		$.post(url, value, function(data){
			if(data.error==1){
				alert(data.data);
			} else {
				$("#addCredentialContainer").before(data.data);
				$("#addCredential").reset();
				$("#addCredential input:first").focus()
			}
		},"json");
	});
	
	$("#addCredential input").keydown(function(e){
		if(e.keyCode == 13){
			e.preventDefault();
			$("#addCredential").submit();
		}
	});
	
	$(".groups form").submit(
		function(e){
			e.preventDefault();
			var url = this.action;
			var value = $(this).serialize();
			
			$.post(url,value,function(data){
				if(data.error==1){
					alert(data.data);
				} else {
					$("#joinGroupContainer").before(data.data);
				}
			},"json");

		}
	);
	
	$(".addUser form").submit(
		function(e){
			e.preventDefault();
			var str = $(this).serialize();
			$(".addUser li.buttons").append('<img src="/Directory/gfx/ajax-loader.gif" class="loading" />');
			$.post(this.action,str,function(data){
				if(data.error==1) 
					alert(data.data);
				else {
					$("#listOfUsersHead").after(data.data);
					$(".addUser form").reset();
				} 
					
				$(".loading").remove();
				
			},"json");
		});
		
});


