// JavaScript Document
function printReport()
{
	window.print();
	//var winRef = window.open("blank.html","printwindow","width=800,height=500,scrollbars=1,resizable=1");
}

function printMap()
{
	document.forms['report'].action="mapprint.php";
	document.forms['report'].target="newWin";
	document.getElementById('report_type').options[4].selected = true;
	rptTypeChange();

	displayWindow = window.open('', "newWin", "width=1000,height=500,scrollbars=1,resizable=1");
    document.forms['report'].submit();
}

function selectTab(tb)
{
	switch(tb)
	{
		case 1:
			document.getElementById('tH1').className = 'tabHeaderSel';
			document.getElementById('tH2').className = 'tabHeader';
			
			document.getElementById('trRegion').style.display = '';
			document.getElementById('trCountry').style.display = 'none';
			
			document.getElementById('report_level').value = 'region';
			setCookie('Tab', 1);
			break;
		
		case 2:
			document.getElementById('tH1').className = 'tabHeader';
			document.getElementById('tH2').className = 'tabHeaderSel';
			
			//document.getElementById('region_id').style.display = 'none';
			document.getElementById('trRegion').style.display = 'none';
			document.getElementById('trCountry').style.display = '';
			
			document.getElementById('report_level').value = 'country';
			setCookie('Tab', 2);
			break;
	}
}

function selectAll(ctrl_id)
{
	var ctrl=document.getElementById(ctrl_id);
	for(var i=0; i<ctrl.length; i++)
	{
		ctrl.options[i].selected = true;
	}
}

function selectAll_cont(ctrl_id)
{
	var ctrl=document.getElementById('list2');
	for(var i=0; i<ctrl.length; i++)
	{
		ctrl.options[i].selected = true;
	}
}

function selectCountry(country_code)
{
	var ctrl=document.getElementById('country_code[]');
	for(var i=0; i<ctrl.length; i++)
	{
		if (ctrl.options[i].value  == country_code)
			ctrl.options[i].selected = true;
		else
			ctrl.options[i].selected = false;	
	}
	document.report.submit();
}

function selectYear(year)
{
	var ctrl1=document.getElementById('year_from');
	var ctrl2=document.getElementById('year_from');
	ctrl1.value = year;
	ctrl1.value = year;
	document.report.submit();
}

function selectIndicator(ind_id)
{
	var ctrl=document.getElementById('ind_id[]');
	for(var i=0; i<ctrl.length; i++)
	{
		if (ctrl.options[i].value  != ind_id)
			ctrl.options[i].selected = false;
		else
			ctrl.options[i].selected = true;	
	}
	document.report.submit();
}

function rptTypeChange()
{
	if(document.getElementById('report_type').options[document.getElementById('report_type').selectedIndex].value=='table' || document.getElementById('report_type').options[document.getElementById('report_type').selectedIndex].value=='bargraph')
	{
		document.getElementById('order').style.display='';
	}
	else
	{
		document.getElementById('order').style.display='none';
	}
	
	/*if(document.getElementById('report_type').options[document.getElementById('report_type').selectedIndex].value=='map')
	{
		document.getElementById('yf_label').style.display='none';
		document.getElementById('yt_label').style.display='none';
		document.getElementById('y2_label').style.display='';

		document.getElementById('bandwidth').style.display='';
	}
	else
	{
		document.getElementById('yf_label').style.display='';
		document.getElementById('yt_label').style.display='';
		document.getElementById('y2_label').style.display='none';

		document.getElementById('bandwidth').style.display='none';
	}*/
}
			
function Check_ReportType()
{
	var reportType	= document.getElementById('report_type');
	var count		= 0;
	var IndIdList	= document.getElementById('ind_id');
	
	document.forms['report'].action="report.php";
	document.forms['report'].target="_self";
	
	if(reportType.value != 'table')
	{
		for(var i=0; i<IndIdList.length; i++)
		{
			if(IndIdList.options[i].selected)
				count++;
		}
		
		if(count > 1)
		{
			alert("Graph/Map can be generated only for single indicator");
			//reportType.options[0].selected = true;
			return false;
		}
		
		//For pie chart only indicator 1, 2, 4 or 5 is allowed
		if(reportType.value=='piechart')
		{
			if(document.getElementById('report_level').value!='country')
			{
				alert("Pie Chart can be generated only for single country");
				return false;
			}
				
			if(!(IndIdList.selectedIndex==0 || IndIdList.selectedIndex==1 || IndIdList.selectedIndex==3 || IndIdList.selectedIndex==4))
			{
				alert("Pie chart can generated only for Indicator 1, 2, 4 or 5");
				return false;
			}


			if(document.getElementById('report_level').value == 'region')
				var IdList	= document.getElementById('region_id');
			else
				var IdList	= document.getElementById('country_code');

			var count	= 0;
			for(var i=0; i<IdList.length; i++)
			{
				if(IdList.options[i].selected)
					count++;
			}
			
			if(count > 1)
			{
				alert("Pie Chart can be generated only for single country");
				return false;
			}
		}

		//Map & Pie chart can be generated for single year only
		if(reportType.value=='piechart')
		{
			if(document.getElementById('year_from').value!=document.getElementById('year_to').value)
			{
				alert("Pie Chart / Map can be generated only for single year");
				return false;
				
				//document.getElementById('year_to').value=document.getElementById('year_from').value;
				//return true;
			}
		}

		//Check hi/low bw
		if(reportType.value=='map')
		{
			var max_for_map = 10;
						
			if(document.getElementById('bw').value=='low')
			{
				var count	= 0;
				if(document.getElementById('report_level').value == 'region')
				{
					var IdList	= document.getElementById('region_id');
					for(var i=0; i<IdList.length; i++)
					{
						if(IdList.options[i].selected)
							count=count + (+country_cnt[IdList.options[i].value]);
					}
				}
				else
				{
					var IdList	= document.getElementById('country_code');
					for(var i=0; i<IdList.length; i++)
					{
						if(IdList.options[i].selected)
							count++;
					}
				}

				if(count > max_for_map)
				{
					alert("For low bandwidth connections map can be generated only for "+max_for_map+" countries.");
					return false;
				}
			}
		}

	}
	return true;
}

function Validate_Form(frm)
{
	with(frm)
	{
		var level = report_level.value;
		
		if(level == 'region' && region_id.selectedIndex == -1)
		{
			alert('Please select region');
			return false;	
		}

		if(level == 'country' && country_code.selectedIndex == -1)
		{
			alert('Please select country');
			return false;	
		}

		if(ind_id.selectedIndex == -1)
		{
			alert('Please select indicator');
			return false;	
		}		
		
		if(frm.year_from.value > frm.year_to.value )
		{
			alert('Year from should be less than year to value ');
			return false;
		}
		
		/*if(frm.score_start.value > frm.score_end.value )
		{
			alert('Score start should be less than score end value ');
			return false;
		}*/
		
		if(!Check_ReportType())
			return false;
	}
	return true;
}

//====================================================================================================
/**
 * Sets a Cookie with the given name and value.
 *
 * name       Name of the cookie
 * value      Value of the cookie
 * [expires]  Expiration date of the cookie (default: end of current session)
 * [path]     Path where the cookie is valid (default: path of calling document)
 * [domain]   Domain where the cookie is valid
 *              (default: domain of calling document)
 * [secure]   Boolean value indicating if the cookie transmission requires a
 *              secure transmission
 */
 //----------------------------------------------------------------------------------------------------
 function setCookie(name, value, expires, path, domain, secure) {
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}


//====================================================================================================
/**
 * Gets the value of the specified cookie.
 *
 * name  Name of the desired cookie.
 *
 * Returns a string containing value of specified cookie,
 *   or null if cookie does not exist.
 */
 //----------------------------------------------------------------------------------------------------
function getCookie(name)
{
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1)
	{
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
	else
	{
        begin += 2;
    }
	
    var end = document.cookie.indexOf(";", begin);
    if (end == -1)
	{
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

//====================================================================================================
/**
 * Deletes the specified cookie.
 *
 * name      name of the cookie
 * [path]    path of the cookie (must be same as path used to create cookie)
 * [domain]  domain of the cookie (must be same as domain used to create cookie)
 */
//----------------------------------------------------------------------------------------------------
function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            ((domain) ? "; domain=" + domain : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}