﻿// Set Ghost Text on All the Text Fields
function ghostText( el ) {
	$( el ).each( function() {
		var title = $( this ).attr("title");
		
		if( title != '' ) {
			$( this ).addClass( "ghost" ).attr( "value", title );
			
			$( this ).focus( function() {
				if( $(this).attr( "value" ) == title ) {
					$( this ).attr( "value", '' );
					$( this ).removeClass( "ghost" );
					$( this ).addClass("regular");
				}
			});
			
			$( this ).blur( function() {
				if( $(this).attr( "value" ) == '' ) {
					$( this ).attr( "value", title );
					$( this ).addClass( "ghost" );
					$( this ).removeClass( "regular" );
				}
			});
		}
	});
}


// Expandable Lists
function expandList() {
	if( !document.getElementsByTagName ) return;
	var aMenus = document.getElementsByTagName("LI");
	for( var i = 0; i < aMenus.length; i++ ) {
		var mclass = aMenus[i].className;
		if( mclass.indexOf("expandable") > -1 ) {
			var submenu = aMenus[i].childNodes;
			for( var j = 0; j < submenu.length; j++ ) {
				if( submenu[j].tagName == "SPAN" ) {
					submenu[j].onclick = function() {
						var node = this.nextSibling;
						var hasUl = false;
						while (node != null) {
							if (node.tagName == "UL") {
								hasUl = true;
								var d = (node.className == "closed");
								node.className = (d) ? "opened" : "closed";
								this.className = (d) ? "contract" : "expand";
							}
							node = node.nextSibling;
						}
						return !hasUl; //don't swallow a link click if there's no corresponding <ul>
					};
					submenu[j].className = (mclass.indexOf("Open") > -1) ? "contract" : "expand";
				}
				if( submenu[j].tagName == "UL" ) {
					submenu[j].className = (mclass.indexOf("Open") > -1) ? "opened" : "closed";
				}
			}
		}
	}
}


// Submit Data Customization Tables
function customizeData( el ) {
	$( el ).each( function() {
		$(this).change(function() {
			$( "#wait" ).addClass( "show-wait" );
			$( "#form1" ).submit();
		});
	});
}

function shareThis() {
	$("a.sharethis").click(function() {
		return addthis_sendto();
	}).hover(
		function() {
			return addthis_open(this, '', '[URL]', '[TITLE]');
		}, function() {
			addthis_close();
		}
	);
}

function popup() {
	$("a.popup").bind("click", function() {
		var theHref = this.href;
		window.open( theHref, 'popup', 'width=600,height=600,scrollbars=yes,resizable=yes' );
		return false;
	});
}

function showPdf() {

	var showInd = $('li.pdf input:checkbox').is(':checked') ? "checked" : "unchecked";	
	var pdfLi = $("li.pdf");
	
	$("li.pdf a").bind("click", function() {
		if( pdfLi.hasClass("show") ) {
			hideIncludeIndicator( pdfLi );
		} else {
			showIncludeIndicator( pdfLi );
		}
		return false;
	});

	$("li.pdf input:checkbox").bind("click", function() {
		if( showInd == "checked" ) {
			showInd = "unchecked";
		} else {
			showInd = "checked";
		}
	});
	
	$("li.pdf input:button").bind("click", function() {		
		getPdf( showInd, "ind" ); //topic pages always request pdfs for indicators
		hideIncludeIndicator( pdfLi );
		return false;
	});
}

function hideIncludeIndicator( el ) {
	el.removeClass("show");
}

function showIncludeIndicator( el ) {
	el.addClass("show");
}

function getPdf( sInd, urlParam ) {

	//send info to google analytics
	//pageTracker._trackPageview('url');
	
	var pdfUrl = "/pdf/default.aspx?";
	
	//get the indicator id from the url
	var qs = velir.collections.NameValueCollection.parseQueryString(kidsdata.backingUrl);
	var pdfParamId = qs.getValue(urlParam);
	pdfUrl = pdfUrl + urlParam + "=" + pdfParamId;
	
	//check for the option to include the current indicator
	if( sInd == "checked" ) {
	
		//note that we're going to include the current indicator in the url
		pdfUrl = pdfUrl + "&includeInd=true";
		
		//now build the query string specification for the included indicator
		var parts = kidsdata.backingUrl.split("/");
		var spec = parts[parts.length-1]; //full path & query 
		
		//append the spec to the url
		pdfUrl = pdfUrl + "&spec=" + escape(spec);
	}	
		
	window.open( pdfUrl, "_blank", "location=yes,status=yes,scrollbars=yes,resizable=yes");
	
}


function customizeRegion() {
	$("ul.regions #location-list").css("display", "none");
	$("ul.regions li").click( function(e) {
		if( this.title != '' ) {
			top.location.href = this.title;
		} else {
			$("ul.regions #location-list").css("display", "block");
		}
		
	});
}


// learn more menu
function learnMore() {
	jQuery(".learnmore-menu").children("div.menu").hide();

	jQuery(".learnmore-menu").hover(function() {
			$(this).children("div.menu").slideDown("fast");
		},
		function() {
			$(this).children("div.menu").slideUp("fast");
		}
	);			
}

function toggle(id){
$("#" + id ).toggle();
}

$(document).ready(function() {

	if ($.browser.msie && $.browser.version == 6) {
		$(":text").addClass("input-text");
	}

	ghostText(".search :text");
	ghostText(".newsletters :text");
	ghostText(".type-your-location");
	ghostText(".type-your-topic");

	expandList();
	customizeRegion();

	shareThis();

	learnMore();

	//popup();

	//showPdf();

	//customizeData( ".customize input" ); // global form

	//tooltips on charts
	$(".chartdatapoint").tooltip({
		delay: 0,
		showURL: false
	});

});


/* raw data download */   /* No longer used but keeping here for now */
function rawData() {
	$("#raw-data-popup").toggle();

	if (!$('#raw-data-popup').is(':visible')) {
		//we just hid the box
		$(".data-tools li.download a").css("background-color", "");
		return;
	}

	$(".data-tools li.download a").css("background-color", "#FCEFD6");
}
function rawDataDownload(url) {
	document.location = url;
	$(".data-tools li.download a").css("background-color", "");
	$("#raw-data-popup").toggle();
}


/* excel data download */
function excelData(linkElemId) {
	var linkId = "#" + linkElemId;
	var linkElem = $(linkId);
	var divElem = linkElem.next("div");
	if (!divElem.hasClass("show")) {
		$("ul.data-tools li.download a").removeClass("show");
		$("ul.data-tools li.download div").removeClass("show");
		$(".chartDataTools a").removeClass("show");
		$(".chartDataTools div").removeClass("show");
		$(".downloadChart fieldset").removeClass("show");
		$(".downloadChart a").removeClass("show");
	}
	divElem.toggleClass("show");
	linkElem.toggleClass("show");
}

function excelDownload(spec, section, linkElemId, allData) {
	var linkId = "#" + linkElemId;
	var linkElem = $(linkId);
	var divElem = linkElem.next("div");
	if (!divElem.hasClass("show")) {
		$("ul.data-tools li.download a").removeClass("show");
		$("ul.data-tools li.download div").removeClass("show");
		$(".chartDataTools a").removeClass("show");
		$(".chartDataTools div").removeClass("show");
		$(".downloadChart fieldset").removeClass("show");
		$(".downloadChart a").removeClass("show");
	}
	divElem.toggleClass("show");
	linkElem.toggleClass("show");
	window.location.href = "/export/GenerateExcel.aspx?section=" + section + "&spec=" + escape(spec) + "&alldata=" + allData;

}


function showDownloadChart(section, ind, linkElemId, dtm, loc) {
	var fUrl = "/export/GenerateWordDoc.aspx"
	var style = "color";
	var prefix = linkElemId.substring(0,linkElemId.indexOf("lnkDownloadChart"));

	var linkId = "#" + linkElemId;
	var linkElem = $(linkId);
	var fs = linkElem.next(".dcFieldset");

	var radPpt = $("#" + prefix + "radPpt");
	var radWord = $("#" + prefix + "radWord");
	var btnSubmit = $("#" + prefix + "btnDownloadChart");
	
	var indId = ind;

	if (!fs.hasClass("show")) {
		$(".chartDataTools a").removeClass("show");
		$(".chartDataTools div").removeClass("show");
		$(".downloadChart fieldset").removeClass("show");
		$(".downloadChart a").removeClass("show");
	}
	fs.toggleClass("show");
	linkElem.toggleClass("show");

	radPpt.bind("click", function() {
		fUrl = "/export/GeneratePpt.aspx";
		radWord.attr("checked", false);
	});

	radWord.bind("click", function() {
		fUrl = "/export/GenerateWordDoc.aspx";
		radPpt.attr("checked", false);
	});

	/*
	var radColor = $("#" + prefix + "radColor");
	var radBW = $("#" + prefix + "radBW");
	radBW.bind("click", function() {
		style = "bw";
		radColor.attr("checked", false);
	});

	radColor.bind("click", function() {
		style = "color";
		radBW.attr("checked", false); 
	});
	*/

	btnSubmit.bind("click", function() {
	fUrl = fUrl + "?section=" + section + "&style=" + style + "&ind=" + ind + "&dtm=" + dtm + "&loc=" + loc;
		exportFile(fUrl) //topic pages always request tables for indicators
		return false;
	});
}

function exportFile(url) {
	
	//now build the query string specification for the included indicator
	var parts = kidsdata.backingUrl.split("/");
	var spec = parts[parts.length-1]; //full path & query 

	//append the spec to the url
	fUrl = url + "&spec=" + escape(spec);

	window.location.href = fUrl;
}

function getUrlParam(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if (results == null) {
        return "";
    } else {
        return results[1];
    }
}
