function DateValidator(source, arguments)
{
	var s = arguments.Value;
	if (s=="")
	{
		arguments.IsValid = true;
		return;
	}	
	var ss = s.split("/");
	if (ss.length != 3)
	{
		arguments.IsValid = false;
		return;
	}	
	if ((ss[1].length != 2) || (ss[2].length != 2) || (ss[0].length != 4))
	{
		arguments.IsValid = false;
		return;
	}
	if (ss[0]=='08') ss[0]='8';
	if (ss[0]=='09') ss[0]='9';
	if (ss[1]=='08') ss[1]='8';
	if (ss[1]=='09') ss[1]='9';
	if (ss[2]=='08') ss[2]='8';
	if (ss[2]=='09') ss[2]='9';
	
	var dday = parseInt(ss[2]);
	var dmonth = parseInt(ss[1]);
	var dyear = parseInt(ss[0]);
	
	if ((isNaN(dday)) || (isNaN(dmonth)) || (isNaN(dyear)))
	{
		arguments.IsValid = false;
		return;
	}
	if (ss[0].length == 4)
	{
		if ((dyear<1300) || (dyear>1490))
		{
			arguments.IsValid = false;
			return;
		}
	}
	if ((dmonth<1) || (dmonth>12))
	{
		arguments.IsValid = false;
		return;
	}
	if ((dday<1) || (dday>31))
	{
		arguments.IsValid = false;
		return;
	}
	if ((dmonth>=7) && (dmonth<=11))
	{
		if (dday > 30)
		{
			arguments.IsValid = false;
			return;
		}	
	}
	if (dmonth==12)
	{
		if (dday > 30)
		{
			arguments.IsValid = false;
			return;
		}	
	}
	arguments.IsValid = true;
	return;
}
function formatCurrency(num) 
{
	num = DeformatCurrency(num);
	
	if(isNaN(num))
		num = "0";

	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num * 100 + 0.50000000001);
	cents = num % 100;
	num = Math.floor(num/100).toString();
	if(cents < 10)
		cents = "0" + cents;

	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));

	if (cents != 0)
		return (((sign)	? '' : '(') + num + '.' + cents + ((sign)	? '' : ')'));
	else
		return (((sign) ? '' : '(') + num + ((sign)	? '' : ')'));
}
function DeformatCurrency(num)
{
	num = num.toString().replace(/\$|\,/g, '');
	if ((num.substring(0, 1) == '(') && (num.substring(num.length - 1, num.length) == ')'))
	    num = '-' + num.substring(1, num.length - 1);
	for(i = 0; i <= num.length - 1; i ++)    
	    if (num.substring(0, 1) == '0')
	        num = num.substring(1, num.length);
	if(isNaN(num) || (num == ""))
		num = "0";
    return num;
}
function RefreshOutlookbar()
{
	top.frames[2].location = 'Outlookbar.aspx';
}
var PrevSelectedRowIndex = -2;
var PrevSelectedRowCssClass = '';

function GridRowSelect(AGrid, ARowIndex)
{
    if (PrevSelectedRowIndex > 0)
        AGrid.rows(PrevSelectedRowIndex).className = PrevSelectedRowCssClass;    
   PrevSelectedRowIndex = ARowIndex + 1;
   PrevSelectedRowCssClass = AGrid.rows(PrevSelectedRowIndex).className;
   AGrid.rows(PrevSelectedRowIndex).className = 'GridRowSelected';
}
function ShowALetter(ASerial, ARefSerial)
{
    //obj = window.showModalDialog('../Publisher/Letter.aspx?Serial=' + ASerial + '&RefSerial=' + ARefSerial, '', 'help:no;dialogHeight:610px;dialogWidth:730px;center:yes;maximize:yes;resizable:yes;status:yes;');
    obj = window.open('../Publisher/Letter.aspx?Serial=' + ASerial + '&RefSerial=' + ARefSerial);
    return obj;
}
function RefreshContentFrame()
{
    top.frames[1].location.reload(true);
}
function replaceString(oldS,newS,fullS) 
{
   for (var i=0; i<fullS.length; i++) 
   {
      if (fullS.substring(i,i+oldS.length) == oldS) 
      {
         fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length)
      }
   }
   return fullS
}
function formatPosNeg(ATextBox, AValue)
{
    if (!isNaN(AValue))
    {
        if (AValue >= 0) 
        {
            document.getElementById(ATextBox).value = formatCurrency(AValue);        
            document.getElementById(ATextBox).className = 'PositiveChange';
        }
        else
        {
            document.getElementById(ATextBox).value = '(' + formatCurrency(Math.abs(AValue)) + ')';
            document.getElementById(ATextBox).className = 'NegativeChange';
        }
    }
    else
    {
        document.getElementById(ATextBox).value = AValue;        
        document.getElementById(ATextBox).className = 'PositiveChange';
    }
}
function PosNumValidator(source, arguments)
{
    ANum = DeformatCurrency(arguments.Value);    
    if (ANum < 0)	
    {
        arguments.IsValid = false;
		return;
    }	
	arguments.IsValid = true;
	return;
}
function NegNumValidator(source, arguments)
{
    ANum = DeformatCurrency(arguments.Value);    
    if (ANum > 0)	
    {
        arguments.IsValid = false;
		return;
    }	
	arguments.IsValid = true;
	return;
}
function getCookie(cookiename)
{
    var results = document.cookie.match ( cookiename + '=(.*?)(;|$)' );
    if ( results )
        return ( unescape ( results[1] ) );
    else
        return null;
}
function getScreenWidth()
{
    AWidth = getCookie ('ScreenWidth');
    if (AWidth == null)
        AWidth = 1204;
    return AWidth;
}
function ForceNumber(e, Type)
{
    var key;
    var keychar;
    if (window.event)
       key = window.event.keyCode;
    else if (e)
       key = e.which;
    else
       return true;
    keychar = String.fromCharCode(key);
    // control keys
    if ((key==null) || (key==0) || (key==8) || 
        (key==9) || (key==13) || (key==27) )
       return true;
    // numbers
    else if ((("0123456789-").indexOf(keychar) > -1))
       return true;
    // decimal point jump
    else if ((Type == 'float') && (keychar == "."))
    {
       return true;
    }
    else
       return false;
}
function setUpdatePanelDiv(DivId, GridId)
{
    var gridElemet = $get(GridId);
    var divElement = $get(DivId);
    var elementBounds = Sys.UI.DomElement.getBounds(gridElemet); 
    document.getElementById(DivId).style.height = elementBounds.height + 'px';
    Sys.UI.DomElement.setLocation(divElement, elementBounds.x - 15, elementBounds.y);
}
