function trim(s){
    return s.replace(/^\s+|\s+$/g,"");
}

function trim_char(str, c){
    while (str.length != 0 && str.charAt(0) == c) str = str.substring(1);
    while (str.length != 0 && str.charAt(str.length-1) == c) str = str.substring(0, str.length-1);
    return str;
}

// http://blog.worldmaker.net/2009/jun/08/django-snippet-jquery-slugify-supporting-multiple-/
// $("#id_brand, #id_name").slugify("#id_slug");
// $(".prepopulate_slug").slugify("#id_slug2");
jQuery.fn.slugify = function(obj) {
    jQuery(this).data('origquery', this);
    jQuery(this).data('obj', jQuery(obj));
    jQuery(this).keyup(function() {
        var obj = jQuery(this).data('obj');
        var oquery = jQuery(this).data('origquery');
        var vals = [];
        jQuery(oquery).each(function (i) {
            vals[i] = (jQuery(this).val());
        });
        var slug = vals.join(' ').toLowerCase().replace(/\s+/g,'-').replace(/[^a-z0-9\-]/g,'');
        obj.val(slug);
    });
}

/*function toWikiWord(text) {
    //var chars = text.split('');
    var ww = '';
    var to_upper = true;
    for(i=0; i<text.length; i++) {
        var c = text.charAt(i).toString();
        if (c.search(/[A-Za-z0-9]/) == 0) {
            if (to_upper) ww += c.toUpperCase();
            else ww += c
            if (c.search(/[0-9]/) == 0) to_upper = true;
            else to_upper = false;
        } else {
            to_upper = true;
        }
    }
    return ww;
}*/
// solo lettere, no numeri
function toWikiWord(text) {
    //var chars = text.split('');
    var ww = '';
    var to_upper = true;
    for(i=0; i<text.length; i++) {
        var c = text.charAt(i).toString();
        if (c.search(/[A-Za-z]/) == 0) {
            if (to_upper) ww += c.toUpperCase();
            else ww += c
            to_upper = false;
        } else {
            to_upper = true;
        }
    }
    return ww;
}

/* copia da _dialogs.html */
function openCancelDialog(node, cancel_url, delete_url, event){
    event.stopPropagation();
    var btns = {"This":function(){window.location=cancel_url;}, "All":function(){window.location=delete_url}, "Do nothing":function(){$(this).dialog("destroy");}};
    dia = $("#delete_dialog").dialog({'buttons':btns, 'modal':true});
    dia.dialog('open');
    return false;
}

function openEditDialog(node, occurrence_url, event_url, event){
    event.stopPropagation();
    var btns = {"This":function(){window.location=occurrence_url;}, "All":function(){window.location=event_url}, "Do nothing":function(){$(this).dialog("destroy");}};
    dia = $("#edit_dialog").dialog({'buttons':btns, 'modal':true});
    dia.dialog('open');
    return false;
}

function openDetail(node){
    var btns = { "Close":function(){$(this).dialog("destroy");}};
    dia = $($(node).attr("href")).dialog({'buttons':btns, 'modal':true, 'title':'Details'});
    dia.dialog('open');
    return false;
}

function openURL(url, event){
    event.stopPropagation();
    window.location=url;
}
/* / _dialogs.html */

var timeout = null;

function playSlides(i) {
    i =  parseInt(i);
    $(".slides_counter").removeClass('slides_counter_on');
    $(".slides_counter").addClass('slides_counter_off');
    $(".slides_box").hide();
    $("#slides_counter_slide" + i).addClass('slides_counter_on');
    $("#slides_counter_slide" + i).removeClass('slides_counter_off');
    $("#slides_box_slide" + i).fadeIn(300);
    i += 1;
    if ($("#slides_counter_slide" + i).length == 0) i = 1;
    if (timeout) clearTimeout(timeout);
    timeout = setTimeout("playSlides(" + i + ")", 8000);
    return false;
}

/* jquery */

var root = _root;
var media_url = _media_url;
var static_url = _static_url;

$(document).ready(function() {
    var path_info = $("#path_info").html();
    if (path_info) {
        var active_prev = '';
        $(".submenu ul li a").each(function (i) {
            var url = trim_char($(this).attr('href').replace(' ', ''), '/');
            //if (path_info.indexOf(url) == 0) $(this).parent().addClass('active');
            var pi = trim_char(path_info, '/');
            //if (pi == url) $(this).parent().addClass('active');
            //alert('url ' + url + ' pi ' + pi + ' pi.indexOf(url) ' + pi.indexOf(url));
            if (pi.indexOf(url) == 0 && url.length > active_prev.length) {
                $(".submenu ul li").removeClass('active');
                $(this).parent().addClass('active');
                active_prev = url;
            }
        });
    }
    
    // impostazione della lingua nel profilo utente
    $(".language_nav").click(function() {
            var language = $(this).attr('id').replace('language_nav_', '');
            $.ajax({ 
                type: "POST",
                dataType: "script",
                url: root + '/set_user_language/' + language + '/', 
                success: function(result){ 
                    //alert(result);
                }
            });
        }
    );
    
    // slides homepage
    if($(".slides_box").length > 0) {
        playSlides(1);
    }
    
    $('.slides_counter').click(function() {
            var i = $(this).attr('id').replace('slides_counter_slide', '');
            if (timeout) clearTimeout(timeout);
            playSlides(i);
        }
    );
    
    // search tags
    $('input.search_tags_input').keyup(function(event){
        if (event.which == 13) {
            var url = $(this).attr('name').replace('tag_name', $(this).val());
            //window.open(url, '_self');
        }
    });
    
    // homepage login
    $('#login_btn_access').click(function() {
            $('#login_buttons_box').hide();
            $('#login_form_box').fadeIn(300);
        }
    );
    
    $("#profile_avatar").hover(
        function() {
            $("#avatar_replace").fadeIn(100);
        },
        function() {
            $("#avatar_replace").fadeOut(100);
        }
    );
    
    $('.dishared_yes_btn').click(
        function() {
            var id = $(this).parent().attr('id').replace($(this).parent().attr('class').split(' ').slice(0,1) + '_', '');
            /*
            $.ajax({ 
                type: "POST",
                //async: false,
                url: root + '/dishared/yes/' + id, 
                success: function(result){ 
                    $('#dishared_' + id).slideUp(200);
                    $("#dishared_" + id).append('<p id="#dishared_msg_' + id + '">' + result + '</p>');
                }
            });*/
            $(this).parent().load(root + '/dishared/yes/' + id);
        }
    );
    
    $('.dishared_no_btn').click(
        function() {
            var id = $(this).parent().attr('id').replace($(this).parent().attr('class').split(' ').slice(0,1) + '_', '');
            $(this).parent().load(root + '/dishared/no/' + id);
        }
    );
    
    $('.dishare_accept_btn').click(
        function() {
            var id = $(this).parent().attr('id').replace($(this).parent().attr('class').split(' ').slice(0,1) + '_', '');
            var msg = $("#dishare_textarea_" + id).val(); //lo passo via POST
            $.ajax({ 
                type: "POST",
                //async: false,
                url: root + '/dishare/accept/' + id,
                data: ({msg: msg}),
                success: function(result){
                    $("#dishare_ops_" + id).hide();
                    $("#dishare_res_" + id).html(result);
                    $("#dishare_res_" + id).show();
                    var v = $("#dishare_change_btn_value_" + id).html();
                    $("#dishare_change_btn_" + id).attr('value', v);
                    $("#dishare_change_btn_" + id).show();
                }
            });
            //$(this).parent().load(root + '/dishare/accept/' + id);
        }
    );
    
    $('.dishare_refuse_btn').click(
        function() {
            var id = $(this).parent().attr('id').replace($(this).parent().attr('class').split(' ').slice(0,1) + '_', '');
            var msg = $("#dishare_textarea_" + id).val(); //lo passo via POST
            $.ajax({ 
                type: "POST",
                //async: false,
                url: root + '/dishare/refuse/' + id,
                data: ({msg: msg}),
                success: function(result){ 
                    $("#dishare_ops_" + id).hide();
                    $("#dishare_res_" + id).html(result);
                    $("#dishare_res_" + id).show();
                    var v = $("#dishare_change_btn_value_" + id).html();
                    $("#dishare_change_btn_" + id).attr('value', v);
                    $("#dishare_change_btn_" + id).show();
                }
            });
            //$(this).parent().load(root + '/dishare/refuse/' + id);
        }
    );
    
    $('.dishare_change_btn').click(
        function() {
            var id = $(this).parent().attr('id').replace($(this).parent().attr('class').split(' ').slice(0,1) + '_', '');
            $(this).slideUp(200);
            $('#dishare_ops_' + id).slideDown(200);
            //$('#dishare_textarea_' + id).slideDown(200);
            //$('#dishare_accept_btn_' + id).slideDown(200);
            //$('#dishare_refuse_btn_' + id).slideDown(200);
        }
    );
    
    // form slug
    if($("#div_id_slug").length > 0) {
        $("input#id_title").slugify("input#id_slug"); 
        $("input#id_name").slugify("input#id_slug");
        // recipes
        $("input#id_title").keyup(
            function() {
                var s = $("input#id_slug").val();
                if(s.length > 100) $("input#id_slug").val(s.substr(0, 100));
            }
        );
        // tribes
        $("input#id_name").keyup(
            function() {
                var s = $("input#id_slug").val();
                if(s.length > 100) $("input#id_slug").val(s.substr(0, 100));
            }
        );
    }
    
    // tribes wiki form
    if($("#div_id_raw_title").length > 0) {
        
        $("input#id_raw_title").keyup(
            function() {
                $("input#id_title").attr('value', toWikiWord($(this).val()));
            }
        );
        $("#div_id_title label").html('WikiWord*');
    }
    
    if($("select#id_status").length > 0) {
        var status = $("select#id_status").val();
        var user_id = $("#user_id").html();
        $("#my_status_description").load(root + '/change_my_status/' + user_id + '/' + status);
        $("select#id_status").change(
            function() {
                var status = $(this).val();
                $("#my_status_description").load(root + '/change_my_status/' + user_id + '/' + status);
            }
        );
    }
    
    // calendar_box
    if($("#calendar_box").length > 0) {
        var year = $("#calendar_year").html();
        var month = $("#calendar_month").html();
        var url = '/get_calendar_box';
        if (year) url += '/' + year;
        if (month) url += '/' + month;
        $("#calendar_box").load(url);
    }
    
    $(".admin_news_text_show").click(
        function() {
            var id = $(this).attr('id').replace($(this).attr('class') + '_', '');
            $(this).hide();
            $("#admin_news_text_hide_" + id).show();
            $("#admin_news_text_" + id).hide();
            $("#admin_news_text_complete_" + id).show();
            $("#admin_news_comments_" + id).slideDown(200);
        }
    );
    
    $(".admin_news_text_hide").click(
        function() {
            var id = $(this).attr('id').replace($(this).attr('class') + '_', '');
            $(this).hide();
            $("#admin_news_text_show_" + id).show();
            $("#admin_news_text_complete_" + id).hide();
            $("#admin_news_text_" + id).show();
            $("#admin_news_comments_" + id).slideUp(200);
        }
    );
    /*
    $("#avatar_image_upload").change(
        function() {
            //alert($(this).attr('value'));
        }
    );
    */
    var uploadify_defaults = {
        'uploader'    : static_url + '/js/uploadify/uploadify.swf',
        'script'      : static_url + '/js/uploadify/uploadify.php',
        'cancelImg'   : static_url + '/js/uploadify/cancel.png',
        'auto'        : true,
        'sizeLimit'   : 100000
    };
    
    if($('#edit-recipe').length != 0) {
        
        /*jQuery.extend(uploadify_defaults, {
                //'onAllComplete' : allComplete,
                //'onComplete': Complete,
        }); //il primo oggetto viene modificato*/
        
        /*$('#id_image1').uploadify(
            jQuery.extend({
                'folder'      : '{{ upload_path }}',
                'scriptData'  : {'element_id': $(this).attr('id')},
            }, uploadify_defaults)
        );
        
        $('#edit-recipe').submit(
            function() {
                alert('ok');
                $('.uploadify').uploadifyUpload();
            }
        );*/
    }
    
    $(".friendly_list_toggle_others").live('click',
        function() {
            var container = $(this).parents('.friendly_list_container');
            if (container.children(".friendly_list_last").length != 0)
                container.children(".friendly_list_and").html(", ");
            else
                container.children(".friendly_list_and").html("");
            container.children(".friendly_list_others").show();
        }
    );
    
});

