// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

function fbs_click() {u=location.href;t=document.title;window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;}
function tweet_click() {u=location.href;window.open('http://www.twitter.com/home?status='+u,'sharer', '');return false;}
function digg_click(n) {u=encodeURIComponent(location.href);t=encodeURIComponent("Konventsbilder #"+n); d=encodeURIComponent("Check out this photo at Konventsbilder.se"); window.open('http://digg.com/submit?url='+u+'&title='+t+'&bodytext='+d+'&media=image&topic=odd_stuff', 'sharer', ''); return false;}    
function delicious_click() { window.open('http://delicious.com/save?v=5&amp;noui&amp;jump=close&amp;url='+encodeURIComponent(location.href)+'&amp;title='+encodeURIComponent(document.title), 'delicious','toolbar=no,width=550,height=550');return false; }


function startTagging() {
    $('#tag-box').slideDown();
    $('#large-image').addClass('tagging').bind("click", function(e) {
        Tag.add(e.pageX, e.pageY);
        return false;
    });
}

function stopTagging () {
    $('#tag-box').slideUp();
    $('#large-image').removeClass('tagging').unbind("click");
}

function comment (url, header, msg) {

    if ($('#comment_email').val().indexOf("@") == -1 ) {
        alert("Felaktig e-postadress");
        return false;
    }
    
    var captcha = $('<div class="captcha">');
    
    var close = $('<a href="#" class="close">X</a>');
    close.bind('click', function(){ $('.captcha').remove(); return false;});
    close.appendTo(captcha);
    
    var h = $('<h3>'); 
    h.html(header);
    h.appendTo(captcha);
    
    var p = $('<p>');
    p.html(msg);
    p.appendTo(captcha);
    
    var animals = $('<div class="animals">');
    var cap1 = $('<a href="#" class="animal" id="n1">One</a>');
    cap1.bind('click', function(){ 
        $('<input type="hidden" name="magier" value="kukilur" />').appendTo($('#comment-form'));
        $('#comment-form').unbind('submit');
        $('#comment-form').removeAttr('onsubmit');
        
        setCookie('commentemail',$('#comment_email').val());
        setCookie('commentname',$('#comment_name').val());
        
        $('#comment-form').attr('action', url);
        $('#comment-form').submit();
        return false;
    });
    cap1.appendTo(animals);
    var cap2 = $('<a href="#" class="animal" id="n2">Two</a>');
    cap2.bind('click', function(){ $('.captcha').remove(); return false;});
    cap2.appendTo(animals);
    var cap3 = $('<a href="#" class="animal" id="n3">Three</a>');
    cap3.bind('click', function(){ $('.captcha').remove(); return false;});
    cap3.appendTo(animals);
    animals.appendTo(captcha);

    captcha.insertAfter('#container');
    captcha.css("top", ( $(window).height() - captcha.height() ) / 2+$(window).scrollTop() + "px");
    captcha.css("left", ( $(window).width() - captcha.width() ) / 2+$(window).scrollLeft() + "px");    
}

function cometifyCallback(data, id, identifier) {
    data = eval('(' + data + ')');
    PushMsg(data);
}

function PushMsg (msg) {
    $('p.push-notice:hidden').remove();
    var box = $('<p>');
    box.addClass('push-notice');
    
    if (msg.type == "comment") {
        var txt = "<strong>" + msg.name + "</strong> skrev ";
        txt += "<em>" + msg.comment+"</em> om ";
        txt += "<a href='/image/show/" + msg.image_id + "'>Bild " + msg.image_id + "</a>.";
        box.html(txt);
    } else if (msg.type == "like") {
        var txt = "Någon gillade <a href='/image/show/" + msg.image_id + "'>Bild " + msg.image_id + "</a>.";
        box.html(txt);
    } else {
        box.html(msg);        
    }

    box.insertAfter('#container');    
    var bottom = $(window).height() - box.outerHeight() + $(window).scrollTop();
    bottom -= 10;
    var num = $('p.push-notice').length;
    if (num > 1) bottom -= (num-1) * (box.outerHeight() + 10); 
    box.css("top", bottom + "px");
    box.fadeIn().delay(3000).fadeOut();
}

function setCookie(c_name,value) {
    var expiredays = 365;
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toUTCString());
}

function getCookie(c_name) {
    if (!(document.cookie.length>0)) return "";
    c_start=document.cookie.indexOf(c_name + "=");
    if (c_start==-1) return "";
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
}



var tags = new Array();
var Tags = {
    add: function(tag)
    {
        tags.push(tag);
    },
    
    hide: function()
    {
        $('a.tag').remove();
    },
    
    show: function(t)
    {
        var image = $('#large-image');        
        var offset = image.offset();
        var posx = offset.left;
        var posy = offset.top;
        var image_w = image.width();
        var image_h = image.height();
        
        var tag = $('<a href="#" class="tag">');
        tag.html(t.tag);
        tag.attr('href', '/main/tag/'+t.tag);
        
        // Woop fel ordning 
        var x = posx + (image_w * (t.y / 100)) + t.width/2;
        var y = posy + (image_h * (t.x / 100)) + t.height/2;
            
        //tag.css({'width': this.width+'px', 'height': this.height+'px'});
        x = Math.round(x); 
        y = Math.round(y);
            
        tag.css({'top': y+"px", 'left': x+"px"});
        tag.appendTo($('#container'));
    }, 
    
    showAll: function()
    {
        $.each(tags, function(){
            Tags.show(this);
        });        
    }
}

var Tag = {
  ny: function(w,h,x,y,id,tag)
  {
      var t = {'width': w, 'height': h, 'x': x, 'y': y, 'id': id, 'tag': tag };
      Tags.add(t);
  },
  add: function(x, y)
  {
      $('div.newtag').remove();
      var image = $('#large-image');
      var offset = image.offset();
      
      var t = $('<div class="newtag">');
      t.css({'top': y+"px", 'left': x+'px'});

      $('<a href="#" onclick="$(\'.newtag\').remove(); return false;" class="close">X</a>').appendTo(t);
      var s = $('<a href="#" class="save">X</a>');
      s.bind('click', function(){
         data = {'x': x , 'y': y, 'tag': $('.newtag input[type=text]').val()};
         var n = document.location.pathname.replace('/image/show/', '');
         $.post('/tag/create/'+n, {'tag': data}, function(){}, 'script');
      });
      s.appendTo(t);
      
      
      x -= offset.left;
      y -= offset.top;
      
      x = Math.round((x/image.width())*100);
      y = Math.round((y/image.height())*100);
      
      
      var i = $('<input type="text" value="" />');
      i.bind('keypress', function(e){
         switch(e.keyCode) {
             case 27:
                $('.newtag').remove();
                break
             case 13:
                $('.newtag a.save').trigger('click');
                break;
         } 
      });
      i.appendTo(t);
      
      t.appendTo($('#container'));
      t.find('input[type=text]').focus();
      
      
  }
    
};

$(document).ready(function() {   
    var commentname = getCookie('commentname');
    var commentemail = getCookie('commentemail');
    if(commentname!="") $('#comment_name').val(commentname);
    if(commentemail!="") $('#comment_email').val(commentemail);
});
