/* **************************************************************  */
/* © 2007, I and only I                                            */
/* JavaScript tools fuctions                                       */
/* Specified for dariprosto.ru!                                    */
/* V1.0                                                            */
/* **************************************************************  */

//кроссбраузерная обработка событий
Event = (function() {
  var guid = 0
  function fixEvent(event) {
    event = event || window.event
    if ( event.isFixed ) {
      return event
    }
    event.isFixed = true
    event.preventDefault = event.preventDefault || function(){this.returnValue = false}
    event.stopPropagation = event.stopPropagaton || function(){this.cancelBubble = true}
    if (!event.target) {
        event.target = event.srcElement
    }
    if (!event.relatedTarget && event.fromElement) {
        event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;
    }
    if ( event.pageX == null && event.clientX != null ) {
        var html = document.documentElement, body = document.body;
        event.pageX = event.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);
        event.pageY = event.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0);
    }
    if ( !event.which && event.button ) {
        event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
    }
    return event
  }
  /* Вызывается в контексте элемента всегда this = element */
  function commonHandle(event) {
    event = fixEvent(event)
    var handlers = this.events[event.type]
    for ( var g in handlers ) {
      var handler = handlers[g]
      var ret = handler.call(this, event)
      if ( ret === false ) {
          event.preventDefault()
          event.stopPropagation()
      }
    }
  }
  return {
    add: function(elem, type, handler) {
      if (elem.setInterval && ( elem != window && !elem.frameElement ) ) {
        elem = window;
      }
      if (!handler.guid) {
        handler.guid = ++guid
      }
      if (!elem.events) {
        elem.events = {}
        elem.handle = function(event) {
          if (typeof Event !== "undefined") {
            return commonHandle.call(elem, event)
          }
        }
      }
      if (!elem.events[type]) {
        elem.events[type] = {}
        if (elem.addEventListener)
          elem.addEventListener(type, elem.handle, false)
        else if (elem.attachEvent)
          elem.attachEvent("on" + type, elem.handle)
      }
      elem.events[type][handler.guid] = handler
    },
    remove: function(elem, type, handler) {
      var handlers = elem.events && elem.events[type]
      if (!handlers) return
      delete handlers[handler.guid]
      for(var any in handlers) return
      if (elem.removeEventListener)
        elem.removeEventListener(type, elem.handle, false)
      else if (elem.detachEvent)
        elem.detachEvent("on" + type, elem.handle)
      delete elem.events[type]
      for (var any in elem.events) return
      try {
        delete elem.handle
        delete elem.events
      } catch(e) { // IE
        elem.removeAttribute("handle")
        elem.removeAttribute("events")
      }
    }
  }
}())



//------------------------------start base-----------------
var pos; // variable for posting information
var editid;
function loadXMLPosDoc(url,posData, parsefunc, id)
{
    editid=id;
    // branch for native XMLHttpRequest object
    if (window.ActiveXObject)
    {
          try
          {
            pos=new ActiveXObject("Msxml2.XMLHTTP")
          }
          catch (e)
          {
           try
           {
             pos=new ActiveXObject("Microsoft.XMLHTTP")
           }
           catch (e)
           {
            xmlhttplocal=false;
           }
          }

        if (pos) {
            if(parsefunc) pos.onreadystatechange = parsefunc;
            pos.open("POST", url, false);
            pos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            pos.send(posData);
        }
    }
    else if (window.XMLHttpRequest && (typeof XMLHttpRequest!='undefined'))
    {
        pos = new XMLHttpRequest();
        if(parsefunc) pos.onreadystatechange = parsefunc;
        force_sync = false;
        pos.open("POST", url, !force_sync);
        pos.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        pos.send(posData);
        // branch for IE/Windows ActiveX version
    }

}

function grabPosXML (tagName)
{
        try
        {
                return pos.responseXML.documentElement.getElementsByTagName(tagName)[0].childNodes[0].nodeValue;
        }
        catch (e)
        {
                return ''
        }
}


function processPosChange(parsefunc)
{
  // page loaded 'complete'
  if (pos.readyState == 4)
  {
    // page is 'OK'
    if (pos.status == 200)
    {
      try
      {
      // рез-ты
      }
      catch(e)
      {
      //Exception handled
      }
    }
  }
}
//-----------------------------end base-----------------
function ReturnResLine()
{
  if (pos.readyState == 4)
  {
    if (pos.status == 200)
    {
      document.getElementById('ReturnInfoLine').innerHTML=pos.responseText;
    }
  }
}
function ReturnResMonth()
{
  if (pos.readyState == 4)
  {
    if (pos.status == 200)
    {
      document.getElementById('ReturnInfoMonth').innerHTML=pos.responseText;
    }
  }
}

function Mediabar_list(nn)
{
  data="n="+nn;
  loadXMLPosDoc("/mediabar.php", data, ReturnResMediaBar);
}
function ReturnResMediaBar()
{
  if (pos.readyState == 4)
  {
    if (pos.status == 200)
    {
      document.getElementById('ReturnInfoMediaBar').innerHTML=pos.responseText;
    }
  }
}
function PhotoTop_list(id,mid,viewid,to,num)
{
  data="id="+id;
  data=data+"&mid="+mid;
  data=data+"&viewid="+viewid;
  data=data+"&to="+to;
  data=data+"&num="+num;
  loadXMLPosDoc("/phototop.php", data, ReturnResPhotoTop);
}
function PhotoTop_del(id,mid,viewid,to,num,aid)
{
  data="id="+id;
  data=data+"&mid="+mid;
  data=data+"&viewid="+viewid;
  data=data+"&to="+to;
  data=data+"&num="+num;
  data=data+"&delmy="+aid;
  loadXMLPosDoc("/phototop.php", data, ReturnResPhotoTop);
}
function PhotoTop_add(id,mid,viewid,to,num,text,x,y,w,h,me)
{
  data="id="+id;
  data=data+"&mid="+mid;
  data=data+"&viewid="+viewid;
  data=data+"&to="+to;
  data=data+"&num="+num;
  if(me==1) data=data+"&addme=true";
  else data=data+"&addselect=true";
  data=data+"&text="+text;
  data=data+"&x="+x;
  data=data+"&y="+y;
  data=data+"&w="+w;
  data=data+"&h="+h;

  loadXMLPosDoc("/phototop.php", data, ReturnResPhotoTop);
}
function ReturnResPhotoTop()
{
  if (pos.readyState == 4)
  {
    if (pos.status == 200)
    {
      $('img#imgp').imgAreaSelect({hide:true});
      document.getElementById('ReturnInfoPhotoTop').innerHTML=pos.responseText;
      $('img#imgp').imgAreaSelect({ selectionOpacity: 0, instance: true, handles: true, onSelectChange: selectChange});
    }
  }
}

function GetTopMenuRight()
{
  loadXMLPosDoc('/user_request.php','TopMenuRight=true', ShowTopMenuRight);
}

function ShowTopMenuRight()
{
  if (pos.readyState == 4)
  {
    if (pos.status == 200)
    {
      document.getElementById("TopMenuRight").innerHTML=pos.responseText;
    }
  }
}


