// JS code specific to the home page

function loadHomeEvents() {
	// Add Home page-specific event listeners
	var i;	// Loop variable
	var centerDiv = document.getElementById('center');
	// Story Headings
	var storyHeadings = centerDiv.getElementsByTagName('h1');
	// Language link of Main Story	
	
	for (i=1; i<=storyHeadings.length; i++) {
		var storyHeading = document.getElementById('headline' + i);
		var storyHeadingImage = document.getElementById('headlineImage' + i);
		var langLink = document.getElementById('headlineLanguageLink' + i);
		if (document.attachEvent) {	// IE 7
			storyHeading.attachEvent('onclick', storyHeadingClicked);
			storyHeadingImage.attachEvent('onclick', storyHeadingClicked);
			langLink.attachEvent('onclick', updateHeadline);
		} else if (document.addEventListener) {	// Non-IE
			storyHeading.addEventListener('click', storyHeadingClicked, false);
			storyHeadingImage.addEventListener('click', storyHeadingClicked, false);
			langLink.addEventListener('click', updateHeadline, false);
		} else {	// Older IE
			storyHeading.onclick = storyHeadingClicked;
			storyHeadingImage.onclick = storyHeadingClicked;
			langLink.onclick = updateHeadline;
		}
	}
}

function storyHeadingClicked(e) {
	var i = getIndex(e);
	var headline = document.getElementById('headline' + i);
	var headlineImage = document.getElementById('headlineImage' + i);
	var storyBody = document.getElementById('storyBodyDiv' + i);
	var language = document.getElementById('headlineLanguage' + i);

	if (storyBody.style.display === 'none') {
		storyBody.style.display = 'block';
		headlineImage.src = '/images/minus1.gif';
		headlineImage.title = 'Hide Contents';
		language.style.display = 'block';
		headline.style.width = '';
	} else {
		storyBody.style.display = 'none';
		headlineImage.src = '/images/plus1.gif';
		headlineImage.title = 'Show Contents';
		language.style.display = 'none';
		headline.style.width = '486px';
	}
}

function getIndex(e) {
	var i;
	if (e.target) {
		if (parseInt(e.target.id.slice(-2))) {
			i = e.target.id.slice(-2);
		} else {
			i = e.target.id.slice(-1);
		}
	} else {
		if (parseInt(e.srcElement.id.slice(-2))) {
			i = e.srcElement.id.slice(-2);
		} else {
			i = e.srcElement.id.slice(-1);
		}
	}
	return i;
}
/********************************************************************/
/*	Function to take care of language translation from English to Mizo and vice versa
	using Ajax call to a PHP server script.
*/
function updateHeadline(e) {
	var i = getIndex(e);
	var mainStory  = document.getElementById('story' + i);
	var loadingDiv = document.getElementById('loadingDiv' + i);
	var headline   = document.getElementById('headline' + i);
	var headlineImage   = document.getElementById('headlineImage' + i);
	var langDiv    = document.getElementById('headlineLanguage' + i);
	var langLink   = document.getElementById('headlineLanguageLink' + i);
	var pubDate    = document.getElementById('storyPubDate' + i);
	var storyImage      = document.getElementById('storyImage' + i) || '';
	var content    = document.getElementById('storyContent' + i);
	var linkURL = document.getElementById('linkURL' + i) || '';
	var hiddenLangLink = document.getElementById('hiddenLangLink' + i);

	// Check whethr the counterpart language version is available or not.
	if (hiddenLangLink.innerHTML == 0) {
		alert("Sorry, the " + langLink.innerHTML + " version is not available.");
		preventDefaultBehavior(e);
		return;
	}

	var URL = "/updateHeadline.php?lang=" + langLink.innerHTML + "&id=" + hiddenLangLink.innerHTML;

// Show 'loading...'
	loadingDiv.style.display = 'block';
	// Hide Data Tags
	headline.style.display = 'none';
	headlineImage.style.display = 'none';
	langDiv.style.display  = 'none';
	pubDate.style.display  = 'none';
	if (storyImage) {
		storyImage.style.display    = 'none';
	}
	content.style.display  = 'none';
	if (linkURL) {
		linkURL.style.display    = 'none';
	}

	// Ajax call to retrieve relevant record
	var xhr = new FactoryXMLHttpRequest();
	xhr.onreadystatechange = myCallback;
	xhr.open('GET', URL, true);
	xhr.send('');
	function myCallback() {
		if (xhr.readyState === 4) {
			if (xhr.status === 200) {
				var result= xhr.responseText;
				// Update Data Tags with the server's response data
				result = eval('(' + result + ')');
				headline.innerHTML = '&nbsp;' + result[0].headline;	// Update headline
				pubDate.innerHTML  = result[0].pub_date + ' IST';	// Update publication date
				if (result[0].photo) {	// If photograph is available
					storyImage.src = result[0].photo;
					storyImage.alt = result[0].photo_caption; 		// Update photo alt property
				}
				// Update content... with URL link if available
				if (result[0].link_url) {
					content.innerHTML = result[0].content + 
						"<a href='" + result[0].link_url + "' id='" + linkURL.id +
						"'>" + result[0].link_caption + "</a>";
				} else {
					content.innerHTML = result[0].content;
				}
				// Update hidden language link value
				hiddenLangLink.value = result[0].hidden_link;
				// Update language link text
				if (langLink.innerHTML == 'English') {
					langLink.innerHTML = 'Mizo';
				} else {
					langLink.innerHTML = 'English';
				}
				// Hide 'loading...'
				loadingDiv.style.display = 'none';
				// Show Data Tags
				headline.style.display = 'block';
				headlineImage.style.display = 'block';
				langDiv.style.display  = 'block';
				pubDate.style.display  = 'block';
				if (storyImage) {
					storyImage.style.display    = 'block';
				}
				content.style.display  = 'block';
				if (linkURL) {
					linkURL.style.display    = 'block';
				}
			}
		}
	}
	// Prevent default behavior
	preventDefaultBehavior(e);
}
/*******************************************************************/
function preventDefaultBehavior(e) {
	var evt = e || window.event;
	if (evt.preventDefault) {
			evt.preventDefault();
	} else {
		evt.returnValue = false;
	}
}