var msie = ((navigator.appVersion.indexOf('MSIE')!= -1)&&!window.opera)? true : false;
var is_ie6 = (msie && (navigator.appVersion.indexOf('6.0')!=-1));
var _overlay_tmp_img = false;

// funkcje ogólne (engine)
function _aEv(obj, type, fn) { try { if (obj.addEventListener) { obj.addEventListener(type, fn, false); } else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj[type+fn] = function() { obj["e"+type+fn](window.event); }; obj.attachEvent("on"+type, obj[type+fn]); }} catch (e) {}}
function _gOb(n) { return document.getElementById(n); }
function _trm(x){return x.replace(/^\s+|\s+$/g,'');}
function _hCl(obj, clName) { var clN = ' ' + obj.className + ' '; return (clN.match(' ' + clName + ' ') != null); }
function _aCl(obj, clName) { if (!_hCl(obj, clName)) obj.className = _trm(obj.className + ' ' + clName); }
function _rCl(obj, clName) { if (!_hCl(obj, clName)) return; var clN = ' ' + obj.className + ' '; eval("obj.className = _trm(clN.replace(/ " + clName + " /g,''));"); }
function _sCl(obj, oldC, newC) { _rCl(obj, oldC); _aCl(obj, newC); }
function _fPo(obj) { var curleft = curtop = 0; if (obj.offsetParent) { curleft = obj.offsetLeft; curtop = obj.offsetTop; while (obj = obj.offsetParent) { curleft += obj.offsetLeft; curtop += obj.offsetTop; }}; return [curleft,curtop]; }
function _gBTC(obj, tag, clName) { var objs = obj.getElementsByTagName(tag); var robj = new Array(); var j = 0; for (var i = 0; i < objs.length; i++) { if (_hCl(objs[i], clName)) robj[j++] = objs[i]; }; return robj; }

function pop(filename, w, h) {
  var wnd = null;
  var aw = 800;
  var ah = 480;

  if (window.screen) {
    aw = screen.availWidth;
    ah = screen.availHeight;
  }

  var wnd_param = "width="+w+",height="+h+",left="
                + (aw-w)/2+",top="
                + (ah-h)/2
                + ",toolbar=no,location=no,directories=no,"
                + "status=no,menubar=no,"
                + "scrollbars=auto,resizable=no";

  wnd = window.open(filename, 'pop', wnd_param);
}

// dynamiczne pola edytowalne
function createEditBox(eb_type, eb_btn, eb_related, eb_param) {
  var _tmpdiv = document.createElement('div');
  eval("var _tmpobj=document.createElement('"+eb_type+"');");
  eb_param = eb_param.split(/,/);
  for (var i = 0; i < eb_param.length; i++) {
    var val = eb_param[i].split(/=/)[1];
    switch (eb_param[i].split(/=/)[0]) {
      case 'w': _tmpobj.style.width = val+'px'; break;
      case 'h': _tmpobj.style.height = val+'px'; break;
      case 'valueChange': _tmpobj.valueChange=false; _tmpobj.onchange=function(){this.valueChange=true}; break;
    }
  }
  
  _tmpdiv.appendChild(_tmpobj);
  eb_btn = eb_btn.split(/,/);
  var _tmpbtns = document.createElement('div');
  _tmpdiv.appendChild(_tmpbtns);
  _aCl(_tmpdiv, 'dyn_ed');
  _aCl(_tmpbtns, 'dyn_btns');
  for (var i = 0; i < eb_btn.length; i++) {
    var _tmpbtn = document.createElement('input');
    _tmpbtn.type = 'button';
    _tmpbtn.value = eb_btn[i].split(/=/)[0];
    _tmpbtn.clickResult = eb_btn[i].split(/=/)[1];
    _tmpbtn.related = eb_related;
    _tmpbtn.valObj = _tmpobj;
    _tmpbtns.appendChild(_tmpbtn);
    _aEv(_tmpbtn, 'click', dyn_btn_action);
  }
  _tmpdiv.valueField = _tmpobj;
  return _tmpdiv;
}

function dyn_btn_action(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  eval(el.clickResult+'(el.related);');
}

var status_editable_box = new Array();
var status_noneditable_box = new Array();
var seb_c = 0;
var sneb_c = 0;

// inicjalizacja
var initialized = false;
function init_all(e) {
  if( initialized == true ){
    return;
  }

  var all_divs = document.getElementsByTagName('div');
//  var adl = all_divs.length;
  for (var i = 0; i < all_divs.length; i++) {
    if (_hCl(all_divs[i], 'status_info')) {
      var tmpary = all_divs[i].getElementsByTagName('p');
      if (_hCl(tmpary[0], 'editable')) {
        _aEv(tmpary[0], 'mouseover', status_over);
        _aEv(tmpary[0], 'mouseout', status_out);
        _aEv(tmpary[0], 'click', status_edit_start);
        tmpary[0].editMode = false;
        tmpary[0].captionSpan = tmpary[0].getElementsByTagName('span')[0];
        tmpary[0].whenSpan = tmpary[0].getElementsByTagName('span')[1];
        if( tmpary[0].id=='' ){
          tmpary[0].id = '_seb_'+seb_c;
        }
        status_editable_box[seb_c++] = tmpary[0];
      } else {
        status_noneditable_box[sneb_c++] = tmpary[0];
      }
    } else if ((all_divs[i].id == 'mod_people') && (_hCl(all_divs[i], 'editable'))) {
      init_mpe(all_divs[i]);
    }
  }
  if (_gOb('mod_people')) {
    img_overlay_init(_gOb('mod_people'));
  }
  if (_gOb('mod_notify')) {
    _aEv(_gOb('notify_cbox'), 'click', notify_save_settings);
  }
  if (_gOb('mod_images')) {
    img_overlay_init(_gOb('mod_images'));
    images_init();
  }
  if (_gOb('mod_signup')) {
    signup_init();
  }
  if (_gOb('mod_mail')) {
    mailmod_init();
  }
  if (_gOb('mod_espresso_archive')) {
    espressomod_init();
  }
  
  initialized = true;
}

// status
function status_over(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  while (!_hCl(el, 'editable')) el = el.parentNode;
  if (el.editMode) return;
  _aCl(el, 'editable_mover');
}

function status_out(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  while (!_hCl(el, 'editable')) el = el.parentNode;
  if (el.editMode) return;
  _rCl(el, 'editable_mover');
}

function status_edit_start(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  while (!_hCl(el, 'editable')) el = el.parentNode;
  if (el.editMode) return;
  _rCl(el, 'editable_mover');
  var w = el.offsetWidth - 20;
  var h = el.captionSpan.offsetHeight + 15;
  el.style.display = 'none';
  var _edit_c = createEditBox('textarea', 'Ok=status_edit_go,Anuluj=status_edit_cancel', el, 'w='+w+',h='+h+',valueChange=true');
  _edit_c.valueField.value = dwr.util.unescapeHtml(el.captionSpan.innerHTML);
  el.parentNode.insertBefore(_edit_c, el);
  _edit_c.valueField.focus();
  _edit_c.valueField.select();
  el.related = _edit_c;
  el.editMode = true;
}

function status_edit_cancel(el) {
  el.style.display = 'block';
  el.parentNode.removeChild(el.related);
  _rCl(el, 'editable_mover');
  el.editMode = false;
}

// edycja anonsu
var mpe_shown_list = false;
function init_mpe(el){var _x11=_gBTC(el,'div','info_all')[0];var _x12=_gBTC(_x11,'div','value');var eli_l=_x12.length;for(var i=0;i<eli_l;i++){_x12[i].parentNode.style.zIndex=eli_l+1-i;var _x9=_gBTC(_x12[i],'span','param');var _x10=(_x9.length > 0)?_x9[0].innerHTML:false;if(_x12[i].getElementsByTagName('select').length > 0){var _x0=document.createElement('div');_aCl(_x0,'list_trigger');var _x8=document.createElement('ul');_x0.listObj=_x8;_x8.triggerObj=_x0;var _oldlist=_x12[i].getElementsByTagName('select')[0];if(_x10==false)_x0.innerHTML=_oldlist.options[0].text;for(var j=1;j<_oldlist.options.length;j++){var _x1=document.createElement('li');_x1.rvalue=_oldlist.options[j].value;_x1.innerHTML=_oldlist.options[j].text;_x8.appendChild(_x1);if(_x10==_oldlist.options[j].value)_x0.innerHTML=_oldlist.options[j].text;_aEv(_x1,'mouseover',mpe_trigger_over);_aEv(_x1,'mouseout',mpe_trigger_out);_aEv(_x1,'click',mpe_list_apply);} var _x2=document.createElement('li');_aCl(_x2,'resign');_x2.innerHTML='Anuluj';_x8.appendChild(_x2);_x8.selectID=_oldlist.id;_oldlist.relList=_x8;_aEv(_x2,'mouseover',mpe_trigger_over);_aEv(_x2,'mouseout',mpe_trigger_out);_aEv(_x2,'click',mpe_list_resign);_x12[i].appendChild(_x0);_x12[i].appendChild(_x8);_x0.oldHTML=_x0.innerHTML;_aEv(_x0,'mouseover',mpe_trigger_over);_aEv(_x0,'mouseout',mpe_trigger_out);_aEv(_x0,'click',mpe_listtrigger_click);} else if(_x12[i].getElementsByTagName('input').length > 0){var _x3=document.createElement('div');_aCl(_x3,'input_trigger');var _x13=_x12[i].getElementsByTagName('input')[0].value;_x3.innerHTML=(_trm(_x13).length==0)?'&nbsp;':_x13;_aEv(_x3,'mouseover',mpe_trigger_over);_aEv(_x3,'mouseout',mpe_trigger_out);_aEv(_x3,'click',mpe_inputtrigger_click);var _x4=document.createElement('div');_aCl(_x4,'input_object');var _x5=document.createElement('input');var _x6=document.createElement('input');var _x7=document.createElement('input');_x5.type='text';_x6.type='button';_x6.value='Ok';_x7.type='button';_x7.value='Anuluj';_aCl(_x5,'t');_aCl(_x6,'b');_aCl(_x7,'b');_aEv(_x6,'click',mpe_input_apply);_aEv(_x7,'click',mpe_input_resign);_x4.appendChild(_x5);_x4.appendChild(_x6);_x4.appendChild(_x7);_x12[i].appendChild(_x3);_x12[i].appendChild(_x4);_x3.inputText=_x5;_x6.inputID=_x12[i].getElementsByTagName('input')[0].id;_x12[i].getElementsByTagName('input')[0].relDiv=_x3;_x6.inputText=_x5;_x3.inputObj=_x4;_x4.triggerObj=_x3;}}var _x14=_gBTC(el,'p','about_entry');for(var i=0;i<_x14.length;i++){var _x15=_x14[i];_x15.editMode=false;var _x16=document.createElement('div');_x15.parentNode.insertBefore(_x16,_x15);_x16.appendChild(_x15.getElementsByTagName('span')[0]);_x16.appendChild(_x15);_aCl(_x16,'about_entry');_aCl(_x15,'editable');_aEv(_x15,'mouseover',status_over);_aEv(_x15,'mouseout',status_out);_aEv(_x15,'click',mpe_about_edit_start);_x15.id='mpe_about_entry_'+i;}var _x17=_gBTC(el,'p','about')[0];_aEv(_x17,'mouseover',status_over);_aEv(_x17,'mouseout',status_out);_aEv(_x17,'click',mpe_about_edit_start);_aCl(_x17,'editable');_x17.editMode = false;_x17.id='mpe_p_about';var _x18=document.createElement('div');_x17.parentNode.insertBefore(_x18,_x17);_x18.appendChild(_x17);_aCl(_x18,'about_top');}

function mpe_list_resign(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  _rCl(el.parentNode, 'shown');
  _rCl(el.parentNode.triggerObj, 'active');
  _rCl(el.parentNode.triggerObj, 'hover');
  mpe_shown_list = false;
}

function mpe_trigger_over(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  if (_hCl(el, 'active') || _hCl(el, 'locked')) return;
  _aCl(el, 'hover');
}

function mpe_trigger_out(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  if (_hCl(el, 'active') || _hCl(el, 'locked')) return;
  _rCl(el, 'hover');
}

function mpe_listtrigger_click(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  if (_hCl(el, 'active') || _hCl(el, 'locked')) return;
  _aCl(el, 'active');
  if (mpe_shown_list) {
    _rCl(mpe_shown_list.triggerObj, 'active');
    _rCl(mpe_shown_list.triggerObj, 'hover');
    _rCl(mpe_shown_list, 'shown');
  }
  mpe_shown_list = el.listObj;
  _aCl(el.listObj, 'shown');
}

function mpe_input_resign(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  _rCl(el.parentNode, 'shown');
  _rCl(el.parentNode.triggerObj, 'active');
  _rCl(el.parentNode.triggerObj, 'hover');
  mpe_shown_list = false;
}

function mpe_inputtrigger_click(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  if (_hCl(el, 'active') || _hCl(el, 'locked')) return;
  _aCl(el, 'active');
  if (mpe_shown_list) {
    _rCl(mpe_shown_list.triggerObj, 'active');
    _rCl(mpe_shown_list.triggerObj, 'hover');
    _rCl(mpe_shown_list, 'shown');
  }
  mpe_shown_list = el.inputObj;
  el.inputText.value = (el.innerHTML == '&nbsp;') ? '' : el.innerHTML;
  _aCl(el.inputObj, 'shown');
  el.inputText.focus();
  el.inputText.select();
}

function mpe_about_edit_start(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  while (!_hCl(el, 'editable')) el = el.parentNode;
  if (el.editMode) return;
  _rCl(el, 'editable_mover');
  var _offsetShift = (_hCl(el.parentNode, 'about_top')) ? 20 : 0;
  var w = el.offsetWidth - _offsetShift; 
  var h = el.offsetHeight + 5;
  el.style.display = 'none';
  var _edit_c = createEditBox('textarea', 'Ok=mpe_about_edit_go,Anuluj=status_edit_cancel', el, 'w='+w+',h='+h+',valueChange=true');
  _edit_c.valueField.value = dwr.util.unescapeHtml(_trm(el.innerHTML));
  el.parentNode.insertBefore(_edit_c, el);
  _edit_c.valueField.focus();
  _edit_c.valueField.select();
  el.related = _edit_c;
  el.editMode = true;
}

// overlay zdjecia
function img_overlay_init(el) {
  var _imgs = _gBTC(el, 'img', 'img_overlay');
  if (_imgs && _imgs.length > 0) {
    for (var i = 0; i < _imgs.length; i++) {
      _imgs[i].prevImg = (i == 0) ? false : _imgs[i-1];
      _imgs[i].nextImg = (i+1 == _imgs.length) ? false : _imgs[i+1];
      _imgs[i].bigSrc = _imgs[i].parentNode.getElementsByTagName('span')[0].innerHTML;
      _imgs[i].alt = _imgs[i].getAttribute('alt');
      var _words = _imgs[i].getAttribute('alt').split(" ");
      var _maxword = '';
      for(var j = 0; j < _words.length; j++) {
    	  if(_words[j].length>_maxword.length) {
    		  _maxword = _words[j];
    	  }
      }
      _imgs[i].maxword = _maxword;
      _aEv(_imgs[i], 'click', img_overlay_start);
    }
    _aEv(_gOb('io_show_prev').getElementsByTagName('a')[0], 'click', img_overlay_prev);
    _aEv(_gOb('io_show_next').getElementsByTagName('a')[0], 'click', img_overlay_next);
    _aEv(_gOb('io_close_btn').getElementsByTagName('a')[0], 'click', img_overlay_close);
  }
  var _imgwrap = _gBTC(el, 'ul', 'imgwrap');
  if (_imgwrap && _imgwrap.length > 0 && !_hCl(_imgwrap, 'noscroll')){
    _imgwrap = _imgwrap[0];
    var _imgli = _imgwrap.getElementsByTagName('li');
    if (_imgli.length > 4) {
      _imgwrap.curImg = 0;
      _imgwrap.numImg = _imgli.length - 4;
      for (var i = 1; i < _imgli.length; i++) {
        _aCl(_imgli[i], 'scrollable');
        if (i > 3) _imgli[i].style.display = 'none';
      }
      var _liprev = document.createElement('li');
      var _linext = document.createElement('li');
      _aCl(_liprev, 'imgwrap_btn_prev');
      _aCl(_linext, 'imgwrap_btn_next');
      _aCl(_linext, 'active');
      _aEv(_liprev, 'click', img_scroll_left);
      _aEv(_linext, 'click', img_scroll_right);
      _imgwrap.insertBefore(_liprev, _imgli[1]);
      _imgwrap.appendChild(_linext);
      _liprev.po = _imgwrap;
      _liprev.rel = _linext;
      _linext.po = _imgwrap;
      _linext.rel = _liprev;
      _imgwrap.lis = _gBTC(_imgwrap, 'li', 'scrollable');
    } else if (_imgli.length > 1) {
      var _liprev = document.createElement('li');
      var _linext = document.createElement('li');
      _aCl(_liprev, 'imgwrap_btn_prev');
      _aCl(_linext, 'imgwrap_btn_next');
      _aCl(_liprev, 'disabled');
      _aCl(_linext, 'disabled');
      _imgwrap.insertBefore(_liprev, _imgli[1]);
      _imgwrap.appendChild(_linext);
    }
  }
}

function img_scroll_left(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  if (el.po.curImg == 0) return;
  el.po.curImg--;
  el.po.lis[el.po.curImg].style.display = 'block';
  el.po.lis[el.po.curImg+3].style.display = 'none';
  _aCl(el.rel, 'active');
  if (el.po.curImg == 0) _rCl(el, 'active');
}

function img_scroll_right(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  if (el.po.curImg == el.po.numImg) return;
  el.po.lis[el.po.curImg].style.display = 'none';
  el.po.lis[el.po.curImg+3].style.display = 'block';
  el.po.curImg++;
  _aCl(el.rel, 'active');
  if (el.po.curImg == el.po.numImg) _rCl(el, 'active');
}


function img_overlay_start(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  img_overlay_switchImg(el);
}

function img_overlay_switchImg(el) {
  var _title = _gOb('io_img_title');
  _title.innerHTML = el.alt;
  var _hidden = _gOb('io_longest_word');
  _hidden.innerHTML = el.maxword;
  var _img = _gOb('io_inner_img');
  _img.prevImg = el.prevImg;
  _img.nextImg = el.nextImg;
  _overlay_tmp_img = new Image();
  _aEv(_overlay_tmp_img, 'load', img_overlay_loaded);
  _overlay_tmp_img.src = el.bigSrc;
}

function img_overlay_loaded(e) {
	var _img = _gOb('io_inner_img');
	  var _div = _gOb('io_container');
	  _img.src = _overlay_tmp_img.src;
	  var _imgwidth = _overlay_tmp_img.width;
	  var _hidden = _gOb('io_longest_word');
	  _hidden.style.diplay='none';
	  if(_hidden.length!=0 && _hidden.offsetWidth==0) {
		  _gOb('overlay').style.display = msie ? 'block' : 'table';
	  }
	  _imgwidth = _overlay_tmp_img.width;
	  if(_imgwidth<_hidden.offsetWidth) {
		  if(_hidden.offsetWidth>950) {
			  if(_imgwidth<950) {
				  _imgwidth = 950;
			  }
		  } else {
			  _imgwidth = _hidden.offsetWidth;
		  }
	  }
	  var _imgheight=_overlay_tmp_img.height+25+'px';
	  _hidden.innerHTML = _gOb('io_img_title').innerHTML;
	  _imgheight = (_overlay_tmp_img.height+25+(_hidden.offsetHeight*(_hidden.offsetWidth)/_imgwidth))+'px';
	  _hidden.innerHTML = '';
	  _imgwidth = _imgwidth+'px';
	  _div.style.width = _imgwidth;
	  _gOb('io_img_title').style.width = _imgwidth;
	  _gOb('io_prevnext').width = _imgwidth;
	  _gOb('io_close_btn').width = _imgwidth;
	  _div.style.height = _imgheight;
	  _gOb('io_show_prev').style.display = (_img.prevImg) ? 'block' : 'none';
	  _gOb('io_show_next').style.display = (_img.nextImg) ? 'block' : 'none';
	  _img.style.display = 'inline';
	  _div.style.display = 'block';
	  _gOb('overlay').style.display = msie ? 'block' : 'table';
	  if (msie) _gOb('ov').style.display = 'block';
}

function img_overlay_prev(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  el.blur();
  var _img = _gOb('io_inner_img');
  if (_img.prevImg) img_overlay_switchImg(_img.prevImg);
}

function img_overlay_next(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  el.blur();
  var _img = _gOb('io_inner_img');
  if (_img.nextImg) img_overlay_switchImg(_img.nextImg);
}

function img_overlay_close(e) {
  _gOb('overlay').style.display = 'none';
  if (msie) _gOb('ov').style.display = 'none';
}

// strona edycji zdjęć
function images_init() {
  var _images_list = _gOb('mod_images_list');
  _images_list.avatarInput = false;
  if (_images_list) {
    var inputs_avatar = _gBTC(_images_list, 'input', 'img_avatar');   
    for (var i = 0; i < inputs_avatar.length; i++) {
      _aEv(inputs_avatar[i], 'click', images_check_avatar);     
      if (inputs_avatar[i].checked) _images_list.avatarInput = inputs_avatar[i];
    }
  }
}

// zakładanie anonsu

function signup_init() {
  _aEv(_gOb('msu_nick_check'), 'click', signup_check_nick);
  _aEv(_gOb('msu_nick_box_ok'), 'click', signup_nickbox_ok);
  _aEv(_gOb('msu_nick_box_cancel'), 'click', signup_nickbox_cancel);
}

function signup_check_nick(e) {
  var _nick = _trm(_gOb('msu_nick').value);
  if (_nick == '') {
    signup_nickbox_show('empty', '');
  } else {
    signup_nick_check(_nick);
  }
}
function signup_check_nick_before_submit(e) {
  var _nick = _trm(_gOb('msu_nick').value);
  if (_nick == '') {
    signup_nickbox_show('empty', '');
  } else {
    signup_nick_check_before_submit(_nick);
  }
  return false;
}

function signup_nickbox_show(s_state, s_values) {
  var _nickbox = _gOb('msu_nick_box');
  _gOb('msu_nick_box_valid').style.display = 'none';
  _gOb('msu_nick_box_invalid').style.display = 'none';
  _gOb('msu_nick_box_empty').style.display = 'none';
  _nickbox.s_state = s_state;
  switch (s_state) {
    case 'valid':
    case 'empty':
      _gOb('msu_nick_box_cancel').style.display = 'none';
      break;
    case 'invalid':
      _gOb('msu_nick_box_cancel').style.display = 'inline';
      var _p_list = _nickbox.getElementsByTagName('ul')[0];
      while (_p_list.getElementsByTagName('li').length > 0) 
        _p_list.removeChild(_p_list.getElementsByTagName('li')[0]);
      s_values = s_values.split(';');
      for (var i = 0; i < s_values.length; i++) {
        var _nli = document.createElement('li');
        var _ninput = document.createElement('input');
        var _nlabel = document.createElement('label');
        _ninput.id = 'msu_p_nick_'+i;
        _ninput.type = 'radio';
        _ninput.name = 'msu_p_nick';
        _ninput.value = s_values[i];
        _nlabel.innerHTML = s_values[i];
        _nli.appendChild(_ninput);
        _nli.appendChild(_nlabel);
        _p_list.appendChild(_nli);
      }
      break;
  }
  _gOb('msu_nick_box_'+s_state).style.display = 'block';
  _nickbox.style.display = 'block';
}

function signup_nickbox_ok(e) {
  var _nickbox = _gOb('msu_nick_box');
  if (_nickbox.s_state == 'invalid') {
    var _inputs = _nickbox.getElementsByTagName('input');
    for (var i = 0; i < _inputs.length; i++) {
      if (_inputs[i].checked) {
        _gOb('msu_nick').value = _inputs[i].value;
        _nickbox.style.display = 'none';
        return;
      }
    }
  }
  _nickbox.style.display = 'none';
}

function signup_nickbox_cancel(e) {
  var _nickbox = _gOb('msu_nick_box');
  _nickbox.style.display = 'none';
}

// start
_aEv(window, 'load', init_all);

// KOMUNIKACJA Z SERWEREM

function mpe_input_apply(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  var _val = _trm(el.inputText.value);
  // tutaj zostaje wywoływana funkcja zapisująca do bazy wybraną przez użytkownika wartość
  // parametry to wybrana wartość oraz ID inputa, który został zmieniony
  // ajax_call_something(_val, el.inputID);
//  alert(_val+'\n'+el.inputID);
  _rCl(el.parentNode, 'shown');
  _rCl(el.parentNode.triggerObj, 'active');
  _rCl(el.parentNode.triggerObj, 'hover');
  _aCl(el.parentNode.triggerObj, 'locked');
  el.parentNode.triggerObj.oldHTML = el.parentNode.triggerObj.innerHTML;
  el.parentNode.triggerObj.innerHTML = 'zapisywanie...';
  mpe_shown_list = false;
  
  DWRAdEdit.saveTextField(el.inputID, _val, afterSaveAdInputField);
}

function mpe_input_apply_failed(reason, inputID) {
  // funkcja wywoływana gdy z jakiegoś powodu nie udało się zapisać wartości do bazy
  // reason to komunikat, który ma zostać wyświetlony użytkownikowi, a inputID to
  // identyfikator inputa, z którego został wysłany request
  alert(reason);
  var _tmpobj = _gOb(inputID).relDiv;
  _tmpobj.innerHTML = _tmpobj.oldHTML;
  _rCl(_tmpobj, 'locked');
}

function mpe_input_apply_done(newValue, inputID) {
  // funkcja wywoływana gdy uda się zmienić wartość inputa po stronie serwera
  // zwraca nową wartość i id inputa, do którego trzeba przypisać nową wartość
  var _inpobj = _gOb(inputID);
  var _tmpobj = _inpobj.relDiv;
  _tmpobj.innerHTML = newValue;
  _rCl(_tmpobj, 'locked');
}

function mpe_list_apply(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  // tutaj zostaje wywoływana funkcja zapisująca do bazy wybraną przez użytkownika wartość
  // parametry to wybrana wartość oraz ID selecta, który został zmieniony
  // ajax_call_something(el.rvalue, el.parentNode.selectID);
  //alert(el.rvalue+'\n'+el.parentNode.selectID);
  _rCl(el.parentNode, 'shown');
  _rCl(el.parentNode.triggerObj, 'active');
  _rCl(el.parentNode.triggerObj, 'hover');
  _aCl(el.parentNode.triggerObj, 'locked');
  el.parentNode.triggerObj.oldHTML = el.parentNode.triggerObj.innerHTML;
  el.parentNode.triggerObj.innerHTML = 'zapisywanie...';
  mpe_shown_list = false;
  
  DWRAdEdit.saveDictionaryField(el.parentNode.selectID, el.rvalue, afterSaveAdDictionaryField);
}

function mpe_list_apply_failed(reason, selectID) {
  // funkcja wywoływana gdy z jakiegoś powodu nie udało się zapisać wartości do bazy
  // reason to komunikat, który ma zostać wyświetlony użytkownikowi, a selectID to
  // identyfikator selecta, z którego został wysłany request
  alert(reason);
  var _tmpobj = _gOb(selectID).relList.triggerObj;
  _tmpobj.innerHTML = _tmpobj.oldHTML;
  _rCl(_tmpobj, 'locked');
}

function mpe_list_apply_done(newValue, selectID) {
  // funkcja wywoływana gdy uda się zmienić wartość selecta po stronie serwera
  // zwraca nową wartość (ale wartość, nie jej opis) oraz id selecta, do którego
  // trzeba przypisać nową wartość
  var _selobj = _gOb(selectID);
  var _tmpobj = _selobj.relList.triggerObj;
  for (var j = 0; j < _selobj.options.length; j++) {
    if (_selobj.options[j].value == newValue) {
      _tmpobj.innerHTML = _selobj.options[j].text;
      break;
    }
  }
  _rCl(_tmpobj, 'locked');
}

function status_edit_go(el) {
  // tutaj ajax - trzeba wywołać jakąś funkcję, która wyśle request do serwera
  // wartość pola pobieramy za każdym razem z obiektu el.related.valueField
  // druga wartość to musi być id pola statusu, z którym związane jest wysyłanie
  // requestu (takich pól ze statusem na stronie może byc więcej niż jedno)
  
  // ajax_call_something(el.related.valueField.value, el.id);
  //alert(el.related.valueField.value);
  if( !el.related.valueField.valueChange ){
    status_edit_cancel(el);
    return false;
  }
  el.captionSpan.oldHTML = el.captionSpan.innerHTML;
  el.captionSpan.innerHTML = 'zapisywanie...';
  el.whenSpan.innerHTML = '';
  el.style.display = 'block';
  el.parentNode.removeChild(el.related);
  
  DWRBlip.saveBlip (el.related.valueField.value, el.id, afterSaveBlip);
}

function status_edit_done(new_value, caller_id) {
  // ta funkcja ma zostać wywołana jako rezultat requestu wysyłanego przez status_edit_go()
  // w sytuacji, kiedy zmiana wartości przebiegła pomyślnie
  // parametr new_value ma zawierać wartość, która została zapisana przez serwer (mógłbym
  // wprawdzie przenosić ją bezpośrednio z wartości pola tekstowego, ale wolę otrzymywać
  // potwierdzoną wersję od serwera - czasami może być tak, że serwer zmodyfikuje wpis
  // użytkownika np. po to, żeby usunąć tagi HTML)
  // caller_id to id pola ze statusem, z którym związane było wysyłanie requestu
  var caller_obj = _gOb(caller_id);
  caller_obj.captionSpan.innerHTML = dwr.util.escapeHtml(new_value);
  caller_obj.whenSpan.innerHTML = '0 minut temu';
  _rCl(caller_obj, 'editable_mover');
  _gOb(caller_id).editMode = false;
}

function status_edit_done2(new_value, caller_id) {
  // ta funkcja ma zostać wywołana jako rezultat requestu wysyłanego przez status_edit_go()
  // w sytuacji, kiedy zmiana wartości przebiegła pomyślnie
  // parametr new_value ma zawierać wartość, która została zapisana przez serwer (mógłbym
  // wprawdzie przenosić ją bezpośrednio z wartości pola tekstowego, ale wolę otrzymywać
  // potwierdzoną wersję od serwera - czasami może być tak, że serwer zmodyfikuje wpis
  // użytkownika np. po to, żeby usunąć tagi HTML)
  // caller_id to id pola ze statusem, z którym związane było wysyłanie requestu
  var caller_obj = _gOb(caller_id);
  caller_obj.captionSpan.innerHTML = dwr.util.escapeHtml(new_value);
  _rCl(caller_obj, 'editable_mover');
  _gOb(caller_id).editMode = false;
}

function status_edit_failed(reason, caller_id) {
  // ta funkcja ma zostać wywołana jako rezultat requestu wysyłanego przez status_edit_go()
  // w sytuacji, kiedy zmiana wartości nie powiodła się
  // wartość zmiennej reason jest treścią komunikatu, który zostanie wyświetlony użytkownikowi
  // caller_id to id pola ze statusem, z którym związane było wysyłanie requestu
  alert(reason);
  var caller_obj = _gOb(caller_id);
  caller_obj.captionSpan.innerHTML = caller_obj.captionSpan.oldHTML;
  _rCl(caller_obj, 'editable_mover');
  caller_obj.editMode = false;
}

function mpe_about_edit_go(el) {
  // ajax_call_something(el.related.valueField.value, el.id);
//  alert(el.related.valueField.value+'\n'+el.id);
  if( !el.related.valueField.valueChange ){
    status_edit_cancel(el);
    return false;
  }
  el.oldHTML = el.innerHTML;
  el.innerHTML = 'zapisywanie...';
  el.style.display = 'block';
  el.parentNode.removeChild(el.related);
  
  DWRAdEdit.saveTextField(el.id, el.related.valueField.value, afterSaveAdTextField);
}

function mpe_about_edit_done(new_value, caller_id) {
  var caller_obj = _gOb(caller_id);
  caller_obj.innerHTML = dwr.util.escapeHtml(new_value);
  _rCl(caller_obj, 'editable_mover');
  _gOb(caller_id).editMode = false;
}

function mpe_about_edit_failed(reason, caller_id) {
  alert(reason);
  var caller_obj = _gOb(caller_id);
  caller_obj.innerHTML = caller_obj.oldHTML;
  _rCl(caller_obj, 'editable_mover');
  caller_obj.editMode = false;
}

function notify_save_settings(e) {
  // funkcja zapisuje stan checkboxa "chcę dostawać powiadomienia o nowych wiadomościach i anonsach na e-mail"
  // trzeba przekazać ajaxem wartość zmiennej cb_state (true / false)
  var cb_state = _gOb('notify_cbox').checked;
}

function images_check_avatar(e) {
  // funkcja ustawia, który obrazek ma być avatarem
  // trzeba przekazać wartość zmiennej cb_avatar, czyli identyfikator zdjęcia (tak jak to jest opisane
  // w pliku images.htm)
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };
  var _images_list = _gOb('mod_images_list');
  if (el.checked) {
    if (_images_list.avatarInput) {
      _images_list.avatarInput.checked = false;     
    }
    _images_list.avatarInput = el;
  } else {
    _images_list.avatarInput = false;
  }  
  var cb_avater = el.id.split('_')[2];
  DWRAvatar.setAvatar(el.checked, el.id, afterSetAvatar);
}

function images_check_hidden(e) {
  // funkcja ustawia czy obrazek ma być ukryty, czy nie
  // trzeba przekazać wartość zmiennej cb_hidden, czyli identyfikator zdjęcia (tak jak to jest opisane
  // w pliku images.htm)
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };
  el.relInput.disabled = el.checked;
  var cb_hidden = el.id.split('_')[2];
}

function signup_nick_check(i_nick) {
  // funkcja sprawdzająca, czy dany nick już jest zarejestrowany
  // trzeba przekazać ajaxem wartość zmiennej i_nick
//  alert(i_nick);
  
  DWRAdAdd.isLoginAvailable(i_nick, afterIsLoginAvailable);
}

function signup_nick_check_before_submit(i_nick) {
  // funkcja sprawdzająca, czy dany nick już jest zarejestrowany
  // wywo�ywana jest przed submitem formy
  
  DWRAdAdd.isLoginAvailable(i_nick, afterIsLoginAvailableBeforeSubmit);
}

function signup_nick_check_ok() {
  // funkcja, która ma zostać wywołana, jeśli nick jest dostępny 
  // (ewentualnie można od razu wywołać funkcję signup_nickbox_show() z takimi parametrami jak niżej i usunąć tę funkcję)
  signup_nickbox_show('valid', '');
}

function signup_nick_check_fail(l_nicks) {
  // funkcja, która ma zostać wywołana, jeśli nick jest zajęty
  // parametr l_nicks ma zawierać listę proponowanych nicków w postaci łańcucha znaków,
  // w którym każdy z nicków jest oddzielony średnikiem
  // (ewentualnie można od razu wywołać funkcję signup_nickbox_show() z takimi parametrami jak niżej i usunąć tę funkcję)
  signup_nickbox_show('invalid', l_nicks);
}

function strefa_add(s_img_uri, s_nick, s_nick_uri, s_content) {
  // funkcja, która dodaje nowy wpis do listy statusów w strefie espresso
  // parametry po kolei to: źródło obrazka, nick, adres strony użytkownika, tekst statusu
  
  var _strefa = _gOb('mod_strefa').getElementsByTagName('ul')[0];
  _strefa.removeChild(_strefa.getElementsByTagName('li')[_strefa.getElementsByTagName('li').length-1]);
  var _nli = document.createElement('li');
  var _nimg = document.createElement('img');
  var _na = document.createElement('a');
  var _ntn = document.createTextNode(s_content);
  _nimg.src = s_img_uri;
  _na.href = s_nick_uri;
  _na.innerHTML = s_nick+':';
  _nli.appendChild(_nimg);
  _nli.appendChild(_na);
  _nli.appendChild(_ntn);
  _strefa.insertBefore(_nli, _strefa.getElementsByTagName('li')[0]);
}

function espressomod_init() {
	var _d = _gOb('mod_espresso_archive');
	_d.esp_count = 0;
	_d.checked_count = 0;
	var _imc = _gBTC(_d, 'input', 'espc');
	if (_imc && _imc.length > 0) {
	  _d.esp_imc = _imc;
	  for (var i = 0; i < _imc.length; i++) {
	    _aEv(_imc[i], 'click', espressomod_check_esp);
	    _imc[i].checked = false;
	    _d.esp_count++;
	  }
	}
	var _imca = _gOb('esp_check_all');
	if (_imca) {
	  _aEv(_imca, 'click', espressomod_check_all);
	  _imca.checked = false;
	}
	var _rm = _gOb('esp_remover');
	if (_rm) _aEv(_rm, 'submit', espressomod_remove_esps);
	if ( _d.esp_count==0 ){
	  var _aa = _gBTC(_d, 'li', 'all_action');
	  if(_aa!=undefined){
		  _aa[0].style.visibility = 'hidden';
	  }
	}
//	if ( _d.esp_count==0 ) _gBTC(_d, 'li', 'all_action')[0].style.visibility = 'hidden';
}

function espressomod_check_all(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };
  var _d = _gOb('mod_espresso_archive');
  for (var i = 0; i < _d.esp_imc.length; i++) {
    _d.esp_imc[i].checked = el.checked;
  }
  _d.checked_count = el.checked ? _d.esp_count : 0;
}

function espressomod_check_esp(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };
  var _d = _gOb('mod_espresso_archive');
  _d.checked_count += el.checked ? 1 : -1;
  _gOb('esp_check_all').checked = (_d.checked_count == _d.esp_count);
}

function espressomod_remove_esps(e) {
  var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };   (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
  var _c = _gOb('removeEspressosConfirm');
  var _d = _gOb('mod_espresso_archive');
  var _i = _gOb('esp_to_remove');
  var _z = [];
  if( _d.checked_count==0 || !confirm(_c.value) ){
    return false;
  }
  for (var i = 0; i < _d.esp_imc.length; i++) {
    if (_d.esp_imc[i].checked) _z[_z.length] = _d.esp_imc[i].id.split('_')[1];
  }
  _i.value = _z.join(',');
  el.submit();
}
