var cmbFromYear, cmbToYear, cmbFromQuarter, cmbFromMonth, cmbToQuarter, cmbToMonth;
var spanFromQtr, spanToQtr, spanFromMth, spanToMth, divErrMsg;
var perBegYear, perEndYear, perBegQtr, perEndQtr, perBegMth, perEndMth;
var PrevChartTypeActivated;
var ParamForSafari = false;

function initComboVars()
{
	cmbFromYear = document.getElementById("cmbFromYear");
	cmbToYear = document.getElementById("cmbToYear");
	cmbFromQuarter = document.getElementById("cmbFromQuarter");
	cmbFromMonth = document.getElementById("cmbFromMonth");
	cmbToQuarter = document.getElementById("cmbToQuarter");
	cmbToMonth = document.getElementById("cmbToMonth");
	spanFromQtr = document.getElementById("spanFromQtr");
	spanToQtr = document.getElementById("spanToQtr");
	spanFromMth = document.getElementById("spanFromMth");
	spanToMth = document.getElementById("spanToMth");
	divErrMsg = document.getElementById("divErrMsg");
}

function isPeriodLegal()
{
	//debugger;
	if(null == cmbFromYear) return;
	
	var fromYear = cmbFromYear.value*1;
	var toYear = cmbToYear.value*1;
	
	if ((fromYear > toYear) ||
		((fromYear == toYear) &&
		 ((cmbFromQuarter && cmbToQuarter && (cmbFromQuarter.value*1 > cmbToQuarter.value*1)) ||
		  (cmbFromMonth && cmbToMonth && (cmbFromMonth.value*1 > cmbToMonth.value*1)))))
	{
		alert("From date cannot be greater than To date");
		return false;
	}
	return true;
}

function doSelectionValid()
{
	//debugger;
	var fromYear = cmbFromYear.value*1;
	var toYear = cmbToYear.value*1;
	
	if (cmbFromQuarter)
	{
		if (fromYear == perBegYear)
		{
			if (cmbFromQuarter.value*1 < perBegQtr)
				cmbFromQuarter.selectedIndex = perBegQtr-1;
		}
		else		
		if (fromYear == perEndYear)
			if (cmbFromQuarter.value*1 > perEndQtr)
				cmbFromQuarter.selectedIndex = 0;
				
		if (toYear == perBegYear)
		{
			if (cmbToQuarter.value*1 < perBegQtr)
				cmbToQuarter.selectedIndex = perBegQtr-1;
		}
		else		
		if (toYear == perEndYear)
			if (cmbToQuarter.value*1 > perEndQtr)
				cmbToQuarter.selectedIndex = perEndQtr-1;
	}
	else
	if (cmbFromMonth)
	{
		if (fromYear == perBegYear)
		{
			if (cmbFromMonth.value*1 < perBegMth)
				cmbFromMonth.selectedIndex = perBegMth-1;
		}
		else		
		if (fromYear == perEndYear)
			if (cmbFromMonth.value*1 > perEndMth)
				cmbFromMonth.selectedIndex = 0;
				
		if (toYear == perBegYear)
		{
			if (cmbToMonth.value*1 < perBegMth)
				cmbToMonth.selectedIndex = perBegMth-1;
		}
		else		
		if (toYear == perEndYear)
			if (cmbToMonth.value*1 > perEndMth)
				cmbToMonth.selectedIndex = perEndMth-1;
	}
	
	validateQtrMth();
}

function markUnavQtrMth()
{
	//debugger;
	var fromYear = cmbFromYear.value*1;
	var toYear = cmbToYear.value*1;
	
	if (cmbFromQuarter)
	{
		var options = cmbFromQuarter.options;
		markOptionsAvailable(options);
		if (fromYear == perBegYear)
			markOptionsUnavailable(options, 0, perBegQtr-1);
		if (fromYear == perEndYear)
			markOptionsUnavailable(options, perEndQtr, options.length);
		
		options = cmbToQuarter.options;
		markOptionsAvailable(options);
		if (toYear == perBegYear)
			markOptionsUnavailable(options, 0, perBegQtr-1);
		if (toYear == perEndYear)
			markOptionsUnavailable(options, perEndQtr, options.length);
	}
	else
	if (cmbFromMonth)
	{
		var options = cmbFromMonth.options;
		markOptionsAvailable(options);
		if (fromYear == perBegYear)
			markOptionsUnavailable(options, 0, perBegMth-1);
		if (fromYear == perEndYear)
			markOptionsUnavailable(options, perEndMth, options.length);
				
		options = cmbToMonth.options;
		markOptionsAvailable(options);
		if (toYear == perBegYear)
			markOptionsUnavailable(options, 0, perBegMth-1);
		if (toYear == perEndYear)
			markOptionsUnavailable(options, perEndMth, options.length);
	}
	
	validateQtrMth();
}

function markOptionsUnavailable(options, from, to)
{
	for (var i = from; i < to; ++i)
		options[i].style.color = "silver";
}

function markOptionsAvailable(options)
{
	for (var i = 0; i < options.length; ++i)
		options[i].style.color = "black";
}

var validTimer = -1;
	
function validateQtrMth()
{
	clearInterval(validTimer);
	validTimer = setInterval("noBlinkValidation()", 0);
}

function noBlinkValidation()
{
	//debugger;
	clearInterval(validTimer);
	
	if(document.getElementById("cmbFrequency").value != "1")
	{
		validateCombo(cmbFromQuarter, spanFromQtr);
		validateCombo(cmbToQuarter, spanToQtr);
		validateCombo(cmbFromMonth, spanFromMth);
		validateCombo(cmbToMonth, spanToMth);
	
		if (isVisible(spanFromQtr) || isVisible(spanToQtr) || isVisible(spanFromMth) || isVisible(spanToMth))
			divErrMsg.style.visibility="visible";
		else
			divErrMsg.style.visibility="hidden";
	}
}

function isVisible(asterisk)
{
	return asterisk && "visible" == asterisk.style.visibility;
}

function validateCombo(combo, asterisk)
{
	//debugger;
    if (combo && combo.selectedIndex > 0)
		if ("silver"==combo.options[combo.selectedIndex].style.color)
			asterisk.style.visibility="visible";
		else
			asterisk.style.visibility="hidden";
}

function selectionYear()
{
	//debugger;
	var Obj = document.getElementById("hfSelToYear");
	Obj.value = "1";
}

function ValidateChartsForUse()
{
    //debugger;
	var cmbFromYear = document.getElementById("cmbFromYear");
	var cmbToYear = document.getElementById("cmbToYear");
	var hfChartType = document.getElementById("hfChartType");
	var cmbChartType = document.getElementById("cmbChartType");
	var RemoveTypes = false;
	
	if(hfChartType.value != "")
	{
	    var Params = hfChartType.value.split(";");
	    if(Params.length==3)
	    {
	        if(Params[2]=="1" || ParamForSafari==true) RemoveTypes = true;
	    }
	}
	
	if(cmbFromYear.options.length == 1 && cmbToYear.options.length == 1 && RemoveTypes == true)
	{
	    var cmbChartType = document.getElementById("cmbChartType");
	    
	    if(!isSafari())
	    {
	        cmbChartType.options[1].style.color = "silver";
	        cmbChartType.options[2].style.color = "silver";
	    }
	    else 
	    {
	        cmbChartType.options[1].style.color = "silver";
	        cmbChartType.options[2].style.color = "silver";
	        /*cmbChartType.options[1] = null;
	        for(var i = 0; i< cmbChartType.options.length; i++)
	        {
	            if(cmbChartType.options[i].text == "Percent Change") cmbChartType.options[i] = null;
	        }*/
	    }
	}
}
