﻿/*****************************************************************************
//
// Copyright (C) Beeline. All rights reserved.
//
// ModuleName:          AdminForHour
//
// FileName:            /_js/Common.js
//
// Author:              SILabutin
//
// Description:         Common functions
//
//*****************************************************************************/

//Отображение всех свойств переданного объекта (в новом окне)
function prop(obj) {
  wnd = window.open();
  for(i in obj) {
    wnd.document.write(i + " = " + obj[i] + "<br>");
  }
}

//Присваивание события, позволяет осуществлять "грамотную" подписку на событие - когда в обработчике события используется ключевое слово "this"
//Пример использования: document.onmousemove = this.onResize.bindEvent(this); 
Function.prototype.bindEvent = function(object) {
    var method = this;
    //Получается, что объект "object" вызывает функцию "method" с параметром "evt"
    //object.method(evt)
    return function(evt) {method.call(object, evt ? evt : window.event); }
}

//Возвращает верхнюю координату элемента
function getTopPosition(obj)
{
    var y=0;
    while (obj)
    {
        y += obj.offsetTop; 
        obj = obj.offsetParent;
    }
    return y;
}

//Возвращение элемента, вызвавшего событие
function getEventSourceElement(e) 
{
	if (typeof(window.event)!="undefined")
	{
		return window.event.srcElement;
	}
	if (e!=null && typeof(e.target)!="undefined")
	{
		return e.target;
	}
	return null;
}

//Центрирование и подгонка размера окна под содержимое
function resizeWin()
{
	if (window.opener) 
	{
        var h=document.body.scrollHeight+80;
        var sh=screen.height-50;
        if(h>sh) {h=sh;}
        window.resizeTo(document.body.scrollWidth+28,h);
        window.moveTo((screen.width-document.body.offsetWidth-8)/2,(screen.height-h-27)/2);
	}
}