﻿// JScript File
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}

function findScrollLeft() {
	return filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function findScrollTop() {
	return filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}


function addEvent(obj,evType,fn,useCapture)
{
    var ret=false;
    if(obj!=null)
    {
        if(obj.addEventListener)
        {
            obj.addEventListener(evType,fn,useCapture);
            ret=true;
        }
        else 
        if(obj.attachEvent)
        {
            obj.attachEvent("on"+evType,fn);
            ret=true;
        }
    }
    return ret;
}

function removeEvent(obj,evType,fn,useCapture)
{
    var ret=false;
    if(obj!=null)
    {
        if(obj.removeEventListener)
        {
            obj.removeEventListener(evType,fn,useCapture);
            ret=true;
        }
        else 
        if(obj.attachEvent)
        {
            obj.detachEvent("on"+evType,fn);
            ret=true;
        }
    }
    return ret;
}


function ShowHideObject(objectid, show, style)
{
    if (show == null || show == undefined)
        show = true;
    
    if (style == null || style == undefined)
        style = 'block';
        
    var pObj = $get(objectid);
    
    if (!pObj)
        return;
        
    if (show) 
        pObj.style.display = style;
    else
        pObj.style.display = 'none';
}

function daysInMonth(month,year) 
{
    var dd = new Date(year, month, 0);
    return dd.getDate();
} 

function SetCheckBox(pId, checked)
{
    pCheck = $get(pId);
    if (pCheck)
       pCheck.checked = checked;
}

function RecursiveFind(pParent, objectType, pArray)
{
    if (!pArray)
        pArray = new Array();
        
    if (pParent.hasChildNodes())
        for (ii=0; ii < pParent.childNodes.length; ii++)
        {
            if (pParent.childNodes[ii].type == objectType)
                pArray.push(pParent.childNodes[ii].id);
                
            if (pParent.childNodes[ii].hasChildNodes())
                RecursiveFind(pParent.childNodes[ii], objectType, pArray)
        }
        
    return pArray;
}

function GetSelectedValuesFromList(pList)
{
    if (!pList)
        return new Array();
        
    var arr = new Array();
    for (var ii=0; ii < pList.length; ii++)
        if (pList[ii].selected)
            arr.push(pList[ii].value);
            
    return arr;
}

function GetMouseX(e)
{
	var posx=0;
	if (!e) 
		var e=window.event;
	
	if(e.pageX)
		posx=e.pageX;
	else 
		if(e.clientX&&document.body.scrollLeft)
			posx=e.clientX+document.body.scrollLeft;
		else 
			if(e.clientX&&document.documentElement.scrollLeft)
				posx=e.clientX+document.documentElement.scrollLeft;
			else 
				if(e.clientX)
					posx=e.clientX;
					
	return posx;
}

function GetMouseY(e)
{
    var posy=0;
    
    if(!e)
        var e=window.event;
        
    if(e.pageY)
        posy=e.pageY;
    else 
        if (e.clientY&&document.body.scrollTop)
            posy=e.clientY+document.body.scrollTop;
        else 
            if(e.clientY&&document.documentElement.scrollTop)
                posy=e.clientY+document.documentElement.scrollTop;
            else 
                if(e.clientY)
                    posy=e.clientY;
    return posy;
}


function findFromParent(parent, elementName)
{
    for (var ii=0; ii < parent.childNodes.length; ii++)
        if (parent.childNodes[ii] != null)
        {
            if (parent.childNodes[ii].id != null)
                if (parent.childNodes[ii].id.toLowerCase() == elementName.toLowerCase())
                    return parent.childNodes[ii];

            if (parent.childNodes[ii].childNodes.length > 0)
            {
                node = findFromParent(parent.childNodes[ii], elementName);
                if (node != null)
                    return node;
            }
        }
        
    return null;
}

function GetScreenHeight()
{
    if (self.innerHeight)
	    return self.innerHeight;
    if (document.documentElement && document.documentElement.clientHeight)
        return document.documentElement.clientHeight;
    if (document.body)
        return document.body.clientHeight;
}

function GetScreenCenter()
{
    //var x = (screen.availWidth ? screen.availWidth : screen.width);
    //var y = (screen.availHeight ? screen.availHeight : screen.height)
    
    return {x:(screen.availWidth ? screen.availWidth : screen.width), y:(screen.availHeight ? screen.availHeight : screen.height) };
}

function centerObject(obj)
{
    var center = GetScreenCenter();
    
    var width = (obj.width) ? obj.width : (obj.clientWidth) ? obj.clientWidth : 0;
    var height = (obj.height) ? obj.height : (obj.clientHeight) ? obj.clientHeight : 0;
    
    var x = (center.x - width) / 2;
    var y = (center.y - height) / 2;
   
    obj.style.left = x + 'px';
    obj.style.top = y + 'px';
}

function ConvertToJSID(inStr)
{
    inStr = inStr.toLowerCase();
    
    var outString = "";
    
    for (var ii = 0; ii < inStr.length; ii++)
        if (inStr.charCodeAt(ii) >= 97 && inStr.charCodeAt(ii) <= 122)
            outString += inStr.charAt(ii);
            
    return outString;
}

function getRandomNumber(maxNum)
{
  if (Math.random && Math.floor)
  {
    var ranNum= Math.floor(Math.random()*(maxNum));
    return ranNum;
  }
}

function disableEnterEventFire(event) 
{
    if (event.keyCode == 13)
    {
        var stopenter = true;
        
        if (event.srcElement && (event.srcElement.tagName.toLowerCase() == "textarea"))
            stopenter = false;
            
        if (event.target && (event.target.type.toLowerCase() == "textarea"))
            stopenter = false;
            
        if (stopenter)
        {
            event.cancelBubble = true;
		    if (event.stopPropagation) 
			    event.stopPropagation();
            return false;
        }
        
        return true;
    }
    
    return true;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
