/********General**********/
function mwPopup(winURL,winName,w,h){
	var winLeft	=((screen.width - w) / 2);
	var winTop	=((screen.height - h) / 2);
	var win = window.open(winURL,winName,'resizable,width='+w+',height='+h+',top='+winTop+',left='+winLeft+',scrollbars=1');
	win.focus();
}

/******Snapshot page******/
function reloadChart(chartURL,symb,t)
{
    var chartURL = chartURL + '?mocktick=1&style=2327&size=1&type=256&freq=1dy&symb=' + symb + '&time=' + t;
    document.images['imgPriceChart'].src = chartURL;
    
    document.getElementById('1mo').className = 'mwLink';
    document.getElementById('3mo').className = 'mwLink';
    document.getElementById('6mo').className = 'mwLink';
    document.getElementById('1yr').className = 'mwLink';
    document.getElementById('YTD').className = 'mwLink';
    document.getElementById('5yr').className = 'mwLink';
    
     document.getElementById(t).className = 'mwLinksel';
}


/************Fees and Expenses*************/
function mwCalcEnter(e) {
	if (!e) var e = window.event;
	if (e.keyCode == 13 || e.charCode == 13) {
		var btnUpdate = document.getElementById("FundFeeCalculator2_btnUpdate");
		//var validated = mwClientValidate();			
		//if(!validated)
		//	return false;
			
		if (btnUpdate) {
			btnUpdate.click();
			return false;
		}
	}
}

function mwClientValidate()
{
	var txtStartAmount = document.getElementById("FundFeeCalculator1_txtStartAmount");
	var txtReturn = document.getElementById("FundFeeCalculator1_txtReturn");
	var summaryError = document.getElementById("FundFeeCalculator1_lblSummaryError");
	var amountChecked = RangeChecked(txtStartAmount, "FundFeeCalculator1_lblStartAmountError", 10000000, 0.01);
	var returnChecked = RangeChecked(txtReturn, "FundFeeCalculator1_lblReturnError", 100, 0.01);
	
	if(!amountChecked || !returnChecked) 
	{
		summaryError.style.display = "block";
		return false;
	}
	else
	{
		summaryError.style.display = "none";
		return true;
	}
}

function RangeChecked(Target, Error, ceiling, floor)
{
	var error = document.getElementById(Error);
	if(Target.value == '')
		return true;
		
	if(!RangeValidated(Target.value, ceiling, floor))
	{
		error.style.display = "block";
		return false;
	}
	else
	{
		error.style.display = "none";
		return true;
	}
}

function RangeValidated(Amount, Ceiling, Floor)
{
    if (Amount.replace)
    {
        Amount = Amount.replace(/,/g, '');
    }
    var fAmount = parseFloat(Amount);
    return (fAmount == Amount - 0) &&
           (fAmount <= parseFloat(Ceiling)) &&
           (fAmount >= parseFloat(Floor))
}

/************Risk Return*************/
function showData(id,sub)
{
    if (id == 'UA')
    {
    
        document.getElementById('spanTime').style.display = "inline";
        document.getElementById('spanTimeLA').style.display = "none";

        document.getElementById('lnkUA').className = 'boldlink';
        document.getElementById('lnkLA').className = '';
        document.getElementById('lnkLAAT').className = '';
        
//        document.getElementById('ddlLA').style.visibility = 'hidden';
//        document.getElementById('ddlLA').style.display = 'none';
        
        document.getElementById('unadjusted').style.visibility = 'visible';
        document.getElementById('unadjusted').style.display = 'block';
       // document.getElementById('loadadjustedmonth').style.visibility = 'hidden';
       // document.getElementById('loadadjustedmonth').style.display = 'none';
        document.getElementById('loadadjustedqtr').style.visibility = 'hidden';
        document.getElementById('loadadjustedqtr').style.display = 'none';
        document.getElementById('loadadjustedaftertax').style.visibility = 'hidden';
        document.getElementById('loadadjustedaftertax').style.display = 'none';
    }
    else if (id == 'LA')
    {
        document.getElementById('spanTime').style.display = "none";
        document.getElementById('spanTimeLA').style.display = "inline";
        document.getElementById('lnkUA').className = '';
        document.getElementById('lnkLA').className = 'boldlink';
        document.getElementById('lnkLAAT').className = '';
        
  //      document.getElementById('ddlLA').style.visibility = 'visible';
    //    document.getElementById('ddlLA').style.display = 'block';
        
        document.getElementById('unadjusted').style.visibility = 'hidden';
        document.getElementById('unadjusted').style.display = 'none';

            document.getElementById('loadadjustedqtr').style.visibility = 'visible';
            document.getElementById('loadadjustedqtr').style.display = 'block';
        
        document.getElementById('loadadjustedaftertax').style.visibility = 'hidden';
        document.getElementById('loadadjustedaftertax').style.display = 'none';
    }
    else if (id == 'LAAT')
    {
        document.getElementById('spanTime').style.display = "inline";
        document.getElementById('spanTimeLA').style.display = "none";

        document.getElementById('lnkUA').className = '';
        document.getElementById('lnkLA').className = '';
        document.getElementById('lnkLAAT').className = 'boldlink';
        
//        document.getElementById('ddlLA').style.visibility = 'hidden';
 //       document.getElementById('ddlLA').style.display = 'none';
        
        document.getElementById('unadjusted').style.visibility = 'hidden';
        document.getElementById('unadjusted').style.display = 'none';
       // document.getElementById('loadadjustedmonth').style.visibility = 'hidden';
       // document.getElementById('loadadjustedmonth').style.display = 'none';
        document.getElementById('loadadjustedqtr').style.visibility = 'hidden';
        document.getElementById('loadadjustedqtr').style.display = 'none';
        document.getElementById('loadadjustedaftertax').style.visibility = 'visible';
        document.getElementById('loadadjustedaftertax').style.display = 'block';
    }
}

/************Compare Funds*************/
function onGrowthOf10KChanged(mfcURL)
{
//alert(mfcURL);
    var controls = document.body.getElementsByTagName("img");
    for(index in controls)
    {
	    try
	    {
		    var periodInYears = document.getElementById("cbo10kDuration").value;
		    var control = controls[index];
		    if("img_Go10k_" == control.id.substr(0,10))
		    {
			    var tickers = control.id.split("_");
			    var ticker = tickers[tickers.length -1];//get the last item
			    control.src = mfcURL + "/GrowthOf10KHandler.ashx?ticker=" + ticker + "&years=" + periodInYears;	
		    }
	    }
	    catch(e){}
    }
}

function onHoldingPeriodChanged(mfcURL)
{
    onUpdateProjectedFeesClick(mfcURL);
}

function onUpdateProjectedFeesKeyDown(e,mfcURL)
{
    if (!e) var e = window.event;
    if (e.keyCode == 13 || e.charCode == 13) {
        onUpdateProjectedFeesClick(mfcURL);
        return false;
    }
}

function onUpdateProjectedFeesClick(mfcURL)
{ 
   var start = document.getElementById("txtStartingInvestment");
   var periodInYears = document.getElementById("cboHoldingPeriod");
    var annualReturn = document.getElementById("txtAnnualReturn");

    if(!isANumber(start, "Starting Investment Amount")) return;
    if(!isANumber(annualReturn, "Annual Return")) return;

    var v = start.value.replace(",", "");
    if(v < 1 || v > 10000000)
    {
	    alert('Please enter a positive integer value greater than zero and less than or equal to 10,000,000');
	    start.focus();
	    return false;
    }
	
    v = annualReturn.value.replace(",", "").replace(/^\s+|\s+$/g,"");
    if(v < 0 || v > 100 || "" == v)
    {
	    alert('Please enter a positive integer value greater than zero and less than or equal to 100%');
	    annualReturn.focus();
	    return false;
    }

    var controls = document.body.getElementsByTagName("img");
    for(index in controls)
    {
	    var control = controls[index];
	    if(null == control.id)
	    {
		    continue;
	    }
		
	    if(	"img_Fee_Pie_" == control.id.substr(0,12) ||
		    "img_Fee_Mtn_" == control.id.substr(0,12))
	    { //this should yeild a 4 element array; the 3rd element will be the type (Pie, Mtn, Label) and the 4th will be the ticker symbol
		    var atoms = control.id.split("_");
		    periodInYears.value = Math.floor(periodInYears.value.replace(",", ""));
		    control.src = buildFeesChartUrl(mfcURL,atoms[3], atoms[2].toLowerCase(), 
			    start.value.replace(",", ""), periodInYears.value, annualReturn.value.replace(",", ""));
	    }
    }
}

function isANumber(control, name)
{
    var v = control.value.replace(",", "");
    if(isNaN(v))
    {
	    alert('Please enter a numeric value for ' + name + '.');
	    control.focus();
	    return false;
    }
    return true;
}

function isPositiveNumber(control, name, max)
{
    var v = control.value.replace(",", "");
    return v <= 0;
}

function buildFeesChartUrl(mfcURL,ticker, type, start, periodInYears, annualReturn)
{
    //alert(mfcURL);
    var url = mfcURL + "/FeesHandler.ashx?ticker=" + ticker 
	    + "&type=" + type
	    + "&startingValue=" + start 
	    + "&return=" + annualReturn
	    + "&years=" + periodInYears;
    if (type == "mtn" || type == "pie")
    {
        url += "&w=200&h=75";
    }	
    return url;
}
