﻿// Add trim function to strings

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };

function FloatToCurrency(fNumber)
{
	var strCurrency = "" + fNumber.toFixed(2);
	
	var i = 6;
	if ( fNumber < 0 )
		i = 7;
	while ( i < strCurrency.length )
	{
		strCurrency = strCurrency.substring(0, strCurrency.length - i) + "," + strCurrency.substring(strCurrency.length-i,strCurrency.length);
		i += 4;
	}
	
	return "$" + strCurrency;
}

function CurrencyToFloat(cNumber)
{
	var strNumber = "" + cNumber;
	
	strNumber = strNumber.replace('$','');
	var iNumberOfCommas = (strNumber.length - 3) / 4;
	var i = 0;	
	while ( i <= iNumberOfCommas ) 
	{
		strNumber = strNumber.replace(',','');
		i++;
	}
	
	return strNumber;
}

function TrimWhiteSpace(strString)
{
	return strString.replace(/^\s*|\s*$/g,"");
}

function DOTNETROUND(dNumber)
{
	return dNumber;
}

function hideElementByID(elemName)
{
	if ( document.getElementById(elemName) )
		hideElement(document.getElementById(elemName));
}

function hideElement(elem)
{
	elem.style.display = 'none';
}

function showElementByID(elemName)
{
	if ( document.getElementById(elemName) )
		showElement(document.getElementById(elemName));
}

function showElement(elem)
{
	elem.style.display = '';
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function getAbsolutePosition(elem)
{
    var left = 0;
    var top = 0;
    
    while ( elem != null )
    {
        left += elem.offsetLeft;
        top += elem.offsetTop;
        
        elem = elem.offsetParent;
    }
    
    return [left,top];
}

//This function returns an array of objects that have the fields parsed out
function ParseResponseSet( rawData )
{
	var RetRSArray = new Array(); //This will be a recordset of objects
	
	if(rawData == "")
		return RetRSArray;

	var RSArray = new Array();
	RSArray = String(rawData).split('#!#');
	
	for(var i=0; i < RSArray.length; i++)
	{
		var Record = new Object();
	
		var ColsArray = new Array();		
		ColsArray = String(RSArray[i]).split('&');
		
		for(var j=0; j < ColsArray.length; j++)
		{
			var NVArray = new Array();
			NVArray = String(ColsArray[j]).split('=');			
			//I'm sending back all the values escaped out
			Record[NVArray[0]] = unescape(String(NVArray[1]));
		}
		RetRSArray.push(Record);
	}	
	return RetRSArray;
}


function CenterElementToElement(centeredElement, elementCenteredTo, xOffset, yOffset)
{
    if ( xOffset == null )
        xOffset = 0;
        
    if ( yOffset == null )
        yOffset = 0;
   
    if ( centeredElement.style.position != 'absolute' )
        centeredElement.style.position = 'absolute';
    
    var centeredPos = getAbsolutePosition(elementCenteredTo);
    setElementPosition(centeredElement, [centeredPos[0] + elementCenteredTo.offsetWidth / 2 - centeredElement.offsetWidth / 2 + xOffset, centeredPos[1] + elementCenteredTo.offsetHeight / 2 - centeredElement.offsetHeight / 2 + yOffset] );
}

function setElementPosition(elem,pos)
{
    if ( elem.style.position != 'absolute' )
        elem.style.position = 'absolute';
        
    elem.style.left = pos[0] + 'px';
    elem.style.top = pos[1] + 'px';
}