
/* email validation */
function isValidEmail(email)
{
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(email))
		return true;
	else
		return false;
}

function toggleLoading(toggle)
{
	var img = document.getElementById('imgLoading');
	var btn = document.getElementById('viewPDF');
	if (toggle == 'show')
	{
		if(img!=null)
			img.style.display = '';
		if(btn!=null)
			btn.innerHTML = ' exporting... ';
	}
	else
	{
		if(img!=null)
			img.style.display = 'none';
		if(btn!=null)
			btn.innerHTML = 'export';
	}
}

/* sort out dropdowns */
function initDropDowns() {
	if (document.getElementById && document.getElementsByTagName) {
		lists = document.getElementById('container').getElementsByTagName('ul');
		for (i=0; i<lists.length; i++) {
			if(lists[i].id.indexOf('_dropdown')>-1) {
				nodes = lists[i].getElementsByTagName('li');
				for (j=0; j<nodes.length; j++) {
					nodes[j].onmouseover=function() {
						this.className += " over";
					}
					nodes[j].onmouseout=function() {
						if(this.className=="over")
							this.className="";
						else
							this.className=this.className.replace(" over", "");
					}
				}
			}
		}
	}
}

function setTooltips() {
	if (document.getElementById && document.getElementsByTagName) {
		areas = document.getElementById('container').getElementsByTagName('area');
		for (i=0; i<areas.length; i++) {
			if(areas[i].title.indexOf(':') > -1) {
				name = areas[i].title.substring(0, areas[i].title.indexOf(':') + 1);
				value = areas[i].title.substring(areas[i].title.indexOf(':') + 1);
				if(!isNaN(value)) {
					if(parseInt(value) < 0) {
						switch(parseInt(value)) {
							case -1:
								areas[i].title = name + ' No Data Provided'; 
								break;
							case -2:
								areas[i].title = name + ' Not Known';
								break;
							case -3:
								areas[i].title = name + ' Pending Approval';
								break;
							case -4:
								areas[i].title = name + ' Not Available';
						}
					} else {
						if(value.indexOf('.') > -1) { // decimal value
							if(value.substring(value.indexOf('.')) == '.00') {
								areas[i].title = name + ' ' + parseInt(value);
							}
						}
			 		}
			 	}
			 }
		}
	}
}

function fixNav() {
	if(size=="lrg") {
		var ele = document.getElementById('popqueries');
		if(ele!=null && ele+''!='undefined') {
			ele.className = 'double'
		}
	}
}

function validateWelcome() {
	if(document.getElementById('ddlRole').selectedIndex == 0 || document.getElementById('ddlCountry').selectedIndex == 0 || document.getElementById('txtEmail').value == '' || isValidEmail(document.getElementById('txtEmail').value) == false ) {
		alert('Please select your role, the country you are in and enter your email address before continuing.');
		return false;
	}
	return true;
}

function validateWelcomeEMSP() {
	if(document.getElementById('ddlRole').selectedIndex == 0 || document.getElementById('ddlCountry').selectedIndex == 0) {
		alert('Please select your role and the country you are in before continuing.');
		return false;
	}
	return true;	
}

function validateSearch(control) {
	if(document.getElementById(control + '_ddlSection').selectedIndex == 0 || document.getElementById(control + '_ddlQuestion').selectedIndex == 0 || document.getElementById(control + '_ddlRegion').selectedIndex == 0) {
		alert('Please select a category, variable and region.');
		return false;
	}
	var q = document.getElementById(control + '_ddlQuestion');
	if(q.options[q.selectedIndex].value=='-2') {
		alert('You have selected a variable that does not have data directly related to it. Please select a variable associated with this one.');
		return false;
	}
	setHiddenVariable(control);
	setHiddenRegion(control);	
	return true;
}

function btnClick(elementID){
	document.getElementById(elementID).click();
}

/* Add an event to the selected object */
function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, true);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}

/* Instantiate rounded edged divs in the document. 
   Note: For a div to be rounded make sure that it's id = <something>_rounded
*/
function initRoundedDivs() {
	classTree = ["north","east","south","west","ne","se","sw","nw"];
	
	tempdivs = [];
	divs = document.getElementsByTagName('div');
	for (i=0;i<divs.length;i++) {
		cdiv = divs[i];
		if (cdiv.id.indexOf('_rounded')>-1) {
			tempinner = cdiv.innerHTML;
			cdiv.innerHTML = "";
			prevdiv = cdiv;
			for (a=0; a<classTree.length; a++) {
				tempdivs[a] = document.createElement('div');
				tempdivs[a].className = classTree[a];
				prevdiv.appendChild(tempdivs[a]);
				prevdiv = tempdivs[a];
			}
			prevdiv.innerHTML = tempinner;
		}
	}
}

/* Set the selected region and submit the form... */
function setGlobalRegion(control, region) {
	if(region!='$Name')
	{
		var r = document.getElementById(control + '_ddlRegion');
		for(i = 0; i < r.options.length; i++)
		{
			if(r.options[i].value.indexOf(region) > -1)
				r.selectedIndex = i;
		}
		document.getElementById(control + '_region_displayvalue').value = region;
		document.getElementById(control + '_region_datavalue').value = "useregions:" + region;
		document.forms[0].submit();	
	}
}

function setRegion(control, region) {
	if(region!='$Name')
	{
		var r = document.getElementById(control + '_ddlRegion');
		for(i = 0; i < r.options.length; i++)
		{
			if(r.options[i].value.indexOf(region) > -1)
				r.selectedIndex = i;
		}
		document.getElementById(control + '_region_displayvalue').value = region;
		document.getElementById(control + '_region_datavalue').value = "usemap";
		document.forms[0].submit();
	}
}

/* set the drop down display value and associated 'hidden' values */
function setDropDownValue(id, control, display, value) {
	if(control!='') control += '_';
	document.getElementById(control + id + '_display').innerHTML = display;
	document.getElementById(control + id + '_displayvalue').value = display;
	document.getElementById(control + id + '_datavalue').value = value;
	collapseDropDown(control + id + '_dropdown');
}

/* remove the over class from all members of the specified dropdown */
function collapseDropDown(id) {
	nodes = document.getElementById(id).getElementsByTagName('li');
	for (j=0; j<nodes.length; j++) {
		if(nodes[j].className=="over")
			nodes[j].className = "";
		else
			nodes[j].className = nodes[j].className.replace(" over", "");
	}	
}

function setHiddenVariable(control) {
	var q = document.getElementById((control != '' ? control + '_' : '') + 'ddlQuestion');
	if(q.options[q.selectedIndex].text.indexOf('- ') > -1)
		document.getElementById((control != '' ? control + '_' : '') + 'datatype_displayvalue').value = q.options[q.selectedIndex].text.substring(2);
	else
		document.getElementById((control != '' ? control + '_' : '') + 'datatype_displayvalue').value = q.options[q.selectedIndex].text;
	document.getElementById((control != '' ? control + '_' : '') + 'datatype_datavalue').value = q.options[q.selectedIndex].value;
}

function setHiddenRegion(control) {
	var r = document.getElementById(control + '_ddlRegion');
	document.getElementById(control + '_region_displayvalue').value = r.options[r.selectedIndex].text;
	if(r.options[r.selectedIndex].value.indexOf('- ') > -1)
		document.getElementById(control + '_region_datavalue').value = r.options[r.selectedIndex].value.substring(4);
	else
		document.getElementById(control + '_region_datavalue').value = r.options[r.selectedIndex].value;
}

if (document.getElementById && document.createElement) {
	addEvent(window, 'load', fixNav);
	addEvent(window, 'load', initDropDowns);
	addEvent(window, 'load', setTooltips);
}

/* Further research functionality */
function getExportList_CallBack(res) {
	document.getElementById('export_data').innerHTML = res.value;
}

function getReportList_CallBack(res) {
	document.getElementById('export_data').innerHTML = res.value;
}

function preview() {
	var dt = document.getElementById('datatype_datavalue');
	if(dt.value==''){
		return false;
	}	 
	var dtt = document.getElementById('datatype_displayvalue');
	var year = document.getElementById('ddlYears');
	/*
	var i = document.getElementById('instructions');
	if(i != null)
		i.style.display = 'none';
	*/
	Moodia.MSIF.AJAX.ExportMethods.getData(dt.value, dtt.value, year.options[year.selectedIndex].text, getData_CallBack);
}
function getData_CallBack(res) {
	var dtt = document.getElementById('datatype_displayvalue');
	var year = document.getElementById('ddlYears');
	document.getElementById('preview_label').innerHTML = '<span>Previewing ' + dtt.value + ', ' + year.options[year.selectedIndex].text + '&nbsp;</span><div class="button"><span><a href="#" onclick="javascript:exportData();">select</a></span></div>';
	document.getElementById('preview_data').innerHTML = res.value;
}

function preview_report() {
	var report = document.getElementById("ddlReport");	
	if(report.options[report.selectedIndex].value == -1){
		return false;
	}	 
	Moodia.MSIF.AJAX.ExportMethods.getReport(report.options[report.selectedIndex].value, getReport_CallBack);
}
function getReport_CallBack(res)
{
	var report = document.getElementById("ddlReport");
	document.getElementById('preview_label').innerHTML = '<span>Previewing ' + report.options[report.selectedIndex].text + '&nbsp;</span><div class="button"><span><a href="#" onclick="javascript:exportReport();">select</a></span></div>';	
	document.getElementById('preview_data').innerHTML = res.value;
	if (report.options[report.selectedIndex].text == "user traffic")
		alert("Showing top 50 results");
}

function exportReport() {
	var report = document.getElementById("ddlReport");
	Moodia.MSIF.AJAX.ExportMethods.exportReport(report.options[report.selectedIndex].value, exportReport_CallBack);
}		

function exportReport_CallBack(res) {
	if(res.value[0]!='')
	{
		alert('\'' + res.value[0] + '\' has already been selected for export.');
		return;
	}
	document.getElementById('export_data').innerHTML = res.value[1];
}

function exportData() {
	var dt = document.getElementById('datatype_datavalue');
	var dtt = document.getElementById('datatype_displayvalue');
	//var y = document.getElementById('year_displayvalue');	
	var year = document.getElementById("ddlYears");
	Moodia.MSIF.AJAX.ExportMethods.exportData(dt.value, dtt.value, year.options[year.selectedIndex].text, exportData_CallBack);
}		

function exportData_CallBack(res) {
	if(res.value[0]!='')
	{
		alert('\'' + res.value[0] + '\' has already been selected for export.');
		return;
	}
	document.getElementById('export_data').innerHTML = res.value[1];
}

function removeData(index) {
	Moodia.MSIF.AJAX.ExportMethods.removeData(index, removeData_CallBack);
}
function removeData_CallBack(res) {
	document.getElementById('export_data').innerHTML = res.value;
}

function removeReportData(index) {
	Moodia.MSIF.AJAX.ExportMethods.removeReportData(index, removeReportData_CallBack);
}
function removeReportData_CallBack(res) {
	document.getElementById('export_data').innerHTML = res.value;
}

/* Response Administration functionality */
var dirty = false;				
function changeCountry() {
	if(document.getElementById('ddlCountry').selectedIndex > 0 && document.getElementById('ddlSection').selectedIndex > 0) {
		document.getElementById('ddlYears').disabled = true;
		document.getElementById('ddlSection').disabled = true;
		document.getElementById('ddlCountry').disabled = true;	
		if(dirty)
			if(confirm('Would you like to save changes before loading a new country?'))
			{
				var cc = document.getElementById('currentcountry');
				var cs = document.getElementById('currentsection');						
				var contributorName = "";
				var contributorEmail = "";
				var y = document.getElementById('ddlYears');
				y = y.options[y.selectedIndex].text;
				var errMsg = "";
				if(document.getElementById('superadmin').value != 'true')
				{
					contributorName = document.getElementById('txtName').value;
					contributorEmail = document.getElementById('txtEmail').value;
					if (contributorName == "")
						errMsg += "- Please enter your name.\r\n";
					if (isValidEmail(contributorEmail) == false)
						errMsg += "- Please enter a valid email address.";
				}
				if (errMsg == "")
				{
					toggleLoading("show");
					Moodia.MSIF.AJAX.AdminMethods.save(prepareSave(), cc.value, cs.value, contributorName, contributorEmail, y, save_CallBack);
				}
				else
					alert(errMsg);	
				return;
			}
		loadResponses();	
	}
}


function changeSection() {
	if(document.getElementById('ddlSection').selectedIndex > 0 && document.getElementById('ddlCountry').selectedIndex > 0) {		
		document.getElementById('ddlYears').disabled = true;
		document.getElementById('ddlSection').disabled = true;
		document.getElementById('ddlCountry').disabled = true;
		if(dirty)
			if(confirm('Would you like to save changes before loading a new category?'))
			{
				var cc = document.getElementById('currentcountry');
				var cs = document.getElementById('currentsection');				
				var contributorName = "";
				var contributorEmail = "";
				var y = document.getElementById('ddlYears');
				y = y.options[y.selectedIndex].text;
				var errMsg = "";
				if(document.getElementById('superadmin').value != 'true')
				{
					contributorName = document.getElementById('txtName').value;
					contributorEmail = document.getElementById('txtEmail').value;
					if (contributorName == "")
						errMsg += "- Please enter your name.\r\n";
					if (isValidEmail(contributorEmail) == false)
						errMsg += "- Please enter a valid email address.";
				}
				if (errMsg == "")
				{
					toggleLoading("show");
					Moodia.MSIF.AJAX.AdminMethods.save(prepareSave(), cc.value, cs.value, contributorName, contributorEmail, y, save_CallBack);
				}
				else
					alert(errMsg);	
				return;
			}
		loadResponses();
	}
	
}	

function changeSection_displaytext() {
	if(document.getElementById('ddlSection').selectedIndex > 0) {		
		if(dirty)
			if(confirm('Would you like to save changes before loading a new section?'))
			{
				var cs = document.getElementById('currentsection');				
				//var contributorName = document.getElementById('txtName');
				//var contributorEmail = document.getElementById('txtEmail');
				var y = document.getElementById('ddlYears');
				y = y.options[y.selectedIndex].text;
				var errMsg = "";
				//if (contributorName.value == "")
				//	errMsg += "- Please enter your name.\r\n";
				//if (isValidEmail(contributorEmail.value) == false)
				//	errMsg += "- Please enter a valid email address.";
				if (errMsg == "")
					Moodia.MSIF.AJAX.AdminMethods.saveDisplayText(prepareSave_displaytext(), cs.value, y, save_displaytextCallBack);
				else
					alert(errMsg);
			}
		loadResponses_displaytext();
	}
	
}		

function setYearDropdownToDefault() {
	//Moodia.MSIF.AJAX.AdminMethods.setYearDropdownToDefault(setYearDropdownToDefault_Callback);
}

function setYearDropdownToDefault_Callback(res) {
	/*
	var year = document.getElementById('ddlYears');
	for (i = 0; i < year.options.length; i++)
	{
		if (year.options[i].value == res.value)
			year.selectedIndex = i;
	}
	*/
}

function changeYear() 
{
	//getSurveyStatuses();
	changeSection();
}

function changeYear_displaytext() 
{
	changeSection_displaytext();
}

function getSurveyStatuses()
{
	toggleLoading("show");
	var year = document.getElementById('ddlYears');
	Moodia.MSIF.AJAX.AdminMethods.getSurveyStatuses(year.options[year.selectedIndex].value, getSurveyStatuses_CallBack);	
}
function getSurveyStatuses_CallBack(res)
{
	toggleLoading("hide");
	document.getElementById("chkYearAvailable").checked = false;
	document.getElementById("chkDefault").checked = false;
	if (res.value[0] == "true")
		document.getElementById("chkYearAvailable").checked = true;
	if (res.value[1] == "true")
		document.getElementById("chkDefault").checked = true;
}

function clearOptions(listName) // clears dropdown items
{
	while(document.getElementById(listName).options.length > 0)
	{
		document.getElementById(listName).options[0] = null;
	}
}

function setDefaultSurvey()
{
	toggleLoading("show");
	var year = document.getElementById('ddlYears');
	Moodia.MSIF.AJAX.AdminMethods.setDefaultSurvey(year.options[year.selectedIndex].value, document.getElementById("chkDefault").checked, setDefaultSurvey_CallBack);
	
	// also set the default survey available
	if (document.getElementById("chkDefault").checked == true)
	{
		document.getElementById("chkYearAvailable").checked = true;
		changeYearAvailable();
	}
}

function setDefaultSurvey_CallBack(res) {
	toggleLoading("hide");
	//clearOptions('ddlYears');
	//var i;
	//var ddlYears = document.getElementById('ddlYears');
	//for(i = 0; i < res.value.length; i++)
	//{
	//	var response = res.value[i].split(',');
	//	var optn = document.createElement("OPTION");
	//	var optnValue = response[1];
	//	if (optnValue.indexOf("True") > -1)
	//		optn.selected = true;
	//	optnValue = optnValue.replace("_True", "");
	//	optnValue = optnValue.replace("_False", "");
	//	optn.text = response[0];
		//optn.value = optnValue;
		//ddlYears.options[ddlYears.options.length] = optn;
	//}
}

function insertSurvey()
{
	var year = document.getElementById('ddlYears');
	if (confirm("Are you sure you want to add the next year?"))
	{
		toggleLoading("show");	
		Moodia.MSIF.AJAX.AdminMethods.insertSurvey(year.options[year.options.length-1].text, insertSurvey_CallBack);
	}
}

function insertSurvey_CallBack(res) {
	// populate the year dropdown from the tblSurvey table
	clearOptions('ddlYears');
	var i;
	var ddlYears = document.getElementById('ddlYears');
	for(i = 0; i < res.value.length; i++)
	{
		var response = res.value[i].split(',');
		var optn = document.createElement("OPTION");
		var optnValue = response[1];
		if (optnValue.indexOf("True") > -1)
			optn.selected = true;
		optnValue = optnValue.replace("_True", "");
		optnValue = optnValue.replace("_False", "");
		optn.text = response[0];
		optn.value = optnValue;
		ddlYears.options[ddlYears.options.length] = optn;
	}
	toggleLoading("hide");
}

// change the survey availability 
function changeYearAvailable()
{
	toggleLoading("show");
	var yearAvailable = document.getElementById("chkYearAvailable").checked;

	if (document.getElementById("chkDefault").checked == true && document.getElementById("chkYearAvailable").checked == false)
	{
		document.getElementById("chkDefault").checked = false;
		document.getElementById("chkYearAvailable").checked = false;
		setDefaultSurvey();
	}
		
	var year = document.getElementById('ddlYears');
	Moodia.MSIF.AJAX.AdminMethods.changeYearAvailable(year.options[year.selectedIndex].value, yearAvailable, changeYearAvailable_CallBack);
}

function changeYearAvailable_CallBack(res)
{
	toggleLoading("hide");
}

function allowEdit()
{
	var y = document.getElementById('ddlYears');
	if(y.selectedIndex != y.options.length - 1)
	{
		document.getElementById('ddlSection').options[0].text = '- Previous year\'s data is locked -';
		document.getElementById('ddlSection').selectedIndex = 0;
		document.getElementById('responses').innerHTML = '';
		document.getElementById('ddlSection').disabled = true;
	}
	else
	{
		document.getElementById('ddlSection').options[0].text = '- Please select a section -';
		document.getElementById('ddlSection').disabled = false;
	}
}

function loadResponses() {
	toggleLoading("show");
	var c = document.getElementById('ddlCountry');
	var s = document.getElementById('ddlSection');
	var y = document.getElementById('ddlYears');
	y = y.options[y.selectedIndex].text;
	/*
	var i = document.getElementById('instructions');
	if (i != null)
		i.style.display = 'none';
	*/
	Moodia.MSIF.AJAX.AdminMethods.loadResponses(c.options[c.selectedIndex].value, s.options[s.selectedIndex].value, y, loadResponses_CallBack);	
}	

function loadResponses_CallBack(res) {
	if(document.getElementById('superadmin').value == 'true')
		getSectionStatus();
	toggleLoading("hide");
	var y = document.getElementById('ddlYears');
	var c = document.getElementById('ddlCountry');
	var s = document.getElementById('ddlSection');
	var cc = document.getElementById('currentcountry');
	var cs = document.getElementById('currentsection');
	cc.value = c.options[c.selectedIndex].value;
	cs.value = s.options[s.selectedIndex].value;
	if(document.getElementById('superadmin').value == 'true' || y.selectedIndex == y.options.length - 1) document.getElementById('responses').innerHTML = res.value;
	dirty = false;
	document.getElementById('ddlYears').disabled = false;
	document.getElementById('ddlSection').disabled = false;
	document.getElementById('ddlCountry').disabled = false;	
}

function loadResponses_displaytext() {
	toggleLoading("show");
	var s = document.getElementById('ddlSection');
	var y = document.getElementById('ddlYears');
	y = y.options[y.selectedIndex].text;
	Moodia.MSIF.AJAX.AdminMethods.loadResponses_DisplayText(s.options[s.selectedIndex].value, y, loadResponses_displaytext_CallBack);
}	

function loadResponses_displaytext_CallBack(res) {
	toggleLoading("hide");
	var y = document.getElementById('ddlYears');
	var s = document.getElementById('ddlSection');
	var cs = document.getElementById('currentsection');
	cs.value = s.options[s.selectedIndex].value;
	if(document.getElementById('superadmin').value == 'true' || y.selectedIndex == y.options.length - 1) document.getElementById('responses').innerHTML = res.value;
	dirty = false;
}

/*		
var RequestObj;
function generatePDFsResponse()
{
	if (ajaxIsRequestGood(RequestObj))
	{
		toggleLoading("hide");
		window.open(RequestObj.responseText);
	}
}
function generatePDFs()
{
	var c = document.getElementById('ddlCountry');
	var y = document.getElementById('ddlYears');
	y = y.options[y.selectedIndex].text;

	// uses ajaxhelper.js, does not work using ajax pro, call seems to time out - get syntax error
	if (c.selectedIndex > 0)
	{
		toggleLoading("show");
		RequestObj = ajaxInitializeRequestObject();
		RequestObj.onreadystatechange = generatePDFsResponse;
		RequestObj.open("GET","./AJAX/AjaxRequestHandler.aspx?Action=GeneratePDF&c="+c.options[c.selectedIndex].value+"&y="+y,true);
		RequestObj.send(null);
	}
	else
	{
		alert("Please select a country");
	}
}
*/

function viewPDF(isAdmin)
{
	var c = document.getElementById('ddlCountry');
	var y = document.getElementById('ddlYears');
	if (y == null)
		y = document.getElementById('ddlYearsPDF');
	/*
	var ei = document.getElementById('exportinstructions');
	if (ei != null)
		ei.style.display = 'none';
	*/
	if(c.selectedIndex > 0)
	{
		toggleLoading("show");
		Moodia.MSIF.AJAX.AdminMethods.generatePDF(c.options[c.selectedIndex].value, y.options[y.selectedIndex].text, isAdmin, viewPDF_CallBack);	
	}	
	else
	{
		alert("Please select a country.");
	}
}

function viewPDF_CallBack(res)
{
	if(res.value!='')
	{
		toggleLoading("hide");
		window.open(res.value);
	}
	else
	{
		toggleLoading("hide");
		alert('An error occurred during PDF generation. Please try again.');
	}
}

function prepareSave() {
	var val = new Array();
	var f = document.forms[0];
	for(i = 0; i < f.length; i++) {
		if(f[i].id.indexOf('questionresponse_')>-1) {
			val.push(f[i].id.substring(f[i].id.indexOf('_')+1) + ":" + f[i].value);
		}
		if(f[i].id=="contributors") {
			val.push(f[i].value);
		}
	}	
	var retVal = "";
	for (x = 0; x < val.length; x++)
	{
		if (val[x] != null)
			retVal += val[x]+"|";
	}	
	return retVal.substring(0,retVal.length-1);
}	

function prepareSave_displaytext() {
	var val = new Array();
	var f = document.forms[0];
	for(i = 0; i < f.length; i++) {
		if(f[i].id.indexOf('questionresponse_')>-1) {
			val.push(f[i].id.substring(f[i].id.indexOf('_')+1) + ":" + f[i].value);
		}
	}	
	var retVal = "";
	for (x = 0; x < val.length; x++)
	{
		if (val[x] != null)
			retVal += val[x]+"|";
	}	
	return retVal.substring(0,retVal.length-1);
}	
		
function save() {
	var cc = document.getElementById('currentcountry');
	var cs = document.getElementById('currentsection');
	var contributorName = "";
	var contributorEmail = "";
	var y = document.getElementById('ddlYears');
	y = y.options[y.selectedIndex].text;
	var errMsg = "";
	if(document.getElementById('superadmin').value != 'true')
	{
		contributorName = document.getElementById('txtName').value;
		contributorEmail = document.getElementById('txtEmail').value;
		if (contributorName == "")
			errMsg += "- Please enter your name.\r\n";
		if (isValidEmail(contributorEmail) == false)
			errMsg += "- Please enter a valid email address.";
	}
	if (errMsg == "")
	{
		toggleLoading("show");
		Moodia.MSIF.AJAX.AdminMethods.save(prepareSave(), cc.value, cs.value, contributorName, contributorEmail, y, save_CallBack);
	}
	else
		alert(errMsg);	
	return false;
}
function save_CallBack(res) {
	toggleLoading("hide");
	var s = document.getElementById('currentsection');
	if(s.value=='0') // contributors
		alert('Contributors updated.');
	else
		alert('Details saved. ' + res.value + (res.value == '1' ? ' value ' : ' values ') + 'changed.' + (document.getElementById('superadmin').value != 'true' & res.value > 0 ? ' You will receive an email from MSIF once the ' + (res.value == '1' ? 'change has ' : 'changes have ') + 'been published.' : ''));
	dirty = false;
	document.getElementById('responses').innerHTML = '';
	document.getElementById('ddlSection').selectedIndex = 0;
	document.getElementById('ddlYears').disabled = false;
	document.getElementById('ddlSection').disabled = false;
	document.getElementById('ddlCountry').disabled = false;	
}

function save_displaytext() {
	var cs = document.getElementById('currentsection');
	//var contributorName = document.getElementById('txtName');
	//var contributorEmail = document.getElementById('txtEmail');
	var y = document.getElementById('ddlYears');
	y = y.options[y.selectedIndex].text;
	
	var errMsg = "";
	//if (contributorName.value == "")
		//errMsg += "- Please enter your name.\r\n";
	//if (isValidEmail(contributorEmail.value) == false)
		//errMsg += "- Please enter a valid email address.";
	if (errMsg == "")
	{
		toggleLoading("show");
		Moodia.MSIF.AJAX.AdminMethods.saveDisplayText(prepareSave_displaytext(), cs.value, y, save_displaytextCallBack);
	}
	else
		alert(errMsg);
	return false;
}
function save_displaytextCallBack(res) {
	toggleLoading("hide");
	var s = document.getElementById('currentsection');
	alert('Details saved. ' + res.value + (res.value == '1' ? ' value ' : ' values ') + 'updated.'); 
	dirty = false;
}


function editDisplayText(id, text) {
	var d = document.getElementById('displaytext_' + id);
	var undo = d.innerHTML;
	d.innerHTML = '<input type="text" id="displaytextvalue_' + id + '" value="' + text + '" />&nbsp;&nbsp;<img src="img/save.gif" border="0" onclick="javascript:saveDisplayText(\'' + id + '\');"/>&nbsp;&nbsp;<img src="img/undo.gif" border="0" onclick="javascript:undoEdit(\'' + id + '\', \'' + text + '\');">';
}

function undoEdit(id, text) {
	var d = document.getElementById('displaytext_' + id);
	d.innerHTML = text + '&nbsp;&nbsp;<img src="img/edit.gif" border="0" onclick="javascript:editDisplayText(\'' + id + '\', \'' + text + '\');">'; 
}

// old
/*function saveDisplayText(id) {
	var contributorName = document.getElementById('txtName');
	var contributorEmail = document.getElementById('txtEmail');
	var e = document.getElementById('displaytextvalue_' + id);
	var errMsg = "";
	if (contributorName.value == "")
		errMsg += "- Please enter your name.\r\n";
	if (isValidEmail(contributorEmail.value) == false)
		errMsg += "- Please enter a valid email address.";
	if (errMsg == "")
	{
		toggleLoading("show");
		Moodia.MSIF.AJAX.AdminMethods.saveDisplayText(id, e.value, saveDisplayText_CallBack);
	}
	else
		alert(errMsg);
}			

function saveDisplayText_CallBack(res) {
	toggleLoading("hide");
	var d = document.getElementById('displaytext_' + res.value[0]);			
	d.innerHTML = res.value[1];							
}
*/

function buildRegistrationsDownload() {
	Moodia.MSIF.AJAX.AdminMethods.buildRegistrationsDownload(buildRegistrationsDownload_Callback);
}

function buildRegistrationsDownload_Callback(res) {
	var d = document.getElementById('registrationsdownloadlink');
	d.innerHTML = res.value;
}

function buildQueriesDownload() {
	Moodia.MSIF.AJAX.AdminMethods.buildQueriesDownload(buildQueriesDownload_Callback);
}

function buildQueriesDownload_Callback(res) {
	var d = document.getElementById('queriesdownloadlink');
	d.innerHTML = res.value;
}

/* Chart/Export functionality */
function loadQuestions(control, forexport) {
	var s = document.getElementById((control != '' ? control + '_' : '') + 'ddlSection');
	var y = document.getElementById((control != '' ? control + '_' : '') + 'ddlYears');
	var year = 0;
	try
	{
		year = y.options[y.selectedIndex].text;
	}
	catch(err)
	{
	}
	var res = Moodia.MSIF.AJAX.ChartMethods.loadQuestions(s.options[s.selectedIndex].value, year, forexport).value;
	var q = document.getElementById((control != '' ? control + '_' : '') + 'ddlQuestion');
	var value = document.getElementById((control != '' ? control + '_' : '') + 'datatype_datavalue').value;
	if(res.length > 0) {
		q.options.length = 0;
		q.options[0] = new Option('- Select Variable -', '-1', false, true);
		var selected = false;
		for(i = 0; i < res.length; i++)	{
			if (res[i] !== null)
			{
				var id = res[i].substring(0, res[i].indexOf(':')); 
				var t = res[i].substring(res[i].indexOf(':') + 1);
				q.options[q.options.length] = new Option(t, id, false, (id == value));
			}
		}
	} else {
		q.options.length = 0;
		q.options[0] = new Option('- Select Category -', '-1', false, true);
	}
}

function approveSection() {
	toggleLoading("show");
	var s = document.getElementById('ddlSection');
	var c = document.getElementById('ddlCountry');
	var y = document.getElementById('ddlYears');
	Moodia.MSIF.AJAX.AdminMethods.approveSection(s.options[s.selectedIndex].value, c.options[c.selectedIndex].value, y.options[y.selectedIndex].text, approveSection_Callback);
}

function approveSection_Callback(res) {
	toggleLoading("hide");
	document.getElementById("btnApprove").style.display = "none";
	loadResponses();
}

function getSectionStatus() {
	toggleLoading("show");
	var s = document.getElementById('ddlSection');
	var c = document.getElementById('ddlCountry');
	var y = document.getElementById('ddlYears');
	Moodia.MSIF.AJAX.AdminMethods.getSectionStatus(s.options[s.selectedIndex].value, c.options[c.selectedIndex].value, y.options[y.selectedIndex].text, getSectionStatus_CallBack);
}

function getSectionStatus_CallBack(res) {
	if (res.value == true)
		document.getElementById("btnApprove").style.display = "";	
	else
		document.getElementById("btnApprove").style.display = "none";	
		
	if (document.getElementById('ddlSection').selectedIndex == 1)
		document.getElementById("btnApprove").style.display = "none";	
}

function clickButton(e, buttonid){ 
      var evt = e ? e : window.event;
      var bt = document.getElementById(buttonid);
      if (bt){ 
          if (evt.keyCode == 13){ 
                bt.click(); 
                return false; 
          } 
      } 
}

function checkNumeric(e)
{
	if (!isNumeric(e.value) && e.value.toLowerCase() != 'no data provided' && e.value.toLowerCase() != 'not known')
	{
		e.className += ' updated';	
		alert('Please supply a numeric value or enter NO DATA PROVIDED or NOT KNOWN.');
		e.focus();
	}
	else
		e.className = e.className.replace(/updated/g, '');
}

function isNumeric(v)
{
	var vc = '0123456789.';
	for(i = 0; i < v.length; i++)
	{
		if(vc.indexOf(v.charAt(i)) == -1)
			return false;
	}
	return true;
}
