var _drag = null;
var _drag_tx = 0;
var _drag_ty = 0;
var _size = null;
var _size_ty = null;
var _size_h;
var _groups = new Array();
var DefaultExt = 'gif';

function nop()
{
  return void(0);
}

function handleGroup_(group, id, state, ext, states)
{
  if (!ext)
  {
    ext = DefaultExt;
  }
  if (!states)
  {
    states = 2;
  }
  if (!_groups[group])
  {
    _groups[group] = "";
  }
  img = dhtmlFindElement(id);
  if (!img) return false;
  img_src = dhtmlGetAttribute(img,'src');
  if (!img_src)
  {
    //alert(group+', '+id+', '+state+' error');
    return false;
  }
  img_src = img_src.substr(0,img_src.length-6);
  //window.status = group+', '+id+', '+state+', '+img_src;
  if (state=="over")
  {
    if (_groups[group] != img.id)
    {
      dhtmlSetAttribute(img,'src',img_src+"f2."+ext);
    }
  }
  if (state=="out")
  {
    if (_groups[group] != img.id)
    {
      dhtmlSetAttribute(img,'src',img_src+"f1."+ext);
    }
  }
  if (state=="click")
  {
    if (states==3)
    {
      dhtmlSetAttribute(img,'src',img_src+"f3."+ext);
     // alert(group+', '+id+', '+img_src);
    } else
    {
      dhtmlSetAttribute(img,'src',img_src+"f2."+ext);
     // alert(group+', '+id+', '+img_src);
    }
    if (_groups[group]!="" && _groups[group]!=img.id)
    {
      img_src = dhtmlGetAttribute(_groups[group],'src');
      img_src = img_src.substr(0,img_src.length-6);
      dhtmlSetAttribute(_groups[group],'src',img_src+"f1."+ext);
    }
    _groups[group] = img.id;
  }
  return true;
}


function handleGroup(group, id, state, ext, states)
{
  if (!ext)
  {
    ext = DefaultExt;
  }
  if (!states)
  {
    states = 3;
  }
  if (!_groups[group])
  {
    _groups[group] = "";
  }
  handleGroup_(group, id, state, ext, states);
}


function handleStyleHover(elm, state)
{
  if (!elm) return;
  var style = elm.className;
  style = style.replace(/hover/,"");
  if (state=='over')
  {
    elm.className = style + "hover";
  }
  if (state=='out')
  {
    elm.className = style;
  }  
}


function handleImageHover(img, state, ext)
{
  img_ = dhtmlFindElement(img);
  if (!img_) return;
  var img_src = img_.src;
  img_src = img_src.substr(0,img_src.length-6);
  if (!ext)
  {
    ext = DefaultExt;
  }  
  if (state=='over')
  {
    img_.src = img_src+"f2."+ext;
  }
  if (state=='out')
  {
    img_.src = img_src+"f1."+ext;
  }  
}


function handleElementMove(element)
{
  elm = dhtmlFindElement(element);
  if (!elm) return;
  _drag = elm;
  _drag_tx = dhtmlMouseX() - dhtmlGetAttribute(_drag,"X");   
  _drag_ty = dhtmlMouseY() - dhtmlGetAttribute(_drag,"Y");
  if (dhtmlIE) _drag.setCapture();
  document.onmousemove = handleElementMoveMove;
  document.onmouseup = handleElementMoveUp;
}

function handleElementMoveMove(e)
{
 if (_drag!=null)
 {
  _dhtmlMouse(e);
  if (dhtmlMouseX_ >= 0 && dhtmlMouseY_ >= 0)
  {
    dhtmlSetAttribute(_drag,"X", dhtmlMouseX_ - _drag_tx);
    dhtmlSetAttribute(_drag,"Y", dhtmlMouseY_ - _drag_ty);
  }
 }
 return false;
}

function handleElementMoveUp(e)
{
 document.onmousemove = null;
 document.onmouseup = null;
 if (dhtmlIE) _drag.releaseCapture(); 
 _drag = null;
 _drag_tx = 0;
 _drag_ty = 0;
 dhtmlMouseInit();
}


function handleElementSize(element)
{
  window.status = element;
  elm = dhtmlFindElement(element);
  if (!elm) return;
  _size = elm;
  _size_ty = null;
  _size_h = dhtmlGetAttribute(_size,"HEIGHT");
  document.onmousemove = handleElementSizeMove;
  document.onmouseup = handleElementSizeUp;
}

function handleElementSizeMove(e)
{
 if (_size!=null)
 {
  _dhtmlMouse(e);
  if (dhtmlMouseY_==null) return; 
  if (_size_ty==null) _size_ty = dhtmlMouseY_;
  var size = (_size_h + (dhtmlMouseY_ - _size_ty));
  if (size<100) size = 100;
  if (size>500) size = 500;
  //window.status = _size_h + ' + ' + dhtmlMouseY_ + ' - ' + _size_ty;
  dhtmlSetAttribute(_size,"HEIGHT", size); 
 }
}

function handleElementSizeUp(e)
{
 document.onmousemove = null;
 document.onmouseup = null;
 _size = null;
 _size_ty = 0;
 dhtmlMouseInit();
}


function addUrl(url,add)
{
 var url_ = url.split('?');
 var result = '';
 if (url_.length==1)
 {
  result = url_[0] + '?' + add;
 } else
 {
  var qs = parseQueryString(url_[1]);
  var addqs = parseQueryString(add);
  for (var name in addqs)
  {
    qs[name] = addqs[name];
  }
  result = url_[0] + '?' + getQueryString(qs);
 }
 return result;
}


function parseQueryString(qs)
{
 if (qs=='') return '';
 var items = new Array();
 var query = new Array();
 var pair = new Array();
 items = qs.split('&');
 for (i=0; i<items.length; i++)
 {
  pair = items[i].split('=');
  query[pair[0]] = pair[1];
  for(j=2; j<pair.length; j++)
  {
   query[pair[0]] = query[pair[0]] + '=' + pair[j];
  }
 } 
 return query;
}


function getQueryString(qs)
{
 var result = '';
 var i = 0;
 for (var name in qs)
 {
  result = result + name + '=' + escape(qs[name]) +'&';
  i++;
 }
 if (result.length>0) result = result.substr(0,result.length-1);
 return result;
}
