/*********** blogger comments page navigator ********************/


var bl_overlay = false;
if (!$defined(csm_pagenum)) var csm_pagenum = 1;
if (!$defined(csm_type)) var csm_type = '';

function csm_delete(cid) 
{
  if (confirm('Вы действительно хотите удалить этот комментарий?')) 
    query('comments', 'deletecomment', {
            data: {id: cid },
             postComplete: function(resp){
               if (resp.status=="ok") {
                 show_info('Комментарий успешно удален.');
                 csm_switchpage(0);
               } else {
                 show_info('Ошибка удаления комментария.');               
               }
            }
    });
}

function csm_switchpage(page, type)
{
    var page = $defined(page) && page>=1 && page<=csm_pagenum?page:csm_pagenum;
    var type = $defined(type)?type:csm_type;
    var place = 'comments';
    set_ajaxloading(place);
	//csm_pagenum += step;
    query('comments', 'bitems', {
            data: {type: type, page: page},
            onComplete: function(resp) {                
                var switchers = ['blogs', 'actions', 'pictures', 'sounds', 'videos', 'posts', 'all'];
                csm_type = type;
                csm_pagenum = page; 
                set_ajaxloading(place, false);
				var typeq = type ==''?'all':type;
            	for (var i = 0; i < switchers.length; i++) {
           			var el = $('clink-'+switchers[i]);
                	if ($defined(el)) {
                		el.setProperty('class', typeq == switchers[i]?'orange':'');
                	}
                }
            },
            update: place
    }); 
}


//////////////////////////////
/// обработчик всех js-запросов на главной странице блоггера


function getElementPosition(elemId)
{
    var elem = document.getElementById(elemId);
    var w = elem.offsetWidth;
    var h = elem.offsetHeight;
    var l = 0;
    var t = 0;
    while (elem)
    {
    l += elem.offsetLeft;
    t += elem.offsetTop;
    elem = elem.offsetParent;
    }
    return {"left":l, "top":t, "width":w, "height":h};
}

function getEventTarget(e) {
    var e = e || window.event;
    var targ = e.target || e.srcElement;
    while (!targ.href || targ.nodeType == 3) { // боремся с Safari и вложенностью
    targ = targ.parentNode;
    }
    return targ;
}

var _blogs = new Array();
var BAPI_UNSUCCESS = 0;
var BAPI_SUCCESS = 1;
var BAPI_LOGINFAILED = 2;
var BAPI_POSTFAILED = 3;


function post_savetext() {
    var st = tinyMCE.get('messtextarea').getContent();
    if (st.length > 2500) st = st.substr(0, 2500);
    
    Set_Cookie('post_savetext', st, 30, '/', '', '' );        
    Set_Cookie('post_savesubj', $('subjinput').value, 30, '/', '', '' );
    Set_Cookie('post_savetags', $('taginput').value, 30, '/', '', '' );        
}

function close_pprogress() {   
   if ($('messinput')) $('messinput').value = "";
   if ($('subjinput')) $('subjinput').value = "";
   if ($('taginput')) $('taginput').value = "";
   if ($('messtextarea')) $('messtextarea').value = "";
   if (tinyMCE) {
     mce = tinyMCE.get('messtextarea');
     if (mce) { // расщиреная форма:
       mce.setContent('');           
     }     
   }   
   closebox();   
}

function gensendblogsdiv() {
         res = "";
         blogs = _blogs['list'];         
         prc = _blogs['processed'];
         tot = _blogs['total'];                 
                  
         newwidth = Math.round(prc/tot*100);         
         if (tot==0) newwidth = 100;
         $('postbarleft').setStyle('width', newwidth+'%');
         if (prc>=tot) {
            $('postbarleft').innerHTML = "Завершено";            
            Delete_Cookie('post_savetext', '/', '');
            Delete_Cookie('post_savesubj', '/', '');
            Delete_Cookie('post_savetags', '/', '');            
         }         
                  
         for (k in blogs) {          
            blog = blogs[k];
            if (typeof(blog)=="function") continue;            
            if (!blog['posting']) {
              //res += "<span class='pskipped'>пропущено</span>";
            } else {             
              res += "<div>" + blog['title'];
              if (!$defined(blog['pstatus'])) {
                res += "<span class='ppostingplace'>постим...</span>"; 
              } else {
                if ($defined(blog['perror'])) { $err = ": " + blog['perror']; } else $err = "."; 
                switch (blog['pstatus']) {
                  case BAPI_SUCCESS:                    
                    res += "<span class='ppostingok'>Успешно отправлено.</span>";
                    id = $('sp_c'+k);
                    if ($defined(id)) id.checked = false;                    
                    _blogs['success']++; 
                    break;                    
                  case BAPI_LOGINFAILED:  res += "<span class='ppostingerr'>Ошибка авторизации"+$err+"</span>";  break;
                  case BAPI_POSTFAILED:  res += "<span class='ppostingerr'>Ошибка при постинге"+$err+"</span>";  break;
                default:
                  res += "<span class='ppostingerr'>Неизвестная ошибка: "+$err+"</span>";  break;                                
                }
              }              
              res += "</div>";
            }                        
         }                 
                 
         $('pprogress').innerHTML = res;
         

         if (_blogs['success']>=tot) {
            close_pprogress.delay(2000);            
         }                          
}
         

// отправляем пост по блогам
function sendtoblogs() {    
    _blogs['success'] = 0;
    query('blogs', 'bpostinfo', {            
             postComplete: function(resp){                            
               if (resp.status=="ok") {               
                  _blogs['processed'] = 0;
                  _blogs['list'] = resp.blogs;
                  _blogs['total'] = resp.total;
                  gensendblogsdiv();
                  for (k in resp.blogs) {                        
                    blog = resp.blogs[k];                                        
                    if (!blog['posting'] || typeof(blog)=="function") continue;
                    query('blogs', 'bpostblog', {
                       data: {
                         'plain': !$defined($('post_htmltext'))?1:0,
                         'subj': $('subjinput').value,
                         'text': $('messtextarea').value,
                         'tags': $('taginput')?$('taginput').value:'',
                         'b_id': blog['id'],
                         'blist_id': k
                       },
                       postComplete: function(r2){
                         if (r2.status == "ok") {                                                   
                            _blogs['processed']++;                                                        
                            if (r2.poststatus != BAPI_SUCCESS) {
                               _blogs['list'][r2.blist_id]['perror'] = r2.posterror;
                            }                            
                            _blogs['list'][r2.blist_id]['pstatus'] = r2.poststatus;
                            gensendblogsdiv();                           
                         }                        
                       }
                    });
                  }
               } else {
                 
               }
            }
    });
}
     
// нажали на кнопку вызова диалога настроек паролей и прочего у блогов:
function authformpasswsel() {
    closebox();        
    closepopupwin();   
    popbox("blogs", "popupbselect", 600, 400, null, 1);            
}        
     
// Нажали на кнопку отправки поста:     
function authformsubmit() { 
    $('authsubmitp').send({
           onComplete: function() {                    
            closebox();   
            popbox("blogs", "popupbprogress", 600, 400, null, 1);          
           }
    });
}    

function savelogin(evt) {    
    var elid = evt.id.substring(5);     
    var b_id = $('sp_i'+elid).value;     
    var b_login = $('sp_l'+elid).value;     
    var b_pass = $('sp_p'+elid).value;     
    var params="b_id="+escape(b_id)+"&login="+escape(b_login)+"&pass="+escape(b_pass);
     
    $(evt.id).src="/imgs/spinner.gif";
    $(evt.id).title="Обновляем...";
      
    query('blogs', 'bauthsubmit', {  // вызываем /query/blogs/bauthsubmit
            data: {id: b_id, login: b_login, password: b_pass},
            postComplete: function (resp) {                
                if (resp.status=="saved") {
                    $(evt.id).src="/imgs/savesmalla.gif";
                    $(evt.id).title="Логин и пароль сохранены";                        
                    $('sp_s'+elid).value="1";
                } else {
                    $(evt.id).src="/imgs/savesmall.gif";
                    $(evt.id).title="Логин и пароль не сохранены";           
                    $('sp_s'+elid).value="0";
                }
            },
            postFailed: function () {
                $(evt.id).src="/imgs/savesmall.gif";          
                $(evt.id).title="Ошибка!";
            }                                         
        })       
}

//*************** 
    
function blogpost_save_blogs() {
    for (var i=0; i<50; i++) {            
      var item = $('sp_c'+i);      
      if ($defined(item)) {      
        Set_Cookie('post_blognum_'+i, item.value, 30, '/', '', '' );
      } else break;
    }
}    
   
function blogpost_submit_click() {                                                                 
    chkcount = 0;
        
    blogpost_save_blogs();
    for (var i=0; i<50; i++) {      
      var item = $('sp_c'+i);            
      if ($defined(item)) {      
        if (item.value=="on") chkcount++;
      } else break;                    
    }
    
    if (chkcount == 0) {
      show_info("Пожалуйста, выберите блоги для отправки вашего сообщения.", SI_ERROR);
      return false;
    }
    
    if ($('authsubmit')) { // зашли с попапа        
        submitform('authsubmit', 'blogs', {
            onSuccess: function(resp){            
                popbox("blogs", "popupbprogress", 600, 400, null, 1);
                return true;
            }            
        });                   
    } else {
        $('messtextarea').value = tinyMCE.get('messtextarea').getContent().replace('&amp;', '&');
        inputOnFocus($('subjinput'), 'заголовок');
        inputOnFocus($('taginput'), 'теги');
        submitform('post_authsubmit', 'blogs', {
            submit_place: 'post_authsubmit',
            onSuccess: function(resp){            
                popbox("blogs", "popupbprogress", 600, 400, null, 1);
        	    inputOnBlur($('subjinput'), 'заголовок');
        	    inputOnBlur($('taginput'), 'теги'); 
                return true;
            }            
        });
    }
    
    return true;
};    

function closepopupwin() {
       if (bl_overlay) bl_overlay.hide();
       if (!$('sendmesspopup')) return true;
       $('sendmesspopup').setStyle('display', 'none');
       $('messinput').value = $('messtextarea').value;
}
    

// blogger page event handlers :-----------------------------------------------

  
var stoppopclose = false;         
     
window.addEvent('domready', function() {

   if ($$('.cb_menu')!="") return; // если заходим из кодбокса, то вся инициализация делается в нем.
   
   bl_overlay = new Overlay({container: document.body, onClick:bl_close});             

   function bl_close() {
     closepopupwin();
   }
                
   /**********************************************************************************/          
   if ($('formpostsubmit2')) { // если выполняется главная форма блоггера :                  
   
       $('subjinput').cloneEvents($('messtextarea'));   
       $('formpostsubmit2').cloneEvents($('messtextarea'));
       $('fullformlink').cloneEvents($('messtextarea'));
                              
       // ***************************************************
       $('messinput').addEvents({
	        'focus': function() {            
                var appv = navigator.appVersion;
                bl_overlay.show(); 

                
                if (appv.indexOf('MSIE 7') > -1) {            
                    var ste = $('sendmesspopup');                                              
                    res = $('sendmesspopup').clone();
                    res.injectInside(document.body);                    
                    res.setStyle('top', '80px');
                    res.setStyle('left', '350px');                
                    ste.remove();
                } else {
                    res = $('sendmesspopup');                                              
                }
                
                res.setStyle('display', 'block');                                
                epos = getElementPosition('messinput');
                $('messtextarea').focus();            
            }        
       });       

        /* AJAX Loader  ***********************************************/
        $('formpostsubmit').addEvent('click', function(evt) {       
            new Event(evt).stop();                                                                             
            if (blogpost_submit_click()) closepopupwin();                           
            
        });
        $('formpostsubmit2').cloneEvents($('formpostsubmit'));           
   }
   
   /**********************************************************************************/          

});




