
       $(document).ready(function(){                                   
                // добавление возможности свертывания для всех блоков 
                $('#left > DIV .switch, #right > DIV .switch').click(function slide_block(){                
                    var body = $(this).parent().siblings('.block_body');
                    var parent = body.parent(); 
                    var dm_blocks=eval ("("+Get_Cookie('dm_blocks')+")");
                    if (!dm_blocks) dm_blocks = {};
                    var id=$(parent).attr("bn")
                    if(parent.hasClass('hidden')){
                        parent.removeClass('hidden');                        
                        body.slideDown('normal'); 
                        delete  dm_blocks[id]
                        Set_Cookie('dm_blocks',JSON.stringify(dm_blocks),500)
                    }else{   
                        body.slideUp('normal',swithBlockAddHidden);
                        dm_blocks[id] = 0 
                        Set_Cookie('dm_blocks',JSON.stringify(dm_blocks),500)
                    }                                           
                    
                });
                
                // для блока - Теги
                $('#tag_filter :text').keyup(function(){                                    
                    var str = $(this).val();                                                
                    $("#tla_container a").each(function(){                    
                        if($(this).text().indexOf(str)){
                            $(this).hide();
                        }else{
                            $(this).show();
                        }
                    })
                    
                })
                                  
                // для всех цитат
                contentScreenshot();    
                
    });
        
    function swithBlockAddHidden(){
        $(this).parent().addClass('hidden');
    }
        
    function switchTags(id){
        switch(id){
            case "tags_all":
                $("#tags_all").addClass('active');
                $("#tags_top").removeClass('active');
                $("#tags_list_top").hide();
                $("#tags_list_all").show();
                break;
            case "tags_top":
                $("#tags_all").removeClass('active');
                $("#tags_top").addClass('active');
                $("#tags_list_top").show();
                $("#tags_list_all").hide();
               break;
        }
    }
    
            
var local={
        edit_save_changes:"Save changes"
        ,edit_discard_changes:"Discard changes"
        
        /** отправка цитаты **/
        ,name:"Name"
        ,email:"E-mail"
        ,icq:"ICQ"
        ,msn:"MSN"
        ,saving:"Saving..."
        ,ok:"OK"
        ,cancel:"Cancel"
        ,cant_delete:"You can edit only contacts that you created yourself.\nImpossible to edit contacts listed below:\n\n"
        ,cant_save_without_data:"Can't save contact without contact data"
        ,nocontacts_edit:"No contacts selected.\nPlease select contacts and then click 'Edit contacts'"
        ,nocontacts_delete:"No contacts selected.\nPlease select contacts you want to delete and then click 'Delete contacts'"
        ,nocontacts_send:"No contacts selected.\nPlease select contacts click 'Send'"
        ,confirm_delete:"Are you really want to delete contacts listed below?\n\n"
        ,finish_edit:"Finish or cancel existing editings"
        ,records:"Posts"

}
/************ Начало "Редактирование цитаты" *************/
function gE(id){return document.getElementById(id)}
function disableEditMode(el,save){
    el.editMode=false
    var contentDiv=el.contentDiv
    var iframe=el.editorIframe
    var tagsDiv=el.tagsDiv
    var textArea=el.getElementsByTagName("textarea")[0]
    var tagsCaption=tagsDiv.getElementsByTagName("div")[1]
    var insPoint=tagsCaption.nextSibling
        
    function createTags(arr){
        for(var i=0;i<arr.length;i++){
            var newTag=arr[i]
            if(newTag){
                var a=document.createElement("a")
                a.className="tag"
                a.href="#"
                a.innerHTML='<span class="tag_content">'+newTag+'</span><span class="tag_right"></span></a>'
                if(insPoint){
                    tagsDiv.insertBefore(a,insPoint)
                } else {
                    tagsDiv.appendChild(a)
                }
            }
        }
    }

    if(save){ //save everything
                var blogbody = iframe.contentWindow.document.body.innerHTML;
                if (el.captionDiv.firstChild) var blogtitle = el.captionDiv.firstChild.value;
                var blogpost = el.getAttribute('guid');
                var blogtags= textArea.value;
                
                contentDiv.innerHTML = blogbody;
                el.captionDiv.appendChild(document.createTextNode(blogtitle));
                if (el.captionDiv.firstChild) el.captionDiv.removeChild(el.captionDiv.firstChild);
                var tags = blogtags.split(/\s*,\s* /g);           
                createTags(tags);
                
                $.post("/action/newbreath/blog/edit", { 
                    blogpost: blogpost,
                    blogbody: blogbody,
                    blogtitle: blogtitle,
                    blogtags: blogtags
                    });

                
    } else { //reset values, don't save anything
        createTags(tagsDiv.tags)
        if (el.captionDiv.firstChild){
            el.captionDiv.appendChild(document.createTextNode(el.captionDiv.firstChild.defaultValue))
            el.captionDiv.removeChild(el.captionDiv.firstChild)
        }
    }
    $("#"+el.id+" DIV.controls").remove()
    textArea.parentNode.removeChild(textArea)
    iframe.parentNode.removeChild(el.editorPanel)
    iframe.parentNode.removeChild(iframe)
    contentDiv.style.display="block"
}

function initEditor(w,id){
    gE(id).editorWindow=w
    var contentDiv=gE(id).contentDiv
    w.document.designMode="on"
    w.document.body.contentEditable=true
    w.document.body.innerHTML=contentDiv.innerHTML
    createEditorPanel(id)
    w.focus()
}
function init_button(b){
        b.onmouseover=function(){
            this.oldClassName=this.className
            this.className=this.oldClassName+" editor_button_hover"

        }
        b.onmouseout=function(){
            this.className=this.oldClassName
        }
}
                    
function createEditorPanel(id){
		//$("#"+id).removeClass("collapsed")
        var commands="bold italic underline justifyleft justifycenter justifyright justifyfull insertunorderedlist insertorderedlist undo redo".split(" ");
        var div=document.createElement("div")
        div.id=id+"_"+"editor_panel"
        div.className="editor_panel"
        //div.innerHTML="123"
        var cancel=document.createElement("img")
        cancel.src="/_graphics/newbreath/editor/cancel.gif"
        //cancel.align="right"
        cancel.className="editor_ok"
        //new
        cancel.title=local.edit_discard_changes
        //-new
        if(window.note_cancel_handler){
            cancel.onclick=window.note_cancel_handler
            window.note_cancel_handler=null
        } else {
            cancel.onclick=function(){disableEditMode(gE(id),false)}
        }
        var ok=document.createElement("img")
        ok.src="/_graphics/newbreath/editor/ok.gif"        
        //ok.align="right"
        ok.className="editor_cancel"
        //new
        ok.title=local.edit_save_changes
        //-new
        ok.onclick=function(){
            disableEditMode(gE(id),true)
            if(window.note_ok_handler){note_ok_handler()}
        }
        var el=gE(id)
        //new
        var controls=document.createElement("div")
        controls.className="controls"        
        controls.appendChild(cancel)
        controls.appendChild(ok)
		el.insertBefore(controls,$("#"+el.id+" DIV.msg_panel").get(0))
        init_button(ok)
        init_button(cancel)
        for(var i=0;i<commands.length;i++){
                var img=document.createElement("img")
                img.messageId=id
                img.shortId=commands[i]
                img.id=img.messageId+"_"+img.shortId
				img.width=img.height=20
                img.src="/_graphics/newbreath/editor/icon_"+img.shortId+".gif"
                init_button(img)
                img.className="editor_button"
                //alert(img.src)
                img.onclick=commandExecutor
                div.appendChild(img)
        }
        //gE(id).appendChild(div)
        //alert(id+" "+gE(id))
        var iframe=gE(id).editorIframe
        //alert(iframe.parentNode)
        iframe.parentNode.insertBefore(div,iframe)
        iframe.nextSibling.editorPanel=div
        gE(id).editorPanel=div
}       
               
function commandExecutor(){
    var w=gE(this.messageId).editorWindow
    w.document.execCommand(this.shortId,false,false)
}

function enableEditMode(el){
        el=el.parentNode.parentNode
        if(el.editMode){
                disableEditMode(el)
                return
        } else {
                el.editMode=true
        }
		toggleCollapse($("#"+el.id+" DIV.expander A").get(0),true)
        //var msg=el.parentNode.parentNode
        var divs=el.getElementsByTagName("div")
        var contentDiv=divs[3]
        el.contentDiv=$("#"+el.id+" DIV.msg_main DIV.content").get(0)//contentDiv        
        el.tagsDiv=$("#"+el.id+">DIV.msg_tags").get(0)//divs[4]
        editTags(el.tagsDiv)
        el.captionDiv=$("#"+el.id+" DIV.msg_main DIV.caption").get(0)//divs[2]
        editCaption(el.captionDiv)
        //alert(contentDiv.innerHTML)
        var iframe=document.createElement("iframe")
        el.editorIframe=iframe
        iframe.style.width="100%"
        iframe.frameBorder=0
        iframe.style.height=(contentDiv.offsetHeight+50)+"px"
        //iframe.style.width=(contentDiv.offsetWidth-4)+"px"
        iframe.style.width=(contentDiv.offsetWidth-44)+"px"
        contentDiv.style.display="none"
        //iframe.style.border="none"
        iframe.frameborder=0
        iframe.src="/mod/newbreath/blank.htm?"+el.id
        contentDiv.parentNode.insertBefore(iframe, contentDiv)        
    
}           

function editCaption(div){
    var input=document.createElement("input")
    if (!div.firstChild){return true}
    input.value=input.defaultValue=div.firstChild.nodeValue
    div.removeChild(div.firstChild)
    div.appendChild(input)
}

function editTags(div){
    var a=div.getElementsByTagName("a")
    var tags=div.tags=[]
    for(var i=0;i<a.length;i++){
        if(a[i].className=="tag"){
            if(a[i]){
                                var tag = a[i].firstChild.firstChild.nodeValue;
                                if(tag=='notag'){
                                    continue;    
                                }
                tags.push(trim(tag))
                a[i].parentNode.removeChild(a[i])
                i--
            } else {
                break
            }
        }
    }
    var textArea=document.createElement("textarea")
    textArea.value=tags.join(", ")
    div.getElementsByTagName("div")[1].appendChild(textArea)
}

function trim(str){
    return str.replace(/^\s+/).replace(/\s+$/)
}                                              
/************ Конец "Редактирование цитаты" *************/

/************ Начало "Переключение языка" *************/
    function showLangs(){
            var l=$("#langs"),pos=$("#lang").position()
            if(l.css("visibility")=="visible"){
                    l.css("visibility","hidden")
                    return
            }
            l.css("visibility","visible").css("top",pos.top-59).css("left",pos.left-10)
    }
    function chooseLang(el){
            var lang = $(el).attr('lang');
            window.location.href = '/action/language/change?lang='+lang;
            
    }
    function hideLangs(){
            $("#langs").css("visibility","hidden")
    }
/************ Конец "Переключение языка" *************/    



function toolsLoading(el){
        //el.style.width=el.offsetWidth+"px"                                
        el.oldOnclick=el.onclick
        el.onclick=function(){}
        var img=document.createElement("img")
        img.width=img.height="16"
        img.src="/_graphics/newbreath/msg_panel_loading.gif"
        var diff=el.firstChild.offsetWidth-16
        img.style.marginLeft=diff+"px"
        el.firstChild.style.display="none"                                
        el.appendChild(img)
}
function toolsStopLoading(el){
        el.firstChild.style.display="inline"
        el.onclick=el.oldOnclick
        el.removeChild(el.lastChild)
}

function removeAutoTag(el){
        var autotag=el.parentNode.autotag;
        
        var tag = $(autotag).find('.autotag_content').text();
        var guid = $(autotag).parents('.msg').attr('guid');
        $.post("/action/ajax/autotag/remove", { tag: tag, guid: guid  });        
        
        $(autotag).remove();
        hideAutotagPanelNow();
        
        
}
function approveAutoTag(el){

        var autotag=el.parentNode.autotag;
        autotag.className="tag";
        autotag.onmouseover=autotag.onmouseout=function(){};
        hideAutotagPanelNow();
        $(autotag).siblings('.no_tag').remove();
        
        var tag = $(autotag).find('.autotag_content').text();
        var guid = $(autotag).parents('.msg').attr('guid');
        $.post("/action/ajax/autotag/approve", { tag: tag, guid: guid  });        
        
}
var autotagPanelTimeout;
function dontHideAutotagPanel(){
        clearTimeout(autotagPanelTimeout)
}
function showAutotagPanel(el){
        //alert($("#center").get(0).offsetLeft)
        var pos=$(el).position()
        $("#autotag_controls").
        css("top",pos.top+2+"px").
        css("left",pos.left+el.offsetWidth-3+"px").
        css("display","block")
        $("#autotag_controls").get(0).autotag=el
        dontHideAutotagPanel()                                                                                                
}
function hideAutotagPanelNow(){
        $("#autotag_controls").css("display","none")
}

function hideAutotagPanel(){
        autotagPanelTimeout=setTimeout(hideAutotagPanelNow,500)
}


function msgChangeAccess(a){
    toolsLoading(a);
    var guid = $(a).parent().parent().attr('guid');
    $.getJSON("/action/blog/ajax/access",{blogpost:guid},
        function(data){
            var img_lock;
            if(data.access_id){
                img_lock = 'icon_lock1.gif';
            }else{
                img_lock = 'icon_lock2.gif';
            }
            $(a).find('img').attr('src','/_graphics/newbreath/'+img_lock);
            toolsStopLoading(a);
        });


}
// скрывает -+
function toggleCollapse(el,expandOnly){
        var msg=el.parentNode.parentNode.parentNode
        viewing ($(msg).attr("guid"));                      // for advertising              
		if(expandOnly){
			$(msg).removeClass("collapsed")
		} else {
	        $(msg).toggleClass("collapsed")
		}
        var div=msg.getElementsByTagName("div")[3]
        div.style.zoom="1"
}
$(window).load(function(){
        $("#center DIV.collapsed").each(function(){
                var d=$(this)
                d.toggleClass("collapsed")
                if(this.offsetHeight<200&&!$(this).find(".msg_main .content .advertising").length)d.addClass("small")        
                //if(this.offsetHeight<200)d.addClass("small")       
                d.toggleClass("collapsed")                                        
        })
})



function contentScreenshot () {

    $(".msg_panel a.tool2.screenshotlink").fancybox({
            hideOnContentClick: true,
            overlayShow: true,
            overlayOpacity: 0.5,
            zoomSpeedIn: 500,
            zoomSpeedOut:600
        });
            
    /*var imageList = [
        {url: "/example_jquery/fancybox_img/05.jpg", title: "utf8 "},
        {url: "/example_jquery/fancybox_img/05-1.jpg", title: "ютф8"},
        {url: "/example_jquery/fancybox_img/05-2.jpg", title: "ютф8"},
        {url: "/example_jquery/fancybox_img/05-3.jpg", title: "ютф8"}
    ];
        
    function getGroupItems(opts) {
        jQuery.each(imageList, function(i, val) {
            opts.itemArray.push(val);
        });
    }
    
    $("#custom").fancybox({
        itemLoadCallback: getGroupItems
    });*/

    $("#frame").fancybox({
        zoomSpeedIn: 0,
        zoomSpeedOut:0,
        frameWidth: 800,
        frameHeight: 600
    });
}

/************ Начало "Отправка цитаты" *************/
    function toggleSelection(o){
            jQuery(o).toggleClass("selected")
    }

    function showSection(id){
            var upper=$("#contacts DIV:eq(0)").get(0)
            var current=$("#"+id).get(0)
            if(upper==current)return
            var clone=current.cloneNode(true)
            upper.parentNode.insertBefore(clone,upper)
            current.parentNode.removeChild(current)
    }
    
    function editComplete(){
            return !$("#contacts DIV.editable").length
    }
    
    function makeEditable(){
            if(!editComplete()){
                    alert(local.finish_edit)
                    return
            }
            var contacts=$("#contacts .selected").get()
            var i=0
            while( i < contacts.length ){
                    if(contacts[i].parentNode.id=="deepmemo_friends"){
                            contacts.splice(i,1)
                    } else {
                            i++
                    }
            }
            var friends=$("#deepmemo_friends .selected")
            friends.removeClass("selected")
            friends=friends.get()
            if(friends.length){
                    var names=[]
                    for(var i=0;i < friends.length;i++)names.push(friends[i].childNodes[1].firstChild.nodeValue)
                    alert(local.cant_delete+names.join("\n"))
            }
            if(!contacts.length){
                    alert(nocontacts_edit)
                    return
            }
            $("#contacts DIV.contact").addClass("inactive").each(function(){this.onclick=function(){}})//make all contacts insensible to click
            //var names=[]
            for(var i=0;i < contacts.length;i++){
                    //names.push(contacts[i].firstChild.nodeValue)
                    //alert("make editable:\n\n"+names)                                        
                    editContact(contacts[i])
            }
    }
    function parseContactData(str){
            var data={}
            var pairs=str.split(", "),pair
            for(var i=0;i < pairs.length;i++){
                    pair=pairs[i].split(":")
                    data[pair[0]]=pair[1]
            }
            return data
    }
    function getSecondParam(data){
            for(var i in data){
                    if(i!="name")return i
            }
    }
    function editContact(el){
            $(el).addClass("editable")
            var data=parseContactData(el.title)
            var nameCaption=local["name"]
            var secondParam=getSecondParam(data)
            var secondCaption=local[secondParam]
            var table=jQuery("<table align='right'><tr><td>"+nameCaption+"</td><td><input type='text' value='"+(data.name||"")+"' name='name'/></td></tr><tr><td>"+secondCaption+"</td><td><input type='text' value='"+(data[secondParam]||"")+"' name='contact'></td></tr><tr><td></td><td><button onclick='finishEdit(event,this,true)'>"+local.ok+"</button> <button onclick='finishEdit(event,this)'>"+local.cancel+"</button></td></tr></table>").get(0)
            el.appendChild(table)
    }

    function finishEdit(e,el,save){
            e.cancelBubble=true
            el=el.parentNode.parentNode.parentNode.parentNode.parentNode
            $(el).removeClass("editable")
            if(save){
                    var name = $(el).find('input[name=name]').val();
                    var contact = $(el).find('input[name=contact]').val();
                    var newName = $.trim(name||contact)
                    if(contact){
                            $(el).attr('title','name:' + name + ', email:'+contact);
                            var span = $(el).find('span');
                            span.text(newName);
                            span.append(" <em>"+local.saving+"</em>");                                                                                               
                        
                            $.post("/action/ajax/contact/edit", 
                                    { 
                                        contact_guid:  $(el).attr('guid'),
                                        name: name,
                                        email: contact
                                    },
                                      function(data){
                                            $(el).find('em').remove();
                                            if(!data.status){
                                                alert('little error');
                                            }         
                                      }, "json");
                                          
                                                                            
                            
                    } else {
                            alert(local.cant_save_without_data)
                    }
            }
            $(el).find('table').remove();
            if(editComplete()){
                    //make all contacts sensible to click
                    $("#contacts DIV.contact").removeClass("inactive").removeClass('selected').each(function(){
                            this.onclick=function(){
                                    toggleSelection(this)
                            }})
            }
    }                        

    function deleteContacts(){
            if(!editComplete()){
                    alert(local.finish_edit)
                    return false
            }

            var friends=$("#deepmemo_friends .selected")
            friends.removeClass("selected")
            friends=friends.get()
            if(friends.length){
                    var names=[]
                    for(var i=0;i < friends.length;i++)names.push(friends[i].childNodes[1].firstChild.nodeValue)
                    alert(local.cant_delete+names.join("\n"))
            }

            var contacts=$("#contacts .selected .name");
            if(!contacts.length){
                    alert(local.nocontacts_delete)
                    return false
            }
            var names = []
            contacts.each(function(){
                names.push($(this).text());
            })
            
            if(confirm(local.confirm_delete + names.join("\n"))){
                
                // создаем форму, для того чтобы страница перезагрузилась
                var form = $('<form method="post" action="/action/contact/remove" id="form_delete"></form>').appendTo("body");
                contacts.each(function(){
                    $('<input type="hidden" name="contact_guid[]" value="'+$(this).parent().attr('guid')+'">').appendTo('#form_delete');                                    
                })
                form.submit();         
                
                return false;
            }
                
    }


    function share(){
            if(!editComplete()){
                    alert(local.finish_edit)
                    return false;
            }
            var contacts = $("div.selected");
            
            if(!contacts.length){
                    alert(local.nocontacts_send)
                    return false;
            }
            
            var blogpost = $('div.msg').attr('guid');
               
            $('#form_share').remove();
            var form = $('<form method="post" action="/action/blog/share" id="form_share"></form>').appendTo("body");                               
            $('<input type="hidden" name="blogpost" value="'+blogpost+'">').appendTo('#form_share');
            contacts.each(function(){
                $('<input type="hidden" name="guids[]" value="'+$(this).attr('guid')+'">').appendTo('#form_share');
            })
            form.submit();
    }
                        
/************ Конец "Отправка цитаты" *************/                        


function switchNext(o){
    do{
        o=o.nextSibling
    }while(o&&!o.tagName)
    if(o&&o.tagName){
        o.style.display=o.style.display=="block"?"none":"block"
    }
}

//
    function putIt(path) {  
        xpi={'Deepmemo':'/download/'+path };
        InstallTrigger.install(xpi);
    }
    

    
/******************* Календарь *********************/
      
  var  month_name= new Array ("January",
                              "February",
                              "March",
                              "April",
                              "May",
                              "June",
                              "July",
                              "August",
                              "September",
                              "October",
                              "November",
                              "December");

  var  month_name_short = new Array ("Jan",
                              "Feb",
                              "Mar",
                              "Apr",
                              "May",
                              "Jun",
                              "Jul",
                              "Aug",
                              "Sep",
                              "Oct",
                              "Nov",
                              "Dec");                              
                              
 
  var   day_name= new Array  ("S",
                              "M",
                              "T",
                              "W",
                              "T",
                              "F",
                              "S",
                              "S");
  
  var first_of_week = 1; 
  
  var url="/action/newbreath/calendar";   
 
  //Возвращает хеш адресной строки  
  function get_hash(){
    hash=window.location.hash.replace("#","");
    if (!hash) return false; 
    hash.split("&")? hash=hash.split("&") : hash=hash;
    H=new Array(hash.length);
    for (i=0;i<=hash.length-1;i++){
        H[hash[i].split("=")[0]]=hash[i].split("=")[1];
    }
   
    if (H.length) return H 
    
    else return false;
  }
  
  

  // Вормат date YYYY-MM-DD
  // Возвращает объект с атрибутами
  // [0] - YYYY
  // [1] - MM
  // [2] - DD                 
 function parse_date(date){
     
     date=date.split("-");
     var D= new Array(date.length);
     for (i=0;i<=date.length-1;i++){
      D[i]=parseInt(date[i]);
     }
     return D;
 
 }
   
 //формирует календарь  
 function create_calendar(month, year){
    $('div.calendar.loading').attr('style','display:block')
    $("#current_date").attr("id","");    
    $("#week_6").attr("style","display:none");
  
    if ((month==0)&&(($("#month").attr("value"))==11)) var year=parseInt(year)+1;
    if ((month==11)&&($("#month").attr("value")==0)) var year=year-1;
     
    //Возвращает максимальеное количество дней в месяце
    // iMonth - MM
    // iYear - YYYY
    function maxd(iMonth, iYear)
        { return 32 - new Date(iYear, iMonth, 32).getDate();  }

    maxdays =  maxd(month,year);       

  
    first_of_month = (new Date (year, month, 1).getDay() + 6 )%7
    
    
  
    prev_of_month = month-1;
    if (prev_of_month==-1)   prev_of_month=11;
     
    next_of_month = parseInt(month)+1;
    if (next_of_month==12)   next_of_month=0;  
  
    //Выводим дни недели
    for (i=0;i<=6;i++){             
         j=i+first_of_week;
         $(".day_i"+i).text(day_name[j]); }
    
    //Выводим даты каленедаря    
    for (i=0,j=1;i<maxdays+first_of_month;i++)
         if (i>=first_of_month){   
            if (i>=35)  $("#week_6").attr("style","display:");
            $(".day_"+i).text(j);
            j++;
         }
        else
            $(".day_"+i).text(""); 
            
    //Убираем лишние даты (если такие остались с прошлого месяца)                        
    for (i=maxdays+first_of_month; i<37;i++) $(".day_"+i).text("");
    
    
    //Выводим название месяца, год, .....       
    $("#calendar_button_m_left").attr("title",month_name[prev_of_month]); 
    $("#calendar_button_m_left").attr("value",prev_of_month); 
    $("#month").html(month_name[month]); 
    $("#month").attr("value",parseInt(month)); 
    $("#calendar_button_m_right").attr("title",month_name[next_of_month]);  
    $("#calendar_button_m_right").attr("value",next_of_month);  
    $("#calendar_button_y_left").attr("title",year-1); 
    $("#year").html(year);
    $("#year").attr("value",year);
    $("#calendar_button_y_right").attr("title",parseInt(year)+1);
     
     
     //Подсвечивание выбранного дня...     
    hash = get_hash();
    if (hash['day']){     
        date= parse_date(hash['day']);
        if ((parseInt(date[0])==parseInt(year))&&(parseInt(date[1])==parseInt(month)+1)){ 
            d=parseInt(date[2])+first_of_month-1; 
            $(".day_"+d).attr("id","current_date"); 
        }
    } 
                                                             

    
    var param='m='+(parseInt(month)+1)+'&y='+year;
      
    if (!check_page('global')) param+='&uname='+check_page('users_blog')
    $.getJSON(url, param, function(cal) {
			
          for   (i in cal){
            var data= parseInt(i)+parseInt(first_of_month)-1;
            m=parseInt(month)+1;     ///// Отмечаем даты с цитатами
            var html = '<a href="#day='+year+'-'+m+'-'+i+'" ';
            html += ' title="'+local.records+': '+cal[i]+'" ';
            html += ' onClick="contentLoad(\'day\',\''+year+'-'+m+'-'+i+'\')">'+i+'</a>';   
            $(".day_"+data).html(html);
            //"<a href=\"#day="+year+'-'+m+'-'+i+'" title="'+local.records+': '+cal[i]+'"  onClick="contentLoad(\'day\',\''+year+'-'+m+'-'+i+"')\">"+i+'</a>'   
          } 
          $('div.calendar.loading').attr('style','display:none;')
    });
        

      
 }     /*create_calendar*/


 $(document).ready(function(){
 $("#calendar_button_m_left").click(function(){create_calendar( $("#calendar_button_m_left").attr("value"),$("#year").attr("value"));});
 $("#calendar_button_m_right").click(function(){create_calendar( $("#calendar_button_m_right").attr("value"),$("#year").attr("value"));});
 $("#calendar_button_y_left").click(function(){create_calendar(  $("#month").attr("value"),$("#calendar_button_y_left").attr("title"));});
 $("#calendar_button_y_right").click(function(){create_calendar( $("#month").attr("value"),$("#calendar_button_y_right").attr("title"));});
 })

    
 //Выводит посты за день                                                                                  
 function view_post(i){ 
 //Отображение дива лоадинг 
    var system_msg='<div class="system_message"><table cellspacing="0" cellpadding="0"><tbody><tr><td><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_lt.gif"/></td><td> </td><td align="right"><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_rt.gif"/></td></tr><tr><td> </td><td class="system_message_text">Loading<img height="16" width="16" src="/_graphics/newbreath/content_loading.gif" class="loading"/></td><td> </td></tr><tr><td><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_lb.gif"/></td><td> </td><td align="right"><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_rb.gif"/></td></tr></tbody></table></div>';
    if (check_page('global')) system_msg+='<style>.system_message {width: 580px;}</style>'
    $("#center").html(system_msg);
    
    month=parseInt($("#month").attr("value"))+1;
    year=parseInt($("#year").attr("value")); 
    
    first_of_month = new Date (year, month-1, 1).getDay()-first_of_week;    
    
    day=i+first_of_month-1 ;
    
    $("#current_date").attr("id","") ;
    $(".day_"+day).attr("id","current_date"); 
        
    $.get("?day="+year+"-"+month+"-"+i+"&view=js", function(data) {
    $("#center"+' div.system_message').remove(); 
        $("#center").html(data);
    if (check_page('users'))contentdetalsetup('users'); 
    if (check_page('users_blog'))contentdetalsetup('blog'); 
         
    });
 }       
        

 
 
//  ----------  /Calendar block ----------

 

 //---------------- Scrolling block..............
  

 var scroll_update = check_page('loading');
 //var scroll_update = true;
 scroll_step=1;
 scrol_url=location.protocol;
 var scrol_object='#center';    
 var test='';
 var scrollingDisable=false;
     

 //определение типа страницы    
 function check_page(type,url){
 
    url=url||location.protocol+location.host+location.pathname;    
    switch (type) {
        case 'loading':
                url=location.pathname;
                url=url.split("/");
                if (url[1]=='try')  return true
                else    if ((url.length>4)&&(!url[4].length==0)) return false     
                else    if ((url[2]=='global')&&((url[3]=='users')||(url[3]=='blogs'))) return true
                else    if ((url[1]=='pg')&&((url[2]=='blog')||(url[2]=='friends'))) return true
                else return false;
        case 'users':
            var reg=/(pg\/global\/users)|(pg\/friends)/;   break;
        case 'global':
            var reg=/pg\/global/; break;     
        case 'blogs':
            var reg=/pg\/global\/blogs/; break;
        case 'users_blog':
            var reg=/pg\/blog\/[\w\d_\.]+/ ;
            url=reg.exec(url) ;
            if (url) {
            name=url[0].match(/[\w.]+/g).pop();   
            return name;
            
            }
        
        
            else return false; 
    }

    if (reg.test(url)) return true
    else return false;
 }

$(document).ready(function(){
hash=get_hash();
if (hash){
    for (var i in hash){
      contentLoad  (i,hash[i]) }
    }
    
})
    
function contentdetalsetup(type){
    switch (type) {
        case 'users':                                
            setup_avatar_menu();                          
        case 'blog':
            contentScreenshot ();
            
    }

}

 
function contentLoad (param,value){ 

    value.replace("+"," ");  
    value = encodeURIComponent(value);
    get=param+'='+value;     
    var system_msg='<div class="system_message"><table cellspacing="0" cellpadding="0"><tbody><tr><td><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_lt.gif"/></td><td> </td><td align="right"><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_rt.gif"/></td></tr><tr><td> </td><td class="system_message_text">Loading<img height="16" width="16" src="/_graphics/newbreath/content_loading.gif" class="loading"/></td><td> </td></tr><tr><td><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_lb.gif"/></td><td> </td><td align="right"><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_rb.gif"/></td></tr></tbody></table></div>';
    if (check_page('global')) system_msg+='<style>.system_message {width: 580px;}</style>'
    $("#center").html(system_msg);
    scroll_step=1; 
    window.location.hash=get; 
    var url = window.location.href;
    var reg=/[\w\.:\/]+[\/\w]\/?/
    url = url.match(reg)
    $.get(url+'?view=js&'+get, function(data){
    $("#center"+' div.system_message').remove();   
        $("#center").html(data)
     if (check_page('users_blog')) contentdetalsetup('blog')
     else if (check_page('users')) contentdetalsetup('user')
     

    })
}  
        
  function getClientSTop(){
return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop)
}

//высота клиентской области
function getDocumentHeight(){
    return (document.body.scrollHeight > document.body.offsetHeight)?document.body.scrollHeight:document.body.offsetHeight;
}

                                                                                                     
  
$(window).scroll(function () { 
if (get_hash())  
    content_hash = window.location.hash.replace("#","")+'&'
else   content_hash='';
var scrol_param='view=js&'+content_hash+'step=';   
if (!scrollingDisable) 
       if (scroll_update)
        if ((document.getElementById('center').clientHeight-1500) < getClientSTop()){
            //console.log(document.getElementById('center').clientHeight)
            //console.log(getClientSTop())
           if (check_page('users')) {
               $(scrol_object).append('<div class="system_message big_block"><table cellspacing="0" cellpadding="0"><tbody><tr><td><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_lt.gif"/></td><td> </td><td align="right"><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_rt.gif"/></td></tr><tr><td> </td><td class="system_message_text">Loading<img height="16" width="16" src="/_graphics/newbreath/content_loading.gif" class="loading"/></td><td> </td></tr><tr><td><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_lb.gif"/></td><td> </td><td align="right"><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_rb.gif"/></td></tr></tbody></table></div>');
           scroll_update=false;    
           $.get(scrol_url,  scrol_param+scroll_step, function(cal){
           $(scrol_object).append(cal);
           contentdetalsetup('users');
           $(scrol_object+' div.system_message').remove(); 
           scroll_update=true; 
           scroll_step+=1; 
           })}           
       else {    
        $(scrol_object).append('<div class="system_message"><table cellspacing="0" cellpadding="0"><tbody><tr><td><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_lt.gif"/></td><td> </td><td align="right"><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_rt.gif"/></td></tr><tr><td> </td><td class="system_message_text">Loading<img height="16" width="16" src="/_graphics/newbreath/content_loading.gif" class="loading"/></td><td> </td></tr><tr><td><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_lb.gif"/></td><td> </td><td align="right"><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_rb.gif"/></td></tr></tbody></table></div>');
        scroll_update=false;    
        $.get(scrol_url,  scrol_param+scroll_step, function(cal){ 
        $(scrol_object).append(cal);
        contentdetalsetup('blog');        
        $(scrol_object+' div.system_message').remove(); 
        scroll_update=true; 
        scroll_step+=1; 
           })  
        } 
      }
       
})
;

//---------------- /Scrolling block..............


//-----------------Owner block -------------------
var add_empty_form=true

function add_empty(){
 if (add_empty_form){   
 $('#center').prepend('<div class="system_message"><table cellspacing="0" cellpadding="0"><tbody><tr><td><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_lt.gif"/></td><td> </td><td align="right"><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_rt.gif"/></td></tr><tr><td> </td><td class="system_message_text">Loading<img height="16" width="16" src="/_graphics/newbreath/content_loading.gif" class="loading"/></td><td> </td></tr><tr><td><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_lb.gif"/></td><td> </td><td align="right"><img height="15" width="15" alt="" src="/_graphics/newbreath/corner_rb.gif"/></td></tr></tbody></table></div>');
  
   add_empty_form=false 
   $.get('/actions/blog/add/empty', function(add){
        $('#page_caption').after(add); 
        var guid=$('.msg.collapsed:first').attr('guid');
        enableEditMode($('#blog'+guid+' .msg_panel a')[2]);
        $('#profile_block .block_body a.add_empty').removeAttr('onClick');
        note_cancel_handler = function(){
            $('#blog'+guid).remove();
            add_empty_form=true;
            $('#profile_block .block_body a.add_empty').attr('onClick','add_empty()'); 
            $.get('/action/blog/delete?blogpost='+guid)
        }
        note_ok_handler = function(){
            $('#blog'+guid+' .msg_panel a:nth-child(2)').attr('style','display:block;');                              
            $('#blog'+guid+' .msg_panel a:nth-child(3)').attr('style','display:block;');                              
            $('#blog'+guid+' .msg_panel a:nth-child(4)').attr('style','display:block;');                              
            $('#blog'+guid+' .msg_panel a:nth-child(5)').attr('style','display:block;');
            $('#profile_block .block_body a.add_empty').attr('onClick','add_empty()');
            add_empty_form=true;
        }        
   
        $('#blog'+guid+' .msg_panel a:nth-child(2)').attr('style','display:none;');                              
        $('#blog'+guid+' .msg_panel a:nth-child(3)').attr('style','display:none;');                              
        $('#blog'+guid+' .msg_panel a:nth-child(4)').attr('style','display:none;');                              
        $('#blog'+guid+' .msg_panel a:nth-child(5)').attr('style','display:none;');                              
        $(scrol_object+' div.system_message').remove();
         
   });
  }
  
}



//-----------------/Owner block -------------------

//----------------- advertising block ---------------
function viewing(guid){
    if ($("#blog"+guid+" .msg_main .content .advertising").length){
        guid=$('#blog' + guid + ' .msg_main .content .advertising').attr("guid")
        $.get('/action/redirect?viewing=1&guid='+guid,function(){
        
        })              
    }
}
$(document).ready(function(){
    $('#advertising_add_form textarea').attr('OnKeyUp',"$('#advertising_add_form .advertising_test a').html('<span>advertising</span>'+$('#advertising_add_form textarea').attr('value'))");           
    $('#advertising_edit_form textarea').attr('OnKeyUp',"$('#advertising_edit_form .advertising_test a').html('<span>advertising</span>'+$('#advertising_edit_form textarea').attr('value'))");           
    $(".advertising_list  tr:odd").css("background-color", "#F2F8FF"); 
})
//----------------- /advertising block --------------
  
//-----------------Copy block -------------------

function getPos (obj) {
      var output = new Object();
      var mytop=0, myleft=0;
      while( obj) {
	      mytop+= obj.offsetTop;
    	  myleft+= obj.offsetLeft;
      	  obj= obj.offsetParent;
	  }
      output.left = myleft;
      output.top = mytop;
      return output;
}

function createCopier(txt,el,id,cl,absPos){
    var d=document.createElement("div")
    
    var top=el.offsetTop - el.parentNode.offsetTop;       
    var left=el.offsetLeft - el.parentNode.offsetLeft;    
    var offsetWidth = el.offsetWidth;
    var offsetHeight = el.offsetHeight;
    
    
    if (absPos){
    	var pos = getPos(el);
    	top= pos.top;       
    	left=pos.left;
    	//offsetWidth =  el.width
    	//offsetHeight =  el.height    	
    	//alert(offsetWidth)
    }
    
    d.setAttribute("style","position:absolute; top:"+top+"px; left:"+left+"px; width:"+offsetWidth+"px; height:"+el.offsetHeight+"px;")
    if(cl){cl="class="+cl} else {cl=""}
    if(id){d.setAttribute("id",id)}
    d.innerHTML='<object style="position:absolute;width:'+el.offsetWidth+'px; height:'+el.offsetHeight+'px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" align="middle">\
<param name="allowScriptAccess" value="always" />\
<param name="scale" value="exactFit" />\
<param name="wmode" value="transparent" />\
<param name="flashVars" value="T='+escape(txt)+'" />\
<param name="movie" value="/mod/newbreath/copy2.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffff00" /><embed '+cl+' scale="exactFit" "src="/mod/newbreath/copy2.swf" wmode="transparent" flashVars="T='+encodeURIComponent(txt)+'"  quality="high" bgcolor="#ffff00" width="100%" height="100%" name="copy" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />\
</object>'
    el.parentNode.insertBefore(d,el)
}   

//-----------------/Copy block -------------------

//------------------ additional actions block ------------------


function mousePageXY(e)
{
  var x = 0, y = 0;

  if (!e) e = window.event;

  if (e.pageX || e.pageY)
  {
    x = e.pageX;
    y = e.pageY;
  }
  else if (e.clientX || e.clientY)
  {
    x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
        y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
  }

  return {"x":x, "y":y};
}
 

function additional_menu(){
 additional_menu_hide();
} 

var additional_menu=false; 

function  additional_menu_show(el,guid,screen){
    $('#additional_action').css("display","none")
    var x=el.offsetLeft - 55;
    var y=el.offsetTop + 19;
    if (additional_menu == guid) {
        additional_menu_hide();
        return false;                                              
    } else {
        additional_menu_hide();
        additional_menu = guid;
    }
    
    $('#additional_action').css("display","block")   
    $('#additional_action').css("left",x +"px")   
    $('#additional_action').css("top",y +"px")   
   
    if (screen) {
        $("#additional_action .screenshot").css("display","block")
        $("#additional_action .screenshot a").attr("href","http://deepmemo.com/mod/file/thumbnail.php?file_guid=" + screen + "&size=large")
        $("#additional_action .screenshot a").attr("title","<a onClick='location.href=this.href' href='http://deepmemo.com/action/file/download?file_guid=" + screen+"'>Download full-sized screenshot</a>")
        
        $("#additional_action .screenshot a").fancybox({
        	'callbackOnStart':function(){
        		$('#additional_action').hide()
        	}
        })

        
        // href
    } else{
        $("#additional_action .screenshot").css("display","none")
    }
    
//    if(log_in){
//    } else{
//    }

              
    $(el).css("background-position","left center")    
  
  	var url=$('#blog' + guid).attr("url")     
       
    var link=$("#blog" + guid + " .comments").attr("href")
    var text=$("#blog" + guid + " .content").get(0).innerText || $("#blog" + guid + " .content").get(0).textContent
    var html=$("#blog" + guid + " .content").get(0).innerHTML || $("#blog" + guid + " .content").get(0).HTMLContent
      
      
    if(text){
    
		function trim(str, chars) {
			return ltrim(rtrim(str, chars), chars);
		}
		 
		function ltrim(str, chars) {
			chars = chars || "\\s";
			return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
		}
		 
		function rtrim(str, chars) {
			chars = chars || "\\s";
			return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
		}
    
    	text = trim(text)
    	var short_text = text.substr(0,200)
    	var tshirt_url = 'http://www.zazzle.com/api/create/at-238563189746330039?&ax=Linkover&pd=235735739500757695&fwd=DesignTool&quote='+encodeURIComponent(short_text);
    	$("#additional_action .tshirt a").attr("href",tshirt_url);	
    }
    
    if (url){    
		$("#additional_action .link").show();
    }else{
		$("#additional_action .link").hide();  
    
    }
       
    var take = $("#additional_action .take a")
   	
    
    createCopier(text, $(" .text").get(0), "text", "additional_layer") 
    createCopier(link, $(" .link").get(0), "link", "additional_layer") 
    createCopier(html, $(" .html").get(0), "html", "additional_layer")
    
   
  $(".additional_layer").mouseover(function(){
   $("."+$(this.parentNode.parentNode).attr("id")+" a").css("text-decoration","underline")
}) 

  $(".additional_layer").mouseout(function(){
   $("."+$(this.parentNode.parentNode).attr("id")+" a").css("text-decoration","")
})

  $(".additional_layer").mouseup(function(){additional_menu_hide()})
  
   var take = $("#additional_action .take a")
   if(take)
   		take.attr('href','/action/blog/takerecord?blogpost='+guid)
       
    if (url){
        $("#additional_action .url").css("display","block");
        $("#additional_action .url a").attr("href",url);
        $("#additional_action .url a").attr("onclick","document.location.href = 'http://deepmemo.com/action/redirect?guid=" + guid + "'; return false;");
       
    } else {
        $("#additional_action .url").css("display","none") ;
    }
    
    
 
 
 }

                              
function getBrowsers(){
    brName=navigator.appName;
    switch (brName) {
        case 'Netscape':                                
            return 'FF';                          
        case 'Microsoft Internet Explorer':
            return 'IE'; 
        case 'Opera':
            return 'O';
     }
}


	function search_submit(){
  			var search_value = $('#search').val();
  		
          	var add_params = '';               				
  			if($('#search_in').is(':checked')){
      			var hash = document.location.hash.substr(1);

            	// если ищем в найденном то запрос суммируем
      			var pattern = new RegExp("search=([^&]*)");
      			var matches = pattern.exec(hash);
      			if(matches != null){
    	        	search_value += ' ' + decodeURIComponent(matches[1]);
            		hash = hash.replace(/search=[^&]*&?/,'');								
           		}

   				add_params += hash;
      		}
      	
  			if($('#search_whole_word').is(':checked')){
  				add_params += '&whole_word=1';
      		}
			contentLoad(add_params + '&search',encodeURIComponent(search_value));
			
			return false;						
  	}



function additional_menu_hide(){   
    $('#additional_action').css("display",'none')
    additional_menu=false;
    $('.additional_layer').parent().parent().remove();
    $(".additional_action").css("background-position","right center");
}


//------------------ /additional actions block -----------------

//------------------ display_block block  ---------------------

function Set_Cookie( name, value, expires, path, domain, secure ){
var today = new Date();
today.setTime( today.getTime() );
if ( expires ){
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );
document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}

function Get_Cookie( check_name ) {
    // first we'll split this cookie up into name/value pairs
    // note: document.cookie only returns name=value, not the other components
    var a_all_cookies = document.cookie.split( ';' );
    var a_temp_cookie = '';
    var cookie_name = '';
    var cookie_value = '';
    var b_cookie_found = false; // set boolean t/f default f

    for ( i = 0; i < a_all_cookies.length; i++ )
    {
        // now we'll split apart each name=value pair
        a_temp_cookie = a_all_cookies[i].split( '=' );


        // and trim left/right whitespace while we're at it
        cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

        // if the extracted name matches passed check_name
        if ( cookie_name == check_name )
        {
            b_cookie_found = true;
            // we need to handle case where cookie has no value but exists (no = sign, that is):
            if ( a_temp_cookie.length > 1 )
            {
                cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
            }
            // note that in cases where cookie is initialized but no value, null is returned
            return cookie_value;
            break;
        }
        a_temp_cookie = null;
        cookie_name = '';
    }
    if ( !b_cookie_found )
    {
        return null;
    }
}


//------------------ /display_block block  ---------------------

jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};