function userAutocomplete(sel) {
    var input = jQuery(sel);
    var hidden = jQuery('#' + input.attr('id') + '_id');
    
    input.autocomplete('/users/autocomplete', {
        formatItem: function(row) {
            return row[1] + ' ' + row[2];
        }
    });
    
    input.bind('result', function(result, row) {
        hidden.val(row[0]);
        input.val(row[1] + ' ' + row[2]);
    });            
}

jQuery(function() {
    var input = jQuery('#search-field');

    input.autocomplete('/search/autocomplete', {
        width: 200,
        delay: 50,
        formatItem: function(row) {
            return row[0];
        }
    });
    
    input.bind('result', function(result, row) {
        window.location.href = row[1];
    });            
});

function initForm() {
    var $ = jQuery;

    $('.user-autocomplete').each(function() {
        userAutocomplete(this);
    });    
    
    $('textarea.editor').tinymce({
        script_url : '/tiny_mce/tiny_mce.js',        
        theme : "advanced",
        language: 'de',
        plugins : "inlinepopups,contextmenu,paste,xhtmlxtras,advlist",
        
        theme_advanced_buttons1 : "formatselect,|,bold,italic,underline,|,bullist,numlist,|,cleanup,undo,redo,code",
        theme_advanced_buttons2 : "",
        theme_advanced_buttons3 : "",
        theme_advanced_blockformats : "p,h1,h2,h3",
        theme_advanced_toolbar_location : "top",
        theme_advanced_toolbar_align : "left",
        theme_advanced_statusbar_location : "bottom",
        theme_advanced_resizing : false,
        content_css : "/stylesheets/main.css"
        
        
        //,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,link,unlink,image,cleanup,code,|,forecolor,backcolor,cut,copy,paste,pasteword,outdent,indent,blockquote,|,undo,redo,|,formatselect,
        
        // Drop lists for link/image/media/template dialogs
        // template_external_list_url : "lists/template_list.js",
        // external_link_list_url : "lists/link_list.js",
        // external_image_list_url : "lists/image_list.js",
        // media_external_list_url : "lists/media_list.js",
    });

    $('.add-link').click(function() {
        $.ajax({
            url: '/articles/add_link',
            success: function(data) {
                $('#article-links').append(data);
            }
        });
        return false;
    });

    $('.add-pitch-link').click(function() {
        $.ajax({
            url: '/pitches/add_link',
            success: function(data) {
                $('#pitch-links').append(data);
            }
        });
        return false;
    });

    $('.add-profession').click(function() {
        $.ajax({
            url: '/account/add_profession',
            success: function(data) {
                $('#user-professions').append(data);
            }
        });
        return false;
    });

    $('#movie-form .add-genre').click(function() {
        $.ajax({
            url: '/movies/add_genre',
            success: function(data) {
                $('#movie-genres').append(data);
            }
        });
        return false;
    });

    $('#movie-form .add-country').click(function() {
        $.ajax({
            url: '/movies/add_country',
            success: function(data) {
                $('#movie-countries').append(data);
            }
        });
        return false;
    });

    $('#movie-form .add-staff').click(function() {
        $.ajax({
            url: '/movies/add_staff',
            success: function(data) {
                $('#movie-staff').append(data);
            }
        });
        return false;
    });

    $('#pitch-form .add-genre').click(function() {
        $.ajax({
            url: '/pitches/add_genre',
            success: function(data) {
                $('#pitch-genres').append(data);
            }
        });
        return false;
    });

    $('#pitch-form .add-country').click(function() {
        $.ajax({
            url: '/pitches/add_country',
            success: function(data) {
                $('#pitch-countries').append(data);
            }
        });
        return false;
    });

    $('#pitch-form .add-staff').click(function() {
        $.ajax({
            url: '/pitches/add_staff',
            success: function(data) {
                $('#pitch-staff').append(data);
            }
        });
        return false;
    });

    $('#pitch-form .add-position').click(function() {
        $.ajax({
            url: '/pitches/add_position',
            success: function(data) {
                $('#pitch-positions').append(data);
            }
        });
        return false;
    });
}

function initUpload(url) {
    jQuery('#upload').uploadify({
        auto: true,
        fileExt: '*.avi;*.divx;*.mp4;*.mpg;*.mpeg;*.mpg2;*.mov;*.flv;*.rm;*.qt;*.wmv',
        fileDesc: 'Filmdateien',
        uploader: '/shockwaves/uploadify.swf',
        script: url,
        cancelImg: '/images/cancel.png',
        buttonImg: '/images/speichern.png',
        width: 180,
        height: 26,
        onError: function() {
            jQuery('#upload-error').show();            
        },
        onSelect: function() {
            jQuery('#upload-message').hide();
        },
        onComplete: function() {
            jQuery('#upload-container').html('Der Film wurde hochgeladen und wird nun konvertiert.');  
        }
    });
}

function loadTweet(data) {
    var date = new Date();
    date.setTime(Date.parse(data[0].created_at.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i, '$1,$2$4$3')));
    jQuery('.twitter_date').html('' +  date.getDate() + '.' + (date.getMonth() + 1) + '.' + date.getFullYear() + ' ' + date.getHours() + ':' + ( date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()));
    jQuery('.twitter_text').html(data[0].text.replace(/(http:\/\/.*?\/[a-zA-Z0-9]*)/, "<a href=\"$1\">$1</a>"));
}

jQuery(function() {
    jQuery.ajax({
        url: "http://api.twitter.com/1/statuses/user_timeline.json", 
        dataType: 'jsonp',
        data: { screen_name: "filmnetz", count: 1 }, 
        success: loadTweet
    });
});