﻿function getWinHeight() {
    var myHeight = 600;

    if( typeof( window.innerWidth ) == 'number' ) {
	    //Non-IE
	    myHeight = window.innerHeight;
    	
	    //alert("Non-IE");
    } else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
	    //IE 6+ in 'standards compliant mode'
	    myHeight = document.documentElement.clientHeight - 10;
    	
	    //alert("IE6+");
    } else if(document.body && (document.body.clientWidth || document.body.clientHeight)) {
	    //IE 4 compatible
	    myHeight = document.body.clientHeight;
    	
	    //alert("IE Generic");
    }

    return myHeight;
}
    
    function UserName(o) { 
       var td = o.parentNode; 
       var tr = td.parentNode
        var child = tr.childNodes[0];
        return child.innerText; 
        }
        
    function Enable(o) {
      var elem = document.getElementById('ctl00$btnPurchase')
      elem.disabled = false
      var hid = document.getElementById('ctl00$hdfOptionName')
      hid.value = o.id
     }
     
    function Disable(o) 
     {
       o.disabled = true;
       var elem = document.getElementById('ctl00_cphMain_btnCancel');
       elem.disabled = true;
       elem = document.getElementById('ctl00_cphMain_lblConfirmation');
       elem.innerText = "Please wait while your request is being processed....";
     }
     
function finalizeDate(sender)
{
    if (sender == null || sender.value.length == 0 || sender.value == "__/__/____" || sender.value == "FROM" || sender.value == "THRU")
        return;
    
    var msg = "";
    var dateComponents = new Array();
    var now = new Date();
    
    dateComponents = sender.value.split("/");
    
    var newDate = "";
    var originalDate = dateComponents[0].toString() + "/" + dateComponents[1].toString() + "/" + dateComponents[2].toString();
    
    // Check month... 
    if (parseInt(dateComponents[0].toString(), 10) == 0)
    {        
        msg += "\n\nThe month portion of the date '" + originalDate + "' is '0' and will automatically be converted to '1'.";
        
        dateComponents[0] = "01";
    }
    else if (parseInt(dateComponents[0].toString(), 10) > 12)
    {        
        msg += "\n\nThe month portion of the date '" + originalDate + "' is '" + parseInt(dateComponents[0].toString(), 10) + 
            "' and will automatically be converted to '12'.";
            
        dateComponents[0] = "12";
    }
    
    // Check day...
    if (dateComponents[0] != new Date(sender.value).getMonth() + 1)
    {
        if (parseInt(dateComponents[1].toString(), 10) == 0)
        {
            // User entered "0" || "00" for the day... change to first day of month.
            dateComponents[1] = "01";
            
            msg += "\n\nThe day portion of the date '" + originalDate + "' is '0' and will automatically be converted to '1'.";
        }
        else
        {
            // Day supplied exceeds number of days in month supplied (i.e., 11/31/2008).  
            // Back day up to last day of supplied month (i.e., 11/30/2008).
            dateComponents[1] = getLastDayOfMonth(dateComponents[0], dateComponents[2]);
            
            msg += "\n\nThe day portion of the date '" + originalDate + 
                "' exceeds the number of days in the month and will be rolled back to the last day of the month.";
        }
    }
    
    // Check year...
    var year = parseInt(dateComponents[2].toString(), 10);
    
    // If user enters 2-digit year, automatically convert it to 4-digit year
    // If the 2-digit year is > current 2-digit year, we roll back to 19xx
    // If the 2-digit year is between 0 and current 2-digit year, we use 20xx.
    if (dateComponents[2].toString().substring(0,2) == "00")
    {
        var entered2DigitYear = 0;
        var current2DigitYear = now.getFullYear().toString().substring(2);
        
        if (dateComponents[2].toString().substring(2,3) == "0")
        {
            entered2DigitYear = parseInt(dateComponents[2].toString().substring(3), 10);
        }
        else
        {
            entered2DigitYear = parseInt(dateComponents[2].toString().substring(2), 10);
        }
        
        if (entered2DigitYear > current2DigitYear)
        {
            if (entered2DigitYear.toString().length == 1)
            {
                year = (parseInt("190" + entered2DigitYear.toString(), 10));
            }
            else
            {
                year = (parseInt("19" + entered2DigitYear.toString(), 10));
            }
        }
        else
        {
            if (entered2DigitYear.toString().length == 1)
            {
                year = (parseInt("200" + entered2DigitYear.toString(), 10));
            }
            else
            {
                year = (parseInt("20" + entered2DigitYear.toString(), 10));
            }
        }
        
        msg += "\n\nThe year portion of the date '" + originalDate + "' is '" + dateComponents[2].toString() + 
            "' and will automatically be converted to '" + year + "'.";
            
        dateComponents[2] = year;
    }    
    
    // If year is outside acceptable bounds, return
    if (year < 1800 || year > now.getFullYear())
    {
        alert("\n\nThe date '" + originalDate + "' has an invalid year of '" + dateComponents[2].toString() + "'.\n\n" +
            "Valid years are from 1800 through " + now.getFullYear().toString() + ".");
            
        sender.focus();
        
        return;
    }

    newDate = dateComponents[0].toString() + "/" + dateComponents[1].toString() + "/" + dateComponents[2].toString();
    
    if (msg.length > 0)
    {
        msg += "\n\n\nThe new date is '" + newDate + "'.";
        //alert(msg);
    }
    
    sender.value = newDate;
}

// The month parameter is NOT zero-based (1 = January)
function getLastDayOfMonth(month, year)
{
    switch (parseInt(month, 10))
    {
        case 1:
            return 31;
        case 2:
            if (isLeapYear(year))
                return 29;
            else
                return 28;
        case 3:
            return 31;
        case 4:
            return 30;
        case 5:
            return 31;
        case 6:
            return 30;
        case 7:
            return 31;
        case 8:
            return 31;
        case 9:
            return 30;
        case 10:
            return 31;
        case 11:
            return 30;
        case 12:
            return 31;
    }
}

function isLeapYear(year)
{
	year = parseInt(year, 10);

	if (year % 4 == 0)
	{
		if (year % 100 != 0)
		{
			return true;
		}
		else
		{
			if (year % 400 == 0)
				return true;
			else
				return false;
		}
	}
	
    return false;
}