   var n4 = ( document.layers ) ? true : false
   var i4 = ( document.all ) ? true : false
   var n6 = ( document.getElementById && !i4 ) ? true : false
   var op = ( navigator.appName.indexOf( "Opera" ) != -1 ) ? true : false
   var wnd
   fldobj = ''
   var clicked = new Array()

function ao1(obj){obj.style.backgroundColor='#FFFFFF'}
function ao2(obj){obj.style.backgroundColor='#F3F2F0'}
function ao0(obj){obj.style.backgroundColor=''}

function nao0(obj,nr){if(clicked[nr]){obj.style.backgroundColor='#FFFF00'}else{obj.style.backgroundColor=''}}
function nac0(obj,nr){if(clicked[nr]){clicked[nr]=false}else{clicked[nr]=true;obj.style.backgroundColor='#66DD00'}}

function myscroll(){
   obj = getO( 'form_error_div' )
   obj.scrollIntoView( true )
//   x = getT( obj )
//   window.scrollTo( 0, x-20 )
   alert( 'Popraw pola zaznaczone na czerwono\n(opis błędu w "dymku" pod nazwą pola)' )
}

function zapisz( btn, p ){
   form = btn.form

   btn.style.cursor = 'wait'
   if( btn.value == 'czekaj...' ){
      alert( 'Trwa zapisywanie danych...' )
      return false
   }
   else {
      btn.disabled = true
      btn.value    = 'czekaj...'
      if( p ){
         form.target = '_self'
//         if( top != self ) top.cms_preview( 0 )
      }
      form.submit()
      return false
   }
}

function preview( obj, act ){
   form = obj.form
   form.target = 'pview'
   form.action.value = act
   form.submit()
}

function preview2( obj, act ){
   top.cms_preview( 1 )
   doc = top.pview.document
   doc.open()
   doc.write( '<HTML><HEAD><LINK REL="stylesheet" TYPE="text/css" HREF="/!cms/admin/admin/styles.css"></HEAD><BODY scroll="no"><TABLE height=100% width=100% cellpadding=10 cellspacing=0><TR><TD align=center valign=middle width=100%><IFRAME name=pviewiframe id=pviewiframe width=100% height=100% src=""></IFRAME></TD></TR></TABLE></BODY></HTML>' )
   doc.close()

   form = obj.form
   form.target = 'pviewiframe'
   form.action.value = act
   form.submit()
}


function blank2(){
   if( top != self ) top.blank( 2 )
}


function save( obj, act ){
   form = obj.form
   if( obj.value != 'czekaj...' ){
      if( top == self ){ alert( 'W "nowym" okienku zapis nie jest możliwy.' )}
      else {
         obj.value = 'czekaj...'
         form.target       = '_self'
         form.action.value = act
         form.submit()
      }
   }
}

var forum_button_clicked = false
//---------------------------------------------------------------
function post_del( url ){

   if( forum_button_clicked ){
      alert( 'Chwileczkę...' )
      return
   }

   if( confirm( 'Potwierdź, że zgłaszasz ten post do usunięcia.' )){
      forum_button_clicked = true
      url = '/!cms/rjs_forum_post.php?del-' + url
      httpGET( url, post_del_response )
   }

}
function post_del_response( err, txt ){
   forum_button_clicked = false
   alert( err )
}

function post_edit( url ){

   form = document.forms['editpost']
   form.txt.value = ''
   form.par.value = url
   if( form.usun ) form.usun.disabled = true
   if( form.save ) form.save.disabled = true
   obj = getO( 'post_edit_div' )
   obj.parentNode.removeChild( obj )
   document.body.appendChild( obj )
   setPosCenter( obj )
   url = '/!cms/rjs_forum_post.php?edit-' + url
   httpGET( url, post_edit_response )
}
function post_edit_response( err, txt ){

   objcheck = form['fld_checkbox_txt']
   if( err ){
      objcheck.disabled = true
      alert( err )
   }
   else {
      form = document.forms['editpost']
      form.txt.value = txt
      if( form.usun ) form.usun.disabled = false
      if( form.save ) form.save.disabled = false
      objcheck.disabled  = false
      objcheck.checked   = ( form.txt.wrap == 'soft' ) ? true : false
   }

}

function post_edit_del( url ){
   if( confirm( 'Are yuo sure na pewno?' )){
      url = '/!cms/rjs_forum_post.php?edit_del-' + url
      httpGET( url, post_edit_del_response )
      if( form.usun ) form.usun.disabled = true
      if( form.save ) form.save.disabled = true
   }
}
function post_edit_del_response( err, txt ){

   if( err == 'ok' ){ 
      post_edit_close()
      alert( 'Post został usunięty' )
      if( txt.length > 3 ){ document.location.href = txt }
      else                { history.go( 0 )}
   }
   else if( err != 'notlast' ){ 
      alert( err )
   }
   else if ( confirm( 'Możesz usuwać tylko swój ostatni post w danym temacie.\nCzy chcesz zgłosić ten post do usunięcia?' )){
      post_del( txt )
   }
   if( form.usun ) form.usun.disabled = false
   if( form.save ) form.save.disabled = false
}

function post_edit_save( form ){

   if( form.usun ) form.usun.disabled = true
   if( form.save ) form.save.disabled = true
   par    = form.par.value
   txt    = form.txt.value
   params = 'par=edit_save-' + par + '&txt=' + encodeURIComponent( txt )

   url = '/!cms/rjs_forum_post.php'
   httpPOST( url, post_edit_save_response, params )

}
function post_edit_save_response( err, txt ){

   form = document.forms['editpost']
   if( form.usun ) form.usun.disabled = false
   if( form.save ) form.save.disabled = false

   if( err ){
      form.txt.value = txt
      alert( err )
   }
   else { history.go( 0 )}

}

function post_cite( url ) {
   url = '/!cms/rjs_forum_post.php?cite-' + url
   httpGET( url, post_cite_response )
}
function post_cite_response( err, txt ){

   if( err ){
      alert( err )
   }
   else {
      form = document.forms['post']
      mT   = getT( form )
      window.scrollTo( 0, mT )
      if( form.txt.value ) txt = '\n\n' + txt
      form.txt.value += txt
   }

}

//---------------------------------------------------------------
function div_show( id ){

   showmenu = false
   obj = getO( id )
   obj.parentNode.removeChild( obj )
   document.body.appendChild( obj )
   setPosCenter( obj )
}
function div_close( id ){
   obj = getO( id )
   setPos( obj, 0, -1000 )
   showElems( 'visible' )
   showmenu = true
}

//---------------------------------------------------------------
function storeCaret( obj ) {
   top.copycont = obj
   if ( obj.createTextRange ) obj.caretPos = document.selection.createRange().duplicate()
}

function insertAtCaret( obj, text ) {

   if ( obj.createTextRange && obj.caretPos ){
      var caretPos = obj.caretPos
      caretPos.text = caretPos.text.charAt( caretPos.text.length - 1 ) == ' ' ? text + ' ' : text
   }
   else {
      obj.value += text
   }
}

//---------------------------------------------------------------
function label_show( obj, id, form, inline ){

   obj2   = document.forms[form][id]
   fldobj = 'fld_check_' + id
   fldobj = getO( fldobj )

   t = getT( obj ) + getH( obj )

   if( inline ){ l = getL( obj ) - 42; t += 1 }
   else        { l = getL( obj ) + getW( obj ) - 36 }
   setPos( fldobj, t, l )

   objcheck = document.forms[form]['fld_checkbox_' + id]
   objcheck.checked = ( obj2.wrap == 'soft' ) ? true : false
   obj.onmouseover  = ''

}
function label_wrap( form, id ){

//alert( 2 )
   obj2 = document.forms[form][id]
   if( obj2.wrap == 'soft' ){
      obj2.wrap = 'off'
      obj2.rows--
   }
   else {
      obj2.wrap = 'soft'
      obj2.rows++
   }
}

function setWrap(area, wrap) { 
    if (area.wrap) { 
        area.wrap= wrap; 
    } else { // wrap attribute not supported - try Mozilla workaround 
        area.setAttribute('wrap', wrap); 
        var newarea= area.cloneNode(true); 
        newarea.value= area.value; 
        area.parentNode.replaceChild(newarea, area); 
    } 
} 
function setNoWrap(textarea) { 
    textarea.style.whiteSpace = 'pre'; 
    textarea.style.overflow = 'auto'; 
}


//---------------------------------------------------------------
function getO( e ){
   if( i4 ){ return document.all[e] }
   if( n4 ){ return document.layers[e] }
   if( n6 ){ return document.getElementById( e )}
}

function setPos( e, t, l ){
   if( e ){
      if     ( i4 ){ e.style.top  = t;   e.style.left = l }
      else if( n4 ){ e.moveTo( l, t )}
      else if( n6 ){ e.style.top  = t + 'px'; e.style.left = l + 'px' }
   }
}

function newO( name, pT, pL, txt ){
   if( i4 ){
      div = document.body
      txt = '<DIV id="' + name + '" name="' + name + '" style="visibility:visible; position:absolute; top:'+pT+'; left:'+pL +'">' + txt + '</DIV> \n'
      div.insertAdjacentHTML( "BeforeEnd", txt )
      obj = document.all( name )
   }
   return obj
}

function getT( e ){
   var curtop = 0;
   if ( e.offsetParent ){
      while( e.offsetParent ){
         curtop += e.offsetTop
         e = e.offsetParent;
      }
   }
   else if ( e.y ) curtop += e.y
   return curtop
}

function getL( e ){
   var curtop = 0;
   if( e.offsetParent ){
      while( e.offsetParent ){
         curtop += e.offsetLeft
         e = e.offsetParent;
      }
   }
   else if ( e.x ) curtop += e.x;
   return curtop;
}

function getW( e ){
   result = 0
   if      ( e.offsetWidth ) result = e.offsetWidth
   else if ( e.clip && e.clip.width ) result = e.clip.width
   else if ( e.style && e.style.pixelWidth ) result = e.style.pixelWidth
   return parseInt( result )
}
function getH( e ) {
   result = 0
   if      ( e.offsetHeight ) result = e.offsetHeight
   else if ( e.clip && e.clip.height ) result = e.clip.height
   else if ( e.style && e.style.pixelHeight ) result = e.style.pixelHeight
   return parseInt( result )
}

function getST(){
   x = 0;
   if      ( self.pageYOffset ) x = self.pageYOffset
   else if ( document.documentElement && document.documentElement.scrollTop ) x = document.documentElement.scrollTop
   else if ( document.body ) x = document.body.scrollTop
   return parseInt( x )
}
function getSL(){
   x = 0;
   if      ( self.pageXOffset ) x = self.pageXOffset
   else if ( document.documentElement && document.documentElement.scrollLeft ) x = document.documentElement.scrollLeft
   else if ( document.body ) x = document.body.scrollLeft
   return parseInt( x )
}

function setPosCenter( obj ){
   obj.style.left = "50%"
   obj.style.top  = "50%"
   wH = getH( obj )
   wW = getW( obj )
   wT = getST() + getT( obj ) - parseInt( wH/2 )
   wL = getSL() + getL( obj ) - parseInt( wW/2 )
   hideElems( wT, wL, wW, wH )
   setPos( obj, wT, wL )
}

function load_event( func ) {
   var oldonload = window.onload;
   if( typeof window.onload != 'function' ) window.onload = func
   else window.onload = function(){ oldonload(); func()}
}

//---------------------------------------------------------------
var backupElems = []
function hideElems( t, l, w, h ){

//   badElems = [ "SELECT" ];
   badElems = [ "SELECT", "IFRAME", "APPLET", "EMBED", "OBJECT" ];

   if( i4 && !op ){ 

      b = t + h - 1
      r = l + w - 1
      bnr = 0

//      for( i=0; i < badElems.length; i++){
//         elem = document.getElementsByTagName ? document.getElementsByTagName( badElems[i] ) : document.all ? document.all.tags( badElems[i] ) : ""
         elem = document.all.tags( 'SELECT' );

//       elem = document.all.tags( badElems[i] );
         if( elem && elem.length > 0 ){
            for( j=0; j < elem.length; j++ ){
               elemj = elem[j]
               eT    = getT( elemj )
               if( eT > b ) continue
               eL = getL( elemj )
               if(  eL                 > r ) continue
               if(( eL + getW(elemj )) < l ) continue
               if(( eT + getH(elemj )) < t ) continue
               backupElems[bnr] = elemj
               backupElems[bnr].style.visibility = 'hidden'
               bnr++
            }
         }
      }
//   }
}   
function showElems( vis ){
   for( i=0; i < backupElems.length; i++ ){
      backupElems[i].style.visibility = vis
   } 
   backupElems = [] 
}
//---------------------------------------------------------------
function makeHTTP(){

   if( window.XMLHttpRequest ){
      httpOBJ = new XMLHttpRequest()
      if( httpOBJ.overrideMimeType ) httpOBJ.overrideMimeType('text/html')
   }
   else if( window.ActiveXObject ){
      try {
         httpOBJ = new ActiveXObject( "Msxml2.XMLHTTP" );
      } catch( e ) {
         try {
            httpOBJ = new ActiveXObject( "Microsoft.XMLHTTP" );
         } catch ( e ) {}
      }
   }
   if( !httpOBJ ){
      alert( "Brak polaczenia http" )
   }
   return httpOBJ
}

function httpGET( url, func ){
   obj = makeHTTP()
   obj.onreadystatechange = function(){
      if( obj.readyState == 4 && obj.status == 200 ){
         pos  = obj.responseText.indexOf( ':' )
         mess = obj.responseText.substr( 0, pos )
         txt  = obj.responseText.substr( pos+1 )
         func( mess, txt )
      }
   }
   obj.open( 'GET', url, true );
   obj.send( null );
}
function httpPOST( url, func, params ){
   obj = makeHTTP()
   obj.onreadystatechange = function(){
      if( obj.readyState == 4 && obj.status == 200 ){
         pos  = obj.responseText.indexOf( ':' )
         mess = obj.responseText.substr( 0, pos )
         txt  = obj.responseText.substr( pos+1 )
         func( mess, txt )
      }
   }
   obj.open( 'POST', url, true );
   obj.setRequestHeader( "Content-type", "application/x-www-form-urlencoded; charset=iso-8859-2");
   obj.setRequestHeader( "Content-length", params.length );
   obj.setRequestHeader( "Connection", "close" );
   obj.send( params );
}

function setcookie( name, value )
{
   if( value ) document.cookie = name + '=' + escape( value ) + '; path=/'
   else        document.cookie = name + '=; path=/'
}

function addE( elem, sType, fn, capture ){
   capture = capture ? true : false
   if( elem.addEventListener ){ elem.addEventListener( sType, fn, capture )}
   else if( elem.attachEvent ){ elem.attachEvent( "on" + sType, fn )}
}

