﻿// JScript File
function ClickButton(e, formID, buttonID)
{
    e = e ? e : window.event ? event : null
    if (e)
    {
        var keyCode = e.keyCode ? e.keyCode : e.charCode ? e.charCode : e.which ? e.which : void 0;
        if (keyCode == 13)
        {
            try
            {
                //var button = eval('document.'+formID+'.'+buttonID);
		var button = document.getElementById(buttonID);
                if (button && button.click)
                {
                    button.click();
                }
            }
            catch (e)
            {
                //alert(e);
            }
            return false;
        }
    }
}
function getElementsByClassName(classname) { 
   var my_array = document.getElementsByTagName("*"); 
   var retvalue = new Array(); 
   var i; 
   var j; 

   for (i=0,j=0;i<my_array.length;i++) { 
      var c = " " + my_array[i].className + " "; 
      if (c.indexOf(" " + classname + " ") != -1) retvalue[j++] = my_array[i]; 
   } 
   return retvalue; 
} 
var __eventListeners = [];
function addAREventListener(instance, eventName, listener) 
{
    var listenerFn = listener;
    if (instance.addEventListener) {
        instance.addEventListener(eventName, listenerFn, false);
    } else if (instance.attachEvent) {
        listenerFn = function() {
            listener(window.event);
        }
        instance.attachEvent("on" + eventName, listenerFn);
    } else {
        //throw new Error("Event registration not supported");
        alert("Registration not supported! instance:" + instance + " eventname: " + eventName);
    }
    var event = {
        instance: instance,
        name: eventName,
        listener: listenerFn
    };
    __eventListeners.push(event);
    return event;
}
function removeEventListener(event) 
{
    var instance = event.instance;
    if(instance)
    {
	if (instance.removeEventListener) {
	    instance.removeEventListener(event.name, event.listener, false);
	} else if (instance.detachEvent) {
            instance.detachEvent("on" + event.name, event.listener);
	}
	for (var i = 0; i < __eventListeners.length; i++) {
	    if (__eventListeners[i] == event) {
		__eventListeners.splice(i, 1);
		break;
	    }
	}
    }
}
function unregisterAllEvents() 
{
    while (__eventListeners.length > 0) {
        removeEventListener(__eventListeners[0]);
    }
}
function getEventTarget(e) 
{
    var target;
    if (e)
    {
        if (e.target) 
        {
            target = e.target;
        }
	else if (e.srcElement) 
	{
	    target = e.srcElement;
	}
	
	if (target && target.nodeType == 3) //defeat safari bug
	{
	    target = target.parentNode;
	}
    }
    return target;
}
function findX(element)
{
    var x = 0;
    if(element.offsetParent)
        while(true) 
        {
          x += element.offsetLeft;
          if(!element.offsetParent)
            break;
          element = element.offsetParent;
        }
    else if(element.x)
        x += element.x;
    return x;
}
function findY(element)
{
    var y = 0;
    if(element.offsetParent)
        while(true)
        {
          y += element.offsetTop;
          if(!element.offsetParent)
            break;
          element = element.offsetParent;
        }
    else if(element.y)
        y += element.y;
    return y;
}
function getClientWidth() 
{
	return filterClientInfo (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function getClientHeight() 
{
	return filterClientInfo (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function getScrollLeft() 
{
	return filterClientInfo (
		window.pageXOffset ? window.pageXOffset : 100,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function getScrollTop() 
{
	return filterClientInfo (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function filterClientInfo(win, doc, body) 
{
	var retVal = win ? win : 0;
	if (doc && (!retVal || (retVal > doc)))
		retVal = doc;
	return body && (!retVal || (retVal > body)) ? body : retVal;
}


