/////////////////////////////////////////////////////////////////////
//
// Функция определяет координаты курсора
//
/////////////////////////////////////////////////////////////////////

function mousePageXY(e) {

    var x = 0, y = 0;
    if(!e)
        e = window.event;

    if (e.pageX || e.pageY)  {
        x = e.pageX;
        y = e.pageY;
    }  else if (e.clientX || e.clientY) {
        x = e.clientX + (document.documentElement.scrollLeft ||
    document.body.scrollLeft) - document.documentElement.clientLeft;
    y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
  }
//alert("x="+x+", y="+y);
  return {"x":x, "y":y};
}

/////////////////////////////////////////////////////////////////////
//
// Функция определяет координаты элемента
//
/////////////////////////////////////////////////////////////////////

function elementPosition(_element) {

   if(typeof(_element)=="string") 
      elem = document.getElementById(_element);
   else 
      elem=_element;

   var w = elem.offsetWidth;
   var h = elem.offsetHeight;
   var l = 0;
   var t = 0;

   // в цикле проходим по всем родительским элементам.
   while (elem) {
      l += elem.offsetLeft;
      t += elem.offsetTop;
      elem = elem.offsetParent;
   }

   x1 = l;
   x2 = l + w;
   y1 = t;
   y2 = t + h;

   return {"x1":x1, "x2":x2, "y1":y1, "y2":y2};
}

/////////////////////////////////////////////////////////////////////
//
// Функция отслеживает место щелчка мышки, и закрывает селекты
//
/////////////////////////////////////////////////////////////////////

function close_all_selects(event) {
    coords = mousePageXY(event);

    if(document.getElementById("select1").style.display == "block") {
       close_my_select("select1", coords);
    }
    if(document.getElementById("select2").style.display == "block") {
       close_my_select("select2", coords);
    }
    if(document.getElementById("select3").style.display == "block") {
       close_my_select("select3", coords);
    }
    if(N_black > 0) {
        for(i=4; i < 4 + N_black; i++) {
            close_my_select("select"+i, coords);
        }
    }
}

/////////////////////////////////////////////////////////////////////
//
// Функция отслеживает место щелчка мышки, и закрывает селект
//
/////////////////////////////////////////////////////////////////////

function close_my_select(id, coords) {
    
    if(document.getElementById(id).style.display == "none") 
        return;

    // Если щелчек на переключателе селекта - ничего не делаем
    div = elementPosition("sel_img_"+id);
    if(coords.x >= div.x1 && coords.x <= div.x2 && coords.y >= div.y1 && coords.y <= div.y2) {
        return;
    }

    // Если щелчек вне области селекта - закрываем селект
    div = elementPosition(id);
    if(coords.x < div.x1 || coords.x > div.x2 || coords.y < div.y1 || coords.y > div.y2) {
        document.getElementById(id).style.display = "none";
    }
}
/////////////////////////////////////////////////////////////////////