﻿//
//******************************************************************************************************************************************
//
//
//      Глобальные переменные
//
var flagFavorites = 'A';
var flagActivateSubMenu = 0;
var IEexplorer = (document.selection) ? true : false;
var tempStoreT = new Array();
var tempStoreTE = new Array();
var tempStoreC = new Array();
var tempStoreCE = new Array();
//
var coloroptions = new Array();
coloroptions = {
	'#000000' : 'Black',
	'#A0522D' : 'Sienna',
	'#556B2F' : 'DarkOliveGreen',
	'#006400' : 'DarkGreen',
	'#483D8B' : 'DarkSlateBlue',
	'#000080' : 'Navy',
	'#4B0082' : 'Indigo',
	'#2F4F4F' : 'DarkSlateGray',
	'#8B0000' : 'DarkRed',
	'#FF8C00' : 'DarkOrange',
	'#808000' : 'Olive',
	'#008000' : 'Green',
	'#008080' : 'Teal',
	'#0000FF' : 'Blue',
	'#708090' : 'SlateGray',
	'#696969' : 'DimGray',
	'#FF0000' : 'Red',
	'#F4A460' : 'SandyBrown',
	'#9ACD32' : 'YellowGreen',
	'#2E8B57' : 'SeaGreen',
	'#48D1CC' : 'MediumTurquoise',
	'#4169E1' : 'RoyalBlue',
	'#800080' : 'Purple',
	'#808080' : 'Gray',
	'#FF00FF' : 'Magenta',
	'#FFA500' : 'Orange',
	'#FFFF00' : 'Yellow',
	'#00FF00' : 'Lime',
	'#00FFFF' : 'Cyan',
	'#00BFFF' : 'DeepSkyBlue',
	'#9932CC' : 'DarkOrchid',
	'#C0C0C0' : 'Silver',
	'#FFC0CB' : 'Pink',
	'#F5DEB3' : 'Wheat',
	'#FFFACD' : 'LemonChiffon',
	'#98FB98' : 'PaleGreen',
	'#AFEEEE' : 'PaleTurquoise',
	'#ADD8E6' : 'LightBlue',
	'#DDA0DD' : 'Plum',
	'#FFFFFF' : 'White'
};
//
//******************************************************************************************************************************************
//
function setCheckboxes(the_form, do_check) {
  var chck = document.forms[the_form].elements['sel[]'];
  for (var i = 0; i < chck.length; i++) {
    if ( i > 0 ) { chck[i].checked = !do_check; $(chck[i]).click(); }
  }
}
//
//******************************************************************************************************************************************
//
function switch_edmode(editorid, mode) {
  new Request({
    method: 'post',
    async: false,
    url: '/forum/ajax.php?' + Math.random(),
    onSuccess: function(text, xml) {
      var message = xml.getElementsByTagName('message')[0].textContent;
      //var re = /images/gi;
      //message = message.replace(re, '/forum/images');
      vB_Editor[editorid].set_editor_contents(message);
    },
    onFailure:function(xhr) { alert('Произошла ошибка при запросе к серверу.'); }
  }).send( SESSIONURL
			+ 'securitytoken=' + SECURITYTOKEN
			+ '&do=editorswitch'
			+ '&towysiwyg=' + (mode ? 0:1) 
			+ '&parsetype=' + vB_Editor[editorid].parsetype
			+ '&allowsmilie=' + vB_Editor[editorid].parsesmilies
			+ '&message=' + PHP.urlencode(vB_Editor[editorid].get_editor_contents())
			+ (vB_Editor[editorid].ajax_extra ? ('&' + vB_Editor[editorid].ajax_extra) : '')
			+ (typeof vB_Editor[editorid].textobj.form['options[allowbbcode]']  != 'undefined' ? '&allowbbcode=' + vB_Editor[editorid].textobj.form['options[allowbbcode]'].checked : '')
  );
}
//
//******************************************************************************************************************************************
//
function switch_viewmode(messageid, mode) {
  //
  mode = (mode == 1 ? 0:1);
  A = $(messageid+'_message').innerHTML;
  if ( mode == 1 ) A = A.replace(/<br>/gi, "");
  //  
  document.body.style.cursor = "wait";
  new Request({
    method: 'post',
    async: false,
    url: '/forum/ajax.php?' + Math.random(),
    onSuccess: function(text, xml) {
      B = xml.getElementsByTagName('message')[0].textContent;
      if ( mode == 0 ) B = B.replace(/\n/gi, "<br>\n"); else B = B.replace(/amp;/gi, "");
      $(messageid+'_message').innerHTML = B;
      $(messageid+'_viewmode').value = mode;
      document.body.style.cursor = "auto";
    },
    onFailure:function(xhr) { document.body.style.cursor = "auto"; alert('Произошла ошибка при запросе к серверу.'); }
  }).send( SESSIONURL
			+ 'securitytoken=' + SECURITYTOKEN
			+ '&do=editorswitch'
			+ '&towysiwyg=' + mode 
			+ '&parsetype=0'
			+ '&allowsmilie=1'
			+ '&allowbbcode=1'
			+ '&message=' + PHP.urlencode(A)
  );
}
//
//******************************************************************************************************************************************
//
function dm_hideshow( ind ) {
  var obj = $( "d" + ind );
  var but = $( "i" + ind );
  if( obj && but ) {
    if( but.src.indexOf( "minus.gif" ) < 0 ) {
      obj.style.display = "";  but.src = "/images/minus.gif"; }
    else {
      obj.style.display = "none";  but.src = "/images/plus.gif";  }
  }
}
//
//******************************************************************************************************************************************
//
function OOOhideshowWB( ind ) {
  if( $("d"+ind) && $("i"+ind) && $("v"+ind) ) {
    if( $("d"+ind).style.display == "none" ) {
      $("d"+ind).style.display = ""; $("i"+ind).src = "/images/minusW.gif"; $("v"+ind).value = "Y";
    }
    else {
      $("d"+ind).style.display="none"; $("i"+ind).src = "/images/plusW.gif"; $("v"+ind).value = "N";
    }
  }
}
//
//******************************************************************************************************************************************
//
function OOOhideshowW( ind ) {
  var obj = $( "d" + ind );
  var but = $( "i" + ind );
  var showBlock = $( "showB" + ind );
  if( obj && but ) {
    if( but.src.indexOf( "minus.gif" ) < 0 ) {
      obj.style.display = "";  but.src = "/images/minus.gif"; showBlock.value = 'Y';  }
    else {
      obj.style.display="none"; but.src = "/images/plus.gif"; showBlock.value = 'N'; }
  }
}
//
//******************************************************************************************************************************************
//
function hideshowBlock( ind, theme ) {
  //
  if ($('d'+ind).style.display == '') {
    $('d'+ind).style.display = 'none';
    $("i"+ind).src = "/images/" + theme + "collapsed.png";
    if ($defined($("showB"+ind))) $("showB"+ind).value = "N";
  }
  else {
    $('d'+ind).style.display='';
    $("i"+ind).src = "/images/" + theme + "collapse.png";
    if ($defined($("showB"+ind))) $("showB"+ind).value = "Y";
  }
}
//
//******************************************************************************************************************************************
//
function dm_selectAction(selObj, curBlock, newBlock, fn) {
  //
  fn.curBlock.value = curBlock;
  //
  if (selObj.options[selObj.selectedIndex].value == '1') {
    fn.action = fn.action + '#nblock' + (curBlock-1); fn.moveBlock.value='up';  fn.submit();
  }
  else if (selObj.options[selObj.selectedIndex].value == '2') {
    fn.action = fn.action + '#nblock' + (curBlock+1); fn.moveBlock.value = 'down'; fn.submit();
  }
  else if (selObj.options[selObj.selectedIndex].value == '3') {
    if (confirm(dm_confirmDeleteMsg + '#' + curBlock + '?')) { fn.delBlock.value = 1; fn.action = fn.action + '#nblock' + newBlock; fn.submit(); }
  }
  //
  return false;
}
//
//******************************************************************************************************************************************
//
function fillCmpNom(cmp, cmpNom, msg) {
//
  if ( cmp != '0' ) {
    new Request({
      method: 'post',
      async: false,
      url: '/ajax.htm?' + Math.random(),
      onSuccess: function(text, xml) {
        if (text.substr(0, 3) != 'ERR') {
          $('cmpNom').set({'html': text});
          $('cmpNomView').style.display = '';
        }
      },
      onFailure:function(xhr) { alert('Server error.'); }
    }).send( 'mode=F&cmp=' + cmp + '&cmpNom=' + cmpNom + '&msg=' + msg );
  }
  else {
    $('cmpNom').set({'html': ''});
    $('cmpNomView').style.display = 'none';
  }
//
}
//
//******************************************************************************************************************************************
//
function setFavoriteMode(workID, obj, mode) {
//
  mode = (typeof(mode) == 'undefined') ? 'G' : 'W';
  //
  new Request({
    method: 'post',
    async: false,
    url: '/ajax.htm?' + Math.random(),
    onSuccess: function(text, xml) {
      if (text.substr(0, 3) != 'ERR') {
        $(obj).set({'html': favoriteMsg[text]});
      }
    },
    onFailure:function(xhr) { alert('Server error.'); }
  }).send( 'securitytoken=' + SECURITYTOKEN + '&mode=' + mode + '&p=' + workID );
//
}
//
//******************************************************************************************************************************************
//
function worksShowImg(ind, tp) {
//
  if (typeof(tp)=='undefined') tp = 'g';
  //
  if ( curind != (startind + ind) ) {
    for ( i=0; i < numitem; i++ ) { $('dm_scdiv' + i).className = 'dm_sc'; }
    $('dm_scdiv' + ind).className = 'dm_sccur';
    curind = startind + ind;
    $('dm_scmainimg').src = '/images/1x1.gif';
    new Request({
      method: 'post',
      async: false,
      url: '/ajax.htm?' + Math.random(),
      onSuccess: function(text, xml) {
        if (text.substr(0, 3) != 'ERR') {
          responseTxt = text.split('{::}');
          $('dm_scmainimg').src = responseTxt[0];
          $('dm_scmainanchor').href = responseTxt[0];
          $('dm_scmaincomment').innerHTML = responseTxt[1];
          $('dm_scmainimg').width = responseTxt[2];
          $('dm_scmainimg').height = responseTxt[3];
          dm_wshowInit();
        }
      },
      onFailure:function(xhr) { alert('Server error.'); }
    }).send( 'mode=TT&id=' + codearray[startind + ind] + '&tp=' + tp );
  }
//
}
//
//******************************************************************************************************************************************
//
function worksShowImgMove(dir, tp) {
//
  if (typeof(tp)=='undefined') tp = 'g';
  //
  if ( mode == 1 ) {
    if ( dir == 'L' ) {
      if ( (startind - 1) >= 0 ) {
        startind -= 1; stopind -= 1;
        for ( i = (numitem - 1); i > 0; i-- ) $('dm_scimg' + i).src = $('dm_scimg' + (i-1)).src;
        $('dm_scimg0').src = '/ajax.htm?mode=T&id=' + codearray[startind] + '&tp=' + tp;
        if ( (curind - startind) >= 0 && (curind - startind) <= (numitem - 1) ) {
          $('dm_scdiv' + (curind - startind)).className = 'dm_sccur';
          if ( (curind - startind - 1) >= 0 && (curind - startind - 1) <= (numitem - 1) ) $('dm_scdiv' + (curind - startind - 1)).className = 'dm_sc';
        }
        else {
          $('dm_scdiv' + (numitem - 1)).className = 'dm_sc';
        }
      }
    }
    else if ( dir == 'R' ) {
      if ( (stopind + 1) <= (codearray.length - 1) ) {
        startind += 1; stopind += 1;
        for ( i = 0; i < (numitem - 1); i++ ) $('dm_scimg' + i).src = $('dm_scimg' + (i+1)).src;
        $('dm_scimg' + (numitem - 1)).src = '/ajax.htm?mode=T&id=' + codearray[stopind] + '&tp=' + tp;
        if ( (curind - startind) >= 0 && (curind - startind) <= (numitem - 1) ) {
          $('dm_scdiv' + (curind - startind)).className = 'dm_sccur';
          if ( (curind - startind + 1) >= 0 && (curind - startind + 1) <= (numitem - 1) ) $('dm_scdiv' + (curind - startind + 1)).className = 'dm_sc';
        }
        else {
          $('dm_scdiv0').className = 'dm_sc';
        }
      }
    }  
    else if ( dir == 'LF' ) {
      startind = 0; stopind = numitem - 1;
      for ( i = 0; i <= (numitem - 1); i++ ) {
        $('dm_scimg' + i).src = '/ajax.htm?mode=T&id=' + codearray[startind+i] + '&tp=' + tp;
        if ( curind != (startind+i) ) { $('dm_scdiv' + i).className = 'dm_sc'; } else { $('dm_scdiv' + i).className = 'dm_sccur'; }
      }
    }
    else if ( dir == 'RL' ) {
      stopind = codearray.length - 1; startind = stopind - numitem + 1;
      for ( i = 0; i <= (numitem - 1); i++ ) {
        $('dm_scimg' + i).src = '/ajax.htm?mode=T&id=' + codearray[startind+i] + '&tp=' + tp;
        if ( curind != (startind+i) ) { $('dm_scdiv' + i).className = 'dm_sc'; } else { $('dm_scdiv' + i).className = 'dm_sccur'; }
      }
    }
  }
  //
  //  slide-show
  //
  else {
    if ( dir == 'L' ) {
      if ( (startind - 1) >= 0 ) {
        ind = curind - startind; startind -= 1; stopind -= 1;
        for ( i = (numitem - 1); i > 0; i-- ) $('dm_scimg' + i).src = $('dm_scimg' + (i-1)).src;
        $('dm_scimg0').src = '/ajax.htm?mode=T&id=' + codearray[startind] + '&tp=' + tp;
        worksShowImg(ind, tp);
      }
      else {
        if ( (curind - 1) >= 0 ) worksShowImg(curind - 1, tp);
      }
    }
    else if ( dir == 'R' ) {
      if ( (stopind + 1) <= (codearray.length - 1) ) {
        ind = curind - startind; startind += 1; stopind += 1;
        for ( i = 0; i < (numitem - 1); i++ ) $('dm_scimg' + i).src = $('dm_scimg' + (i+1)).src;
        $('dm_scimg' + (numitem - 1)).src = '/ajax.htm?mode=T&id=' + codearray[stopind] + '&tp=' + tp;
        worksShowImg(ind, tp);
      }
      else {
        if ( (curind + 1) <= (codearray.length - 1) ) worksShowImg(curind - startind + 1, tp);
      }
    }
    else if ( dir == 'LF' ) {
      startind = 0; stopind = numitem - 1; ind = 0;
      for ( i = 0; i <= (numitem - 1); i++ ) $('dm_scimg' + i).src = '/ajax.htm?mode=T&id=' + codearray[startind+i] + '&tp=' + tp;
      worksShowImg(ind, tp);
    }
    else if ( dir == 'RL' ) {
      stopind = codearray.length - 1; startind = stopind - numitem + 1;  ind = numitem - 1;
      for ( i = 0; i <= (numitem - 1); i++ ) $('dm_scimg' + i).src = '/ajax.htm?mode=T&id=' + codearray[startind+i] + '&tp=' + tp;
      worksShowImg(ind, tp);
    }
    else if ( dir == 'M' ) {
      if ( curind < startind ) {
        ind = 0; }
      else if ( curind > stopind ) {
        ind = numitem - 1; }
      else {
        ind = curind - startind; }
      worksShowImg(ind, tp);
    }
  }
  //
  //
  //
  if ( mode == 1 ) {
    if ( startind == 0 ) {
      $('dm_showcaseleft').src = '/images/lightbox/scase_le.png';
      $('dm_showcasefirst').src = '/images/lightbox/scase_lfe.png';
    }
    else {
      $('dm_showcaseleft').src = '/images/lightbox/scase_l.png';
      $('dm_showcasefirst').src = '/images/lightbox/scase_lf.png';
    }
    if ( stopind == (codearray.length - 1) ) {
      $('dm_showcaseright').src = '/images/lightbox/scase_re.png';
      $('dm_showcaselast').src = '/images/lightbox/scase_rle.png';
    }
    else {
      $('dm_showcaseright').src = '/images/lightbox/scase_r.png';
      $('dm_showcaselast').src = '/images/lightbox/scase_rl.png';
    }
  }
  else {
    if ( curind == 0  ) {
      $('dm_showcaseleft').src = '/images/lightbox/scase_le.png';
      $('dm_showcasefirst').src = '/images/lightbox/scase_lfe.png';
    }
    else {
      $('dm_showcaseleft').src = '/images/lightbox/scase_l.png';
      $('dm_showcasefirst').src = '/images/lightbox/scase_lf.png';
    }
    if ( curind == (codearray.length - 1) ) {
      $('dm_showcaseright').src = '/images/lightbox/scase_re.png';
      $('dm_showcaselast').src = '/images/lightbox/scase_rle.png';
    }
    else {
      $('dm_showcaseright').src = '/images/lightbox/scase_r.png';
      $('dm_showcaselast').src = '/images/lightbox/scase_rl.png';
    }
  }
//
}
//
//******************************************************************************************************************************************
//
function dm_wshowInit() {
//
  var sz = $('dm_scmaindiv').getSize();
  var szs = $('dm_scmainimg').getSize();
  if (sz.x < szs.x ) {
    $('dm_scmainimg').width = sz.x;
    $('dm_scmainimg').height = Math.round(szs.y/(szs.x/sz.x));
  }
//
}
//
//******************************************************************************************************************************************
//
function dm_wshowInitE() {
//
  var els = $$('a');
  for (i = 0; i < els.length; i++) {
    if ( els[i].getAttribute('rel') == 'fullphoto' ) {
      var sz = $('dm_scmaindiv_' + els[i].id).getSize();
      var szs = $('dm_scmainimg_' + els[i].id).getSize();
      if (sz.x < szs.x ) {
        $('dm_scmainimg_' + els[i].id).width = sz.x;
        $('dm_scmainimg_' + els[i].id).height = Math.round(szs.y/(szs.x/sz.x));
      }
    }
  }
//
}
//
//******************************************************************************************************************************************
//
function dm_showInformer( infNum ) {
  //
  if ( parseInt(infNum) == 0 ) infNum = informersTot;
  if ( parseInt(infNum) > informersTot ) infNum = 1;
  informersCur = parseInt(infNum);
  //
  new Request({
    method: 'post',
    async: false,
    url: '/ajax.htm?' + Math.random(),
    onSuccess: function(text, xml) {
      if (text.substr(0, 3) != 'ERR') $('infcont').set('html', text);
    },
    onFailure:function(xhr) { alert('Server error.'); }
  }).send( '&mode=inform&p=' + infNum );
  //
}
//
//******************************************************************************************************************************************
//
function dm_showGloryHall() {
  //
  var sz = $('ghallcont').getSize();
  //
  new Request({
    method: 'post',
    async: false,
    url: '/ajax.htm?' + Math.random(),
    onSuccess: function(text, xml) {
      if (text.substr(0, 3) != 'ERR') $('ghallcont').set('html', text);
    },
    onFailure:function(xhr) { alert('Server error.'); }
  }).send( '&mode=ghall&w=' + sz.x );
  //
}
//
//******************************************************************************************************************************************
//
function showSubMenu(el, mtab) {
  var pos = getAbsolutePos(el);
  //
  $('menus' + mtab).style.top = (pos.y + 30) + 'px';
  $('menus' + mtab).style.left = pos.x + 'px';
  $('menus' + mtab).style.display = '';
}
//
//******************************************************************************************************************************************
//
function showPagerMenu(el, mel, id) {
  var pos = getAbsolutePos( el );
  //
  msgID = id;
  $(mel).style.top = (pos.y + 14) + 'px';
  $(mel).style.left = pos.x + 'px';
  $(mel).style.display = 'block';
  el.blur();
}
//
//******************************************************************************************************************************************
//
function showActionMenu(el, mel, id, idthread, flagedit, flagdelete, flagcomments, flagstat) {
  var pos = getAbsolutePos( el );
  //
  workID = id;
  threadID = idthread;
  //
  if (flagedit == 'N') $('action_edit').style.display = 'none'; else $('action_edit').style.display = 'block';
  if (flagdelete == 'N') $('action_delete').style.display = 'none'; else $('action_delete').style.display = 'block';
  if (flagcomments == 'N') $('action_comments').style.display = 'none'; else $('action_comments').style.display = 'block';
  if (flagstat == 'N') $('action_stat').style.display = 'none'; else $('action_stat').style.display = 'block';
  //
  $(mel).style.top = (pos.y + 14) + 'px';
  $(mel).style.left = pos.x + 'px';
  $(mel).style.display = 'block';
  el.blur();
  
}
//
//******************************************************************************************************************************************
//
function showEDActionMenu(el, mel, id, idthread, flagedit, flagdelete, flagcomments, flagstat) {
  var pos = getAbsolutePos( el );
  //
  //workID = id;
  //threadID = idthread;
  //
  //if (flagedit == 'N') $('action_edit').style.display = 'none'; else $('action_edit').style.display = 'block';
  //if (flagdelete == 'N') $('action_delete').style.display = 'none'; else $('action_delete').style.display = 'block';
  //if (flagcomments == 'N') $('action_comments').style.display = 'none'; else $('action_comments').style.display = 'block';
  //if (flagstat == 'N') $('action_stat').style.display = 'none'; else $('action_stat').style.display = 'block';
  //
  $(mel).style.top = (pos.y + 14) + 'px';
  $(mel).style.left = pos.x + 'px';
  $(mel).style.display = 'block';
  el.blur();
}
//
//******************************************************************************************************************************************
//
function showActionMenuW(el, mel, id, flagdelete) {
  var pos = getAbsolutePos( el );
  //
  workID = id;
  //
  if (flagdelete == 'N') $('action_deletew').style.display = 'none'; else $('action_deletew').style.display = 'block';
  //
  $(mel).style.top = (pos.y + 14) + 'px';
  $(mel).style.left = pos.x + 'px';
  $(mel).style.display = 'block';
  el.blur();
}
//
//******************************************************************************************************************************************
//
function showActionMenuG(el, workID, threadID, flagAuth, title) {
  //
  numWork = workID; numThread = threadID;
  var pos = $(el).getCoordinates();
  //
  $('action_menu').style.top = pos.bottom + 'px';
  $('action_menu').style.left = pos.left + 'px';
  el.blur();
  //
  $('action_menutitle').set('html', title);
  if ( flagAuth ) {
    new Request({
      method: 'post', async: false,
      url: '/ajax.htm?' + Math.random(),
      onSuccess: function(text, xml) {
        if (text.substr(0, 3) != 'ERR') {
          $('action_menuftitle').set('html', favoriteMsg[text]);
          $('action_menu').style.display = 'block';
        }
      },
      onFailure:function(xhr) { alert('Server error.'); }
    }).send( 'securitytoken=' + SECURITYTOKEN + '&mode=H&p=' + workID );
  }
  else {
    $('action_menu').style.display = 'block';
  }
  
}
//
//******************************************************************************************************************************************
//
function showActionMenuWA(el, workID, threadID, title) {
  //
  numWork = workID; numThread = threadID;
  var pos = $(el).getCoordinates();
  //
  $('action_menu').style.top = pos.bottom + 'px';
  $('action_menu').style.left = pos.left + 'px';
  el.blur();
  //
  new Request({
    method: 'post', async: false,
    url: '/ajax.htm?' + Math.random(),
    onSuccess: function(text, xml) {
      if (text.substr(0, 3) != 'ERR') {
        $('action_menuftitle').set('html', favoriteMsg[text]);
      }
    },
    onFailure:function(xhr) { alert('Server error.'); }
  }).send( 'securitytoken=' + SECURITYTOKEN + '&mode=HW&p=' + workID );
  //
  $('action_menutitle').set('html', title);
  $('action_menu').style.display = 'block';
  
}
//
//******************************************************************************************************************************************
//
function showInformerMenu(el) {
  //
  var pos = $(el).getCoordinates();
  $('inform_menu').style.display = 'block';
  var sz = $('inform_menu').getSize();
  //
  $('inform_menu').style.top = ( pos.bottom-3 ) + 'px';
  $('inform_menu').style.left = ( pos.right-sz.x+5 ) + 'px';
  $('inform_menu').style.display = 'block';
}
//
//******************************************************************************************************************************************
//
function showUserMenu(el, mel, id, affair, site) {
  //
  var pos = $(el).getCoordinates();
  //
  userID = id; affairID = affair; homePage = site;
  //
  if (affair == '') $('user_pa').style.display = 'none'; else $('user_pa').style.display = 'block';
  if (site   == '') $('user_hp').style.display = 'none'; else $('user_hp').style.display = 'block';
  //
  $(mel).style.top = (pos.bottom-1) + 'px';
  $(mel).style.left = pos.left + 'px';
  $(mel).style.display = 'block';
  el.blur();
}
//
//******************************************************************************************************************************************
//
function showPageNavForm(el, formID, inputID) {
  //
  var pos = $(el).getCoordinates();
  //
  $(formID).style.top = (pos.bottom+4) + 'px';
  $(formID).style.left = (pos.left-4) + 'px';
  $(formID).style.display = 'block';
  $(inputID).focus();
  //
  window.addEvent('domready', function() {
    $(inputID).addEvent('blur', function(e){
      var e = new Event(e); e.preventDefault();
      $(formID).style.display = 'none';
    });
    $(formID).addEvent('mouseover', function(e){
      var e = new Event(e); e.preventDefault();
      $(inputID).removeEvents('blur');
    });
    $(formID).addEvent('mouseout', function(e){
      var e = new Event(e); e.preventDefault();
      $(inputID).addEvent('blur', function(e){
        var e = new Event(e); e.preventDefault();
        $(formID).style.display = 'none';
      });
    });
  });  
}
//
//******************************************************************************************************************************************
//
function getAbsolutePos(el) {
	var SL = 0, ST = 0;
	var is_div = /^div$/i.test(el.tagName);
	if (is_div && el.scrollLeft)
		SL = el.scrollLeft;
	if (is_div && el.scrollTop)
		ST = el.scrollTop;
	var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
	if (el.offsetParent) {
		var tmp = this.getAbsolutePos(el.offsetParent);
		r.x += tmp.x;
		r.y += tmp.y;
	}
	return r;
};
//
//******************************************************************************************************************************************
//
function tedit_insert_tags(ind, stag, etag, selObj) {
  var area = $('txt' + ind);
  var numBlock = (ind.substr(0,1) == 'E') ? ind.substr(1) : ind;
  var engMode = (ind.substr(0,1) == 'E') ? true : false;
  var len = stag.length + etag.length;
  // 
  if ((area.selectionStart) || (area.selectionStart=='0'))  {
    var p_start = area.selectionStart;
    var p_end = area.selectionEnd;
    area.value = area.value.substring(0, p_start) + stag + area.value.substring(p_start, p_end) + etag + area.value.substring(p_end, area.value.length);
    area.setSelectionRange(p_end+len, p_end+len);
    area.focus();
  }
  if (document.selection) {   // Internet Explorer 
    selObj.select();
    area.focus();
    sel = document.selection.createRange();
    sel.text = stag + sel.text + etag;
    sel.select();
  }
}
//
//******************************************************************************************************************************************
//
function inslink_ed(ind, lng) {
  var msg = (lng == 'R') ? 'Введите URL для данной ссылки:' : 'Enter URL for link:';
  var selObj = 0;
  if (document.selection) selObj = saveCaretPos('txt' + ind);   // Internet Explorer 
  var pUrl = prompt(msg, "http://");
  if (pUrl != null && pUrl != "") {
    tedit_insert_tags(ind, '[url=' + pUrl + ']', '[/url]', selObj);
  }
  else {
    tedit_insert_tags(ind, '', '', selObj);
  }
}
//
//******************************************************************************************************************************************
//
function inssize_ed(ind) {
  var selObj = 0;
  if (document.selection) selObj = saveCaretPos('txt' + ind);   // Internet Explorer 
  tedit_insert_tags(ind, '[size=' + pUrl + ']', '[/url]', selObj);
}
//
//******************************************************************************************************************************************
//
function saveCaretPos(obj_name) {
  if (document.selection) {
    $(obj_name).focus();
    return document.selection.createRange();
  }
  else {
    return 0;
  }
}
//
//******************************************************************************************************************************************
//
function resize_ed(obj, change)	{
		var newheight = $(obj).style.height.substr(0, $(obj).style.height.length-2)*1 + change;
		if (newheight >= 60) $(obj).style.height = newheight + 'px';
}
//
//******************************************************************************************************************************************
//
function resize_block_ed(typeObj, ind, change)	{
  var tObj = ( typeObj.substr(0,1) == 'T' )  ? 'txt' : 'com';
  var objName = ( typeObj.substr(1,1) == 'E' ) ? (tObj + 'E') : tObj;  objName = objName + ind;
  tmp = typeObj.split('_');
  heightName = 'height' + tmp[0] + ind;
  if ( tmp[1] ) {
    objName = objName + '_' + tmp[1];
    heightName = heightName + '_' + tmp[1];
  }
  $(heightName).value = parseInt($(heightName).value) + change;
  
  resize_ed(objName, change);
}
//
//******************************************************************************************************************************************
//
function showBlockSelect(sel) {
  if ( sel.options.length <= 2 ) {
    for ( i in blockOptions ) {
      opt = document.createElement('option');
      opt.value = i;
      opt.text  = blockOptions[i];
      opt.className = 'dm_foption';
      sel.add(opt, IEexplorer ? sel.options.length : null);
    }
    opt = document.createElement('option');
    opt.disabled = 'disabled';
    opt.value = 0;
    opt.text  = '';
    sel.add(opt, IEexplorer ? sel.options.length : null);
  }
}
//
//******************************************************************************************************************************************
//
function dm_mmenu_init() {

  window.addEvent('domready', function() {
    var mels = $$('div.navTabs a');
    for (i = 0; i < mels.length; i++) {
      if (mels[i].getAttribute('rel')) {
        mels[i].addEvent('click', function(e){
          var e = new Event(e); e.preventDefault();
          var menuid = this.getAttribute('rel');
          var pos = getAbsolutePos($('m' + menuid));
          $(menuid).style.top = (pos.y + 30) + 'px';
          $(menuid).style.left = pos.x + 'px';
          $('m' + menuid).className = 'navTabOpened';
          $(menuid).style.display = 'block';
          flagActivateSubMenu = 1;
        });

        $('m'+mels[i].getAttribute('rel')).addEvent('mouseover', function(e){
          var e = new Event(e); e.preventDefault();
          var oid = this.getAttribute('id'); oid = oid.substr(1);
          if (flagActivateSubMenu == 1) {
            var pos = getAbsolutePos(this);
            $(oid).style.top = (pos.y + 30) + 'px';
            $(oid).style.left = pos.x + 'px';
            $(oid).style.display = 'block';
            this.className = 'navTabOpened';
          }
        });
        
        $('m'+mels[i].getAttribute('rel')).addEvent('mouseout', function(e){
          var e = new Event(e); e.preventDefault();
          var oid = this.getAttribute('id'); oid = oid.substr(1);
          if (flagActivateSubMenu == 1) {
            $(oid).style.display = 'none';
            this.className = 'navTab';
          }
        });
      }
    }
  });
}
//
//******************************************************************************************************************************************
//
var Base64 = {

    	// private property
    	_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",

    	// public method for encoding
    	encode : function (input) {
    		var output = "";
    		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
    		var i = 0;

    		input = Base64._utf8_encode(input);

    		while (i < input.length) {

    			chr1 = input.charCodeAt(i++);
    			chr2 = input.charCodeAt(i++);
    			chr3 = input.charCodeAt(i++);

    			enc1 = chr1 >> 2;
    			enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
    			enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
    			enc4 = chr3 & 63;

    			if (isNaN(chr2)) {
    				enc3 = enc4 = 64;
    			} else if (isNaN(chr3)) {
    				enc4 = 64;
    			}

    			output = output +
    			this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
    			this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);

    		}

    		return output;
    	},

    	// public method for decoding
    	decode : function (input) {
    		var output = "";
    		var chr1, chr2, chr3;
    		var enc1, enc2, enc3, enc4;
    		var i = 0;

    		input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

    		while (i < input.length) {

    			enc1 = this._keyStr.indexOf(input.charAt(i++));
    			enc2 = this._keyStr.indexOf(input.charAt(i++));
    			enc3 = this._keyStr.indexOf(input.charAt(i++));
    			enc4 = this._keyStr.indexOf(input.charAt(i++));

    			chr1 = (enc1 << 2) | (enc2 >> 4);
    			chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
    			chr3 = ((enc3 & 3) << 6) | enc4;

    			output = output + String.fromCharCode(chr1);

    			if (enc3 != 64) {
    				output = output + String.fromCharCode(chr2);
    			}
    			if (enc4 != 64) {
    				output = output + String.fromCharCode(chr3);
    			}

    		}

    		output = Base64._utf8_decode(output);

    		return output;

    	},

    	// private method for UTF-8 encoding
    	_utf8_encode : function (string) {
    		string = string.replace(/\r\n/g,"\n");
    		var utftext = "";

    		for (var n = 0; n < string.length; n++) {

    			var c = string.charCodeAt(n);

    			if (c < 128) {
    				utftext += String.fromCharCode(c);
    			}
    			else if((c > 127) && (c < 2048)) {
    				utftext += String.fromCharCode((c >> 6) | 192);
    				utftext += String.fromCharCode((c & 63) | 128);
    			}
    			else {
    				utftext += String.fromCharCode((c >> 12) | 224);
    				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
    				utftext += String.fromCharCode((c & 63) | 128);
    			}

    		}

    		return utftext;
    	},

    	// private method for UTF-8 decoding
    	_utf8_decode : function (utftext) {
    		var string = "";
    		var i = 0;
    		var c = c1 = c2 = 0;

    		while ( i < utftext.length ) {

    			c = utftext.charCodeAt(i);

    			if (c < 128) {
    				string += String.fromCharCode(c);
    				i++;
    			}
    			else if((c > 191) && (c < 224)) {
    				c2 = utftext.charCodeAt(i+1);
    				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
    				i += 2;
    			}
    			else {
    				c2 = utftext.charCodeAt(i+1);
    				c3 = utftext.charCodeAt(i+2);
    				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
    				i += 3;
    			}

    		}

    		return string;
    	}

};



