var prefixes = new Array();
var pf=0;
var lmode='';
function setareas()
{
  for(var i=1; i<=pf; i++)
  {
    if(document.all['editcode_'+prefixes[i]].style.display=='none')
    {
     document.all['editcode_'+prefixes[i]].value = document.all['edarea_'+prefixes[i]].innerHTML;
    }
  }
}
function setsubmit()
{
  for(var i=0; i<document.forms.length; i++)
  {
    document.forms[i].onsubmit=setareas;
  }
}
function over()
{
        window.event.srcElement.style.borderStyle = "outset";
}

function out()
{
        window.event.srcElement.style.borderStyle = "solid";
}

function push()
{
        window.event.srcElement.style.borderStyle = "inset";
}
function setChars()
{
        if(charsvisible) return;

}
function showChars()
{       
        if(document.getElementById('chars').style.display == 'block') {
                document.getElementById('chars').style.display='none'; 
        } else {
                document.getElementById('chars').style.display='block';
                document.getElementById('chars').style.posTop = document.body.scrollTop + event.clientY + 15; 
                document.getElementById('chars').style.posLeft= document.body.scrollLeft + event.clientX - 70;
        }
}

function insertChar(where, code)
{
 var editvis = document.all['edarea_'+where];
 editvis.focus();
 var r = document.selection.createRange();
 r.pasteHTML(code); 
 showChars();
}

function switchbtn(where, mode)
{ 
  var visual = document.all['visual_'+where];
  var code = document.all['code_'+where];
  var editvis = document.all['editor_'+where];
  var editarea = document.all['edarea_'+where];
  var editcode = document.all['editcode_'+where];
  if(mode == 'visual') {
   code.className='btn-off';
   visual.className='btn-on';
   editarea.innerHTML = editcode.value;
   editvis.style.display = 'block';
   editcode.style.display = 'none';
  }
  else {
   code.className='btn-on';
   visual.className='btn-off';
   editcode.value = editarea.innerHTML;
   editvis.style.display = 'none';
   editcode.style.display = 'block';
  }
}
function toggle(where, linktype, parent, id)
{
 window.event.srcElement.style.borderStyle = "outset";
 var name = window.event.srcElement.name;
 var value = window.event.srcElement.value;
 var dialog = false;
        
 if(name == 'InsertImage') {
  dialog=true;
  if(luid)
  {
   re = new RegExp('<!--start_media\\('+lmid+',(\\w+),([:?\\w]*),'+luid+'\\)-->', 'g');
   t = re.exec(document.all['edarea_'+where].innerHTML);
   view=t ? t[2] : '';
   mode=t ? t[1] : '';
   w=window.open('/admin/?lib=visual&method=changemedia&prefix='+where+'&mode='+mode+'&mediaid='+lmid+'&uid='+luid+'&view='+view, 'changemedia', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,height=400,width=550,resizable=yes');
   w.focus();
  }
  return;
 }
 
 if(name == 'CreateLink') {
  dialog = true;
  var r = document.selection.createRange();
  w=window.open('/admin/?lib=visual&method=insert_link&prefix='+where,'insert_link','toolbar=no,location=no,status=no,menubar=no,height=400,width=400,resizable=yes,scrollbars=yes');
  w.focus();
  return;
 }
  
 document.execCommand(name, dialog, value);
} 

function insertTag(where, tag)
{
 var editvis = document.all['edarea_'+where];
 editvis.focus();
 document.execCommand("RemoveFormat",false,null);
 var r = document.selection.createRange();
 if(r.text!='') 
  r.pasteHTML('<'+tag+'>'+r.text+'</'+tag+'>');
}
function insertBR(where)
{
 var editvis = document.all['edarea_'+where];
 editvis.focus();
 var r = document.selection.createRange();
 r.pasteHTML('<br />\n'); 
}
function insertBRclear(where)
{
 var editvis = document.all['edarea_'+where];
 editvis.focus();
 var r = document.selection.createRange();
 r.pasteHTML('<br clear="all" \>\n'); 
}
function insertTable(where, table)
{
 var editvis = document.all['edarea_'+where];
 editvis.focus();
 var r = document.selection.createRange();
 r.pasteHTML(table); 
}

function insertLink(where, url, title, target)
{
 if(url.length==0 || url=='http://') {return;};

 if(url.indexOf('/')!=0 && url.indexOf('http://')==-1) {url = 'http://'+url};
 
 var r = document.selection.createRange();
 title=url;
 if(r.text!='')
 {
  title=r.text;
 }
 if(r.parentElement().tagName=='A')
 {
  rp=r.parentElement();
  rp.href=url;
  rp.target=target;
  return;
 }
 var editvis = document.all['edarea_'+where];
 editvis.focus();
 r.pasteHTML('<A href="'+url+'" target="'+target+'">'+title+'</A>'); 
}

function insertMedia(where,imgcode,mid,im)
{
 var editvis = document.all['edarea_'+where];
 editvis.focus();
 
 lastuid++;
 imgcode2 = '&nbsp;<!--start_media('+mid+','+im+',,'+lastuid+')-->' + imgcode + '<!--finish_media'+lastuid+'-->&nbsp;';
 var r = document.selection.createRange();
 r.pasteHTML(imgcode2);
}
function changeMedia(where, imgcode, uid, view)
{
 var editvis = document.all['edarea_'+where].innerHTML;
 re = new RegExp('<!--start_media\\((\\d+),(\\w+),(\\w*),'+uid+'\\)-->([\\S|\\s])+<!--finish_media'+uid+'-->','g');
 t = re.exec(document.all['edarea_'+where].innerHTML);
 imgcode='<!--start_media('+t[1]+','+t[2]+','+view+','+uid+')-->' +imgcode+'<!--finish_media-->';
 re = new RegExp('<!--start_media\\((\\d+),(\\w+),(\\w*),'+uid+'\\)-->([\\S|\\s])+<!--finish_media'+uid+'-->','g');
 str=editvis.replace(re, imgcode);
 document.all['edarea_'+where].innerHTML=str;
}
function insertMediaLink(where, title, mid)
{
 var editvis = document.all['edarea_'+where];
 editvis.focus();
 var r = document.selection.createRange();
 r.pasteHTML('<A href="/cgi-bin/kernel.pl?lib=media&act=download&id='+mid+'" id="link'+mid+'">'+title+'</A>'); 
}

var luid;
var lastuid=0;
function focusimg()
{
 var e=window.event.srcElement;
// if(!e) {return;}
 luid=e.getAttribute('uid');
 lmid=e.getAttribute('mediaid');
 lmode=e.getAttribute('imgmode');
}
function blurimg()
{
 luid=0;
 if(document.getElementById('contextmenu'))
 {
  e=document.getElementById('contextmenu');
  e.style.display='none';
 }
}
function res()
{
 return false;
}
function kdown(where)
{
 if(window.event.keyCode == 46 && luid)
 {
  var editvis = document.all['edarea_'+where].innerHTML;
  re = new RegExp('\\&nbsp;<!--start_media\\((\\d+),(\\w+),(\\w*),'+luid+'\\)-->([\\S|\\s])*<!--finish_media'+luid+'-->\\&nbsp;');
  str=editvis.replace(re, '');
  event.keyCode=0;
  document.all['edarea_'+where].innerHTML=str;
  return false;
 }
}
function conm()
{
 e=document.getElementById('contextmenu');
 if(!(e || document.all['contextmenu']))
 {
  e=document.createElement('div');
  e.id='contextmenu';
  e.style.position='absolute';
  e.innerHTML='<A href="admin.pl?lib=visual&method=editimage&mediaid='+lmid+'&mode='+lmode+'&clearcallresults=1" target="_blank" onclick="window.open(\'admin.pl?lib=visual&method=editimage&mediaid='+lmid+'&mode='+lmode+'&clearcallresults=1\', \'\', \'\'); return false;" style="color: #fff;">Изменить размер</A>';
 }
 e.style.display='block';
 e.style.left=window.event.clientX+15;
 e.style.top=window.event.clientY;
 e.style.background='000000';
 e.style.padding="3px";
 head = document.getElementsByTagName("BODY")[0];
 if(head){head.appendChild(e);}
 return false;
}
function init_visual()
{
  var imgs=document.getElementsByTagName("img");
  for(var j=1; j<imgs.length;j++)
  {
   if(imgs[j].getAttribute('mediaid'))
   {
    lastuid++;
//    imgs[j].onmousedown=focusimg;
//    imgs[j].onblur=blurimg;
//    imgs[j].onresizestart=res;
//    imgs[j].oncontextmenu=conm;
    imgs[j].setAttribute('uid', lastuid);
    imgs[j].setAttribute('onmousedown', 'focusimg()');
    imgs[j].setAttribute('onblur', 'blurimg()');
    imgs[j].setAttribute('onresizestart', 'return false;');
    imgs[j].setAttribute('oncontextmenu', 'return conm();');
   }
  }
  document.onclick=blurimg;
  init_this();
}
function init_this(where)
{
  isMSIE=document.all && document.all.item //Microsoft Internet Explorer 4+
  if(where)
  {
   switchbtn(where, '');
   if(isMSIE){switchbtn(where, 'visual');}
   return;
  }
  for(var i=1; i<=pf; i++)
  {
   switchbtn(prefixes[i], '');
   if(isMSIE){switchbtn(prefixes[i], 'visual');}
  }
}
