﻿var ie = document.all;

var classAttribute = "class";

if (ie)
{
    classAttribute = "className";
}

function getParentNode(element)
{
	if (Browser.isIE)
		return element.parentElement;
	else
		return element.parentNode;
}

function getScreenCoordinates(e)
{
	if (Browser.isIE)
		return [e.clientX, e.clientY];
	return [e.screenX, e.screenY];
}

function ClearChildElements(element)
{
	$(element).empty();
}

function getScrollOffsets(element)
{
	var scrollTop = 0;
	var scrollLeft = 0;
	while (element != null)
	{
		scrollTop += parseInt(element.scrollTop);
		scrollLeft += parseInt(element.scrollLeft);
		element = getParentNode(element);
	}

	return [scrollLeft, scrollTop];
}

function SetElementStyle(htmlElement, value)
{
	$(htmlElement).attr("style", value);
}


function GetElementStyle(htmlElement)
{
	return $(htmlElement).attr("style");
}

function GetObjectStyle(obj)
{
	return $(obj).attr("style");
}

function GetEvent(e)
{
    if (e == null) { e = window.event; htype="move";} 
    
    return e;
}

function GetTarget(e)
{
    return e.target != null ? e.target : e.srcElement;
}


function findPos(obj)
{
    var posX = 0;
    var posY = 0;
    
    posX = parseInt(obj["offsetLeft"]);
    
    if (obj.style["paddingLeft"] == null)
        posX += parseInt(obj.style["paddingLeft"]);
        
    //if (!obj.style["paddingTop"] == null)
        posY = parseInt(obj["offsetTop"]);
        
        if (obj.style["paddingTop"] == null)
        posX += parseInt(obj.style["paddingTop"]);
        
    while(obj.offsetParent)
    {
        posX=posX+obj.offsetParent.offsetLeft;
        posY=posY+obj.offsetParent.offsetTop;
        obj=obj.offsetParent;
    }
    
    var posArray=[posX,posY]
    return posArray;
}


function cancelEvent(e)
{
    e = GetEvent(e);
    e.returnValue = false;
}

function CheckIfNumber(e)
{
    try
    {
        e = GetEvent(e);
	    KC = e.keyCode;
	    SK = e.shiftKey;
	    CK = e.ctrlKey;
	    //Numbers and backspace, delete and arrows back & forth are ok, TAB and ENTER, Space, Home and End, the rest not
	    //Also insert is ok, shift-insert (45) and CTRL-V (86)
	    //alert(KC);
	    if ((KC==8)|(KC==37)|(KC==39)|(KC==46)|(KC>95 & KC<106 & SK == false)|(KC>47 & KC<58 & SK == false)|(KC==13)|(KC==9)|(KC==32)|(KC==35)|(KC==36)|(SK==true & KC==45)|(CK==true & KC==86))
	    {
		    if (KC==13){
			    self.event.keyCode = 9;
		    }
	    }
	    else{
		    self.event.returnValue=false;
	    }
	}catch(err){}
}

function ConvertToStyleFriendlyAttribute(str)
{
    return str.replace(/\-(\w)/g, function(_, c) { return c.toUpperCase(); });
}

function BgPos(obj, x, y, showBorder, width, color)
{
    if (obj != null)
    {
        obj.style["backgroundPosition"] = x + 'px ' + y + 'px';
        
        if (showBorder)
        {
            obj.style["border"] = "solid 1px " + color;
            obj.style["padding"] = "0px 0px 0px 0px";
        }
        else
        {
            obj.style["padding"] = "1px 1px 1px 1px";
            
            if (color != null)
                obj.style["border"] = "solid 1px " + color;
            else
                obj.style["border"] = "none";
        }
    }
}
	
function RepositionInsideWindow(screenCoordinates, controlCoordinates, controlDimensions)
{
    var result = [parseInt(controlCoordinates[0]), parseInt(controlCoordinates[1])];

    //var sc = [parseInt(screenCoordinates[0]), parseInt(screenCoordinates[1])];
    var cc = [parseInt(controlCoordinates[0]), parseInt(controlCoordinates[1])];
    var cd = [parseInt(controlDimensions[0]), parseInt(controlDimensions[1])];

    if ((cc[1] + cd[1]) > (parseInt(document.documentElement.clientHeight) + parseInt(document.documentElement.scrollTop)))
        result[1] = parseInt(document.documentElement.scrollTop) + parseInt(document.documentElement.clientHeight) - cd[1];
    if ((cc[0] + cd[0]) > (parseInt(document.documentElement.clientWidth) + parseInt(document.documentElement.scrollLeft)))
        result[0] = parseInt(document.documentElement.scrollLeft) + parseInt(document.documentElement.clientWidth) - cd[0];

    return result;
}

//String.prototype.leftTrim = function() { return this.replace(/^\s+/,""); }
//String.prototype.rightTrim = function() { return this.replace(/\s+$/,""); }

function Trim(str) { return RightTrim(LeftTrim(str)); }
function LeftTrim(str) { return str.replace(/^\s+/,""); }
function RightTrim(str) { return str.replace(/\s+$/,""); }

//window.oncontextmenu = function () { return false; }

function $get(elementID)
{
    return document.getElementById(elementID);
}

// Browser Window Size and Position
// copyright Stephen Chapman, 3rd Jan 2005, 8th Dec 2005
// you may copy these functions but please keep the copyright notice as well
function pageWidth() 
{   return window.innerWidth != null ? window.innerWidth :
        document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : 
            document.body != null ? document.body.clientWidth : null;
}

function pageHeight() 
{
    return  window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ?  document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
}

function GetObjectDimenensions(id)
{
	var offsetX = 0;
	var offsetY = 0;
	var items = $get(id).childNodes;
	
	for (var i=0; i<items.length; i++)
	{
		if ((parseInt(items[i].offsetTop) + items[i].offsetHeight) > offsetY)
			offsetY = parseInt(items[i].offsetTop) + items[i].offsetHeight;
		if ((parseInt(items[i].offsetLeft) + items[i].offsetWidth) > offsetX)
			offsetX = parseInt(items[i].offsetLeft) + items[i].offsetWidth;
	}

	return [offsetX, offsetY];
}

function GetInnerText(element)
{
	if (Browser.isIE)
		return element.innerText;
	else
		return element.textContent; //FFox
}

function SetInnerText(element, value)
{
	if (Browser.isIE)
		element.innerText = value;
	else
		element.textContent = value;
}

var prePostBack = null;
function doPostBack(value1, value2)
{
    try
    {
        if (prePostBack)
            prePostBack(value1, value2);
            
        __doPostBack(value1, value2);
    }
    catch(err){}
}

