//<!--

// Именованные объекты
var objArbImgShow, objArbHeader, objArbPicture, objhiddenImg, objArbTblMain,
	objArbPrlShow, objArbDscShow, objArbFonShow;

// Для реализации единичного вызова initAP_config
var initSet_pictShow=true;

function init_arbConfig(){
   objArbImgShow = document.getElementById("layer_arbImgShow");
   objArbPrlShow = document.getElementById("layer_arbPrlShow");
   objArbDscShow = document.getElementById("layer_arbDscShow");
   objArbFonShow = document.getElementById("layer_arbFonShow");
   
   objArbHeader = document.getElementById("id_arbHeader");
   objArbPicture = document.getElementById("id_arbPicture");
}

function arb_pictShow_on(add_url,pictDesc){

   //if (ID==tekID) {objArbPicture.innerHTML = '<img  src="'+addURL+'" alt="" border="0">';}
   //if (ID==tekID) return;
   //tekID = ID;
   
   	if (initSet_pictShow) {
    	init_arbConfig();
      	initSet_pictShow = false;
   	}
	
	addHandler(window,'resize',reSizeAndShow);
	addHandler(window,'scroll',reSizeAndShow);

	addHandler(objArbPicture,'load',getSizeAndShow);
	addHandler(objArbImgShow,'click',arb_pictShow_off);
	addHandler(objArbFonShow,'click',arb_pictShow_off);
	
 
	setObjPozition(objArbFonShow,'fon');
	setElementOpacity(objArbFonShow, 50);
	objArbFonShow.style.display='block';
	
	objArbDscShow.style.height = 0 + 'px';
	setObjPozition(objArbPrlShow,'prl');
 	objArbPrlShow.style.display='block';

    objArbDscShow.innerHTML = '<div class="class_arbPictDesc">'+pictDesc+'</div>';
	
	objhiddenImg= new Image();
	objhiddenImg.src= add_url;

	objArbPicture.src = objhiddenImg.src;
}

function arb_pictShow_off(){
	objArbDscShow.style.display = 'none';
   	objArbImgShow.style.display = 'none';
   	objArbPrlShow.style.display = 'none';
   	objArbFonShow.style.display = 'none';

	removeHandler(window,'resize',reSizeAndShow);
	removeHandler(window,'scroll',reSizeAndShow);

   	removeHandler(objArbPicture,'load',getSizeAndShow);
   	removeHandler(objArbImgShow,'click',arb_pictShow_off);
	removeHandler(objArbFonShow,'click',arb_pictShow_off);
}

function setObjPozition(obj,type){
	var left,top,width,height;
	if (typeof obj!="object") return 0;
	if (type == "fon") {
		left=getScrollXY().scrOfX;
		top=getScrollXY().scrOfY;
		width=screenSize().w;
		height=screenSize().h;
	}else if (type == "img") {
		width = (objhiddenImg.width||0)+60;
		height = (objhiddenImg.height||0)+60;
		left = screenSize().w/2 + getScrollXY().scrOfX - width/2;
	   	top = screenSize().h/2 + getScrollXY().scrOfY - height/2;
		if (left<0) left=0;
		if (top<0) top=0;
	}else if (type == "dsc"){
		left = getBounds(objArbImgShow).left;
   		top = getBounds(objArbImgShow).top + getBounds(objArbImgShow).height-(parseInt(objArbDscShow.style.height)||0);
	}else if(type == "prl"){
		width = 100;
		height = 100;
		left = screenSize().w/2 + getScrollXY().scrOfX - width/2;
	   	top = screenSize().h/2 + getScrollXY().scrOfY - height/2;
		if (left<0) left=0;
		if (top<0) top=0;
	}

	if (typeof (left) == 'number') obj.style.left=left+'px';
	if (typeof (top) == 'number') obj.style.top=top+'px';
	if (typeof (width) == 'number') obj.style.width=width+'px';
	if (typeof (height) == 'number') obj.style.height=height+'px';
}

function reSizeAndShow(){
	if (objArbFonShow.style.display != 'none') setObjPozition(objArbFonShow,'fon');
	if (objArbImgShow.style.display != 'none') setObjPozition(objArbImgShow,'img');
	if (objArbDscShow.style.display != 'none') setObjPozition(objArbDscShow,'dsc');
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return { scrOfX:scrOfX, scrOfY:scrOfY };
}

function getSizeAndShow(){
	setObjPozition(objArbImgShow,'img');
   	setElementOpacity(objArbImgShow, 1);
   	objArbPrlShow.style.display='none';
   	objArbImgShow.style.display='block';
   	ShowSmoothOpacity (objArbImgShow,100,5);
   	setSubscribtion(45);
}


function setSubscribtion(size){
	setObjPozition(objArbDscShow,'dsc');
   	objArbDscShow.style.width = getBounds(objArbImgShow).width + 'px';
   	objArbDscShow.style.height = 0 + 'px';
	objArbDscShow.style.overflow = 'hidden';
    setElementOpacity(objArbDscShow, 60);
	objArbDscShow.style.display='block';
	ShowSmoothHeight(objArbDscShow,size);
}

function ShowSmoothHeight(obj, hBlock) 
{
	var height = parseInt(obj.style.height||0);
	var top = parseInt(obj.style.top||0)
   	if (height <= hBlock) {
		obj.style.height = (height + 2) + 'px';
	  	obj.style.top = (top - 2) + 'px';
      	setTimeout (function(){ShowSmoothHeight(obj, hBlock)}, 10);
   }
}

function ShowSmoothOpacity(obj,opacityEnd,step) 
{
	var op = (obj.style.opacity)?parseFloat(obj.style.opacity)*100:parseInt((obj.filters['DXImageTransform.Microsoft.alpha'].opacity || obj.filters.alpha.opacity));
   if (op > 0 && op < opacityEnd) {
	  op += step;
	  setElementOpacity(obj,op);
	  
      setTimeout (function(){ShowSmoothOpacity(obj, opacityEnd,step)}, 10);
   }else{
	  setElementOpacity(obj,opacityEnd);
   }
}

function getBounds(element)
{
  var left = element.offsetLeft;
  var top = element.offsetTop;
  for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
  {
    left += parent.offsetLeft //- parent.scrollLeft;
    top += parent.offsetTop //- parent.scrollTop
  }
  return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}

function screenSize() {
      var w, h; // Объявляем переменные, w - длина, h - высота
      w = (window.innerWidth ? window.innerWidth : (document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.offsetWidth));
      h = (window.innerHeight ? window.innerHeight : (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.offsetHeight));
      return {w:w, h:h};
}


function setElementOpacity(elem, nOpacity)
{
  var opacityProp = getOpacityProperty();
  
  if (!elem || !opacityProp) return false; // Если не существует элемент с указанным id или браузер не поддерживает ни один из известных функции способов управления прозрачностью
  
  if (opacityProp=="filter")  // Internet Exploder 5.5+
  {
    // Если уже установлена прозрачность, то меняем её через коллекцию filters, иначе добавляем прозрачность через style.filter
    var oAlpha = elem.filters['DXImageTransform.Microsoft.alpha'] || elem.filters.alpha;
    if (oAlpha) oAlpha.opacity = nOpacity;
    else elem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+nOpacity+")"; // Для того чтобы не затереть другие фильтры используем "+="
  }
  else // Другие браузеры
  {
    elem.style[opacityProp] = nOpacity/100;
  }
  return true;
}

function getOpacityProperty()
{
  if (typeof document.body.style.MozOpacity == 'string') // Mozilla 1.6 и младше, Firefox 0.8 
    return 'MozOpacity';
  else if (typeof document.body.style.KhtmlOpacity == 'string') // Konqueror 3.1, Safari 1.1
    return 'KhtmlOpacity';
  else if (typeof document.body.style.opacity == 'string') // CSS3 compliant (Moz 1.7+, Safari 1.2+, Opera 9)
    return 'opacity';
  else if (document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5) // Internet Exploder 5.5+
    return 'filter';

  return false; //нет прозрачности
}

function addHandler(object, event, handler, useCapture) {
      if (object.addEventListener) {
            object.addEventListener(event, handler, useCapture ? useCapture : false);
      } else if (object.attachEvent) {
            object.attachEvent('on' + event, handler);
      } else alert("Add handler is not supported");
}

function removeHandler(object, event, handler) {
      if (object.removeEventListener) {
            object.removeEventListener(event, handler, false);
      } else if (object.detachEvent) {
            object.detachEvent('on' + event, handler);
      } else alert("Remove handler is not supported");
}

function getElementComputedStyle(elem, prop) {
  if (typeof elem!="object") elem = document.getElementById(elem);
  
  // external stylesheet for Mozilla, Opera 7+ and Safari 1.3+
  if (document.defaultView && document.defaultView.getComputedStyle)
  {
    if (prop.match(/[A-Z]/)) prop = prop.replace(/([A-Z])/g, "-$1").toLowerCase();
    return document.defaultView.getComputedStyle(elem, "").getPropertyValue(prop);
  }
 
  // external stylesheet for Explorer and Opera 9
  if (elem.currentStyle)
  {
    var i;
    while ((i=prop.indexOf("-"))!=-1) prop = prop.substr(0, i) + prop.substr(i+1,1).toUpperCase() + prop.substr(i+2);
    return elem.currentStyle[prop];
  }

  return "";
}
//-->
