﻿function XUtils() {}
var g_elementTypes = new Array();
XUtils.createElement = function(elementType) { if(!g_elementTypes[elementType]) g_elementTypes[elementType] = document.createElement(elementType); return g_elementTypes[elementType].cloneNode(true); }
XUtils.deleteNode = function (node) { node.parentNode.removeChild(node); }
XUtils.isAncestorNode = function(ancestorNode, childNode) { var node = childNode.parentNode; while (node != null) { if (node == ancestorNode) return true; node = node.parentNode; } return false; }
XUtils.addEventListener = function (object, eventType, notifyFunction) { if (XUtils.isIE()) object.attachEvent("on" + eventType, notifyFunction); else object.addEventListener(eventType, notifyFunction, false); }
XUtils.removeEventListener = function (object, eventType, notifyFunction) { if (XUtils.isIE()) object.detachEvent("on" + eventType, notifyFunction); else object.removeEventListener(eventType, notifyFunction, false); }
XUtils.getEventPosition = function(evt) { var posx = 0; var posy = 0; if (!evt) evt = window.event; if (evt.pageX || evt.pageY) { posx = evt.pageX; posy = evt.pageY; } else if (evt.clientX || evt.clientY) { posx = evt.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; posy = evt.clientY + document.body.scrollTop + document.documentElement.scrollTop; } var pos=new Array(); pos[0]=posx; pos[1]=posy; return pos; }
XUtils.getEventKey = function(evt) { if (!evt) evt = window.event; var code = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0)); return code; }
XUtils.isPointInDiv = function(x, y, div) { if (((x >= div.offsetLeft) && (x <= div.offsetLeft + div.offsetWidth)) && ((y >= div.offsetTop) && (y <= div.offsetTop + div.offsetHeight))) return true; else return false; }
XUtils.getAbsoluteLeft = function(obj) { var left = obj.offsetLeft; while(obj.offsetParent!=null) { obj=obj.offsetParent; left=left + obj.offsetLeft; } return left; }
XUtils.getAbsoluteTop = function(obj)
{
    var somaTopOffset = 0;
    var somaScrollOffset = 0;
    var objTemp = obj;
    somaTopOffset = objTemp.offsetTop;
    somaScrollOffset = (obj.scrollTop || 0);
    while(objTemp.offsetParent != null) { objTemp = objTemp.offsetParent; somaTopOffset += (objTemp.offsetTop || 0); }
    while(obj.parentNode != null) { obj = obj.parentNode; if (document != null) if (document.body != null) if (obj.tagName != null) if (obj.tagName != 'HTML') somaScrollOffset += (obj.scrollTop || 0); }
    return (somaTopOffset - somaScrollOffset);
    /*
    var top=obj.offsetTop;
    while (obj.offsetParent!=null)
    {
        obj=obj.offsetParent;
        top=top + obj.offsetTop;
        
        if (obj.scrollTop)
        {
            alert(obj.scrollTop);
        }
    }
    return top;
    */
}
XUtils.overlayIFrame = function(div) { div.style.zIndex=div.style.zIndex+1; var iFrame=XUtils.createElement("IFRAME"); iFrame.setAttribute("src", ""); iFrame.style.position="absolute"; iFrame.style.left   = div.style.left; iFrame.style.top    = div.style.top; iFrame.style.width  = div.offsetWidth + 'px'; iFrame.style.height = div.offsetHeight + 'px'; div.parentNode.appendChild(iFrame); return iFrame; }
XUtils.combineWithIFrame = function(div) { var divContainer=XUtils.createElement("div"); divContainer.style.position="absolute"; divContainer.style.left   = div.style.left; divContainer.style.top    = div.style.top; divContainer.style.width  = div.clientWidth + 'px'; divContainer.style.height = div.clientHeight + 'px'; var iFrame=XUtils.createElement("IFRAME"); iFrame.setAttribute("src", ""); iFrame.style.position="absolute"; iFrame.style.left   = "0px"; iFrame.style.top    = "0px"; iFrame.style.width  = '100%'; iFrame.style.height = '100%'; divContainer.appendChild(iFrame); var parentNode=div.parentNode; parentNode.removeChild(div); divContainer.appendChild(div); div.style.left   = "0px"; div.style.top    = "0px"; div.style.width  = "100%"; div.style.height = "100%"; parentNode.appendChild(divContainer); return divContainer; }
XUtils.getIncludeScriptDir = function(fileName) { var scripts=document.getElementsByTagName("script"); var path; var regExp=new RegExp(fileName + "\\.js(\\?.*)?$"); for (var i = 0; i < scripts.length; i++) { path = scripts[i].getAttribute("src"); if (path && path.match(regExp)) { var dir = path.replace(regExp, ''); return dir; } } return null; }
XUtils.isIE = function() { return ( navigator.appName=="Microsoft Internet Explorer" ); }
XUtils.isFireFox = function() { return ( navigator.appName=="Netscape" ); }
function AC_retID(elementID) { return document.getElementById(elementID); }
var g_monthNames = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
var g_dayNames = new Array( 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
XUtils.padLeft=function(text, length, padChar) { var numPadChars=length - text.toString().length; var result=""; for (count=0; count<numPadChars; count++) { result=result + padChar; } result=result+text; return result; }
XUtils.formatDateTime=function(date, format){ var result=""; result=format.replace(/(ampm|yyyy|mmmm|mmm|mm|dddd|ddd|dd|hh|nn|ss\/p)/gi, function($1) { var text; switch ($1.toLowerCase()) { case 'ampm': text=date.getHours() < 12 ? 'am' : 'pm'; break; case 'yyyy': text=date.getFullYear(); break; case 'mmmm': text=g_monthNames[date.getMonth()]; break; case 'mmm': text=g_monthNames[date.getMonth()].substr(0, 3); break; case 'mm': text=(date.getMonth() + 1); text=Utils.padLeft(text, 2, '0'); break; case 'dddd': text=g_dayNames[date.getDay()]; break; case 'ddd': text=g_dayNames[date.getDay()]; text=Utils.padLeft(text, 3, '0'); break; case 'dd': text=date.getDate(); text=XUtils.padLeft(text, 2, '0'); break; case 'hh': text=(h = date.getHours() % 12) ? h : 12; text=XUtils.padLeft(text, 2, '0'); break; case 'nn': text=date.getMinutes(); text=XUtils.padLeft(text, 2, '0'); break; case 'ss': text=date.getSeconds(); text=XUtils.padLeft(text, 2, '0'); break; } return text; }); return result; }
XUtils.cleanTime=function(dt) { var newTime=new Date(Date.parse("1/1/1900")); newTime.setHours(dt.getHours()); newTime.setMinutes(dt.getMinutes()); return newTime; }
XUtils.setSelectedOption=function(ddl, selValue){ var optionValue; for (var count=0; count < ddl.length; count++) { optionValue=ddl.options[count].value; if (optionValue==selValue) { ddl.options[count].selected=true;break; } } }
XUtils.getSelectedRadioValue = function(radioButtonList) { var options = radioButtonList.getElementsByTagName('input'); var opt; for(i=0; i<options.length; i++) { var opt = options[i]; if(opt.checked) { return opt.value; } } return null; }
XUtils.getSelectedOptionValue = function(ddl) { return ddl.options[ddl.selectedIndex].value; }
XUtils.copyDDLValue = function(fromID, toID) { ddlFrom=AC_retID(fromID); ddlTo=AC_retID(toID); selValue=XUtils.getSelectedOptionValue(ddlFrom); XUtils.setSelectedOption(ddlTo, selValue); }
XUtils.copyTextBoxValue = function (fromTextBoxID, toTextBoxID) { AC_retID(toTextBoxID).value=AC_retID(fromTextBoxID).value; }
XUtils.checkAll = function(ctrlID, checked) { var checkBox; var checkBoxID; var count=0; while (true) { checkBoxID=ctrlID + "_" + count; checkBox=AC_retID(checkBoxID); if (checkBox==null) break; checkBox.checked=checked; count=count+1; } }
XUtils.removeElementAt = function( array, index ) { array = array.splice(index,1); }
XUtils.getScreenResolution = function() { return ( screen.width + " x " +  screen.height) }

if(typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();