Blogs = {};
Blogs.options = {};

Blogs.setOptions = function(options)
{
    this.options = options;
}
Blogs.getFileExt = function(fileName)
{
    if(fileName.length == 0) { return ""; }
    var dot = fileName.lastIndexOf(".");
    if(dot == -1) { return ""; }
    return fileName.substr( dot+1, fileName.length ).toLowerCase();
}
Blogs.isNotAllowedFileExt = function(fileName, allowedExt)
{ 
    var ext = Blogs.getFileExt(fileName);
    for (var i=0; i<allowedExt.length; i++)
    {
        if(ext == allowedExt[i])
        {
            return false;
        }
    }
    return true;
} 
Blogs.insertAtCaret = function(val)
{
    var el = document.getElementById(Blogs.options.post_container);
    el.focus();
    if (document.selection)
    {
        sel = document.selection.createRange();
        sel.text = val;
        el.focus();
    }
    else if (el.selectionStart || el.selectionStart == '0')
    {
        var startPos = el.selectionStart;
        var endPos = el.selectionEnd;
        var scrollTop = el.scrollTop;
        el.value = el.value.substring(0, startPos)+val+el.value.substring(endPos,el.value.length);
        el.focus();
        el.selectionStart = startPos + val.length;
        el.selectionEnd = startPos + val.length;
        el.scrollTop = scrollTop;
    }
    else
    {
        el.value += val;
        el.focus();
    }
}

Blogs.setImageSettings = function(uploadifySettings)
{
    this.image_settings = uploadifySettings;
}

Blogs.setVideoSettings = function(uploadifySettings)
{
    this.video_settings = uploadifySettings;
}

Blogs.onStartUploadImage = function(event, ID, fileObj)
{
    var text_holder = $('.photosi > .selectors > div:first > span');
    text_holder.text('Выбери и загрузи').css({'color':'#333333'});
    if(Blogs.isNotAllowedFileExt(fileObj.name, ['png','jpg','jpeg','gif']))
    {
        /*
        $('#upload-video-error').hide();
        $('#upload-image-error').hide();
        $('#upload-ext-error').show();
        $('#errors-holder').show();
        $("#image_uploader").uploadifyCancel(ID);
        */
        text_holder.text('запрещенный файл').css({'color':'red'});
        return false;
    }
    if(fileObj.size > 5242880)
    {
        /*
        $('#upload-video-error').hide();
        $('#upload-ext-error').hide();
        $('#upload-image-error').show();
        $('#errors-holder').show();
        $("#image_uploader").uploadifyCancel(ID);
        */
        text_holder.text('файл слишком большой').css({'color':'red'});
        return false;
    }
 
    if($('#errors-holder').is(":visible"))
    {
        $('#errors-holder').hide();
    }

    //jQuery(Blogs.options.container).append('<li class="image" style="display:none;"><table><tr><td><div class="progress" id="imageprogress-'+ID+'"></div></td></tr></table></li>');
    //jQuery(Blogs.options.container+' li:last').slideDown('slow');
    return false;
}

Blogs.onProgressUploadImage = function(event, ID, fileObj, data)
{
    //var border = parseInt(data.percentage*0.60);
    //var width = 60 - parseInt(data.percentage*0.60);
    //jQuery('#imageprogress-'+ID).css('width',width+'px');
    //jQuery('#imageprogress-'+ID).css('border-left-width',border+'px');

    var width = parseInt(data.percentage*1.84); // наша максимальная ширина 184px
    $('#imageprogress').css('width',width+'px');
    return false;
}

Blogs.onCompleteUploadImage = function(event, ID, fileObj, response, data)
{
    //if ($('#imageprogress-'+ID).length == 0)
    var p0 = $('#imageprogress')
    if (p0.length == 0)
    {
        return false;
    }
    var info = eval(response);
    var p1 = $('.photosi > .selectors > div:first > span');
    if (info.success == false) {
        p1.text('ошибка загрузки').css({'color':'red'});
        p0.css({'width':'0px'}); // обнуляем прогресс бар
    }

    /*    
    var p1=$('#imageprogress-'+ID).parent().get(0);
    var p2=$(p1).parent().get(0);
    var p3=$(p2).parent().get(0);
    var p4=$(p3).parent().get(0);
    var p5=$(p4).parent().get(0);
    if (info.success == false) {
        $(p5).remove();
        $('#upload-image-error').hide();
        $('#upload-ext-error').hide();
        $('#upload-video-error').hide();
        $('#upload-video-server-error').hide();
        $('#upload-image-server-error').show();
        $('#errors-holder').show();
        return false;
    }

    $(p5).html('<a class="delete" href="#удалить изображение" onclick="Blogs.deleteImage('+info.id+',this);return false;">&#215;</a><table><tr><td><a href="#вставить картинку в текст" title="вставить картинку в текст" onclick="Blogs.addImage('+info.id+');return false;" ><img src="' + info.url + '" /></a></td></tr></table>');
    */

    Blogs.insertImage(info);
    p0.css({'width':'0px'}); // обнуляем прогресс бар
    return false;
}

Blogs.addImage = function(id)
{
    Blogs.insertAtCaret('\n[picture='+id+']\n');
}

Blogs.insertImage = function(obj)
{
    Blogs.options.editor.execCommand('inserthtml', '<div><img src="'+obj.url+'" alt="[picture='+obj.id+']#"></div>');
}

Blogs.deleteImage = function(id, element)
{
    $.ajax({
        type: 'GET',
        url: '/emotions/image/'+id+'/delete/',
        success: function(response){
            var info = eval(response);
            if(info.success == '1') {
                var p1=$(element).parent().get(0);
                jQuery(p1).slideUp('slow', function (){ $(p1).remove(); });
            }
        }
    });
}

Blogs.onStartUploadVideo = function(event, ID, fileObj)
{
    var text_holder = $('.vidosi > .selectors > div:first > span');
    text_holder.text('Выбери и загрузи').css({'color':'#333333'});
    if ( Blogs.isNotAllowedFileExt( fileObj.name, ['mov','avi','mpeg','mpg','vmw','mp4','flv','swf'] ) )
    {
        /*
        $('#upload-video-error').hide();
        $('#upload-image-error').hide();
        $('#upload-ext-error').show();
        $('#errors-holder').show();
        $("#video_uploader").uploadifyCancel(ID);
        */
        text_holder.text('недопустимый формат видео').css({'color':'red'});
        return false;
    }
    if (fileObj.size > 52428800 )
    {
        /*
        $('#upload-image-error').hide();
        $('#upload-ext-error').hide();
        $('#upload-video-error').show();
        $('#errors-holder').show();
        $("#video_uploader").uploadifyCancel(ID);
        */
        text_holder.text('файл слишком большой').css({'color':'red'});
        return false;
    }
    if ($('#errors-holder').is(":visible"))
    {
        $('#errors-holder').hide();
    }

    Blogs.options.editor.execCommand('inserthtml', '<div><img src="'+MEDIA_URL+'i/video_img_220x180.jpg" alt="[video='+ID+']#"></div>');
    
    
    $('#videoprogress').css({'width':'2px'});
    //jQuery(Blogs.options.container).append('<li class="video" style="display:none;"><table><tr><td><div class="progress" id="videoprogress-'+ID+'"></div></td></tr></table></li>');
    //jQuery(Blogs.options.container+' li:last').slideDown('slow');
    return false;
}

Blogs.onProgressUploadVideo = function(event, ID, fileObj, data)
{
    //var border = parseInt(data.percentage*0.60);
    //var width = 60 - parseInt(data.percentage*0.60);
    //jQuery('#videoprogress-'+ID).css('width',width+'px');
    //jQuery('#videoprogress-'+ID).css('border-left-width',border+'px');
    
    var width = parseInt(data.percentage*1.84);
    jQuery('#videoprogress').css('width',width+'px');
    return false;
}

Blogs.onCompleteUploadVideo = function(event, ID, fileObj, response, data)
{
    //if ($('#videoprogress-'+ID).length == 0)
    if ($('#videoprogress').css('width') < 184)
    {
        return false;
    }

    var p0 = $('#videoprogress');
    var info = eval(response);
    if (info.success == false) {
        var p1 = $('.vidosi > .selectors > div:first > span');
        p1.css({'color':'red'}).text('ошибка загрузки');
        p0.css({'width':'0px'});
        return false;
    }

    /*    
    var info = eval(response);
    var p1=$('#videoprogress'+ID).parent().get(0);
    var p2=$(p1).parent().get(0);
    var p3=$(p2).parent().get(0);
    var p4=$(p3).parent().get(0);
    var p5=$(p4).parent().get(0);
    if (info.success == false) {
        $(p5).remove();
        $('#upload-image-error').hide();
        $('#upload-image-server-error').hide();
        $('#upload-ext-error').hide();
        $('#upload-video-error').hide();
        $('#upload-video-server-error').show();
        $('#errors-holder').show();
        return false;
    }
    */

    p0.css({'width':'0px'});
    $(Blogs.options.editor.frame.get(0).contentDocument).find('img[alt*="video='+ID+'"]').attr('src', info.url).attr('alt', '[video='+info.id+']#');

    //Blogs.insertVideo(info);
    
    //$(p5).html('<a class="delete" href="#удалить видео" onclick="Blogs.deleteVideo('+info.id+',this);return false;">&#215;</a><table><tr><td><a href="#вставить видео в текст" title="вставить видео в текст" onclick="Blogs.addVideo('+info.id+');return false;" ><img src="' + info.url + '" /></a></td></tr></table>');
    return false;
}


Blogs.addVideo = function(id)
{
    Blogs.insertAtCaret('\n[video='+id+']\n');
}

Blogs.deleteVideo = function(id, element)
{
    $.ajax({
        type: 'GET',
        url: '/emotions/video/'+id+'/delete/',
        success: function(response){
            var info = eval(response);
            if(info.success == '1') {
                var p1=$(element).parent().get(0);
                jQuery(p1).slideUp('slow', function (){ $(p1).remove(); });
            }
        }
    });
}
/* пытаемся очень скрытно вставить на страницу e-mail,
 * смутно надеясь, что роботы не умеют работать с HTML
 * динамически получаемым от javascript... */
Blogs.putContact = function(id, login, domain)
{
    var dog = 64;
    var href_arr = [60, 97, 32, 104, 114, 101, 102, 61, 34, 109, 97, 105, 108, 116, 111, 58];
    var result = '';
    for(var i=0; i<href_arr.length; i++)
    {
        result += String.fromCharCode(href_arr[i]);
    }
    result += login + String.fromCharCode(dog) + domain;
//    result += '">' + login + '(at)' + domain.replace('.', '[dot]') + '</a>';
    result += '">' + login + String.fromCharCode(dog) + domain + '</a>';
    $('#'+id).html(result);
}



