// Document ready
$(document).ready(function(){
	//////////////////////////////////////////////////////////////////////////////////////////////
	// Forms: Styling
	//////////////////////////////////////////////////////////////////////////////////////////////

	// Text area (custom toolbar)
	$('.textfieldtoolbar').each(function(){
		var field 		= $(this);
		var parent		= field.parent();	
		var textarea	= parent.html();

		field.hide();
		
		var toolbar		= '<div class="textfieldtoolbar_wrapper" style="padding: 0;">';
			toolbar	   += ' <div class="ta_toolbar">';
			toolbar	   += '  <img src="gfx/icon_16_text_bold.png" alt="bold" title="Fet skrift" />';
			toolbar	   += '  <img src="gfx/icon_16_text_italic.png" alt="italic" title="Kursiv skrift" />';
			toolbar	   += '';
			toolbar	   += '  <img src="gfx/icon_16_link.png" alt="link" title="Lenke" />';
			toolbar	   += '  <img src="gfx/icon_16_tag.png" alt="quote" title="Sitér" />';
			toolbar	   += ' </div>';
			toolbar	   += textarea;
			toolbar	   += '</div>';
		
		parent.html(toolbar);
	});
	$(".textfieldtoolbar").focus(function(){
		var container = $(this).parent();

		$(container).addClass("field_focus");
	});
	$(".textfieldtoolbar").blur(function(){
		var container = $(this).parent();
		
		$(container).removeClass("field_focus");
	});
	$('.ta_toolbar img').click(function(){
		var what		= $(this).attr('alt');
		var parent		= $(this).parent().parent();
		var textarea	= $('textarea', parent);
		
		// Bold
		if(what == 'bold'){
			textarea.surroundSelectedText('[[b]]', '[[/b]]');
		}
		// Italic
		if(what == 'italic'){
			textarea.surroundSelectedText('[[i]]', '[[/i]]');
		}
		// Link
		if(what == 'link'){
			textarea.surroundSelectedText('[[a:URL]]', '[[/a]]');
		}
		// Quote
		if(what == 'quote'){
			textarea.surroundSelectedText('[[quote:HVEM?]]', '[[/q]]');
		}
		
	});
	
	// Text area (code)
	$('.markitup').markItUp(mySettings);
	
	$('.markitup').attr("style", "border: 0; outline: 0;" + $('.markitup').attr("style"));
	
	$(".markitup").focus(function(){
		var container = $(this).parent();
		
		$(container).addClass("field_focus");
	});
	$(".markitup").blur(function(){
		var container = $(this).parent();
		
		$(container).removeClass("field_focus");
	});
	
	// Cite button
	$(".cite").click(function(){
		var author	= $(this).parent().parent().find('h2').html();
		var comment	= $(this).parent().parent().parent().parent().find('.text').html();
	
		// Remove all html and new lines
		author	= author.replace(/<(.*?)>/g, '');
		comment = comment.replace(/<div class=\"quote\">(.*?)<\/div>/g, '');
		comment = comment.replace(/<br>/g, '');
		comment = comment.replace(/^\s+/, '').replace(/\s+$/, '');
	
		$('textarea').val($('textarea').val() + '[[quote:' + author + ']]' + comment + '[[/q]]');
	});
	
	// Tag field
	$(".tokeninput").tokenInput("scripts/tags.php", {
		theme: "facebook",
		preventDuplicates: true,
		hintText: "Søk etter merkelapper",
		noResultsText: "Ingen merkelapper funnet",
		searchingText: "Søker...",
		tokenDelimiter: ", ",
		tokenValue: "name"
	});
	
	$(".tokeninput_data").livequery(function(){
		var tagdata = $(this).attr("value");
			tags = tagdata.split(", ");
			
			while(tags.length > 0){
				var tag = tags.shift();
				var tag_id = 999 + (Math.floor(Math.random()*100));
				if(tag != ""){
					$(".tokeninput").tokenInput("add", {id: tag_id, name: tag});
				}
			}
	});
	
	$("ul.token-input-list-facebook").width($(".tokeninput").width());
	
	$("ul.token-input-list-facebook li input").focus(function(){
		$("ul.token-input-list-facebook").attr("style", "outline: #DBDDDD solid 2px; border: 1px solid #BFC1C1;");
		$("ul.token-input-list-facebook").width($(".tokeninput").width());
	});
	$("ul.token-input-list-facebook li input").blur(function(){
		$("ul.token-input-list-facebook").attr("style", "outline: #EFEFEF solid 2px; border: 1px solid #CCC;");
		$("ul.token-input-list-facebook").width($(".tokeninput").width());
	});
	$("#AddTag").click(function(){
		var customtag = $("input[name='CustomTag']").val();
		var tag_id = 999 + (Math.floor(Math.random()*100));
		if(customtag != ""){
			$(".tokeninput").tokenInput("add", {id: tag_id, name: customtag});
			$("#AddTag").value("");
		}
		
		return false;
	});
	
	// Button gradient
	$("input[type='submit']").livequery(function(){
		$("input[type='submit']").jacg({'radius': '0', 'start': '#FFFFFF', 'end': '#DFDFDF'});
	});
	$("input[type='button']").livequery(function(){
		$("input[type='button']").jacg({'radius': '0', 'start': '#FFFFFF', 'end': '#DFDFDF'});
	});
	
	// Show/hide field explanations
	$(".form input").focus(function(){
		var parent_box = $(this).parent().parent();
		var check_lock = $('.desc input[class="check"]', parent_box);
		
		// Regular description
		if(check_lock.length == 0){
			$(".desc span", parent_box).fadeIn();
			$('.desc span[alt="checked"]').fadeOut();
			$('.desc span[alt="unchecked"]').fadeOut();
		}
		// If description checkbox, toggle descriptions
		if(check_lock.length > 0){
			if(check_lock.is(':checked')){
				$('.desc span[alt="checked"]', parent_box).fadeIn();
			}
			else {
				$('.desc span[alt="unchecked"]', parent_box).fadeIn();
			}
		}
	}).blur(function(){
		var parent_box = $(this).parent().parent();

		$(".desc span", parent_box).fadeOut();
	});
	
	
	//////////////////////////////////////////////////////////////////////////////////////////////
	// Forms: Description checkbox
	//////////////////////////////////////////////////////////////////////////////////////////////
	$('.check').simpleImageCheck({
		image: 'gfx/icon_16_lock_open.png',
		imageChecked: 'gfx/icon_16_lock.png',
		afterCheck: function(isChecked) {
			if(isChecked){
				$('.desc span[alt="unchecked"]', $(this).parent().parent()).hide();
				$('.desc span[alt="checked"]', $(this).parent().parent()).show();
			}
			else {
				$('.desc span[alt="checked"]', $(this).parent().parent()).hide();
				$('.desc span[alt="unchecked"]', $(this).parent().parent()).show();
			}
		}
	});
	
	//////////////////////////////////////////////////////////////////////////////////////////////
	// Forms: Focus
	//////////////////////////////////////////////////////////////////////////////////////////////

	// Automatically focus field with tabindex 1
	$('input[tabindex="1"]').livequery(function(){
		$(this).focus();
	});
	
	
	//////////////////////////////////////////////////////////////////////////////////////////////
	// Forms: Submit
	//////////////////////////////////////////////////////////////////////////////////////////////
	
	// Live removal of error result if no errors
	function remove_form_errors(form)
	{
		//alert(form.attr("id"));
		//alert($('.result', form).html());
	
		var errors 	= $('.errorlist', form).find('li');
		
		if(errors.length != 0){
			$('.result', form).html('<img src="gfx/icon_16_error.png" alt="error" /> <span>Skjemaet er ikke korrekt utfylt!</span>');
		}
		if(errors.length == 0){
			$('.result', form).html('');
		}
	}
	
	$('.form').keyup(function(){
		remove_form_errors($(this));
	}).change(function(){
		remove_form_errors($(this));
	});
	
	// Form submit
	$('.form').livequery('submit', function(){
		var form 	= $(this);
		var action	= form.attr('action');
			action	= action + "&num=cde2f95a6ee16a8872c2fb8aed41515f";
		
		// Validation
		form.validation();
	
		// Not valid
		if(!form.validate()){
			$('.result', form).html('<img src="gfx/icon_16_error.png" alt="error" /> <span>Skjemaet er ikke korrekt utfylt!</span>');
		}
		// Valid
		if(form.validate()){
			$('.result', form).html('<img src="gfx/icon_16_hourglass.png" alt="loading" /> <span>Vennligst vent...</span>');
			
			// Post form
			$.post(action, form.serialize(), function(data){
				// Error
				if(data.status == 'error'){
					// Message
					$('.result', form).html('<img src="gfx/icon_16_error.png" alt="error" /> <span>' + data.msg + '</span>');
				}
				// Success
				if(data.status == 'success'){
					// Message
					$('.result', form).html('<img src="gfx/icon_16_success.png" alt="success" /> <span>' + data.msg + '</span>');
					
					// Disable all fields
					$(':input', form).attr('disabled', true);
					
					// Complete: Redirect
					if(data.complete == 'redirect'){
						// Redirect after 2 seconds
						$(document).oneTime(1000, function(){
							window.location = data.complete_data;
						});
					}
					// Complete: Empty form
					if(data.complete == 'emptyform'){
						// Empty fields
						$(':input', form)
							.not(':button, :submit, :reset, :hidden')
							.val('')
							.removeAttr('checked')
							.removeAttr('selected');
						
						// Enable all fields
						$(':input', form).attr('disabled', false);
					}
					// Complete: Javascript
					if(data.complete == 'javascript'){
						// Run provided javascript
						eval(data.complete_data);
					}
					// Complete: Refresh
					if(data.complete == 'refresh'){
						// Refresh current page
						location.reload();
					}
					// Complete: Nothing
					if(data.complete == ''){
						// Enable all fields
						$(':input', form).attr('disabled', false);
					}
				}
			}, "json");
		}
		
		return false;
	});
});	
	
