function getTarget(e){
    if (e.target)
        targ = e.target;
    else
        if (e.srcElement)
            targ = e.srcElement;
    if (targ.nodeType == 3) // defeat Safari bug
        targ = targ.parentNode;
    return targ;
}


function add_message(message, type){
    $('#messages').prepend('<ul class="messages"><li class="msg_' + type + '">' + message + '</li></ul>');
    $('#messages').show();
}


function empty_(){
    $(this).empty();
}

function hide_messages(){
    var t = setTimeout("$('#messages').fadeOut(800, empty_);", 9000);
}


function send_request_and_set_msgs(url){
    $.get(url, '', function(result){
        for (message in result.messages) {
            var msg = result.messages[message];
            add_message(msg.content, msg.kind);
        };
        hide_messages();

    }, 'json');

}

function send_post_and_set_msgs(url, form_data){
    $.post(url, form_data, function(result){
        for (message in result.messages) {
            var msg = result.messages[message];
            add_message(msg.content, msg.kind);
        };
        hide_messages();

    }, 'json');
}

$.fn.voting = function(options){

    var defaults = {};

    function init(){
        vote_handler();
        $(".voteBar a").live('mouseover', function(){
            $(this).prevAll('.voteBar a').addClass('hover');
        });
        $(".voteBar a").live('mouseout', function(){
            $(this).siblings('.voteBar a').removeClass('hover');
        });
    }

    function vote_handler(){

        $('.vote_link').live('click', function(){
            var url = $(this).attr('href');
            var id = $(this).attr('id').split('_')[1];

            $.get(url, '', function(result){
                $('#vote_box_' + id).empty();
                $('#vote_box_' + id).html(result.tpl);
                for (message in result.messages) {
                    var msg = result.messages[message];
                    add_message(msg.content, msg.kind);
                };
                hide_messages();
            }, 'json');

            return false;
        });

    };

    var settings = $.extend({}, defaults, options);

    init();

}



$(document).ready(function(){
    hide_messages();
});



$.fn.uploaded_movie = function(options){

    var defaults = {};

    function init(){
        tags_limit_handler();
    }

    function tags_limit_handler(){
        $('input[name="uploaded_movie_tags"]').limitSelection({
            limit: 3,
            onfailure: function(n){
                $("#idCheckboxMsg").html("Nie można wybrać więcej niż " + n + " tagi.");
                return false;
            },
            onsuccess: function(n){
                $("#idCheckboxMsg").html("");
                return false;
            }
        });

    };

    var settings = $.extend({}, defaults, options);

    init();

}



$.fn.video_ = function(options){

    var defaults = {

        'file_list_url': '/account/video/movies/', // url z pod ktorego mozna pobrac liste plikow
        'video_list_id': 'videos_list', // id kontenera z lista filmow
        'del_video_cls': 'del_movie_link', // klasa linkow do usuwania obrazkow
        'load_image': '/img/loading.gif'
    }

    var settings = $.extend({}, defaults, options);

    function init(){
        del_video_handler();
        edit_desc_handler();
        edit_tags_handler();
        tags_limit_handler();
    };


    function edit_tags_handler(){
        $(".tags_submit").live('click', function(e){
            var id = getTarget(e).id;
            id = id.split('_')[1];
            //console.log(id);
            var url = $("#tags_form_" + id).attr('action');
            //console.log(url);
            var form_data = $("#tags_form_" + id).serializeArray();

            send_post_and_set_msgs(url, form_data);

            $('#desc_' + id).text($('#id_desc_movie_' + id).val());

            var tags_ = ''
            $('#tags_form_' + id + ' input:checked').each(function(counter, tag){
                tags_ += $(tag).val() + ' ';
            })

            $('#tags_' + id).text(tags_);

            /*
             $.post(url, form_data, function(result){
             for (message in result.messages) {
             var msg = result.messages[message];
             add_message(msg.content, msg.kind);
             };
             hide_messages();
             }, 'json');
             */
            return false;
        });
    };

    function edit_desc_handler(){
        $(".edit_movie_desc_submit").live('click', function(e){
            var id = getTarget(e).id;
            id = id.split('_')[1];
            var url = $("#edit_movie_desc_form_" + id).attr('action');
            var form_data = $("#edit_movie_desc_form_" + id).serializeArray();

            send_post_and_set_msgs(url, form_data);
            /*
             $.post(url, form_data, function(result){
             for (message in result.messages) {
             var msg = result.messages[message];
             add_message(msg.content, msg.kind);
             };
             hide_messages();
             }, 'json');
             */
            return false;
        });
    };

    function tags_limit_handler(){
        $('.tags_form').each(function(counter){
            $('input[name="movie_tags"]', this).limitSelection({
                limit: 3,
                onfailure: function(n){
                    $("#idCheckboxMsg_" + counter).html("Nie można wybrać więcej niż " + n + " tagi.");
                    return false;
                },
                onsuccess: function(n){
                    $("#idCheckboxMsg_" + counter).html("");
                    return false;
                }
            });
        });
    };

    function del_video_handler(){
        $('.' + settings.del_video_cls).live('click', function(e){
            var url = getTarget(e).href;
            $.get(url, '', function(result){
                for (message in result.messages) {
                    var msg = result.messages[message];
                    add_message(msg.content, msg.kind);
                };
                hide_messages();
                $('#' + settings.video_list_id).html('<img alt="loading.." src="' + settings.load_image + '" />')
                $('#' + settings.video_list_id).load(settings.file_list_url);
            }, 'json');
            return false;
        });
    };

    init();
}

$.fn.gallery1 = function(options){

    var defaults = {

        'file_list_url': '/account/gallery/images/', // url z pod ktorego mozna pobrac liste plikow
        'images_list_id': 'gallery_images', // id kontenera z lista obrazkow
        'del_img_id': 'del_image_link', // klasa linkow do usuwania obrazkow
        'load_image': '/img/loading.gif'
    }


    var settings = $.extend({}, defaults, options);

    function init(){
        edit_desc_handler();
        del_img_handler();
        clorbox_handler();

    };

    function clorbox_handler(){
		$('a[rel="gallery"]').colorbox({
			transition: "none",
			href: false,
			width: "90%",
			height: "90%",
			inline: false,
			photo: true,
			current: "obraz {current} z {total}",
			previous: "poprzednie",
			next: "następne",
			close: "zamknij"
		});
    }

    function edit_desc_handler(){
        $(".edit_desc_submit").live('click', function(e){
            var id = getTarget(e).id;
            id = id.split('_')[1];
            var url = $("#edit_desc_form_" + id).attr('action');
            var form_data = $("#edit_desc_form_" + id).serializeArray();

            $.post(url, form_data, function(result){
                $('#image_' + id).attr('alt', result.desc);
                $('#a_image_' + id).attr('title', result.desc);
                for (message in result.messages) {
                    var msg = result.messages[message];
                    add_message(msg.content, msg.kind);
                };
                hide_messages();

            }, 'json');
			
			$('#edit_desc_form_' + id + " label").html('Opis został zmieniony:');

            return false;
        });
    }

    function del_img_handler(){
        $('.' + settings.del_img_id).live('click', function(e){
            var url = getTarget(e).href;
            $.get(url, '', function(result){
                for (message in result.messages) {
                    var msg = result.messages[message];
                    add_message(msg.content, msg.kind);
                };
                hide_messages();
                $('#' + settings.images_list_id).html('<img alt="loading.." src="' + settings.load_image + '" />')
                $('#' + settings.images_list_id).load(settings.file_list_url, '', function(){
                    clorbox_handler();
                })
            }, 'json');


            return false;
        });
    };


    init();
}


$.fn.limitCategories = function(options){

    function limit_handler(select_id, msg_id){
        $("#"+select_id).limitSelection({
            limit: 3,
            onfailure: function(n){
                $("#" + msg_id).html("Nie można wybrać więcej niż " + n + " kategorie.");
                return false;
            },
            onsuccess: function(n){
                $("#idCheckboxMsg").html("");
                return false;
            }
        });
    };

	function init(){
        limit_handler('id_activity_type', 'idactivityMsg');

		limit_handler('id_artist_category_l2', 'catL2Msg');
		limit_handler('id_artist_category_l3', 'catL3Msg');

		limit_handler('id_agency_category_l2', 'catL2Msg');
		limit_handler('id_agency_category_l3', 'catL3Msg');

    }
	 init();
};

$.fn.poolPlugin = function(options){
    var defaults = {
        voteUrl: "/pool/vote"
    }

    var settings = $.extend({}, defaults, options);

    function init(){
        poolVote();
    }

    function poolVote(){
        $('#pool_form').live('submit', function(){
            var options = {
                target: '#pool',
                url: settings.voteUrl,
                beforeSubmit: __validate
            }
            $(this).ajaxSubmit(options);
            return false;
        });
    }

    function __validate(formData, jqForm, options){
        var answers = $('input[name=pool_answers]').fieldValue();
        var otherAnswer = $('input[name=other_vote]').fieldValue();
        for (i = 0; i < answers.length; i++) {
            if (isNaN(parseInt(answers[i])))
                return false;
            if (parseInt(answers[i]) == 0 && $.trim(otherAnswer[0]) == "") {
                return false;
            }
        }
        if (answers.length == 0)
            return false;
        return true;
    }

    /* $("#pool_form [name=pool_answers]").change(function(){
     $('#pool_form :input[name=pool_answers]').each(function(index){
     $(this).parent().removeClass("select-color");
     })
     $('#pool_form :input[name=pool_answers]:checked').each(function(index){
     $(this).parent().addClass("select-color");
     }) */
    //    })

    //    $(":input").live('change',function(){
    //          $(this).parent().toggleClass("select-color");
    //    });


    init();
};


$(document).ready(function(){
	// skrypt do rela
	$("a[rel='external']")
		.addClass("external")
		.click(function() {
			var href = $(this).attr('href');
			
			var prefix1 = "http://";
			var prefix2 = "https://";
			var new_href = href;
			if ((href.search(prefix1) == -1)&&(href.search(prefix2) == -1)) {
				new_href = prefix1 + href;
			}
			
			window.open(new_href);
			return false;
		});
		
	// umożliwienie odwołania się w CSS do inputów danego typu
	$('input[type="button"]').addClass('button');
	$('input[type="checkbox"]').addClass('checkbox');
	$('input[type="file"]').addClass('file');
	$('input[type="hidden"]').addClass('hidden');
	$('input[type="image"]').addClass('image');
	$('input[type="password"]').addClass('password');
	$('input[type="radio"]').addClass('radio');
	$('input[type="reset"]').addClass('reset');
	$('input[type="submit"]').addClass('submit');
	$('input[type="text"]').addClass('text');
});