/**
 * @author velfolt
 */

var insertBarHTML = null;
var insertFormHTML = null;
var editBarHTML = null;

function insertInput( pointer, tag, endtag, input, type )
{
  var theDiv = $(pointer).parent();
  var query = ".insert-form form " + input + ":first";
  var theText = tag + $(query).val() + endtag;
  $(theDiv).after( insertBarHTML.clone() );
  $(theDiv).after( $(theText).append( editBarHTML.clone().prepend( type ) ) );
  $(theDiv).remove();
	
  setInsertBarFunctions();
  setEditBarFunctions();

  return true;
}

var insertTitle = function()
{
  return insertInput( this, '<div class="title">', "</div>", "input", "Titel" );
}

  var insertParagraph = function()
{
  return insertInput( this, "<p>", "</p>", "textarea", "Stycke" );
}

    var insertLeftImage = function()
{
  return insertInput( this, '<div><img class="left" width="300" height="200" src="', '"></div>', "input", "Vänsterbild" );
}

      var insertRightImage = function()
{
  return insertInput( this, '<div><img class="right" width="300" height="200" src="', '"></div>', "input", "Högerbild" );
}

	var insertImage = function()
{
  return insertInput( this, '<div class="center"><img width="300" height="200" src="', '"></div>', "input", "Bild" );
}

	  function addForm( pointer, type, insertFunction )
{
  $(".insert-form").remove();
  $(pointer).parent(".insert").after(insertFormHTML.clone());
  $(".insert-form form").submit(insertFunction);
  $(".insert-form form " + type + ":first").show();
  $(".insert-form form " + type + ":first").focus();
}

function setInsertBarFunctions()
{
  $(".insert .newparagraph").click(
    function()
    {
      addForm( this, "textarea", insertParagraph );
    }
    );
	
  $(".insert .newtitle").click(
    function()
    {
      addForm( this, "input", insertTitle );
    }
    );
	
  $(".insert .leftimage").click(
    function()
    {
      addForm( this, "input", insertLeftImage );
    }
    );
	
  $(".insert .rightimage").click(
    function()
    {
      addForm( this, "input", insertRightImage );
    }
    );
	
  $(".insert .image").click(
    function()
    {
      addForm( this, "input", insertImage );
    }
    );
}

function setEditBarFunctions()
{
  $(".edit .doedit").click(
    function()
    {
      addForm( this, "textarea", insertParagraph );
    }
    );
	
  $(".edit .dodelete").click(
    function()
    {
      $(this).parent().parent().next().remove();
      $(this).parent().parent().remove();
    }
    );
}

function gup( 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];
}

$(document).ready(
  function()
  {
    var activeCategory = null;
    
    insertBarHTML = $(".insert").clone();
    insertFormHTML = $(".insert-form").clone();
    
    editBarHTML = $(".edit").clone();
    
    $(".edit").remove();
    //$(".insert-form").remove();
    
    $(".mainlink").click( 
      function()
      {
	if( activeCategory == this )
	{
	  $(activeCategory).css( "color", "#707070" );
	  $(activeCategory).css( "font-weight", "normal" );
	  activeCategory = null;
	  $("#subcategory").empty();
	}
	else if( activeCategory != this )
	{
	  $(activeCategory).css( "color", "#707070" );
	  $(activeCategory).css( "font-weight", "normal" );
	  $("#subcategory").empty();
	  activeCategory = this;
	  $("#subcategory").append( $(this).siblings().clone() );
	  $("#subcategory").children().css( "display", "inline" );
	  $(activeCategory).css( "color", "#000000" );
	  $(activeCategory).css( "font-weight", "bold" );
	  $("#subcategory").blink();
	}
	else
	{
	  activeCategory = this;
	  $("#subcategory").append( $(this).siblings().clone() );
	  $("#subcategory").children().css( "display", "inline" );
	  $(activeCategory).css( "color", "#000000" );
	  $(activeCategory).css( "font-weight", "bold" );
	}
      }
      );

    var category = gup( 'c' );

    if( category != '' )
    {
      activeCategory = $(".category:nth-child(" + (parseInt( category ) + 1) + ") .mainlink");

      $("#subcategory").append( $(activeCategory).siblings().clone() );
      $("#subcategory").children().css( "display", "inline" );
      $(activeCategory).css( "color", "#000000" );
      $(activeCategory).css( "font-weight", "bold" );
      $("#subcategory").blink();
    }
    
    $(".mainlink").hover(
      function()
      {
	$(this).css( "text-decoration", "underline" );
      },
      function()
      {
	$(this).css( "text-decoration", "none" );
      }
      );
    
    //setInsertBarFunctions();
  }
  );
