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 ResetPrevSelectedRowIndex() {
    PrevSelectedRowIndex = -2;
    PrevSelectedRowCssClass = '';
}

function GridRowSelect(AGrid, ARowIndex) {
    try {
        if (PrevSelectedRowIndex > 0) {
            if (AGrid.rows.length > PrevSelectedRowIndex)
                AGrid.rows[PrevSelectedRowIndex].className = PrevSelectedRowCssClass;
        }
        PrevSelectedRowIndex = ARowIndex + 1;
        if (AGrid.rows.length > PrevSelectedRowIndex)
            PrevSelectedRowCssClass = AGrid.rows[PrevSelectedRowIndex].className;
        AGrid.rows[PrevSelectedRowIndex].className = 'GridRowSelected';
    }
    catch (ex) {
        alert(ex.message);
    }
}

function ShowALetter(ASerial, ARefSerial, AIsConsolidated)
{
    window.open('../Publisher/LetterSpecification.aspx?LetterSerial=' + ASerial + '&RefSerial=' + ARefSerial + '&IsConsolidated=' + AIsConsolidated);
}

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 ForceDate(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;

    else if ((("0123456789/").indexOf(keychar) > -1))
        return true;
    else
        return false;
}
function setUpdatePanelDiv(DivId, GridId)
{
    var gridElemet = $get(GridId);
    var divElement = $get(DivId);
    if (gridElemet != null)
    {
        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);
    }
}
function loadXMLString(txt) 
{
    try //Internet Explorer
    {
      xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async="false";
      xmlDoc.loadXML(txt);
      return(xmlDoc); 
    }
    catch(e)
    {
      try //Firefox, Mozilla, Opera, etc.
      {
        parser=new DOMParser();
        xmlDoc=parser.parseFromString(txt,"text/xml");
        return(xmlDoc);
      }
      catch(e) {alert(e.message)}
    }
    return(null);
}
function Anthem_PreCallBack() {
	var loading = document.createElement("div");
	loading.id = "loading";
	loading.style.color = "maroon";
	loading.style.backgroundColor = "#F7F7F7";
	loading.style.paddingLeft = "5px";
	loading.style.paddingRight = "5px";
	loading.style.position = "fixed";
	loading.style.top = "10px";
	loading.style.width = "120px";
	loading.style.height = "20px";
	loading.style.left = "45%";
	loading.style.fontSize = "8pt";
	loading.style.fontFamily = "Tahoma";
	loading.align = "center";
	loading.verticalAlign = "middle";
	loading.style.zIndex = "9999";
	
	loading.innerHTML = "در حال بارگذاری ..." + "<img src='https://www.codal.ir/Images/InProgress1.gif' />";
	document.body.appendChild(loading);
}
function Anthem_PostCallBack() {
	var loading = document.getElementById("loading");
	document.body.removeChild(loading);
}
function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
    }
    
function RoundDown(num)
{
    if (num % 1 == 0.50)
       { return Math.round(num) - 1; }
     else
       { return Math.round(num); }
}

function RoundUp(num)
{
    return Math.round(num);
}

function __getScrollLeft() {
    var returnValue = 0;

    if ((document.documentElement != null) && (document.documentElement.scrollLeft != null))
        returnValue = document.documentElement.scrollLeft;
    else if ((document.body) && (document.body.scrollLeft != null))
        returnValue = document.body.scrollLeft;
    else if (window.pageXOffset != null)
        returnValue = window.pageXOffset;
    else if (window.scrollX != null)
        returnValue = window.scrollX;

    returnValue = parseInt(returnValue);
    if ((isNaN(returnValue) == true) || (returnValue < 0))
        returnValue = 0;

    return returnValue;
}
function __getScrollTop() {
    var returnValue = 0;

    if ((document.documentElement != null) && (document.documentElement.scrollTop != null))
        returnValue = document.documentElement.scrollTop;
    else if ((document.body != null) && (document.body.scrollTop != null))
        returnValue = document.body.scrollTop;
    else if (window.pageYOffset != null)
        returnValue = window.pageYOffset;
    else if (window.scrollY != null)
        returnValue = window.scrollY;

    returnValue = parseInt(returnValue);
    if ((isNaN(returnValue) == true) || (returnValue < 0))
        returnValue = 0;

    return returnValue;
}

