$(function(){
    //
    $("div#categories ul:last").addClass("last");
    

    //classes for forms elements
    $("input:checkbox").addClass("checkbox");
    $("input:file").addClass("file").parent().addClass("fileinput");
    $("input:button").addClass("button");
    $("input:submit").addClass("submit");
    $("input:text").addClass("text");
    $("input:password").addClass("password");
    
    
    //some defaults for text fields
    $("input:text").defaultval();
    $("input:password").defaultval();
    $("textarea").defaultval();
    

    //adding form for more photos
    //make custom type="file" inputs
    $("input:file")
        .opacity(0)
        .wrap("<div style='position:relative'></div>")
        .change(function() {
            $(this).siblings(".fakefile").children("input").val($(this).val());
            $(this).parents("div.addphoto").addClass("changed");
            
            addnew();
        })
        .parent()
        .append("<div class=\"fakefile container\"><input value=\"\"><div class=\"browse\">Обзор</div></div>");

    addnew();
    
    
    //make custom type="button" inputs
    $("input:button").each(function() {
        $(this)
            .opacity(0)
            .wrap("<div style='position:relative'></div>");
        var val = $(this).val();

        $(this).parent().append("<div class=\"fakebutton\">"+val+"</div>");
    });
    
    
    //make custom type="submit" inputs
    $("input:submit").each(function() {
        $(this).opacity(0);
        var val = $(this).val();
        $(this).siblings(".fakebutton").children("input").val($(this).val());
        $(this).parent().append("<div class=\"fakebutton\">"+val+"</div>");
    });
    
    
    //"delete" buttons should delete the whole section
    $("input:button.delete").click(function() {
        if(!$(this).parents("div.addphoto").hasClass("changed")) return;
        
        $(this).parents("div.addphoto").remove();
        addnew();
        return false;
    });


    //category chooser
    $("a.chooser_toggle").click(function() {
        $(this).siblings("div.chooser").toggleClass("hide");
        $("form#addcommfrm div.fakebutton").eq(0).html("Добавить");
       // $("br1").value = '';
        return false;
    });
    
    $("a.admin_toggle").click(function() {
        $(this).siblings("div.chooser").toggleClass("hide");
       // $("form#addcommfrm div.fakebutton").eq(0).html("Добавить");
       // $("br1").value = '';
        return false;
    });	
    
    //first letter of nickname
    $("a.nickname").each(function() {
        $(this).html( $(this).html().replace(/^(.){1}(.*)$/, "<em class='blue' style='text-decoration: underline;'>$1</em>$2"));
    });
    
    
    //some actions for ajax subscribing
    $("div#subscribe_cats a").click(function() {
        var categories = $("div#sidebar ul#categories");
        
        if(!$(categories).hasClass("extended")) {
            $(this).siblings("div.hide").removeClass("hide");
            $(this).wrap("<div class=\"span_11_margin right relative\"></div>");
            var presubs = $("div#usersubs").html().split('|');  // получаем предустановки флажков, если уже подписан на что-то
			var cnt = -1;
			var prm = '';
            $(categories).children("li").each(function() {
			    cnt = cnt +1;
				(presubs[cnt] > 0) ? prm = " checked=\"checked\" " : prm = '';
                $(this).prepend("<input type=\"checkbox\" class=\"checkbox\" "+ prm +" name=\"cats[]\" value=\""+$(this).children("a").html()+"\">");
            });

            $(categories).addClass("extended");
        }
        return false;
    });

    var rated = false;
    $("div.rate").mouseover(function(e){
            e.stopPropagation();
        });

function tree_flush(root){
    $(root).children().each(function(){
            $(this).removeClass("hover")
            tree_flush($(this))
        });
    }

    $("div.star").mouseover( function(e) {
        e.stopPropagation();
        $(this).addClass("hover");
        $(this).parents("div.star").addClass("hover")
        tree_flush($(this));
    });
	
    //$("div.star").mouseout( function() {
        //$(this).removeClass("hover");
    //    var oldrate = $("span#ratespan").html();
	//	alert(oldrate);
	//	oldrate = Math.abs(oldrate);
	//	for (var i=0; i < oldrate; i++) {
	//	  $("div.star").children(i).addClass("hover");
		//for (var i=0; i < $("div.star").length -1; i++) {
		//  if (i+1 <= oldrate) { $("div.star").children(i).addClass("hover"); alert(i); }
		  //else { $("div.star").children(i).removeClass("hover"); }
	//	}		
    //});
    $("body").mouseover( function() {
        var oldrate = Math.abs($("#ratespan").html());
        if(oldrate==0) {
            $("div.star").each(function(){$(this).removeClass("hover")});
        }
        for (var i=0; i<oldrate; i++){
            var star = $("div.star")[i];
            $(star).addClass("hover");
        }

		//alert(oldrate);
		//oldrate = Math.abs(oldrate);
		//for (var i=0; i < oldrate; i++) {
		//  $("div.star").children(i).addClass("hover"); 
		  
		//for (var i=0; i < $("div.star").length -1; i++) {
		//  if (i+1 <= oldrate) { $("div.star").children(i).addClass("hover"); }
		//  else { $("div.star").children(i).removeClass("hover"); }
		//for (var i=0; i < oldrate; i++) {
		//alert(i);
		  
		//}
    });

	
    $("div.star").click( function() {
        if(!rated) {
            // alert( $(this).parents("div.star").length +' = '+ $(this).attr("id"));
            var rate_num = $(this).parents("div.star").length +1;
            var rate_id = $(this).attr("id");
			 var respt = $.ajax({
			  url: "/rate.php?id="+rate_id+'&mark='+rate_num,
			  async: false
			 }).responseText;
			 $("span#ratespan").html(respt);
			 $("div.rate").html("<img src='http://fotochel.ru/images/s"+respt+".jpg' border=0>");
            rated = true;
        } else {
            return false;
        }
    });
    
});


function makebuttons() {
    
}


var column = 0;
var counter = 1;

function addnew() {
    var hasblank = false;
    $("div.column div.addphoto").each(function() {
        if(!$(this).hasClass("changed")) hasblank = true;
    });
    if(hasblank) return;

    var addphoto = $("div.addphoto").eq(0).clone(true).removeClass("hide");
        
    addphoto.children("div.number").html(counter);
    
    addphoto.find("input").each(function() {
        var newname = $(this).attr("name");
        
        if(newname) {
            newname = newname.replace(/_[0-9]+/, "_"+counter);
            $(this).attr("name", newname);
        }
    });
    addphoto.find("textarea").each(function() {
        var newname = $(this).attr("name");

        if(newname) {
            newname = newname.replace(/_[0-9]+/, "_"+counter);
            $(this).attr("name", newname);
        }
    });


    $("div.column").eq(column).append(addphoto);

    if(column==1) column=0;
    else column=1;
    counter++;
}


function addprops(elem) {
    $(elem).mouseover( function() {
        $(this).addClass("hover");
    });
    $(elem).mouseout( function() {
        $(this).removeClass("hover");
    });
}


jQuery.fn.extend({
    defaultval: function() {
        return this.each(function() {
            if($(this).hasClass("nodefault")) return;
            
            if(!$(this).attr("memorize"))
                $(this).attr("memorize", $(this).val());
                
            var val = $(this).attr("memorize");
            
            $(this).focus(function(){
                if($(this).val()==val) {
                    $(this).val("");
                    $(this).addClass("editing");
                }
            });
            
            $(this).blur(function(){
                if($(this).val()=="") {
                    $(this).val(val);
                    $(this).removeClass("editing");
                }
            });
        });
    }
});


jQuery.fn.extend({
    opacity: function(amount) {
        return this.each(function() {
            $(this).css("-moz-opacity", amount);
            $(this).css("filter", "alpha(opacity:"+amount*100+")");
            $(this).css("opacity", amount);
        });
    }
});



