jQuery.fn.fadeToggle = function(speed, easing, callback) {
   return this.animate({opacity: 'toggle'}, speed, easing, callback);
};

jQuery.fn.delay = function(time,func){
	this.each(function(){
		setTimeout(func,time);
	});
	
	return this;
};


$j('document').ready(function(){
    $j("#stype_select").bind("click" , function(){
        $j("#stype_selection").fadeToggle("fast");
    });
    
    $j("#fav").bind("click" , function(){
      parts = $j(this).attr("rel");
      action = $j(this).hasClass("add") ? "add" : "remove";
      remove_class = action == "add" ? "remove" : "add";
      link = this;
      
      $j.ajax({
         'type':"POST",
         'url':'/favorite/' + action + '/' + parts + '/',
         'success':function(msg){
            if(msg == "OK"){
               $j(link).removeClass(action).addClass(remove_class);
               
            }
         }
         
      })
      
    });
    
    
    
    $j("#new_tag_form").bind("submit" , function(ev){
      ev.stopPropagation();
      
      form = $j(this);
      
      name_cont = form.find("#new_tag_name")[0];
      
      
      if (name_cont.value == "") return false;
      found = false;
      
      form.parent().find(".tag_poll .tag").each(function(){
         if(this.textContent == name_cont.value){
            found = true;
            return false;
         }
      });
      
      form.blink = function(msg , cls){
         if (cls != "ok" && cls != "error") cls = "message";
         else cls = "message " + cls;
         
         msg_box = form.next().text(msg).attr("class",cls);
         form.fadeOut("fast" , function(){
            msg_box.fadeIn("fast").delay(5000 , function(){
               msg_box.fadeOut("fast" , function(){
                  form.fadeIn("fast");
               });
            });
         });
         
         /*form.fadeOut("fast").next().text(msg).attr("class",cls).fadeIn("fast").delay(5000 , function(){
            form.next().fadeOut("fast").prev().fadeIn("fast");
         });*/
      }
      
      if(found) return false;
      
      content_type = (form.find("input[name='content_type']")[0]).value;
      object_id = (form.find("input[name='object_id']")[0]).value;
      is_superuser = (form.find("input[name='is_superuser']")[0]).value;
      
      
      $j.ajax({
         'type':'POST',
         'url':'/tags/' + content_type + '-' + object_id + '/',
         'data':{'tag':name_cont.value},
         'success':function(msg){
            if(msg.substring(0,2) == "OK"){
               form.parent().find(".empty").remove();
               
               $j(msg.substring(3 , msg.length).split(";")).each(function(){
                  val = this.replace(">","&gt;").replace("<","&lt;").replace('"',"&quot;");
                  postfix = "";
                  
                  if(is_superuser)
                     postfix = ' <a href="#" onclick="delete_tag(this,'+ content_type +','+ object_id +',\'' + val + '\');">x</a>';
                  
                  form.parent().find(".tag_poll").append('<span class="tag">' + val + postfix + '</span>');
               });
               
               name_cont.value = "";
               form.blink("object tagged");
            } else {
               form.blink(msg , "error");
            }
         }
      })
      //.replace(">","&gt;").replace("<","&lt;").replace('"',"&quot;")
      
      return false;
    });
    
    $j("#tags2>a").bind("click" , function(){
      $j(this).parent().find("#tags-div").fadeToggle("fast");
    })
});

function delete_tag(elm , cont_id , obj_id , tag_name){
   
   
   $j.ajax({
      'type':'POST',
      'url':'/tags/' + cont_id + '-' + obj_id + '/',
      'data':{'dtag':tag_name},
      'success':function(msg){
         
         if(msg == "OK") $j(elm).parent().fadeOut("fast").delay(5000 , function(){
            $j(elm).remove();
         });
         
         else alert(msg);
      }
   });
}

function select_style(type_name){
    $j("#stype")[0].value = type_name;
    $j("#stype_selection").fadeOut("fast");
}

function reload_rss(prd){
    (function(){
        $j(".blogs-ent").load("/?blogs"+(prd?"&prd="+prd:""));
    }).delay(3000);
}
